![避免在 \item-followed-by-newline 后分页](https://linux22.com/image/243819/%E9%81%BF%E5%85%8D%E5%9C%A8%20%5Citem-followed-by-newline%20%E5%90%8E%E5%88%86%E9%A1%B5.png)
我的文档中多次出现了该代码片段
\item~\newline
\begin{center}
\includegraphics{...}
\end{center}
\item
有时,第一个item
出现在页面末尾,因此项目标签与图形分离。我该如何避免这种情况?(我使用此构造来获取项目标签多于而不是与图形的底部对齐,这是默认情况)。
答案1
\documentclass{article}
\makeatletter
\newcommand\mynobreakpar{\par\nobreak\@afterheading}
\makeatother
\begin{document}
Here is some text. \par
\vspace{0.95\textheight}
\begin{itemize}
\item~\mynobreakpar
\begin{center} Here is an item \\line 2\end{center}
\end{itemize}
\end{document}
(除了 center 之外,您还可以使用 \centering)。
答案2
由于您提到“偶尔”,因此您只需在项目前使用\needspace{2\baselineskip}
*\baselineskip
即可要求至少两个空格;如果没有,请发出\break
。这是由needspace
包裹。
\documentclass{article}
\usepackage{needspace}% http://ctan.org/pkg/needspace
\begin{document}
Here is some text. \par
\vspace{0.88\textheight}
\begin{itemize}
\item~\newline
Here is an item
\needspace{2\baselineskip}% Remove to see the effect
\item~\newline
Here is an item
\end{itemize}
\end{document}
*从技术上讲,出于显而易见的原因,它可能更适合用于\needspace{\dimexpr\topsep+\baselineskip}
列表顶部的项目和\needspace{\dimexpr\itemsep+\baselineskip}
非顶部项目。
答案3
您可以使用 避免在换行符处分页\nopagebreak
。但是 也存在一个问题,即center
隐式分页符。我可能会因为使用 而遭受地狱般的折磨\centerline
,但是...
\item~\nopagebreak\\[-\baselineskip]
\centerline{\includegraphics{...}}