在 Latex 中将列表拆分为多个列

希望这很简单: 我有一个相对较长的列表,其中每个列表项包含很少的文本:

* a
* b
* c
* d
* e
* f

我希望这样排版:

* a     * d
* b     * e
* c     * f

我不想创建一个包含2个列表的表,因为我希望能够轻松地更改列表,而不用担心更新所有列。

用乳胶做这个的最好方法是什么?

152611 次浏览

我已经有 万能的的“多列枚举列表”推荐给我,但我从来没有实际使用它自己,还没有。

编辑: 语法看起来并不像你可以轻松地将列表复制粘贴到 LaTeX 代码中。因此,它可能不是 你的用例的最佳解决方案!

使用 多甘包并将列表嵌入到 multicols环境中可以实现您想要的功能:

\documentclass{article}
\usepackage{multicol}


\begin{document}
\begin{multicols}{2}
\begin{enumerate}
\item a
\item b
\item c
\item d
\item e
\item f
\end{enumerate}
\end{multicols}
\end{document}

我不知道这是否可行,但也许您可以使用 multicolpackage 将页面分成多个列。

\usepackage{multicol}


\begin{document}
\begin{multicols}{2}[Your list here]
\end{multicols}

通过将 多甘软件包和 枚举项目软件包结合起来,可以很容易地定义与枚举和逐项列出环境类似的多列环境:

\documentclass{article}
\usepackage{enumitem}
\usepackage{multicol}


\newlist{multienum}{enumerate}{1}
\setlist[multienum]{
label=\alph*),
before=\begin{multicols}{2},
after=\end{multicols}
}


\newlist{multiitem}{itemize}{1}
\setlist[multiitem]{
label=\textbullet,
before=\begin{multicols}{2},
after=\end{multicols}
}


\begin{document}


\textsf{Two column enumerate}
\begin{multienum}
\item item 1
\item item 2
\item item 3
\item item 4
\item item 5
\item item 6
\end{multienum}


\textsf{Two column itemize}
\begin{multiitem}
\item item 1
\item item 2
\item item 3
\item item 4
\item item 5
\item item 6
\end{multiitem}


\end{document}

输出正是您所希望的:

enter image description here

另一个避免嵌套两个不同环境(如 multicolsenumerate)的选项。

名称相同的包中称为 tasks的环境在我看来非常容易定制,这多亏了各种选项(Pdf 指南(只提供英文版本))。

这个代码:

\documentclass{article}
\usepackage{tasks}


%\settasks{style=itemize}


\begin{document}
Text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text.


\begin{tasks}(2)
\task[*] a
\task[*] b
\task[*] c
\task[*] d
\task[*] e
\task[*] f
\end{tasks}


Text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text.
\end{document}

产生这种输出

tasks

tasks在2020年8月更新,它最初是专门为 水平列的列表创建的(见上面的截图) ,其背后的动机在指南中继续。如果这种项目/任务的安排是可以接受的,那么这可能是一个很好的选择,因为它保持了-恕我直言-代码的整洁和灵活性。