Различаются ли пространство и контрольное пространство с точки зрения растяжения и сжатия?

Различаются ли пространство и контрольное пространство с точки зрения растяжения и сжатия?

Кормление

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

в latexрезультате трижды повторяется «AB» в файле DVI без видимой разницы. Однако значения растяжения и сжатия в выводе консоли различаются:

....\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.11221в первой строке против plus 1.66666 minus 1.11111второй и третьей), но она все равно есть. Почему так происходит? ДалееTeXbook, я думал, что \именно так мы набираем обычный пробел после команды (например, \foo\вместо \foo), без какой-либо разницы в семантике, но, видимо, я ошибался.

решение1

Пробел, добавленный на, — это пробел, указанный размерами шрифта, скорректированными на \spacefactor, в частности, plusкомпонент умножается на , \spacefactor/1000как \spacefactorправило, 1000, но после заглавной буквы — 999, поэтому значения отличаются на коэффициент 999/1000, как \не затрагивается \spacefactorи всегда добавляет стандартный пробел между словами даже после знаков препинания (или заглавных букв). Компонент 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}

Здесь показаны четыре настройки клея:

....\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

показывая последнюю строку расчета, соответствующую клею.

Связанный контент