![如何避免将枚举中的第一级项目与相应的第二级项目拆分到不同的页面上?](https://linux22.com/image/395393/%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E5%B0%86%E6%9E%9A%E4%B8%BE%E4%B8%AD%E7%9A%84%E7%AC%AC%E4%B8%80%E7%BA%A7%E9%A1%B9%E7%9B%AE%E4%B8%8E%E7%9B%B8%E5%BA%94%E7%9A%84%E7%AC%AC%E4%BA%8C%E7%BA%A7%E9%A1%B9%E7%9B%AE%E6%8B%86%E5%88%86%E5%88%B0%E4%B8%8D%E5%90%8C%E7%9A%84%E9%A1%B5%E9%9D%A2%E4%B8%8A%EF%BC%9F.png)
考虑以下:
示例集 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
在希望保持在一起的每一行之间进行尝试。