通过丢弃多余的内容将内容限制在一页

通过丢弃多余的内容将内容限制在一页

我有一系列页面,每页有几个段落。我不想让页面的其余部分空白,而是写上一大堆“琐事”。我想在页面上写尽可能多的内容,只要有空间就行。

想象一下有一本书,一年中有每一天一页。主要内容是描述这一天的几段话,但这一页可以写满“历史上这一天发生的有趣的事情”。

我可以导入比我需要的更多内容,因此无需打包或调整大小或尝试将它们全部导入。但绝对不会有额外的页面包含其余的“琐事”。我绝对不想花时间手动排版每一页,选择精确数量的琐事条目,在每次编辑后进行调整等。

我唯一的另一个小要求是,必须有完整的事实:我不能用半个事实来结束页面。但我假设环境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}

相关内容