组合不同的列表类型以在一个文档中工作

组合不同的列表类型以在一个文档中工作

我喜欢\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}

相关内容