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

时间:2017-12-15 12:28:06

标签: latex page-break

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

这是一个例子

\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的解决方案。问题是我不能将个人\item包装到这些环境中,这是我需要的。

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

3 个答案:

答案 0 :(得分:0)

这可能对您有所帮助:调整flow --model cfg/yolo.cfg --load bin/yolo.weights --savepb 环境的边距,以便不会破坏文本。

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

答案 1 :(得分: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将在新页面上开始,可能会在底部留下空白。

答案 2 :(得分: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}

我更喜欢不那么复杂的东西,但至少它没有人工分页。