Estranho efeito colateral entre amsmath, hyperref e intelligentef

Estranho efeito colateral entre amsmath, hyperref e intelligentef

Esse problema parece bastante exótico, mas o encontrei em um documento de tamanho médio e demorei um pouco para identificar qual combinação específica de pacotes era responsável.

Quando eu carrego amsmathe cleveref(hyperrefimplicitamentevia pdfcomment), ref/ autorefpara uma equação não funciona mais, ou seja, o LaTeX gera um Reference ... on page 1 undefinederro. Veja o seguinte 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}

Se eu incluirhyperref explicitamente, então tudo funciona, exceto que eu receboeste aviso. Não é um problema, mas prefiro evitá-lo e usar apenas hypersetupas opções adicionais para hyperref.

Além disso, se eu omitir amsmath, tudo funcionará também. Suponho que cada pacote sobrescreva parcialmente as configurações um do outro...

Se isso for um bug, onde devo reportá-lo?

Responder1

Carregarcleveref sempreafter hyperrefcomo uma das poucas exceções onde os pacotes devem ser carregados depois hyperref!

Fazendo isso na ordem errada, a counterinformação é sobrescrita e \autorefnão consegue ser capturada pelo contador, ou seja, o rótulo é 'indefinido', levando a referências erradas ou ??como saída.

\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}

informação relacionada