Я предполагаю, что когда Дон Кнут создавал свои шрифты Computer Modern, он оптимизировал их, по крайней мере, по его мнению, для \nonfrenchspacing
. Но поскольку почти все книги, созданные не с помощью TeX, не имеют дополнительных пробелов после знаков препинания, оптимизированы ли большинство других шрифтов, настроенных для использования в TeX, для \frenchspacing
, с какими-либо настройками, которые \nonfrenchspacing
можно сделать в качестве дополнительной мысли?
решение1
Шрифты, разработанные для TeX, обычно кодируют семь значений, которые доступны TeX через \fontdimen
команду: font_slant
, font_normal_space
, font_normal_stretch
, font_normal_shrink
, font_ex_height
, font_quad
и font_extra_space
. Они перечислены по порядку; вы получаете их с помощью \fontdimen1
, \fontdimen2
, и так далее.
Дополнительный пробел после знаков препинания регулируется \fontdimen7
, определенным в исходном коде Metafont как font_extra_space
. cmr
Например, \fontdimen7
в установлено значение 2u#
, что является глубокой магией Metafont, в которую нам не нужно вдаваться здесь. (На самом деле, не очень глубокой; но и не особо актуальной здесь тоже.)
Однако эти \fontdimen
значения можно изменять с помощью TeX. Например, чтобы получить \frenchspacing
поведение после знаков препинания в шрифтах Computer Modern, вы просто говорите reset \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.