
EnEl libro de textodice
El valor de
\prevdepth
en el momento de\halign
se utiliza al principio de la lista vertical interna, y el valor final de\prevdepth
se lleva a la lista vertical adjunta cuando se completa la alineación, de modo que el pegamento entre líneas se calcule correctamente al principio y al final. de la alineación.
En el apartado 15.2 deTeX por tema, dice
Al principio de una lista vertical
\prevdepth
se establece en-1000pt
, excepto en un código\halign
y\noalign
contenido en ella, donde se transfiere desde la lista circundante.
Puedo entender la oración enEl libro de texto, pero no podía entender la frase enTeX por tema. ¿Alguien podría dar algunos ejemplos sobre \prevdepth
y \noalign
?
Respuesta1
este archivo tex simple
\def\foo#1{\edef\tmp{\immediate\write20{#1: \the\prevdepth}}\tmp}
\foo{1}
g
\foo{2}
\vbox{
\foo{3}
Q
\foo{4}
}
\foo{5}
a,
\foo{6}
\halign{#\hfil\cr
\noalign{\foo{7}}
z\cr}
\foo{8}
\bye
produce
1: -1000.0pt
2: 1.94444pt
3: -1000.0pt
4: 1.94444pt
5: 1.94444pt
6: 1.94444pt
7: 1.94444pt
8: 0.0pt
mostrando que \prevdepth
tiene el valor mágico -1000pt al comienzo de la lista vertical principal y al comienzo de a \vbox
pero no en \noalign
.
Respuesta2
Sus dos citas de dos libros resuelven un problema ligeramente diferente. El primero (de TeXbook) dice que el material vertical \halign
se comporta como material vertical "normal" dentro (puede ser mayor) de la lista vertical. No se comporta como \unvbox
un material donde el salto de línea antes y después debe resolverse individualmente. El segundo (de TeX por temas) dice que las líneas de\halign
incluyendo objetos de \noalign
materialestán conectados cada uno al siguiente mediante un salto entre líneas derecho. Que el \noalign
material no es una lista vertical individual desde este punto de vista.