我正在编写一个包含一些列表的文档,我需要取消行\item
与下一行之间的分页符。以下是 MWE:
\documentclass[a4paper, 11pt]{scrartcl}
\usepackage{blindtext}
\usepackage{enumitem}
\begin{document}
\blindtext[2]
line\\
line\\
line\\
\begin{enumerate}[label=\textbf{Gruppe \arabic*},align=left,leftmargin=*,itemindent=0cm,labelwidth=\itemindent]
\item~\\[-2em]
\begin{enumerate}[label=\textbf{\alph*)},align=left,leftmargin=-1cm]
\item \blindtext
\item \blindtext
\end{enumerate}
\item~\nopagebreak\\[-2em]\nopagebreak
\begin{enumerate}[label=\textbf{\alph*)},align=left,leftmargin=-1cm]
\item \blindtext
\end{enumerate}
\end{enumerate}
\end{document}
我希望Gruppe 2
和a) Lorem Ipsum
在同一页上。在项目之前或第一行之后分页是可以的。但是\item
和第一行之间的分页是一个问题。我试过了,\nopagebreak
但什么也没改变。我读过关于samepage
环境或minipage
但我认为在这种情况下这是不可能的。手动分页只是最后一种解决方案,因为文档中的许多地方都有这种情况,我想找到一些通用的解决方案。
答案1
我建议您加载该needspace
包并使用其\needspace
宏。
\documentclass[a4paper, 11pt]{scrartcl}
\usepackage{blindtext,enumitem}
\usepackage{needspace} % <-- new
\begin{document}
\blindtext[2]
line\\
line\\
\begin{enumerate}[label=\textbf{Gruppe \arabic*},
align=left,leftmargin=*,itemindent=0cm,
labelwidth=\itemindent]
\item~\\[-1.25\baselineskip]
\begin{enumerate}[label=\textbf{\alph*)},
align=left,leftmargin=-1cm]
\item \blindtext
\item \blindtext
\end{enumerate}
\needspace{3\baselineskip} % <-- new
\item~\\[-1.25\baselineskip]
\begin{enumerate}[label=\textbf{\alph*)},
align=left,leftmargin=-1cm]
\item \blindtext
\end{enumerate}
\end{enumerate}
\end{document}
答案2
您仍然可以使用列表选项来在您的案例中使用 minipage reume
。此键应用于第二个列表、第三个列表等等。另请注意,这些\item~\\[-2em]
s 不是推荐的样式。\\
应避免使用硬 s,仅在表格中使用,并在包中谨慎使用。
\documentclass[a4paper, 11pt]{scrartcl}
\usepackage{blindtext}
\usepackage{enumitem}
\begin{document}
\blindtext[2]
line\\
line
\noindent
\begin{minipage}{\linewidth}\noindent
\begin{enumerate}[label=\textbf{Gruppe \arabic*},align=left,leftmargin=*]
\item {}
\item[]
\begin{enumerate}[label=\textbf{\alph*)},align=left,leftmargin=-1cm]
\item \blindtext
\item \blindtext
\end{enumerate}
\end{enumerate}
\end{minipage}
\begin{minipage}{\linewidth}\noindent
\begin{enumerate}[resume,label=\textbf{Gruppe \arabic*},align=left,leftmargin=*]
\item {}
\item []
\begin{enumerate}[label=\textbf{\alph*)},align=left,leftmargin=-1cm]
\item \blindtext
\end{enumerate}
\end{enumerate}
\end{minipage}
\end{document}