Evitando quebras de página após listas

Evitando quebras de página após listas

Como posso evitar uma quebra de página após uma lista interna quando ela é imediatamente seguida pelo final de uma lista externa?

Devem ser permitidas quebras de página em outras partes de ambas as 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}

Responder1

Para evitar uma quebra de página após uma lista interna quando ela é imediatamente seguida pelo final de uma lista externa, você pode usar o \filbreakcomando após a lista interna e antes do texto que a segue. O \filbreakcomando incentiva uma quebra de página nesse ponto, evitando uma quebra entre as listas interna e externa. Aqui está uma versão atualizada do seu 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}

Neste exemplo, adicionei \filbreakapós o \endlistcomando no listbambiente. Isso ajudará a evitar uma quebra de página após a lista interna quando ela for imediatamente seguida pelo final da lista externa.

insira a descrição da imagem aqui

informação relacionada