デフォルトの入力エンコーディングで発音区別符号をエンコードする最適な方法は何ですか?

デフォルトの入力エンコーディングで発音区別符号をエンコードする最適な方法は何ですか?

例えば、発音区別符号付きの単語を書きたいとします。フィベン、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

以前、これらの代替案の1つが、より良いカーニングやそれに似たものを可能にするため好ましいと読んだことをぼんやりと覚えています。しかし、これをテストすると、すべてのケースで同じ悪いカーニングが起こります。 そして左の点 衝突し、オゴネクと下降者も衝突する じ。

さて、これは意図的に病的な例であり、それぞれの衝突は既存の言語には関係がない可能性があり、したがって、上記のいずれかの方法で発音区別符号をエンコードすると、より良いカーニングが生成されるケースが他にもある可能性があります。また、考えられるすべての環境をテストしたわけではないので、何かを見逃している可能性があります。

最後に、ハイフネーションやその他の側面に関して上記のいずれかのバリアントが好まれるその他の理由 (ソース コードの美観を除く) がある可能性があります。

私の質問は次のとおりです。上記のバリアントのいくつかを他のバリアントよりも優先する技術的な理由はありますか?

答え1

1 または 2 を使用します。避けられない場合を除き、文字の周囲にグループを追加しないでください (これは、bibtex が大文字と小文字を制御するためにグループを使用する際の大きな問題です)。 は、通常、ほとんどのフォントで合字fineを使用しますが、合字は壊れます (通常)。分音記号付きの文字の場合も同様です。fif{i}ne

を配置するためのプリミティブ\"{i}の使用に解決される場合、フォント指定のカーニングや合字は存在しないため、すべての可能性は同等になります。(これはデフォルトの OT1 エンコーディングで発生します)。\accent\"

フォント内の単一のグリフを合成文字で使用することに解決される場合\"{i}、フォント指定のカーニングまたは合字があっても、その構造の周囲にグループがあればこれらは防止されます{}

答え2

\kComputer Modern のクラシック TeX では が提供されていないため、最大限の互換性は実現できません。したがって、\kプレーン TeX では は未定義の制御シーケンスです。 は、\k使用されているマクロ パッケージと使用されているフォント エンコーディングに応じて定義されます。デフォルトのフォント エンコーディングを持つ LaTeX は を認識しません\k

2 番目の問題:\"i従来の TeX では、点線の i とその上の次の点のペア (つまり、3 つの点線の i) が返されます。 の使用が\"\i必要です。ただし、使用されているマクロ パッケージと使用されている内部フォント エンコーディングによっては、構文によって\"i望ましい結果が得られる場合があります。

関連情報