\prevdepth 和 \noalign

\prevdepth 和 \noalign

電子書它說

內部垂直列表的開頭使用 \prevdepth時的值,對齊完成後將最終的值攜帶到封閉的垂直列表中,以便在開始和結束時正確計算行間粘連的對齊方式。\halign\prevdepth

在第 15.2 節中TeX 按主題, 它說

在垂直清單的開頭\prevdepth設定為,但其中包含的and代碼-1000pt除外,其中它是從周圍清單中繼承的。\halign\noalign

我能夠理解這句話電子書,但無法理解其中的句子TeX 按主題。有人可以舉一些關於\prevdepth和 的例子\noalign嗎?

答案1

這個純 tex 文件

\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在主垂直列表的開頭和 a 的開頭有神奇的 -1000pt 值,\vbox但不在\noalign.

答案2

您對兩本書的兩次引用解決了略有不同的問題。第一個(來自 TeXbook)表示垂直材料\halign在(可能更大)垂直清單中的行為與「正常」垂直材料相同。它不表現為\unvbox必須單獨解決前後跳線的材料。第二個(來自 TeX 按主題)表示來自\halign 包括來自\noalign材料的物體透過右聯行連接每個到下一個。\noalign從這個角度來看,該材料不是單獨的垂直列表。

相關內容