使用 enumitem 自定义内联枚举仍然不起作用?

使用 enumitem 自定义内联枚举仍然不起作用?

我拥有最新版本的enumitem软件包,并尝试对设置为普通列表的枚举列表和设置为内联的枚举列表使用不同的标签。但是,这似乎不起作用(一个自定义会覆盖另一个),我已经问过一个关于这个问题的问题,结果发现这是由于错误造成的。

但是,我仍然无法让它工作。我有以下 MWE:

\documentclass{article}
\usepackage[inline]{enumitem}

\setlist[enumerate,1]{%
  label=\arabic*.,
}
\setlist*[enumerate,1]{%
  label=(\roman*),
}

\begin{document}

\begin{enumerate}
  \item item 1
  \item item 2
  \item item 3
\end{enumerate}

\begin{enumerate*}
  \item item 1
  \item item 2
  \item item 3
\end{enumerate*}

\end{document}

我得到的是:

在此处输入图片描述

要么是我不明白如何使用它\setlist来让它工作,要么是错误仍然存​​在。我不知道是哪一个。

答案1

没有什么比手册更能说明这一点了。

这三个内联列表具有类型 enumerate*、itemize* 和 description*,它们始终可用,即使没有包选项 inline(仅用这些名称定义三个环境)。

带星号的形式\setlist*将设置添加到以前的设置中。

您应该创建一个,并且除非您想使用预定义列表,否则\newlist无需再放置该选项。inline

\documentclass{article}
\usepackage{enumitem}

\setlist[enumerate,1]{%
  label=\arabic*.,
}

\newlist{inlinelist}{enumerate*}{1}
\setlist*[inlinelist,1]{%
  label=(\roman*),
}

\begin{document}

\begin{enumerate}
  \item item 1
  \item item 2
  \item item 3
\end{enumerate}

\begin{inlinelist}
  \item item 1
  \item item 2
  \item item 3
\end{inlinelist}

\end{document}

在此处输入图片描述

答案2

使用“shortlabels”选项轻松控制

\documentclass{article}
\usepackage[inline,shortlabels]{enumitem}


\begin{document}

\begin{enumerate}[1.]
  \item item 1
  \item item 2
  \item item 3
\end{enumerate}

\begin{enumerate*}[(i)]
  \item item 1
  \item item 2
  \item item 3
\end{enumerate*}

\end{document}

在此处输入图片描述

答案3

如果您不想创建额外的新列表环境,您可以etoolbox像下面这样使用:

  \documentclass{article}
  \usepackage[inline]{enumitem}
  \usepackage{etoolbox}

  \setlist[enumerate,1]{label=\arabic*.}
  \BeforeBeginEnvironment{enumerate*}{%
    \setlist[enumerate,1]{label=(\roman*)}
  }
  \AfterEndEnvironment{enumerate*}{%
    \setlist[enumerate,1]{label=\arabic*.}
  }

  \begin{document}

  \begin{enumerate}
    \item item 1
    \item item 2
    \item item 3
  \end{enumerate}

  \begin{enumerate*}
    \item item 1
    \item item 2
    \item item 3
  \end{enumerate*}

  \end{document}

相关内容