web-dev-qa-db-ja.com

ラテックスドキュメントの\ item内で改ページを防ぐ

列挙型で構成される長いドキュメントがあります。各アイテムは複数の行で構成されており、グラフィックやリストなどの他の要素も含まれている可能性があります。ドキュメントタイプでは、これらの各アイテムが1つのページに表示され、アイテム内に改ページがないことが必要です。ページ下部の未使用の空白は許容されます。

これが例です

\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は機能しますが、各アイテムの垂直範囲を手動で決定する必要があります(少なくともそれは私が思うことです)。

7
user52366

最後に私がしたことは、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}

それほど複雑ではないものがいいのですが、少なくとも手動でページ付けしなくても機能しました。

0
user52366

次の自動化により、各\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}

上記のコードは、\itemコードを\clearpage\itemと同等に変更する方法でenumerate環境を更新します。これにより、各\itemが新しいページで開始され、下部に空白が残る可能性があります。

0
Werner

これはあなたを助けるかもしれません:テキストが場違いにならないようにenumerate環境の余白のサイズを変更します。

アイテム化環境でこの種の操作を行う方法に関する1つの答えは次のとおりです。 https://tex.stackexchange.com/questions/170525/itemize-left-margin

0
Gunee