\prev Depth y \noalign

\prev Depth y \noalign

EnEl libro de textodice

El valor de \prevdepthen el momento de \halignse utiliza al principio de la lista vertical interna, y el valor final de \prevdepthse 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 \prevdepthse establece en -1000pt, excepto en un código \haligny \noaligncontenido 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 \prevdepthy \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 \prevdepthtiene el valor mágico -1000pt al comienzo de la lista vertical principal y al comienzo de a \vboxpero no en \noalign.

Respuesta2

Sus dos citas de dos libros resuelven un problema ligeramente diferente. El primero (de TeXbook) dice que el material vertical \halignse comporta como material vertical "normal" dentro (puede ser mayor) de la lista vertical. No se comporta como \unvboxun 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 \noalignmaterialestán conectados cada uno al siguiente mediante un salto entre líneas derecho. Que el \noalignmaterial no es una lista vertical individual desde este punto de vista.

información relacionada