如果每个人都在屏幕上阅读 PDF 文档,而没有人真正将其打印出来,我们不需要每 11 英寸(或 297 毫米)断行一次,以使文本适合实体纸张。这通常会产生难看的孤行。
因此,我使用非常长的纸张尺寸来尽量减少分页符的出现。但我也想到:如果没有人打印文档,就没有必要将每页都做成相同的大小。一个合理的替代方案是使用可变的页面长度,以便一页正好适合一个部分的长度。这样,就不会再有超长的空白,读者可以使用 PDF 阅读器应用程序中的“下一页”命令轻松跳转到下一节。
我可以使用Preview
带有tightpage
选项的包轻松完成此操作,但它不适用于marginpar
。如果有 marginpar,TeX 会吐出“Float(s) lost”错误。
包Standalone
也这样做,但它在内部加载Preview
带有选项的包tightpage
来执行此操作,因此没有什么不同。Marginpar 仍然不起作用。
我也看了这个答案(不同的页面长度)。这可以完美地与 marginpar 配合使用,但代码(大概)仅适用于 PDFTeX。它不适用于 LuaLaTeX。也许我可以稍微修改一下代码,让它与 Lua 配合使用,但我不知道怎么做。
带有包的最低限度不工作的示例Preview
:
\documentclass{article}
\usepackage[active,tightpage]{preview}
\renewcommand{\PreviewBorder}{1cm}
\newcommand{\Newpage}{\end{preview}\begin{preview}}
\begin{document}
\begin{preview}
Some text to test.\marginpar{Some text in marginpar}
\end{preview}
\end{document}
答案1
一些 pdfTeX 命令已提升为 LuaTeX 原语,\pdfpageheight
其中包括(参见luatex85 的文档)来实现鲍里斯的回答在 LuaTeX 中,你只需将\pdfpageheight
其改为\pageheight
。为了完整起见,我复制了 Boris 的代码,并进行了上述修改:
\documentclass{article}
\usepackage{everyshi,lipsum}
\pagestyle{empty}
\textheight500cm
\EveryShipout{%
\pageheight=\pagetotal
\advance\pageheight by 2in
\advance\pageheight by 2\topmargin
\advance\pageheight by \textheight
\advance\pageheight by -\pagegoal}
\begin{document}
\lipsum[3-5]
\pagebreak
This line has a footnote\footnote{\lipsum[6-8]}.
\lipsum[1]
And this line too\footnote{\lipsum[12]}.
\pagebreak
\end{document}