リスト後の改ページを防ぐ

リスト後の改ページを防ぐ

内側のリストの直後に外側のリストの終わりが続く場合、内側のリストの後の改ページを防ぐにはどうすればよいですか?

両方のリスト内の他の場所でのページ区切りは許可される必要があります。

ムウェ

\documentclass[twocolumn]{article}
\usepackage{lipsum}
\newenvironment{lista}{%
  \list{}{}%
    \item\relax
}{%
    Prevent page break before here.
  \endlist
}
\newenvironment{listb}{%
  \list{}{}%
    \item\relax
}{%
  \endlist
}
\begin{document}
\vspace*{7.5cm plus 1cm}
\begin{lista}
  \begin{listb}
    \lipsum[4]
  \end{listb}
  Permit page break before here.
  \begin{listb}
    \lipsum[4]
  \end{listb}
\end{lista}
\end{document}

答え1

内側のリストの直後に外側のリストの終わりが続く場合に、内側のリストの後で改ページが行われないようにするには、\filbreak内側のリストの後で、それに続くテキストの前に コマンドを使用します。この\filbreakコマンドは、その時点で改ページを促し、内側のリストと外側のリストの間で改ページが行われないようにします。MWE の更新バージョンを次に示します。

\documentclass[twocolumn]{article}
\usepackage{lipsum}

\newenvironment{lista}{%
  \list{}{}%
    \item\relax
}{%
    Prevent page break before here.
  \endlist
}
\newenvironment{listb}{%
  \list{}{}%
    \item\relax
}{%
  \endlist\filbreak % Use \filbreak to prevent a page break after the inner list
}

\begin{document}
\vspace*{7.5cm plus 1cm}
\begin{lista}
  \begin{listb}
    \lipsum[4]
  \end{listb}
  \lipsum[1-2] % This text follows the inner list
\end{lista}
\end{document}

この例では、環境内のコマンド\filbreakの後に を追加しました。これにより、内側のリストの直後に外側のリストの終わりが続く場合に、内側のリストの後でページ区切りが発生するのを防ぐことができます。\endlistlistb

ここに画像の説明を入力してください

関連情報