
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 latex
dreimal 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.11221
in der ersten Zeile vs. plus 1.66666 minus 1.11111
in 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 plus
Komponente mit multipliziert, \spacefactor/1000
da \spacefactor
sie 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 \spacefactor
und immer einen Standardwortabstand hinzufügt, auch nach Satzzeichen (oder Großbuchstaben). Die minus
Komponente 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.