
假設,我想寫一個有變音符號的單字,例如菲貝吉,我不能使用 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。fine
通常會fi
在大多數字體中使用連字,但f{i}ne
會破壞連字(通常)。帶有變音符號的字母也是如此。
如果\"{i}
解決使用\accent
原語來放置 a ,\"
那麼將不會有字體指定的緊排或連字,因此所有可能性都是等效的。 (預設 OT1 編碼會發生這種情況)。
如果\"{i}
解決在帶有組合字元的字體中使用單一字形,那麼如果有字體指定的字距或連字,如果您{}
在構造周圍有一個群組,那麼這些將被阻止。
答案2
最大相容性是不可能的,因為\k
在 Computer Modern 中的經典 TeX 中沒有提供。因此\k
在 plain TeX 中是未定義的控制序列。它\k
的定義取決於所使用的巨集包和所使用的字型編碼。具有預設字體編碼的 LaTeX 不識別\k
.
第二個問題:\"i
在經典 TeX 中給出點狀 i 和上面的下一對點(即三個點狀 i)。的使用\"\i
是需要的。但語法\"i
可能會給出所需的結果,具體取決於所使用的巨集包和所使用的內部字體編碼。