在另一个问题,Harald 展示了如何制作垂直引线。掌握了这些知识后,我开始回答另一个问题,但由于我尝试将此类引线与其他材料一起放入一页,因此引线填充总是占据整个页面。
是否有一种通用的方法可以将某些内容排版到页面上,然后由 TeX 处理,就好像根本没有排版一样(即,它不会占用其他材料的任何空间)?
例子:
\newbox\needlebox\setbox\needlebox=\vbox{\hsize=2em$\cdot$}
\def\needlefill{\cleaders\copy\needlebox\vskip0pt plus 1fill}
\llap{\hbox to 2em{\vbox to\vsize{\hsize=2em\needlefill}}} Blah
\bye
(“Blah” 转到第二页)
答案1
\llap
是正确的方向,但你仍然需要一个垂直版本:
\newbox\needlebox\setbox\needlebox=\vbox{\hsize=2em$\cdot$}
\def\needlefill{\cleaders\copy\needlebox\vskip0pt plus 1fill}
\llap{\vbox to 0pt{\hbox to 2em{\vbox to\vsize{\hsize=2em\needlefill}}\vss}} Blah
\bye
也可以看看这次讨论在 ctt 上我开始研究\blap
宏\tlap
。
答案2
(未经测试)
垂直模式中的盒子被设置并保持垂直模式。您需要退出垂直模式。
\llap
在之前将\leavevmode
您置于水平模式。
您可能还想赋予 \vbox 一行文本的高度,以避免其排列在底部。 \vbox to Npt{...}
其中 N = 第一行的高度;的高度\mathstrut
可能是一个很好的值。