如何更改枚举列表中一个项目的标签

如何更改枚举列表中一个项目的标签

我想更改列表中某项的标签。我正在使用这个enumitem包,我非常喜欢它,而且我必须继续使用它(许多其他代码会中断)。

梅威瑟:

\documentclass[a4paper,10pt]{article}

\usepackage[]{enumitem}

\begin{document}
Foobar

\begin{enumerate}[label={(\arabic*)}]
        \item baz
\end{enumerate}
\begin{enumerate}[resume,label={(*\arabic*)}]
        \item xyzzy
\end{enumerate}
\begin{enumerate}[resume,label={(\arabic*)}]
        \item quux
\end{enumerate}

Lorem ipsum
\end{document}

结果是一个列表

 (1) baz
(*2) xyzzy
 (3) quux

不过,我想做类似的事情

\documentclass[a4paper,10pt]{article}

\usepackage[]{enumitem}

\begin{document}
Foobar

\begin{enumerate}[label={(\arabic*)}]
        \item baz
        \staritem xyzzy
        \item quux
\end{enumerate}

Lorem ipsum
\end{document}

enumitem如果该软件包能够使代码变得类似,那就太酷了\item[label=(*\arabic*)]。但据我所知,没有简单的解决方案。

你会怎么做?请\staritem在你的答案中定义一个命令,因为这将是一个比直接将其破解到文档文本中更正交的解决方案。或者,破解\item以接受选项(如\item[label=(*\arabic*)])会很棒!

答案1

在标签的规范中加上星号:

\documentclass[a4paper,10pt]{article}

\usepackage{enumitem}

\newcommand{\staritem}{\global\asterisktrue\item}
\newcommand{\perhapsasterisk}{%
  \ifasterisk*\global\asteriskfalse\fi
}
\newif\ifasterisk

\begin{document}
Foobar

\begin{enumerate}[label={(\protect\perhapsasterisk\arabic*)}]
\item baz
\staritem xyzzy
\item quux
\staritem xxx
\end{enumerate}

Lorem ipsum
\end{document}

在此处输入图片描述

答案2

我不确定这是否是您想要实现的,但您可以明确设置项目的标签。

\documentclass[a4paper,10pt]{article}

\usepackage{enumitem}


\begin{document}
Foobar

\begin{enumerate}[label={(\arabic*)}]
        \item baz
        \item[\refstepcounter{enumi}(*\number\value{enumi})] xyzzy
        \item quux
\end{enumerate}

Lorem ipsum
\end{document}

我认为,\refstepcounter里面的语句[]是必要的,因为如果手动设置标签,计数器就不会前进。

在此处输入图片描述

相关内容