希望标题不会太令人困惑,并能描述我的意思。事情是这样的:我需要一个列表,其中的项目有一个增量计数器,但也附加了一些自定义单词。也就是说,我想要一个这样的列表:
Case 1 (a<b): XXX
Case 2 (b<c): YYY
Case 3 (c<d): ZZZ
其中“1”、“2”和“3”是计数器,我想使用适当的超链接引用它们。例如,在其他地方,我可能会有类似以下内容:
In Case 1, we only need to do XXX.
其中 '1' 不是硬编码的,而是从 '\ref{SomeLabel}' 派生而来的。此外,我希望 hyperref 能够与标签/ref 配合使用。
目前,我找到了一个解决方案,可以正确显示,但超链接无法正常工作。我的解决方案是:
\documentclass{article}
\usepackage{hyperref}
\newcounter{desccounter}
\newcommand{\descitem}[1]{\refstepcounter{desccounter}\item[Case \thedesccounter{} #1]}
\begin{document}
The first list:
\setcounter{desccounter}{0}
\begin{description}
\descitem{$(a<b)$}:\label{Label1} XXX
\descitem{$(b<c)$}:\label{Label2} YYY
\descitem{$(c<d)$}:\label{Label3} ZZZ
\end{description}
Refs to the first list: Case \ref{Label1}, Case \ref{Label2}, Case \ref{Label3}.
\bigskip
The second list:
\setcounter{desccounter}{0}
\begin{description}
\descitem{$(x=y)$}:\label{Label4} AAA
\descitem{$(y=z)$}:\label{Label5} BBB
\descitem{$(z=w)$}:\label{Label6} CCC
\end{description}
Refs to the second list: Case \ref{Label4}, Case \ref{Label5}, Case \ref{Label6}.
\end{document}
渲染结果如下:
您可以看到显示是正确的,但是 hyperref 不正确:如果您单击第二个列表的超链接,您将被定向到第一个列表。
由于我不是 Latex 中计数器/标签/参考方面的专家,有哪位专家可以帮忙解决这个问题?谢谢!
答案1
您需要\theHdesccounter
在整个文档中给出一个唯一的值。例如(Item
hyperref 在各个地方使用,您可以增加它但不应将其重置为零):
\documentclass{article}
\usepackage{hyperref}
\newcounter{desccounter}
\renewcommand\theHdesccounter{\theItem.\arabic{desccounter}}
\newcommand{\descitem}[1]{\stepcounter{Item}\refstepcounter{desccounter}\item[Case \thedesccounter{} #1]}
\begin{document}
The first list:
\setcounter{desccounter}{0}
\begin{description}
\descitem{$(a<b)$}:\label{Label1} XXX
\descitem{$(b<c)$}:\label{Label2} YYY
\descitem{$(c<d)$}:\label{Label3} ZZZ
\end{description}
Refs to the first list: Case \ref{Label1}, Case \ref{Label2}, Case \ref{Label3}.
\bigskip
The second list:
\setcounter{desccounter}{0}
\begin{description}
\descitem{$(x=y)$}:\label{Label4} AAA
\descitem{$(y=z)$}:\label{Label5} BBB
\descitem{$(z=w)$}:\label{Label6} CCC
\end{description}
Refs to the second list: Case \ref{Label4}, Case \ref{Label5}, Case \ref{Label6}.
\end{document}