我在“enumitem”环境中有几个enumerate
具有自定义标签样式的项目,我想稍后在各个点重复它们。
像这样:
(a)独角兽并不存在。
(b) 树木存在。
正如我之前所说:
(a)独角兽并不存在。
我尝试\setcounter{enmui}{...}
在后面的enumerate
环境中使用,并引用前一个项目的标签。我希望这样\addtocounter{enmui}{-1}
下一个项目\item
就能拥有与我引用的标签相同的标签。
然而,我遇到了麻烦,因为\ref{somelabel}
(环境somelabel
中物品的标签在哪里enumerate
)给出的是风格化的计数器而不是实际的数字。
所以我尝试使用 'refcount' 包。但这似乎也不起作用,并且\getrefnumber{somelabel}
给出了与 相同的结果\ref{somelabel}
。
这是我的标记的简化版本:
\documentclass{article}
\usepackage{enumitem}
\usepackage{refcount}
\begin{document}
\begin{enumerate}[label=(\alph*)]
\item Thing 1\label{first}
\item Thing 2
\setcounter{enumi}{\ref{first}}
\item Thing 3
\setcounter{enumi}{\getrefnumber{first}}
\item Thing 4
\end{enumerate}
\begin{enumerate}[resume*]
\setcounter{enumi}{\ref{first}}
\item Thing 5
\setcounter{enumi}{\getrefnumber{first}}
\item Thing 6
\end{enumerate}
Reference: \ref{first}. Number: \getrefnumber{first}.
\end{document}
我! Missing number, treated as zero. <to be read again>
每次都会遇到错误\setcounter
(但仅限于第二次运行)。
结果如下:
因此,尽管 Latex 提出抗议,但它似乎确实在第一个中正确设置了计数器enumerate
(尽管事实上它应该是(b),因为我没有将计数器减少一;而且它还打印出额外的(a))。
然而,在第二个中enumerate
,它甚至无法形成有效的列表(我! LaTeX Error: Something's wrong--perhaps a missing \item.
也遇到了错误)。
注意:我删除[label=(\alph*)]
和[resume*]
,一切都正常。
我知道这可以通过为每个项目定义一个计数器,甚至对值进行硬编码来实现,但如果可能的话,我宁愿使用标签和参考来实现。
感谢您的帮助!
答案1
我不完全确定我理解你想做的一切,但也许这会有所帮助:
\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}[label=(\alph*), ref=\alph*]
\item Thing 1\label{first}
\item Thing 2
\item Thing 3
\item Thing 4
\end{enumerate}
As I have said before:
\begin{itemize}
\item[(\ref{first})] Thing 1
\end{itemize}
Continuing our survey:
\begin{enumerate}[resume*]
\item Thing 5
\item Thing 6
\end{enumerate}
Reference: \ref{first}.
\end{document}
ref=
设置标签在引用中使用时的格式。默认情况下,它设置为标签的值,但您可以按所示覆盖它。重复项目时,您实际上并不需要枚举。您特别想重复之前的标签,因此我将使用itemize
此处的引用构造的显式标签。