hyperref 和定理按小节计数 - “pdftex 警告(ext4)具有相同标识符的目标”

hyperref 和定理按小节计数 - “pdftex 警告(ext4)具有相同标识符的目标”

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}

相关内容