伸縮に関して、スペースとコントロールスペースは異なりますか?

伸縮に関して、スペースとコントロールスペースは異なりますか?

給餌

\documentclass{article}
\showoutput
\begin{document}\noindent
A B\\
A\ B\\
A\hskip\fontdimen2\font plus\fontdimen3\font minus\fontdimen4\font B
\end{document}

は、DVI ファイルで 3 回同じ「AB」をlatex生成しますが、目に見える違いはありません。ただし、コンソール出力の拡大と縮小の値は異なります。

....\OT1/cmr/m/n/10 A
....\glue 3.33333 plus 1.66498 minus 1.11221
....\OT1/cmr/m/n/10 B
....\penalty 10000
....\glue 0.0 plus 1.0fil
....\penalty -10000
....\glue(\rightskip) 0.0
...\penalty 150
...\glue(\baselineskip) 5.16669
...\hbox(6.83331+0.0)x345.0, glue set 327.0833fil
....\OT1/cmr/m/n/10 A
....\glue 3.33333 plus 1.66666 minus 1.11111
....\OT1/cmr/m/n/10 B
....\penalty 10000
....\glue 0.0 plus 1.0fil
....\penalty -10000
....\glue(\rightskip) 0.0
...\penalty 150
...\glue(\baselineskip) 5.16669
...\hbox(6.83331+0.0)x345.0, glue set 327.0833fil
....\OT1/cmr/m/n/10 A
....\glue 3.33333 plus 1.66666 minus 1.11111
....\OT1/cmr/m/n/10 B

違いはわずかですが(plus 1.66498 minus 1.112211行目とplus 1.66666 minus 1.111112行目、3行目)、それでも存在します。なぜこのようなことが起こるのでしょうか?TeXbook について、私は、コマンドの後に\通常のスペースをタイプセットする方法(つまり、と との比較)は意味的に何の違いもないと思っていましたが、どうやら私は間違っていたようです。\foo\\foo

答え1

によって追加されるスペースは、フォント寸法によって指定されるスペースを によって調整したものです\spacefactor。具体的には、plus\spacefactor/1000通常\spacefactor1000 ですが大文字の後では 999 であるため、 の要素は によって乗算されます。したがって、値は の\影響を受けず\spacefactor、句読点 (または大文字) の後でも常に標準的な単語スペースが追加されるため、 999/1000 の係数で異なります。minus要素は に似ていますが、 によって乗算されます。1000/\spacefactor

\documentclass{article}
\showoutput
\begin{document}\noindent
A B\\
A\ B\\
A\hskip\fontdimen2\font plus\fontdimen3\font minus\fontdimen4\font B\\
A\dimen0=\fontdimen3\font
\multiply\dimen0 \spacefactor % = 999 not 1000
\divide\dimen0 1000
\dimen2=\fontdimen4\font
\multiply\dimen2 1000
\divide\dimen2 \spacefactor
A\hskip\fontdimen2\font plus\dimen0 minus\dimen2 B

a\showthe\spacefactor  A\showthe\spacefactor 
\end{document}

これは4つの接着設定を示しています

....\glue 3.33333 plus 1.66498 minus 1.11221
....\glue 3.33333 plus 1.66666 minus 1.11111
....\glue 3.33333 plus 1.66666 minus 1.11111
....\glue 3.33333 plus 1.66498 minus 1.11221

最後の行の計算が接着剤と一致していることを示します。

関連情報