Don Knuth が Computer Modern フォントを作成したとき、少なくとも彼の意見では、 用に最適化したと思います\nonfrenchspacing
。しかし、TeX で作成されていないほとんどの本には句読点の後に余分なスペースがないため、他のほとんどのフォントは TeX で使用するために に最適化されており\frenchspacing
、後から 用の設定が\nonfrenchspacing
行われるのでしょうか?
答え1
TeX 用に設計されたフォントは、通常、コマンド 、、、、、、およびを\fontdimen
介し font_slant
てTeXで使用できる 7 つの値をエンコードします。これらは順番に並んで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 フォントで句読点後の動作を取得するには、\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 によって値が上書きされない限り、両方の場合に使用される値が設定されます。