Este problema parece bastante exótico, pero lo encontré en un documento de tamaño mediano y me tomó un tiempo identificar qué combinación particular de paquetes era responsable.
Cuando cargo amsmath
, cleveref
y hyperref
(implícitamentevía pdfcomment
), ref
/ autoref
a una ecuación ya no funciona, es decir, LaTeX arroja un Reference ... on page 1 undefined
error. Consulte el siguiente 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}
si incluyohyperref
explícitamente, entonces todo funciona excepto que obtengoesta advertencia. No es un factor decisivo, pero preferiría evitarlo y simplemente usarlo hypersetup
para las opciones adicionales para hyperref
.
Además, si omito amsmath
, todo funciona también. Supongo que cada paquete sobrescribe parcialmente la configuración de cada uno...
Si se trata de un error, ¿dónde debería informarlo?
Respuesta1
Cargacleveref
siempreafter hyperref
como una de las pocas excepciones en las que los paquetes deben cargarse después hyperref
.
Al hacerlo en el orden incorrecto, la counter
información se sobrescribe y \autoref
no se puede controlar el contador, es decir, la etiqueta es "indefinida", lo que genera referencias incorrectas o ??
resultados.
\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}