列挙型で構成される長いドキュメントがあります。各アイテムは複数の行で構成されており、グラフィックやリストなどの他の要素も含まれている可能性があります。ドキュメントタイプでは、これらの各アイテムが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
は機能しますが、各アイテムの垂直範囲を手動で決定する必要があります(少なくともそれは私が思うことです)。
最後に私がしたことは、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}
それほど複雑ではないものがいいのですが、少なくとも手動でページ付けしなくても機能しました。
次の自動化により、各\clearpage
で\item
を発行できます。
\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
が新しいページで開始され、下部に空白が残る可能性があります。
これはあなたを助けるかもしれません:テキストが場違いにならないようにenumerate
環境の余白のサイズを変更します。
アイテム化環境でこの種の操作を行う方法に関する1つの答えは次のとおりです。 https://tex.stackexchange.com/questions/170525/itemize-left-margin