如何确定段落的垂直位置

如何确定段落的垂直位置

我想确定 TeX 的段落生成器(即tex.linebreak(...)LuaTex 中的段落生成器)启动时大概位于页面下方多远。例如,在即将启动\begin{document}A\par B\end{document}时,我假设它位于页面下方。tex.linebreakbaselineskip

我要求的原因是近似答案是因为我认为不可能准确确定答案。障碍包括(我认为)注定要成为页面的垂直列表可能是可拉伸的,因此在设置页面之前,垂直位置是未知的。当然,页面设置发生断线。

linebreak但是,我认为一个合理的近似方法是在调用时计算垂直列表中所有内容的自然 vsize 。一个非常简单的方法是简单地计算到目前为止已经创建了多少行(参见令人惊叹的答案https://tex.stackexchange.com/a/403353/1078)。但这不会处理诸如节标题和显示数学之类的事情。我认为更好的近似方法是跟踪添加到主垂直列表中的所有内容的垂直大小。

我尝试过自己编写一个linebreak_filter程序来调用tex.linebreak并拦截它的返回值。不幸的是,重新调整后的节点列表非常复杂。此外,我似乎缺少显示数学之类的东西。所以我想知道我是否走在正确的轨道上(或重新发明轮子)。

相关内容