交叉引用无法与 \tag 和 \label 同时使用

交叉引用无法与 \tag 和 \label 同时使用

我写了两个方程,都带有标签和标记,这样我就可以按照我的格式显示它们,并在以后引用它们。但是,当单击 (1.1) 或 (1.2) 时,两者都会导致方程 (1.1)。不知何故,1.2 没有得到正确的引用。这是包含错误的整个代码的简化版本。我在这里添加了额外的几行,以便轻松辨别两个引用之间的差异。

\documentclass[12pt]{article}
\usepackage{hyperref}
\usepackage{amsmath}

\begin{document}

    
        \begin{equation} \tag*{1.1} \label{1.1}
            a + b + c = d
        \end{equation}
        \\\\\\\\\\\\\\\\\\\\\\\\\
        \begin{equation} \tag*{1.2} \label{1.2}
            e + f + g = h
        \end{equation}
    
    This is \ref{1.1}
    This is \ref{1.2}
    
\end{document}

这是 pdf 输出。单击或悬停在任一引用上时,都会得出公式 a + b + c = d。 在此处输入图片描述

答案1

在具有当前 hyperref 的当前 TeX 系统中,您的示例应该可以工作。我删除了对 amsmath 包 order 的依赖。在较旧的系统中,您需要先加载 amsmath,如评论中所述。

如果你使用,\tag你最好使用未编号的equation*环境,以避免在日志中出现虚假警告

pdfTeX warning (ext4): destination with the same identifier (name{equation.0.1}) has been already used

在您的示例中它们不会造成危害,但如果您稍后使用equation不带标签的链接,则会指示错误的链接。

\documentclass[12pt]{article}

\usepackage{amsmath}
\usepackage{hyperref}


\begin{document}

    
        \begin{equation*} \tag*{1.1} \label{1.1}
            a + b + c = d
        \end{equation*}
        \\\\\\\\\\\\\\\\\\\\\\\\\
        \begin{equation*} \tag*{1.2} \label{1.2}
            e + f + g = h
        \end{equation*}
    
        \begin{equation}  \label{next}
            e + f + g = h
        \end{equation}
    This is \ref{1.1}
    This is \ref{1.2}
    This is \ref{next}
    
\end{document}

相关内容