hyperref
我对和的子节标记有一些问题theorems
:为了正确标记定理,我thm
还在新的章节开始时手动重置了计数器。但后来我遇到了问题hyperref
。例如
\documentclass[a4paper, 11pt] {article}
\usepackage{hyperref}
\newtheorem{thm}{Theorem}[subsection]
\newtheorem{prop}[thm]{Proposition}
\makeatletter
\@addtoreset{thm}{section}
\makeatother
\begin{document}
\section{One}
\subsection{Oneone} \label{ss11}
\begin{prop} \label{p1}
\end{prop}
\subsection{twoone}
\begin{prop} \label{p2}
\end{prop}
Ref \ref{p1} and \ref{p2}.
\end{document}
这给出了警告:
pdfTeX warning (ext4): destination with the same identifier (name{thm.1.1}) has been already used, duplicate ignored
我已经浏览过网页并发现了一些类似的问题这里但由于线路问题,该答案并不适用于我的情况\@addtoreset
。
\@addtoreset{thm}{section}
请注意,如果我删除或者只有一个小节,则不会发生该问题。
非常感谢!
答案1
您需要使 hyperref 的内部计数器\theHthm
唯一。例如
\documentclass[a4paper, 11pt] {article}
\usepackage{hyperref}
\newtheorem{thm}{Theorem}[subsection]
\newtheorem{prop}[thm]{Proposition}
\makeatletter
\@addtoreset{thm}{section}
\renewcommand\theHthm{\thesection.\thethm}
\makeatother
\begin{document}
\section{One}
\subsection{Oneone} \label{ss11}
\begin{prop} \label{p1}
\end{prop}
\subsection{twoone}
\begin{prop} \label{p2}
\end{prop}
Ref \ref{p1} and \ref{p2}.
\end{document}