![组合不同的列表类型以在一个文档中工作](https://linux22.com/image/309378/%E7%BB%84%E5%90%88%E4%B8%8D%E5%90%8C%E7%9A%84%E5%88%97%E8%A1%A8%E7%B1%BB%E5%9E%8B%E4%BB%A5%E5%9C%A8%E4%B8%80%E4%B8%AA%E6%96%87%E6%A1%A3%E4%B8%AD%E5%B7%A5%E4%BD%9C.png)
我喜欢\usepackage{enumerate}
使用 1.、2.、3. 和 A.、B.、C 来编写列表。但是,在某些列表中,我希望节省纸张空间,例如将前 3 个项目写在一行中,将接下来的 2 个项目写在下一行中。
我发现我可以用来\usepackage[inline]{enumitem}
做后者,但是它会弄乱包含 A.、B.、C 的列表。
可以在一篇论文中同时使用这两种方式吗?
以下是我想在工作所需的最少代码中使用的 3 种列表类型示例。前两种可以在一个代码中工作,但最后一种不能在与前两种相同的论文中工作。
\documentclass{article}
%This is for the first list
\usepackage{enumerate}
%This is for the second list.
% To list numbers/tasks in form of columns to save space.
\usepackage{multicol}
\usepackage{tasks}[2013/04/07]
% renew the {tasks} environment to use bold labels
% and use two columns as default settings:
\RenewTasks[counter-format= tsk.,label-format=\bfseries]{tasks}(1)
\begin{document}
\begin{enumerate}[A.]
\item Method 1.
\item Method 2.
\item Method 3 uses the following 3 operations.
\begin{enumerate}[1.]\label{rowops}
\item Operation 1.
\item Operation 2.
\item Operation 3.
\end{enumerate}
\end{enumerate}
\vspace{1em}
\begin{multicols}{1}
\noindent Properties of $D$
\begin{tasks}
\task Property 1,
\task Property 2,
\task Property 3,
\task Property 4,
\task Property 5.
\end{tasks}
\noindent Properties of $A = B$
\begin{tasks}
\task Property 1,
\task Property 2,
\task Property 3,
\task Property 4,
\task Property 5.
\end{tasks}
\end{multicols}
\end{document}
下面使用\inlineitem
来连续列出多个项目,但此代码与上面的代码不兼容。如有任何建议或帮助,我们将不胜感激,因为您知道如何在一个文档中列出所有三种类型的列表。
\documentclass{article}
\usepackage[inline]{enumitem}
\makeatletter
% This command ignores the optional argument for itemize and enumerate lists
\newcommand{\inlineitem}[1][]{%
\ifnum\enit@type=\tw@
{\descriptionlabel{#1}}
\hspace{\labelsep}%
\else
\ifnum\enit@type=\z@
\refstepcounter{\@listctr}\fi
\quad\@itemlabel\hspace{\labelsep}%
\fi}
\begin{document}
\begin{enumerate} % Combined inline list
\item Item $1$, \inlineitem Item $2$,\inlineitem Item $3$,
\item Item $4$,\label{thm1.4} \inlineitem Item $5$.
\end{enumerate}
\end{document}
答案1
不用加载enumerate
包,而是使用shortlabels
选项来enumitem
模拟该格式。然后,您可以将内联项与枚举类型列表相结合。除非您使用实际的内联列表(enumerate*
等等),否则enumitem
您不需要该inline
选项来使此代码正常工作。
\documentclass{article}
\usepackage[shortlabels]{enumitem}
\makeatletter
% This command ignores the optional argument for itemize and enumerate lists
\newcommand{\inlineitem}[1][]{%
\ifnum\enit@type=\tw@
{\descriptionlabel{#1}}
\hspace{\labelsep}%
\else
\ifnum\enit@type=\z@
\refstepcounter{\@listctr}\fi
\quad\@itemlabel\hspace{\labelsep}%
\fi}
\begin{document}
\begin{enumerate}[A.] % Combined inline list
\item Item $1$, \inlineitem Item $2$,\inlineitem Item $3$,
\item Item $4$,\label{thm1.4} \inlineitem Item $5$.
\end{enumerate}
\end{document}