有没有办法计算当前页面的剩余空间并发出可选命令?
答案1
查看needspace
包。它可能会做你需要的事情,或者至少为你想做的事情提供灵感 :-) 也就是说,\pagegoal
和\pagetotal
寄存器应该会有所帮助。
答案2
在 ConTeXt 中,\testpage[n]
检查是否有足够的空间容纳n
线条。
答案3
这里有一个小例子,演示了所接受的答案\pagetotal
等的行为方式——请注意,它们似乎只有在\par
(单击可查看高分辨率图像)之后才会发生变化:
以下是所用的代码:
\documentclass{article}
% http://www.tug.org/utilities/plain/cseq.html#pagedepth-rp
\def\tpageitemsB{%
\the\pagetotal;%
\the\pagegoal;%
\the\pagedepth;%
\the\pagestretch;%
\the\pageshrink;%
\the\pagefilstretch;%
\the\pagefillstretch;%
\the\pagefilllstretch%
}
\begin{document}
\tpageitemsB: ligula aliquet magna, \\
\tpageitemsB: Morbi ac orci et nisl \\
\tpageitemsB: Suspendisse ut massa. \\
\tpageitemsB: a nulla. Cum sociis na \\
\tpageitemsB: dis parturient montes, \\
\tpageitemsB: Aliquam tincidunt urna \\
\tpageitemsB: vestibulum turpis. Pel \\
\tpageitemsB: mauris. \\
\noindent
\tpageitemsB: Nulla malesuada porttitor \par\noindent
\tpageitemsB: congue non, volutpat \par\noindent
\tpageitemsB: libero. Vi- vamus viverra \par\noindent
\tpageitemsB: nonummy pel- lentesque \par\noindent
\tpageitemsB: semper elit. Proin fer \par\noindent
\tpageitemsB: diam turpis, molestie vita \par\noindent
\tpageitemsB: nec, leo. Maecenas lacinia \\
\tpageitemsB: eleifend at, accumsan nec, \\
\tpageitemsB: Morbi blandit ligula feugi \\
\tpageitemsB: consequat lorem. Sed lacin \\
\tpageitemsB: Pellentesque tincidunt pur \\
\tpageitemsB: non enim. Praesent euis \\
\tpageitemsB: mobibendum quam in telus. \\
\tpageitemsB: lectus. Donec et mi. Nam v \\
\tpageitemsB: Vestibu- lum pellentesque \\
\tpageitemsB:\\
\tpageitemsB: Quisque ullamcorper placer \\
\tpageitemsB: Morbi vel justo vitae lacu \\
\tpageitemsB: Lorem ipsum do- lor sit am \\
\tpageitemsB: adipiscing elit. In hac ha \\
\tpageitemsB: Integer tempus convallis a \\
\tpageitemsB: Nunc elementum fermentum w \\
\tpageitemsB: imperdiet, enim sed gravid \\
\tpageitemsB: odio placerat quam, ac pul \\
\tpageitemsB: enim. Nunc vitae tortor. P \\
\tpageitemsB: amet nisl. Vi- vamus quis \\
\tpageitemsB: vehicula. \\
\noindent
\tpageitemsB: Fusce mauris. Vestibulum l \\
\tpageitemsB: Sed bibendum, nulla a fauc \\
\tpageitemsB: ultricies tellus, ac venen \\
\tpageitemsB: Vestibulum diam. Aliquam p \\
\tpageitemsB: sagittis posuere, turpis l \\
\tpageitemsB: hendrerit risus eros eget \\
\tpageitemsB: erat in sapien mattis port \\
\tpageitemsB: porttitor. Nulla facilisi. \\
\tpageitemsB: com- modo facilisis. Morbi \\
\tpageitemsB: dignissim inter- dum, just \\
\tpageitemsB: et vehicula libero dui cur \\
\tpageitemsB: ligula sed lacus. Duis cur \\
\tpageitemsB: ac magna. Cras nulla. Null \\
\tpageitemsB: leo. Quisque egestas wisi \\
\end{document}