交叉引用,链接不当

交叉引用,链接不当

在下面的 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}}

相关内容