考虑以下:
示例集 1
(a)示例 1
(b)示例 2
(c)示例 3
(d)示例 4
示例集 2
(a)示例 1
(b)示例 2
(c)示例 3
(d)示例 4
有时一个人
- 示例集 2
写在一页中,而第二级项目写在下一页中。如何防止这种情况发生?也就是说,如何避免将第一级项目与相应的第二级项目分开?
提前致谢,
保罗
答案1
使用/定义合适的分段命令,这将防止在其后出现分页符。以下是 KOMA-bundle 的示例 \minisec:
\documentclass{scrartcl}
\usepackage{enumitem}
\begin{document}
\vspace*{33\baselineskip}
\minisec{Example set 1}
\begin{enumerate}[label=(\alph{*})]
\item Example 1
\item Example 2
\item Example 3
\item Example 4
\end{enumerate}
\minisec{Example set 2}
%Example set 2
\begin{enumerate}[label=(\alph{*})]
\item Example 1
\item Example 2
\item Example 3
\item Example 4
\end{enumerate}
\end{document}
如果要嵌套枚举,可以(使用 enumitem 包)设置beginpenalty
为最大值。这将防止在列表前分页:
\documentclass{scrartcl}
\usepackage{enumitem}
\begin{document}
\vspace*{34\baselineskip}
\begin{enumerate}
\item Example set 1
\begin{enumerate}[label=(\alph{*})]
\item Example 1
\item Example 2
\item Example 3
\item Example 4
\end{enumerate}
\item Example set 2
\begin{enumerate}[label=(\alph{*}),
beginpenalty=10000 %<---
]
\item Example 1
\item Example 2
\item Example 3
\item Example 4
\end{enumerate}
\end{enumerate}
\end{document}
答案2
因为每一项都是一个单独的段落,所以您的情况是寡妇/孤儿惩罚不起作用的情况。解决方案可能是使用samepage
,例如:
\begin{samepage}
Example set 2
(a) Example 1
(b) Example 2
(c) Example 3
(d) Example 4
\end{samepage}
您也可以尝试\nopagebreak
在希望保持在一起的每一行之间进行尝试。