假设我想写一个带变音符号的单词,比如菲贝伊,我不能使用 Unicode 或类似的东西,而是必须保持对各种情况的最大兼容性。如果我没有弄错的话,我必须采取以下方法之一:
f\"ib\k{e}j
f\"{i}b\k{e}j
f{\"i}b{\k{e}}j
f{\"{i}}b{\k{e}}j
我依稀记得曾经读到过,其中一个替代方案更可取,因为它可以提供更好的字距调整或类似的东西。然而,在测试这个时,我在所有情况下都得到了同样糟糕的字距调整: F以及 我碰撞,而星火和下降星也碰撞了 j.
现在,这是一个故意病态的例子,相应的冲突可能与任何现有语言无关,因此可能存在其他情况,其中上述编码变音符号的方法之一确实会产生更好的字距调整。另外,我没有测试所有可能的环境,可能错过了一些东西。
最后,可能还有一些其他原因(源代码美学除外)使得上述变体之一在连字和其他方面更可取。
我的问题是:是否存在一些技术原因使得上述某些变体优于其他变体?
答案1
使用 1 或 2。除非可以避免,否则不要在字母周围添加组(这是 bibtex 使用组来控制大小写的主要问题)。fine
通常会fi
在大多数字体中使用连字,但f{i}ne
会破坏连字(通常)。带有变音符号的字母也是如此。
如果\"{i}
解析为使用\accent
原始字符来放置,\"
则不会有字体指定的字距或连字,因此所有可能性都是等效的。(这发生在默认的 OT1 编码中)。
如果\"{i}
解决的是使用字体中的单个字形和组合字符,那么如果有字体指定的字距或连字,如果您{}
在构造周围有一个组,这些将被阻止。
答案2
最大兼容性是不可能的,因为\k
Computer Modern 中的经典 TeX 不提供。因此,在\k
纯 TeX 中未定义控制序列。\k
根据使用的宏包和使用的字体编码定义。使用默认字体编码的 LaTeX 不认识\k
。
第二个问题:\"i
在传统 TeX 中给出带点的 i 和上面的下一对点(即三个带点的 i)。需要使用\"\i
。但语法\"i
可能会根据使用的宏包和使用的内部字体编码给出所需的结果。