
InDas TeXBookes sagt
Der Wert von
\prevdepth
zum Zeitpunkt von\halign
wird am Anfang der internen vertikalen Liste verwendet, und der endgültige Wert von\prevdepth
wird 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
\prevdepth
steht-1000pt
, außer in einem darin enthaltenen\halign
und\noalign
Code, 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 \prevdepth
und 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 \prevdepth
der magische Wert von -1000pt am Anfang der vertikalen Hauptliste und am Anfang von a, \vbox
aber 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 \halign
wie „normales“ vertikales Material innerhalb einer (möglicherweise größeren) vertikalen Liste verhält. Es verhält sich nicht wie \unvbox
Material, 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 \noalign
Materialsind durch rechten Interlineskip miteinander verbunden. Das \noalign
Material ist aus dieser Sicht keine einzelne vertikale Liste.