为了解决这个问题:
我需要了解当前页面的剩余空间。
我尝试放置一个大小合适的规则,但是该规则被推到了下一页。知道原因吗?我如何才能准确知道剩余的可用空间?
如果这不可能,至少有没有办法有一个(不太糟糕的)下限,这样我就能保证规则不会被推到下一页?或者也许我可以添加一些惩罚来帮助规则留在这个页面上?
\documentclass{article}
\usepackage{lipsum}
\usepackage{showframe}
\begin{document}
\lipsum[1-3]
\edef\measurepage{\the\dimexpr\pagegoal-\pagetotal\relax} %
\rule{1mm}{\measurepage}
\end{document}
答案1
\rule
是 latex LR 框,因此开始一个新段落,因此从您测量的点下方开始\baselineskip
(或按照规则为高)。您可以使用 来抑制它 ,您可能还想考虑最终基线下方的深度,因此\lineskip
\nointerlineskip
\documentclass{article}
\usepackage{lipsum}
\usepackage{showframe}
\begin{document}
\lipsum[1-3]
\showoutput
\showboxdepth4
\edef\measurepage{\the\dimexpr\pagegoal-\pagetotal\relax}
\nopagebreak\nointerlineskip
\rule[-\dp\strutbox]{1mm}{\measurepage}
\end{document}