除 Computer Modern 之外的大多數 TeX 字體是否都針對 \frenchspacing 進行了優化?

除 Computer Modern 之外的大多數 TeX 字體是否都針對 \frenchspacing 進行了優化?

我認為當 Don Knuth 創建他的電腦現代字體時,他優化了它們,至少在他看來是針對\nonfrenchspacing.但是,由於幾乎所有不是用 TeX 創建的書籍在標點符號後都沒有多餘的空格,因此大多數其他字體在 TeX 中使用時是否都針對 進行了優化,並在事後進行了\frenchspacing任何設置?\nonfrenchspacing

答案1

為 TeX 設計的字體通常編碼七個值,TeX 可透過以下命令使用這些值\fontdimenfont_slantfont_normal_spacefont_normal_stretchfont_normal_shrinkfont_ex_heightfont_quadfont_extra_space。這些是有序的;你可以用\fontdimen1\fontdimen2、 等等來得到它們。

標點符號後的額外空格由 控制\fontdimen7,在 Metafont 來源中定義為font_extra_spacecmr例如,在 中\fontdimen7設定為2u#,這是元字體的深層魔力,我們不需要在這裡深入探討。 (實際上並不是很深入;但這裡也不是很相關。)

然而,這些\fontdimen值可以由 TeX 來操作。例如,要取得\frenchspacingComputer Modern 字體標點符號後的行為,您只需\fontdimen7對這些字體說重置即可。因此,例如:

\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 覆蓋。

相關內容