我有一系列页面,每页有几个段落。我不想让页面的其余部分空白,而是写上一大堆“琐事”。我想在页面上写尽可能多的内容,只要有空间就行。
想象一下有一本书,一年中有每一天一页。主要内容是描述这一天的几段话,但这一页可以写满“历史上这一天发生的有趣的事情”。
我可以导入比我需要的更多内容,因此无需打包或调整大小或尝试将它们全部导入。但绝对不会有额外的页面包含其余的“琐事”。我绝对不想花时间手动排版每一页,选择精确数量的琐事条目,在每次编辑后进行调整等。
我唯一的另一个小要求是,必须有完整的事实:我不能用半个事实来结束页面。但我假设环境samepage
会这样做。
但我不知道如何丢弃数据。
答案1
TUGboat 上有一篇文章讨论了这个问题并提供了一些代码https://tug.org/TUGboat/tb32-3/tb102glister.pdf(部分2. 盛年时被砍掉)。文章中的内容远远多于这里可以展示的内容,因此请仔细阅读。
答案2
这个想法是创建一个包含事实的单独文件,然后按顺序读取它们,直到页面写满。
这将创建一个事实文件。我在这里放置了固定填充,以便您可以根据事实进行更改,然后测量所需的空间。
\documentclass[multi={minipage}]{standalone}
\textwidth=345.0pt% obtained using \the\textwidth
\begin{document}
\begin{minipage}{\textwidth}
\null\bigskip
My dog has no nose.\\
\textit{How does he smell?}\\
Awful!
\end{minipage}
\begin{minipage}{\textwidth}
\null\bigskip
\textbf{abend} (from the German \textit{Guten Abend})
A system abort induced deliberately (usually on Fridays) to allow
third shift staffers to leave early.
\end{minipage}
\begin{minipage}{\textwidth}
\null\bigskip
\textbf{ACRONYM} Alphabetic Collocation Reducing Or Numbing Your Memory.
Often confused with its antonym \textit{mnemonic}.
\end{minipage}
\begin{minipage}{\textwidth}
\null\bigskip
\textbf{CAD} Computer Aided Delay.
\end{minipage}
\begin{minipage}{\textwidth}
\null\bigskip
\textbf{ISAM} Intrinsically Slow Access method.
\end{minipage}
\end{document}
这使用 添加了事实\fillpage
。有趣的是,如果我尝试阅读最后一页,我就会崩溃。
\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum}% MWE only
\newcounter{factoid}
\newif\ifmorefactoids
\newcommand{\maxfactoid}{4}% should be 5
\newcommand{\fillpage}{\bgroup% use local registers
\morefactoidstrue
\loop
\stepcounter{factoid}%
\ifnum\value{factoid}>\maxfactoid\relax
\setcounter{factoid}{1}%
\fi
\sbox0{\includegraphics[page=\thefactoid]{test4}}% file contining factoids
\par
\setlength{\dimen0}{\dimexpr \ht0+\dp0}%
\setlength{\dimen1}{\dimexpr \pagegoal-\pagetotal}%
\ifdim \dimen1>\dimen0
\box0
\else
\morefactoidsfalse
\newpage
\addtocounter{factoid}{-1}%
\fi
\ifmorefactoids\repeat
\egroup}
\begin{document}
\lipsum[1-4]
\fillpage
\lipsum[4-5]
\fillpage
\end{document}