除 Computer Modern 之外的大多数 TeX 字体是否针对 \frenchspacing 进行了优化?

除 Computer Modern 之外的大多数 TeX 字体是否针对 \frenchspacing 进行了优化?

我认为当 Don Knuth 创建他的 Computer Modern 字体时,他针对 对其进行了优化,至少在他看来是这样\nonfrenchspacing。但由于几乎所有未使用 TeX 创建的书籍在标点符号后都没有多余的空格,那么大多数其他字体是否都针对 TeX 进行了优化,是否事后才进行\frenchspacing任何设置?\nonfrenchspacing

答案1

为 TeX 设计的字体通常编码七个值,这些值可通过以下命令供 TeX 使用\fontdimenfont_slantfont_normal_spacefont_normal_stretchfont_normal_shrinkfont_ex_heightfont_quad和。这些值是按顺序排列的;您可以使用、等方式font_extra_space获取它们。\fontdimen1\fontdimen2

标点符号后的额外空格由 控制\fontdimen7,在 Metafont 源中定义为font_extra_spacecmr例如,在 中\fontdimen7设置为2u#,这是 Metafont 的深奥魔法,我们无需在此深入探讨。(实际上并不是很深奥;但在这里也不太相关。)

但是,这些\fontdimen值可以由 TeX 操纵。例如,要获取\frenchspacingComputer Modern 字体标点符号后的行为,只需\fontdimen7对这些字体执行 reset 即可。因此,例如:

\documentclass{article}
\begin{document}
\font\cmr=cmr10
\cmr Hello.  I'm Joe.

\fontdimen7\cmr=0pt
Hello. I'm Joe.
\end{document}

根据字体格式,TeX 将从不同的地方获取参数的值\fontdimen。对于 Computer Modern 和其他 Metafont 字体,它们在 Metafont 源中设置,并由 TeX 从文件中获取tfm

这是一个简短的回答:不,字体没有针对\frenchspacing或其他方面进行优化;但它们确实设置在两种情况下都会使用的值,除非这些值被 TeX 覆盖。

相关内容