Unterscheiden sich der Raum und der Kontrollraum hinsichtlich Dehnung und Schrumpfung?

Unterscheiden sich der Raum und der Kontrollraum hinsichtlich Dehnung und Schrumpfung?

Fütterung

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

ergibt latexdreimal das gleiche „AB“ in der DVI-Datei ohne sichtbaren Unterschied. Die Stretch- und Shrink-Werte in der Konsolenausgabe unterscheiden sich jedoch:

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

Der Unterschied ist gering ( plus 1.66498 minus 1.11221in der ersten Zeile vs. plus 1.66666 minus 1.11111in der zweiten und dritten Zeile), aber er ist immer noch vorhanden. Warum passiert das?Das TeXbook, ich dachte, \so setzen wir ein normales Leerzeichen nach einem Befehl (sagen wir \foo\im Vergleich zu \foo), ohne dass es einen Unterschied in der Semantik gibt, aber da habe ich mich anscheinend geirrt.

Antwort1

Der durch hinzugefügte Abstand ist der Abstand, der durch die Schriftgröße angegeben wird, angepasst durch \spacefactor, insbesondere wird die plusKomponente mit multipliziert, \spacefactor/1000da \spacefactorsie normalerweise 1000 ist, aber nach einem Großbuchstaben 999 beträgt, sodass sich die Werte um einen Faktor von 999/1000 unterscheiden, da \sie nicht davon beeinflusst wird \spacefactorund immer einen Standardwortabstand hinzufügt, auch nach Satzzeichen (oder Großbuchstaben). Die minusKomponente ist ähnlich, wird aber mit multipliziert1000/\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}

Hier werden die vier Klebeeinstellungen angezeigt als

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

Die Anzeige der letzten Berechnungszeile entspricht dem Kleber.

verwandte Informationen