Evitar saltos de página después de listas

Evitar saltos de página después de listas

¿Cómo puedo evitar un salto de página después de una lista interna cuando va inmediatamente seguido del final de una lista externa?

Se deben permitir saltos de página en otras partes de ambas listas.

MWE

\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}

Respuesta1

Para evitar un salto de página después de una lista interna cuando va inmediatamente seguida por el final de una lista externa, puede usar el \filbreakcomando después de la lista interna y antes del texto que la sigue. El \filbreakcomando fomenta un salto de página en ese punto, evitando un salto entre las listas interna y externa. Aquí hay una versión actualizada de su 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}

En este ejemplo, agregué \filbreakdespués del \endlistcomando en el listbentorno. Esto ayudará a evitar un salto de página después de la lista interna cuando va inmediatamente seguido del final de la lista externa.

ingrese la descripción de la imagen aquí

información relacionada