除了为连字符的第一部分设置字距(我想避免这种情况)之外,如何在 PL 文件中指定字形和连字符(例如数字和短划线)的字距?
答案1
我的实验(如下所述)似乎证明了这是不可能的。当 TeX 找到字符簇时
abc
(abc
其中 代表任意三个字符)它查看是否定义了 的字距调整对或连字ab
,在这种情况下,它会插入字距或进行连字。如果连字机制已替换d
为,则尝试和ab
之间的字距调整或连字;否则将考虑这对。d
c
bc
这是实验的描述。
我将其转换
cmr12.tfm
为cmr12.pl
和tftopl
。我添加了以下几行
(LABEL C 0) (KRN O 174 R 2) (STOP)
对于该属性,它应该定义和 em-dash 和 ran
LIGTABLE
之间的字距调整对。0
pltotf
我在测试文件上运行了 TeX
\font\x=cmr12 \x % load the modified font metric file 0-\par 0--\par 0---\par \bye
并且没有出现任何字距。
cmr12.pl
我将文件中上面的行改为(LABEL C 0) (KRN O 55 R 2) (STOP)
(八进制 55 是连字符的插槽),再次转换为文件
.tfm
并在上面的测试文件上再次运行 TeX ;在这种情况下,字距出现在所有三行上。
情况后连字符是不同的,并且确实显示了与八进制 13 (连字符)cmr12.pl
相同的字距对,即f
ff
(LABEL C f)
(LIG C i O 14)
(LIG C f O 13)
(LIG C l O 15)
(KRN O 47 R 0.069734)
(KRN O 77 R 0.069734)
(KRN O 41 R 0.069734)
(KRN O 51 R 0.069734)
(KRN O 135 R 0.069734)
(STOP)
(LABEL O 13)
(LIG C i O 16)
(LIG C l O 17)
(KRN O 47 R 0.069734)
(KRN O 77 R 0.069734)
(KRN O 41 R 0.069734)
(KRN O 51 R 0.069734)
(KRN O 135 R 0.069734)
(STOP)
证实了我的初步分析。
当然,0 和短划线之间的字距对能必须指定,但只有在以下情况下才会生效:
0\char'173
是输入(可能通过直接输入 en-dash,其机制类似于inputenc
LaTeX)。