Seltsamer Nebeneffekt zwischen amsmath, hyperref und cleveref

Seltsamer Nebeneffekt zwischen amsmath, hyperref und cleveref

Dieses Problem scheint ziemlich exotisch zu sein, aber ich bin in einem mittelgroßen Dokument darauf gestoßen und habe eine Weile gebraucht, um herauszufinden, welche bestimmte Paketkombination dafür verantwortlich war.

Wenn ich lade amsmath, cleverefund hyperref(implizitvia pdfcomment), ref/ autorefauf eine Gleichung funktioniert nicht mehr, d.h. LaTeX gibt einen Reference ... on page 1 undefinedFehler aus. Siehe folgendes MWE:

\documentclass[12pt]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenx}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{amsmath}

%% Hyperlinks
%\usepackage[breaklinks]{hyperref}
\usepackage{cleveref}
%% implicitly loads `hyperref`
\usepackage{pdfcomment}

\begin{document}

\section{Test}
Etwas Fülltext, bevor die Gleichung kommt:
\begin{equation}
E_\mathrm{kin} = \frac{m}{2} v^2 \label{eq:kinErg}
\end{equation}
Jemand fand heraus, dass \autoref{eq:kinErg} gilt.

\end{document}

Wenn ich einschließehyperref ausdrücklich, dann funktioniert alles, außer ich bekommediese Warnung. Kein Dealbreaker, aber ich würde es lieber vermeiden und nur hypersetupdie zusätzlichen Optionen für verwenden hyperref.

Auch wenn ich weglasse amsmath, funktioniert alles. Ich nehme an, dass jedes Paket die Einstellungen des anderen teilweise überschreibt ...

Wenn es sich um einen Fehler handelt, wo soll ich ihn melden?

Antwort1

Belastungcleveref stetsdanach hyperrefals eine der wenigen Ausnahmen, bei denen Pakete nach geladen werden sollten hyperref!

Wenn Sie dies in der falschen Reihenfolge tun, counterwerden die Informationen überschrieben und \autorefder Zähler kann nicht mehr abgerufen werden, d. h. das Label ist „undefiniert“, was zu falschen Referenzen oder ??Ausgaben führt.

\documentclass[12pt]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenx}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{amsmath}

%% Hyperlinks
%\usepackage[breaklinks]{hyperref}
%% implicitly loads `hyperref`
\usepackage{pdfcomment}

\usepackage{cleveref}


\begin{document}

\section{Test}
Etwas Fülltext, bevor die Gleichung kommt:
\begin{equation}
  E_\mathrm{kin} = \frac{m}{2} v^2 \label{eq:kinErg}
\end{equation}
Jemand fand heraus, dass \autoref{eq:kinErg} gilt.

\end{document}

verwandte Informationen