相互参照したい(\ref

文書内で相互参照するためには、以下のコマンドを使います。

\label{ラベル名}
\ref{ラベル名}
\pageref{ラベル名}

ラベルをつける(label

まず、相互参照の元にラベルをつけます。 参照したい番号を出力するコマンドの直後に\label{ラベル名}コマンドを追加してください。

\section{相互参照したい}
\label{sec:ref}

\subsubsection{ラベルをつける}
\label{sec:label}

章・節番号を参照したい(ref

\ref{sec:ref}章に書きました。
\ref{sec:label}節にも書きました。

ページ番号を参照したい (pageref

\pageref{sec:ref}ページに書きました。
\pageref{sec:label}ページに書きました。

相互参照で自動生成されるファイル

ラベルをきちんと参照をするために、複数回(最低2回)はコンパイルする必要があります。 そうしないと、相互参照した箇所が「??」などになってしまいます。 なぜ複数回のコンパイルが必要なのか、しくみを理解しておくとよいと思います。

1回目のコンパイル

すべてのラベルのデータを含む.auxファイルが自動で作成される

2回目のコンパイル

.auxファイルのデータを.texファイルと組み合わせて、ラベルの参照番号を取得する

n回目のコンパイル

「??」がなくなるまでコンパイルを繰り返す

このようなめんどくさい手順は、パソコンに任せるのが一番です。 TeXLiveにはlatexmkというコンパイルツールが付属しています。 レポートの提出直前などで急いでいるときほど、こういったうっかりミスをしがちなので、あらかじめlatexmkを設定して常用しておきましょう。 簡単な設定方法は「タイプセットしたい(latexmk)」にまとめました。