使用默认输入编码对变音符号进行编码的最佳方法是什么?

使用默认输入编码对变音符号进行编码的最佳方法是什么?

假设我想写一个带变音符号的单词,比如菲贝伊,我不能使用 Unicode 或类似的东西,而是必须保持对各种情况的最大兼容性。如果我没有弄错的话,我必须采取以下方法之一:

  1. f\"ib\k{e}j
  2. f\"{i}b\k{e}j
  3. f{\"i}b{\k{e}}j
  4. f{\"{i}}b{\k{e}}j

我依稀记得曾经读到过,其中一个替代方案更可取,因为它可以提供更好的字距调整或类似的东西。然而,在测试这个时,我在所有情况下都得到了同样糟糕的字距调整: F以及 碰撞,而星火和下降星也碰撞了 j.

现在,这是一个故意病态的例子,相应的冲突可能与任何现有语言无关,因此可能存在其他情况,其中上述编码变音符号的方法之一确实会产生更好的字距调整。另外,我没有测试所有可能的环境,可能错过了一些东西。

最后,可能还有一些其他原因(源代码美学除外)使得上述变体之一在连字和其他方面更可取。

我的问题是:是否存在一些技术原因使得上述某些变体优于其他变体?

答案1

使用 1 或 2。除非可以避免,否则不要在字母周围添加组(这是 bibtex 使用组来控制大小写的主要问题)。fine通常会fi在大多数字体中使用连字,但f{i}ne会破坏连字(通常)。带有变音符号的字母也是如此。

如果\"{i}解析为使用\accent原始字符来放置,\"则不会有字体指定的字距或连字,因此所有可能性都是等效的。(这发生在默认的 OT1 编码中)。

如果\"{i}解决的是使用字体中的单个字形和组合字符,那么如果有字体指定的字距或连字,如果您{}在构造周围有一个组,这些将被阻止。

答案2

最大兼容性是不可能的,因为\kComputer Modern 中的经典 TeX 不提供。因此,在\k纯 TeX 中未定义控制序列。\k根据使用的宏包和使用的字体编码定义。使用默认字体编码的 LaTeX 不认识\k

第二个问题:\"i在传统 TeX 中给出带点的 i 和上面的下一对点(即三个带点的 i)。需要使用\"\i。但语法\"i可能会根据使用的宏包和使用的内部字体编码给出所需的结果。

相关内容