防止乳胶文档中\ item中的分页符

问题描述 投票:5回答:3

我有一个由枚举组成的长文档。每个项目由几行组成,可能还包括其他元素,如图形和列表。文档类型要求每个项目都显示在单个页面上,而项目中没有分页符。页面底部未使用的空白区域是可以接受的。

这是一个例子

\documentclass[a5paper,12pt]{article}
\usepackage{blindtext}

\begin{document}
\begin{enumerate}
  \item \blindtext
  \item \blindtext % don't break this apart
  \item very long text here 
\end{enumerate}
\end{document}

我知道samepage环境的解决方案,以及minipage。问题是我无法将个人\items包装到这些环境中,这是我需要的。

needspace工作,但后来我需要手动确定每个项目的垂直范围(至少这是我的想法)。

latex page-break
3个回答
0
投票

这可能会帮助您:调整enumerate环境的边距,以便文本不会被打破。

以下是关于如何在逐项化环境中进行此类操作的一个答案:https://tex.stackexchange.com/questions/170525/itemize-left-margin


0
投票

您可以通过以下自动化与每个\clearpage发布\item

enter image description here

\documentclass[a5paper,12pt]{article}

\usepackage{blindtext}

\let\oldenumerate\enumerate% Store \begin{enumerate} in \begin{oldenumerate}
\let\endoldenumerate\endenumerate% Store \end{enumerate} in \end{oldenumerate}
\renewenvironment{enumerate}
  {\let\olditem\item% Store \item in \olditem
   \renewcommand{\item}{\clearpage\olditem}% Update \item
   \oldenumerate}% \begin{enumerate}
  {\endoldenumerate}% \end{enumerate}

\begin{document}

\begin{enumerate}
  \item \blindtext
  \item \blindtext % don't break this apart
  \item very long text here 
\end{enumerate}

\end{document}

上面的代码以一种将enumerate代码改为等同于\item的方式更新\clearpage\item环境。这样可以确保每个\item都会在新页面上开始,可能会在底部留下空白区域。


0
投票

我最后做的是使用enumitem包并将枚举分解成小部件中的部分:

\documentclass[a5paper,12pt]{article}
\usepackage{blindtext}
\usepackage{enumitem}           % modified itemize

\begin{document}
\begin{minipage}{\linewidth}
\begin{enumerate}[series=task,start=1,leftmargin=*,resume]
  \item \blindtext
\end{enumerate}
\end{minipage}

\begin{minipage}{\linewidth}
  \begin{enumerate}[resume*=task]
     \item \blindtext
  \end{enumerate}
\end{minipage}

\end{document}

我更喜欢不太复杂的东西,但至少它没有手动分页。

© www.soinside.com 2019 - 2024. All rights reserved.