我想更改列表中某项的标签。我正在使用这个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
里面的语句[]
是必要的,因为如果手动设置标签,计数器就不会前进。