确保/避免项目和子项目不中断的正确方法是什么?

确保/避免项目和子项目不中断的正确方法是什么?

这是一个相当基本的问题,但我想知道正确的括号是什么或保护“itemize”中项目之间分页符的选项。也就是说,项目可以跨页面拆分,但不能在项目本身内拆分。如果这是重复的,请相应地指示我。

\begin{itemize}
  \item A
  % can page break here
  \item B
    \subitem Keep this with B on the same page
  % can page break here
 \item C
 \end{itemize}

答案1

一个最小的例子就好了,特别是因为用法\subitem通常用于索引,但看起来你已经重新利用了它。无论如何,这里有一种方法:

\documentclass[12pt]{article}
\usepackage[paperheight=6cm, textheight=5cm]{geometry}
\newcommand*\keepB{Keep this with B on the same page }
\begin{document}

\keepB \keepB \keepB \keepB

\begin{itemize}
  \item A
  \item A
  \item A
  % can page break here
  \item B %
    \vadjust{\penalty10000}% <-- comment this line
    \subitem \keepB \keepB \keepB \keepB \keepB \keepB \keepB
  % can page break here

  \item B
    \subitem \keepB

  \item C
    \subitem \keepB

\end{itemize}
\end{document}

\subitem如果内容很长,这允许 中的内容中断,但将 的第一行\subitem与主保持\item在一起。我的观点是,让子项内容完全不中断是不好的。因此,不太明智的做法是,比较一下如果您更改示例的差异,以便您得到:

  \item B
    \vadjust{\penalty10000}%
    \par\parbox{\textwidth}{% 
      \subitem \keepB \keepB \keepB \keepB \keepB \keepB \keepB
    }
  % can page break here

(当然,由于使用\subitem---我们真的不在索引中吗?这会变得很奇怪)

相关内容