未定義の参照・ラベル重複

番号が出るべき所に ??(文献なら [?])が表示されたら、相互参照が未解決です。原因はほぼ——コンパイル回数の不足、\label の欠落・綴り違い、または \label の位置ミス。さらに、ラベルの重複は別の警告を出します。

?? の意味

\ref\pageref前回の実行 が書いた .aux を読みます。だから初回(やラベルを足した直後)は値が分からず ?? になり、ログに「Rerun to get cross-references right」と出ます。\cite も同様に [?] になります。対処はもう一度コンパイル——通算 2 回(latexmk 等のビルドツールは自動でやってくれます)。2 回流しても ?? が残るなら、それは本当にラベルが見つからない状態です。

ラベルが見つからない

  • \ref{x} に対応する \label{x}無い/綴り違い
  • 図表では \label\caption の直後(float の中)に置く——前や外だと番号がずれて章番号などを拾う。
  • 文献が [?] のまま → bibtexbiber を実行して再コンパイル、またはキーが .bib に無い。
  • ラベルは一貫した接頭辞(fig:sec:eq:)で付けると整理・検索しやすい。
latex
\begin{figure}
  \includegraphics{fig.pdf}
  \caption{グラフ}
  \label{fig:graph}   % \caption の直後に / right after \caption
\end{figure}
... 図~\ref{fig:graph} を参照。

ラベルの重複

LaTeX Warning: Label 'x' multiply defined は、同じ \label{x} が 2 か所にある警告で、参照先が曖昧になります。ラベルを一意に(接頭辞や連番で)しましょう。コピー&ペーストで複製したラベルが原因のことが多いです。