T1 エンコーディングのハイフンのような文字 #45 と #127 の違いは何ですか?

T1 エンコーディングのハイフンのような文字 #45 と #127 の違いは何ですか?

T1 エンコーディングの 10 進インデックス #45 と #127 のシンボルの違いは何ですか? 文字 #45 は通常のハイフンのようですが、#127 はどうでしょうか? en ダッシュと em ダッシュは、それぞれ位置 #21 と #22 にあります。

これは、フォントに含まれる合字についての私の質問に対する優れた回答ですこの問題に注目しました。それによると、TeX は文字シーケンス #45-#127 からハイフン (おそらく #45 または #127) のような「合字」を作成します。(なぜそうなるのでしょうか?)

答え1

文字 127 (16 進数"7F) は「突出ハイフン」であり、次のテスト ドキュメントで簡単に証明できます。

\documentclass{article}
\usepackage[T1]{fontenc}

\showboxbreadth=\maxdimen % show completely the box contents
\showboxdepth=\maxdimen   % at every inner level

\begin{document}
\setlength{\parindent}{0pt} % just for the example

\sbox0{\char"2D}\the\wd0

\sbox0{\char"7F}\the\wd0

a\char"2D b

a\char"7F b

\begingroup
\setlength{\fboxsep}{-\fboxrule}
\fbox{\char"2D}\quad\fbox{\char"7F}
\endgroup

\sbox0{\char"2D \char"7F }\showbox0

\end{document}

出力は次のようになります

ここに画像の説明を入力してください

通常のハイフンは境界ボックスに対してわずかに非対称であり、「突出ハイフン」は境界ボックスの大部分を占めていることは明らかである。境界ボックス。

設定すると\hyphenchar\font="7F(現在のフォントがT1エンコードされている場合)、次の結果が得られます。

  1. 明示的なハイフン(通常の文字"2D)は任意文字を挿入しません。また、それで始まる合字も任意文字を挿入しません。

  2. ハイフネーション アルゴリズムを適用すると、「突出ハイフン」が使用されます。

  3. 言語が、通常のハイフンをブレークポイントとして使用できるハイフネーション規則を確立した場合、2 つの文字は存在せず、-ハイフネーション手順によって追加された「突出ハイフン」が 1 つの突出ハイフンに結合されます。

最後のポイントは2番目の合字によって実現されます

(LABEL O 55)
(LIG O 55 O 25)
(LIG O 177 O 177)
(STOP)

文字「8進数55」(つまり、10進数45、16進数"2D)に関するもので、例の最後のビットに示されています。ログファイルは次のように報告します。

> \box0=
\hbox(4.3045+0.0)x1.66626
.\T1/cmr/m/n/10 ^^? (ligature -^^?)

この文字は、マイクロタイポグラフィの特徴がまだ夢にも見られなかった時代(1990年)にT1エンコーディングに含まれていましたが、私の知る限り、実際に活用されたことはありません。M. ファーガソンのタグボートに関する記事詳細については。

関連情報