使用預設輸入編碼對變音標記進行編碼的最佳方法是什麼?

使用預設輸入編碼對變音標記進行編碼的最佳方法是什麼?

假設,我想寫一個有變音符號的單字,例如菲貝吉,我不能使用 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。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可能會給出所需的結果,具體取決於所使用的巨集包和所使用的內部字體編碼。

相關內容