この問題はかなり珍しいように思えますが、中規模のドキュメントでこの問題に遭遇したため、どのパッケージの組み合わせが原因であるかを特定するのにしばらく時間がかかりました。
をロードするとamsmath
、(cleveref
hyperref
暗黙的に)ではpdfcomment
、数式にref
/ をautoref
追加すると機能しなくなり、LaTeX でReference ... on page 1 undefined
エラーが発生します。次の 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}
もし私が含めるならhyperref
明示的に、その後、すべてがうまくいきますが、この警告。 大きな問題ではありませんが、これを避けて、hypersetup
の追加オプションのみを使用することをお勧めしますhyperref
。
また、 を省略してamsmath
もすべて動作します。各パッケージが互いの設定を部分的に上書きしているのだと思いますが...
これがバグである場合、どこに報告すればよいでしょうか?
答え1
負荷cleveref
いつもhyperref
!の後にパッケージをロードする必要がある数少ない例外の 1 つですhyperref
。
間違った順序で行うと、counter
情報が上書きされ、\autoref
カウンターを把握できなくなります。つまり、ラベルが「未定義」になり、間違った参照または??
出力が発生します。
\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}