enumitem:当启用内联选项时,如何更改枚举*上的标签?

enumitem:当启用内联选项时,如何更改枚举*上的标签?

我在我的文档中使用内联枚举列表,并且我想使该标签(与正常enumerate环境略有不同(在前面加上)。

但是,由于enumerate*与环境共享设置enumerate,我该如何更改enumerate*环境的标签?

答案1

编辑:今天,修复了一个错误的新版本已在 上发布CTANenumitem——版本 3.5.2——2011-09-28

您使用环境的可选参数:

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


\begin{document}
\lipsum[1]
\begin{enumerate*}[label=(\arabic*.)]
\item foo
\item bar
\end{enumerate*}
\lipsum[2]
\end{document}

要将此行为设置为全局,您可以使用\setlist

编辑

我正在使用enumitem.sty 2011/09/05 v3.5.1 Customized lists。这个版本似乎有一个错误\setlist*。您可以使用

\setlist[]*{}

效果很好。但文档中列出了:

\setlist*[]{}

那不管用。

这里有一个小的解决方法:

\listfiles
\documentclass{article}
\usepackage[inline]{enumitem}
\usepackage{lipsum}
\makeatletter
\def\setlist{%
   \@ifstar%
     {\temp@setlist}
     {\temp@@setlist}
}
\newcommand\temp@setlist[1][]{%
  \enit@setlist{#1}\@ne}

\newcommand\temp@@setlist[1][]{%
  \enit@setlist{#1}\z@}

\makeatletter       
%\setlist[enumerate]*{label=(\arabic*.)}
\setlist*[enumerate]{label=(\arabic*.)}
\makeatother
\begin{document}
\lipsum[1]
\begin{enumerate*}
\item foo
\item bar
\end{enumerate*}
\lipsum[2]
\end{document}

问题在于setlist

\newcommand\setlist[1][]{%
  \@ifstar{\enit@setlist{#1}\@ne}{\enit@setlist{#1}\z@}}

setlist测试\@ifstar进行之前首先检查可选参数。

编辑

发送 Bug 报告。

编辑:

的作者enumitem将会修复该错误并将在一到两周内上传新版本。

答案2

不要使用,而只需创建一个名为类型的inline新列表。(顺便说一句,我将在一两周内修复中的错误和其他一些错误)。enumerate*enumerate*\setlist*

相关内容