在页面的开头,\pagegoal=\maxdimen
因此\pagegoal-\pagetotal=0pt
或有时\maxdimen
。所以我测试了\maxdimen
,但得到了奇怪的结果(参见MWE)。
是否有一个好的方法可以让页面的剩余空间甚至在页面的开头就得到?
\documentclass{article}
\newlength{\goodguess}
\begin{document}
\goodguess=\textheight
\ifdim\pagegoal=\maxdimen
\else
\goodguess=\dimexpr \pagegoal-\pagetotal\relax
\fi
\the\goodguess
\newpage
\goodguess=\textheight
\ifdim\pagegoal=\maxdimen yes
\else
\goodguess=\dimexpr \pagegoal-\pagetotal\relax
\fi
\the\goodguess
\end{document}
答案1
\goodguess=\textheight
\ifdim\pagegoal=\maxdimen
\else
\goodguess=\pagegoal-\pagetotal
\fi
\the\goodguess
这里\goodguess
是跳过,但是\textheight
是一个维度,因此扩展会继续寻找,plus
从而\the\goodguess
进行扩展、产生0.0pt
,然后才发生分配。
和
\goodguess=\textheight
\ifdim\pagegoal=\maxdimen
\else
\goodguess=\pagegoal-\pagetotal
\fi
\the\goodguess
终止\par
分配,因此 550.0pt 被排版
注意,如果测试结果为假,
\goodguess=\pagegoal-\pagetotal
将设置\goodguess=\pagegoal
然后排版-
然后开始分配\pagetotal
我想你的意思是
\goodguess=\dimexpr\pagegoal-\pagetotal\relax