我经常发现自己在压缩文档以确保最终文档不超过某个设定的长度。我经常通过删减空白、将页面高度增加一倍等方式做到这一点,当然,我还会尽量写得简洁。
出于好奇,是否有某种方法可以强制 LaTeX 将文档编译为固定数量的页数?
我明白这很可能会使文档看起来非常糟糕,但我希望它能让人们知道在文档满足长度要求之前需要杀死多少个宠儿。
答案1
本文档被强制限制为 5 页(请勿在家尝试:-)
\documentclass{article}
\newcount\maxpage
\maxpage=5
\AtBeginDocument{\setbox0\vbox\bgroup}
\AtEndDocument{\egroup
\dimen0=\dimexpr\ht0 / \maxpage\relax
\count0=1
\loop
\setbox2\vsplit0 to \dimen0
\vbox to \textheight{\unvbox2\vss}%
\pagebreak
\ifnum\count0<\maxpage
\repeat
\vbox to \textheight{\unvbox0\vss}%
}
\def\a{One two three four five six seven eight nine ten eleven twelve thriteen fourteen. }
\def\b{Red green blue yellow black white brown. }
\def\c{\stepcounter{enumi}\Roman{enumi}: \a\a\a\a\b\b\a\a\b\a}
\def\d{\c\b\b\a\a\c\b\c\b\b\b\c\c\c\b}
\begin{document}
\section{Aaaa}
\d\par\d\d
\section{BBB}
\c\c\a\par\c
\section{CCC}
\a\a\a\a\a\a\a\a\a\par
\a\a\c\a\a\a\a\a\a\par
\a\a\a\a\c\a\a\a\a\par
\end{document}