如何让 hyperref 区分相似编号的定理?

如何让 hyperref 区分相似编号的定理?

我正在写一本书,其中每章的定理都编号为“定理 1”、“定理 2”等;定理计数器的重置是使用显式\setcounter命令完成的。当我打算使用 指向任何章节的定理 1 时hyperref,创建的链接指向的是第 1 章的定理 1(请参阅下面的 MWE)。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\newtheorem{theorem}{Theorem}

\begin{document}

\begin{theorem}[First]\label{thm1}
The first.
\end{theorem}

\newpage

\setcounter{theorem}{0}

\begin{theorem}[Second]\label{thm2}
The second.
\end{theorem}

Reference to the second occurrence of Theorem 1 : \ref{thm2}.
\end{document}

我知道我可以通过对定理进行编号(包括章节编号)来解决这个问题(例如“定理 1.1”),但我更喜欢更简单的编号。有没有办法hyperref区分上述两个定理(从而正确指向第二个定理),即使显示的编号相同?

先感谢您!

皮奥特

答案1

我认为,对于您的读者来说,看到“如第 11 章定理 8 所证明”而不是更简单的“如定理 11.8 所证明”并不好。

无论如何,您不需要手动重置计数器,并且您可以更改计数器的 H 表示来获得唯一的锚点。

\documentclass{book}
\usepackage{hyperref}

\newtheorem{theorem}{Theorem}
\counterwithin*{theorem}{chapter}
\renewcommand{\theHtheorem}{\thechapter.\arabic{theorem}}

\begin{document}

\chapter{First}

\begin{theorem}[First]\label{thm1}
The first.
\end{theorem}

\chapter{Second}

\begin{theorem}[Second]\label{thm2}
The second.
\end{theorem}

Reference to the first occurrence of Theorem 1: \ref{thm1}.

Reference to the second occurrence of Theorem 1: \ref{thm2}.

\end{document}

您会看到第一个链接指向第 1 章,第二个链接指向第 2 章。

在此处输入图片描述

相关内容