Différentes équations avec la même balise provoquent une mauvaise référence

Nov 22 2020

Je voudrais parvenir à quelque chose d'assez similaire à cette question , sauf que je voudrais également faire référence auxdites équations. Voici un exemple minimal:

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

\begin{document}
\section*{Chapter A}
\begin{equation}\label{star1}\tag{$\star$}
    a^2 + b^2 = c^2
\end{equation}
The main equation of this chapter is the Pythagorean theorem, \eqref{star1}.

\pagebreak

\section*{Chapter B}
\begin{equation}\label{star2}\tag{$\star$}
    i^2 = -1
\end{equation}
The main equation of this chapter is the definition of the imaginary unit, \eqref{star2}.
\end{document}

Le problème est que cela \eqref{star2}pointe vers le Pythagore. Je reçois également cet avertissement qui, j'en suis sûr, est pertinent:destination with the same identifier (name{equation.0.1}) has been already used, duplicate ignored <to be read again>

Merci d'avance.

Réponses

3 egreg Nov 22 2020 at 22:43

Le paquet hyperrefdoit être chargé en dernier: seuls quelques paquets doivent être chargés après lui et aucun de ceux du MWE.

Cependant, cela ne résout pas le problème. Le problème est une condition de concurrence: avec equationle compteur associé est incrémenté puis réinitialisé à sa valeur précédente s'il \tagest scanné auparavant \end{equation}, mais il est trop tard et hyperrefa déjà fourni une ancre.

La balise étant la même n'est pas le problème, même si je me méfierais de le faire, car cela déroute probablement le lecteur.

L'utilisation equation*résout le problème.

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

\begin{document}

\section*{Chapter A}
\begin{equation*}\label{star1}\tag{$\star$}
    a^2 + b^2 = c^2
\end{equation*}
The main equation of this chapter is the Pythagorean theorem, \eqref{star1}.

\pagebreak

\section*{Chapter B}
\begin{equation*}\label{star2}\tag{$\star$}
    i^2 = -1
\end{equation*}
The main equation of this chapter is the definition of the imaginary unit, \eqref{star2}.
\end{document}