相互参照したい(\ref
)
% 参照キー(=ラベル)を設定
\label{キー}
% 参照番号を取得
\ref{キー}
% 参照ページ数を取得
\pageref{キー}
相互参照では、参照先に設定したラベルを参照元で呼び出して使います。
\label
コマンドで参照先にラベル(一意のキー)を作成します。
\ref
で参照番号を取得できます。
\pageref
で参照ページを取得できます。
見出しを参照したい(\ref
)
\section{相互参照したい}
\label{sec:キー}
\subsubsection{ラベルをつける}
\label{subsec:キー}
% また別のセクション
相互参照については\ref{sec:キー}章に書きました。
参照先を作成するコマンドは\ref{subsec:キー}節にも書きました。
見出しを参照する場合は、
章見出し(\section
)、節見出し(\subsection
)コマンドのあとにラベルを設定します。
\pageref{sec:キー}ページに書きました。
\pageref{subsec:キー}ページに書きました。
また\pageref
コマンドでページ番号を取得できます。
ヒント
管理のしやすさ向上のため、ラベル名にはsec:
やsubsec:
などのように、
定義した環境の接頭辞をつけることが多いみたいです。
LaTeX内部では、環境ごとに参照カウンターが存在するので、必須ではありません。
図を参照したい
\begin{figure}
\centering
\includegraphics[オプション]{ファイル名}
\caption{キャプション}
\label{fig:キー}
\end{figure}
それについては図\ref{fig:キー}にまとめました。
figure
環境の中でラベルを定義すると、図の番号を参照できます。
\ref
自体は番号を返すため「図」などを自分で書く必要があります。
参照カウンターしたい
\newcommand{\figref}[1]{図\ref{#1}}
\newcommand{\tabref}[1]{表\ref{#1}}
\newcommand{\equref}[1]{式(\ref{#1})}
\newcommand{\secref}[1]{第\ref{#1}章}
これは、僕が修論で実際に使っていた設定です。 「図」「表」「式」などの入力を省略したかったので、 \newcommandで自作コマンドを定義しました。
相互参照のしくみ
相互参照を処理するために、複数回(最低2回)のコンパイルが必要です。 そうしないと、相互参照した箇所が「??」のままになってしまいます。
なぜ複数回のコンパイルが必要なのか、 相互作用のしくみを理解しておくとよいと思います。
- 1回目のコンパイル
文書内にある相互参照のラベル(
\label
)を認識し、すべてのラベルのデータなどを含む補助ファイル(.aux
ファイル)を生成する- 2回目のコンパイル
.aux
ファイルの内容を、メインの.tex
ファイルと組み合わせて、ラベルの参照番号を取得する- n回目のコンパイル
「??」がなくなるまでコンパイルを繰り返す
このような処理は、パソコンに任せるのが一番です。
TeXLiveにはlatexmk
というツールが付属しています。
簡単な設定方法は「タイプセットしたい(latexmk)」にまとめました。
レポートの提出直前などで急いでいるときほど、
こういったうっかりミスをしがちです。
はじめからlatexmk
を設定し、常用しておきましょう。