\prevdepth und \noalign

\prevdepth und \noalign

InDas TeXBookes sagt

Der Wert von \prevdepthzum Zeitpunkt von \halignwird am Anfang der internen vertikalen Liste verwendet, und der endgültige Wert von \prevdepthwird in die umschließende vertikale Liste übertragen, wenn die Ausrichtung abgeschlossen ist, sodass der Zeilenzwischenkleber am Anfang und Ende der Ausrichtung richtig berechnet wird.

In Abschnitt 15.2 derTeX nach Thema, es sagt

Am Anfang einer vertikalen Liste \prevdepthsteht -1000pt, außer in einem darin enthaltenen \halignund \noalignCode, wo es aus der umgebenden Liste übernommen wird.

Ich kann den Satz verstehen inDas TeXBook, konnte aber den Satz nicht verstehen inTeX nach Thema. Könnte jemand einige Beispiele zu \prevdepthund geben \noalign?

Antwort1

diese einfache Tex-Datei

\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

produziert

1: -1000.0pt
2: 1.94444pt
3: -1000.0pt
4: 1.94444pt
5: 1.94444pt
6: 1.94444pt
7: 1.94444pt
8: 0.0pt

zeigt, dass \prevdepthder magische Wert von -1000pt am Anfang der vertikalen Hauptliste und am Anfang von a, \vboxaber nicht in a steht \noalign.

Antwort2

Ihre beiden Zitate aus zwei Büchern lösen leicht unterschiedliche Probleme. Das erste (aus TeXbook) besagt, dass sich vertikales Material aus \halignwie „normales“ vertikales Material innerhalb einer (möglicherweise größeren) vertikalen Liste verhält. Es verhält sich nicht wie \unvboxMaterial, bei dem der Zeilensprung davor und danach einzeln gelöst werden muss. Das zweite (aus TeX nach Themen) besagt, dass Zeilen aus\halign einschließlich Objekte aus \noalignMaterialsind durch rechten Interlineskip miteinander verbunden. Das \noalignMaterial ist aus dieser Sicht keine einzelne vertikale Liste.

verwandte Informationen