如何防止列表和以下文本之间出现分页符?
\documentclass{report}
\usepackage{lipsum}
\begin{document}
\begin{itemize}
\item \lipsum[1-3]
\item \lipsum[5]
\nopagebreak
\end{itemize}
\nopagebreak
\vspace{3\baselineskip}
\nopagebreak
\begin{center}
\nopagebreak
The end
\end{center}
\end{document}
我想阻止“结束”结束符出现在其自己的页面上,即使是以将列表分成两个单独的页面为代价。
该过程需要在多个不同的文档上自动执行,因此不能根据具体情况手动调整,例如在列表最后一项之前添加 \pagebreak。
答案1
在列表的末尾(itemize
和enumerate
包括在内),LaTeX 会发出一些垂直调整,这些调整并不符合您的要求。因此,不要修补,\nopagebreak
而是将您的作为列表的一部分包括在内,这样您就可以更好地控制分页限制:\enditemize
The end
\documentclass{report}
\usepackage{lipsum}
\begin{document}
\begin{itemize}
\item \lipsum[1-3]
\item \lipsum[5]
\nopagebreak
\vspace{3\baselineskip}
\makeatletter
{\centering The end\hspace*{\@totalleftmargin}\par}
\makeatother
\end{itemize}
\begin{center}
The end
\end{center}
\end{document}
请注意,center
环境本身是一个列表。因此,为了避免可能无法捕获的进一步影响,请使用{\centering ... \par}
suffices 进行设置。但是,因为我们处于 中itemize
,所以需要进行一些间距校正。
最终center
环境仅仅包括显示水平位移是否符合要求。