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 的文章了解更多信息。

相关内容