使用 enumitem 设置自定义枚举下的枚举计数器

使用 enumitem 设置自定义枚举下的枚举计数器

我在“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此处的引用构造的显式标签。

标签与参考

相关内容