在下面的 MWE 中,第一和第二个引用链接到方程 (I.1),而第三和第四个方程引用都链接到方程 (2.1)。但它们应该分别链接到方程 (I.1)、(1.1)、(II.1) 和 (2.1)。
什么原因导致了此错误?
\documentclass[10pt,a4paper,openany]{book}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[colorlinks,citecolor=blue,urlcolor=blue,linkcolor=blue,pdfencoding=auto, psdextra]{hyperref}
\usepackage[nameinlink]{cleveref}
\begin{document}
\numberwithin{equation}{part}
\part{I}
\begin{equation}
\label{eq:I_1}
a = b
\end{equation}
\numberwithin{equation}{chapter}
\chapter{I}
\begin{equation}
\label{eq:chap_1}
a = part 1
\end{equation}
\numberwithin{equation}{part}
\part{II}
\begin{equation}
\label{eq:II_1}
a = chap 1
\end{equation}
\numberwithin{equation}{chapter}
\chapter{2}
\begin{equation}
\label{eq:chap_2}
a = chap 2
\end{equation}
\cref{eq:I_1}, \cref{eq:chap_1}, \cref{eq:II_1}, \cref{eq:chap_2}.
\end{document}
答案1
hyperref 在 \numberwithin 命令之后将链接内部命名为equation.\theHpart.\arabic{equation}
和equation.\theHchapter.\arabic{equation}
。 As\theHpart
定义为\arabic{part}
和\theHchapter
,\arabic{chapter}
这会导致目标名称重复。因此您会在日志中收到警告:
l.102 \begin{equation}
pdfTeX warning (ext4): destination with the same identifi
er (name{equation.2.1}) has been already used, duplicate ignored
<to be read again>
例如,一种解决方案是进行更改\theHpart
,以便创建唯一的目的地:
\renewcommand\theHpart{\Roman{part}}