避免在 \item-followed-by-newline 后分页

避免在 \item-followed-by-newline 后分页

我的文档中多次出现了该代码片段

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

相关内容