T1 編碼中類似連字符的字元 #45 和 #127 有什麼不同?

T1 編碼中類似連字符的字元 #45 和 #127 有什麼不同?

T1 編碼中十進位索引 #45 和 #127 的符號有什麼不同?字符#45 似乎是普通的連字符,但是#127 呢?短破折號和長破折號分別位於位置#21 和#22。

對於我關於字體中包含哪些連字的問題,這是一個很好的答案引起我對此事的注意。根據它的說法,TeX 將從字元序列 #45-#127 中建立一個看起來像連字符(大概是 #45 或 #127)的「連字」。 (為什麼要這樣做?)

答案1

字元127(十六進位"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. 如果語言建立了連字符可以用作斷點的連字符規則,則不會有兩個字符:後面-跟著連字符過程添加的“突出連字符”將合併為單個突出連字符。

最後一點是透過第二個連字實現的

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

與字元「八進位 55」(即十進位 45 和十六進位"2D)相關,如範例的最後一位所示。日誌檔案報告

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

這個字符被包含在 T1 編碼中,當時甚至連縮微印刷特徵都沒有想到(1990 年);據我所知,它從未被真正利用過。看M. Ferguson 關於 TUGboat 的文章了解更多。

相關內容