![我可以阻止列破坏 easylist 项目吗?](https://linux22.com/image/324689/%E6%88%91%E5%8F%AF%E4%BB%A5%E9%98%BB%E6%AD%A2%E5%88%97%E7%A0%B4%E5%9D%8F%20easylist%20%E9%A1%B9%E7%9B%AE%E5%90%97%EF%BC%9F.png)
我有这个代码...
\documentclass{memoir}
\usepackage[ampersand]{easylist}
\usepackage{multicols}
\begin{document}
\begin{multicols}{2}
\begin{easylist}[enumerate]
& The alphabet
& Declarative clauses
&& \textit{-r} alternation
& Interrogative clauses
&& Partial (\textit{Liker du ... ?})
&& Polar (\textit{Hva heter du?})
& Negation
\end{easylist}
\end{multicols}
\end{document}
...产生以下输出:
我知道在这种情况下这可能不是最佳选择,但我希望顶级项目不要跨列。在这种情况下,它看起来应该像这样:
1. The alphabet 4. Negation
2. Declarative clauses
(a) -r alternation
3. Interrogative clauses
(a) Partial (Liker du ... ?)
(b) Polar (Hva heter du?)
我知道在这种情况下看起来有点奇怪,但我认为分离子项更糟糕,而且我宁愿不手动完成。
在做了更多这样的事之后,我意识到我必须在适当的地方手工完成。
答案1
您可以强制“标题”保留在列表中。我还会使用 \raggedcolumns 来避免 multicol 将文本撕裂得太厉害:
\documentclass{memoir}
\usepackage[ampersand]{easylist}
\usepackage{multicol}
\makeatletter
\newcommand\mynobreakpar{\par\nobreak\@afterheading}
\makeatother
\begin{document}
\begin{multicols}{2}\raggedcolumns
\begin{easylist}[enumerate]
& The alphabet
& Declarative clauses
&& \textit{-r} alternation
& Interrogative clauses \mynobreakpar
&& Partial (\textit{Liker du ... ?})
&& Polar (\textit{Hva heter du?})
& Negation
\end{easylist}
\end{multicols}
\end{document}
答案2
我不知道如何使用 easylist 来做到这一点,但可以使用 enumitem 包:
\documentclass{memoir}
%\usepackage[ampersand]{easylist}
\usepackage{enumitem}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
% \begin{easylist}[enumerate]
\begin{itemize}
\item The alphabet
\item Declarative clauses
\begin{itemize}[beginpenalty=1000]
\item \textit{-r} alternation
\end{itemize}
\item Interrogative clauses
\begin{itemize}[beginpenalty=1000]
\item Partial (\textit{Liker du ... ?})
\item Polar (\textit{Hva heter du?})
\end{itemize}
\item Negation
\end{itemize}
\end{multicols}
\end{document}
生产:
我希望它能帮助你