在TeXBook它说
\prevdepth
在 时的值\halign
用于内部垂直列表的开头,并且\prevdepth
在对齐完成时将 的最终值带入封闭的垂直列表,以便在对齐的开始和结束时正确计算行间粘连。
在第 15.2 条中TeX 按主题分类, 它说
垂直列表的开头
\prevdepth
设置为-1000pt
,但其中包含的\halign
and\noalign
代码除外,在该代码中,它是从周围列表中延续下来的。
我能理解这句话TeXBook,但无法理解TeX 按主题分类。有人能给出一些关于\prevdepth
和的例子\noalign
吗?
答案1
这个纯文本文件
\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
生产
1: -1000.0pt
2: 1.94444pt
3: -1000.0pt
4: 1.94444pt
5: 1.94444pt
6: 1.94444pt
7: 1.94444pt
8: 0.0pt
显示\prevdepth
在主垂直列表的开头和的开头具有神奇的 -1000pt 值,\vbox
但不在中\noalign
。
答案2
您对两本书的引用解决了略有不同的问题。第一本(来自 TeXbook)说,垂直材料来自的\halign
行为与垂直列表内的“正常”垂直材料相同(可能更大)。它的行为并不像\unvbox
材料那样,前后的行跳跃必须单独解决。第二本(来自 TeX by Topics)说,来自的行\halign
包括来自的对象\noalign
材质的物体通过右侧的行间跳转将每行连接到下一行。\noalign
从这个角度来看,该材料不是单独的垂直列表。