拆箱 \hrule 吗?

拆箱 \hrule 吗?

如何\hrule像本代码示例中那样取消装箱:

\setbox0=\vbox{1\hrule2\hfil\break3}
\unvbox0
\setbox0=\lastbox % line 3
\unskip           % \baselineskip
\unpenalty        % \break
\setbox0=\lastbox % line 2
\unskip           % \parskip
% Unbox \hrule?
\end

答案1

TeX 有一些用于“回顾”和移除节点并将其存储到寄存器中的原语:、 和\lastskip\lastkern其他类型的节点无法检查或移除。\lastpenalty\lastbox

请注意,\lastskip只保留有关最后一次跳过的大小的信息,无论它来自“真实”跳过还是\leaders,因此在这种情况下有关领导者的信息会丢失。

如果最后一个节点属于请求的类型,则它们全部不执行任何操作,即存储一个空值。像往常一样,框是特殊的:\lastbox本身将删除最后一个盒子(如果列表中的最后一个节点是盒子),然后重新插入它(参见\lastbox 的用法)。

但是,规则节点不是框,因此\lastbox不会执行任何明智的操作。更明确地说:您不能删除规则节点,也不能检查它。

相关内容