
Alimentación
\documentclass{article}
\showoutput
\begin{document}\noindent
A B\\
A\ B\\
A\hskip\fontdimen2\font plus\fontdimen3\font minus\fontdimen4\font B
\end{document}
produce latex
tres veces el mismo “AB” en el archivo DVI sin ninguna diferencia visible. Sin embargo, los valores de extensión y reducción en la salida de la consola difieren:
....\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
La diferencia es leve ( plus 1.66498 minus 1.11221
en la primera línea versus plus 1.66666 minus 1.11111
en la segunda y tercera línea), pero aún existe. ¿Por qué pasó esto? SiguienteEl libro de texto, Pensé que así \
es como escribimos un espacio habitual después de un comando (digamos,
\foo\
vs. \foo
), sin ninguna diferencia en la semántica, pero aparentemente, me equivoqué en esto.
Respuesta1
El espacio agregado por es el espacio especificado por las dimensiones de fuente ajustadas por
\spacefactor
, específicamente el plus
componente se multiplica por \spacefactor/1000
como \spacefactor
suele ser 1000 pero es 999 después de una letra mayúscula, por lo que los valores difieren en un factor de 999/1000, ya que \
no se ve afectado por \spacefactor
y siempre agrega un espacio de palabra estándar incluso después de la puntuación (o letras mayúsculas). El minus
componente es similar pero multiplicado por1000/\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}
Esto muestra las cuatro configuraciones de pegamento como
....\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
mostrando que el cálculo de la última línea coincide con el pegamento.