
Как предотвратить разрыв страницы после внутреннего списка, если сразу за ним следует конец внешнего списка?
Разрывы страниц в других местах обоих списков должны быть разрешены.
МВЭ
\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
после \endlist
команды в listb
окружении. Это поможет предотвратить разрыв страницы после внутреннего списка, когда за ним сразу следует конец внешнего списка.