PR

【LaTeX】相互参照の方法~label,refコマンド等~

LaTeX
記事内に広告が含まれています。

\LaTeX において,\label{} コマンドや \ref{}, \eqref{} コマンドなどを用いた相互参照の方法を解説します。

参照のため,まずlabelコマンドでラベルを貼ろう

まずは後で参照するために,参照するための名称を決めねばなりません。そのためには \label{ラベル名} コマンドを用います。

名前を付けることができるのは,節・別行立て数式・表・図・箇条書きの番号・脚注・定理などです(定理にはamsthmパッケージなどが必要)。以下がその例です。ラベルをしたこと自体が出力に影響することはありません。

\section{セクション名}\label{ラベル名}
\subsection{セクション名}\label{ラベル名}

\begin{equation}\label{ラベル名}
  数式
  %alignなどの環境は一行毎に番号を振るので,
  %ラベルを付けたい行の末尾にラベルをかくこと。
\end{equation}

\begin{table}
  %上手くいかない場合はcaption内にlabelを書いてみる
  \caption{キャプション}\label{ラベル名}
  テーブル
\end{table}

\begin{figure}
  %上手くいかない場合はcaption内にlabelを書いてみる
  \caption{キャプション}\label{ラベル名}
  図
\end{figure}

\begin{enumerate}
 \item 一つ目\label{ラベル名}
 \item 二つ目\label{ラベル名}
\end{enumerate}

文章\footnote{脚注\label{ラベル名}}

ラベル名は一意でなくてはなりません。もちろん,後で参照するところのみにラベル名をつければよいです。

よく言われるのは,名前を付ける際は数式なら \label{eq:ラベル名} などのように,ラベルの種類を分かりやすいようにしておくことです。必須ではありませんが,例えば以下のようにしてもよいでしょう。

ラベルの種類名称の例
section\label{sec:ラベル名}
subsection\label{subsec:ラベル名}
数式\label{eq:ラベル名}
\label{tab:ラベル名}
\label{fig:ラベル名}

ラベルを付けたものの参照方法

ラベルを付けたものを参照するには,\ref{ラベル名} コマンドを用います。「ラベル名」にはあらかじめ上でつけておいたラベル名を使用します。

これによって,その節番号や定理番号などを参照することが可能です。この際,一度コンパイルしただけでは ??と出力されるため。コンパイルは複数回せねばなりません。

数式を参照する際は,\ref{ラベル名} ではなく,amsmath パッケージに定義されている \eqref{ラベル名} コマンドを用いる方が良いでしょう。これにより,適切に括弧をつけて出力してくれます。括弧をつけたくない場合は,mathtools パッケージに \refeq{ラベル名} というコマンドもあります(→【LaTeX】数式番号に関するあれこれ)。

また,\pageref{ラベル名} コマンドを用いることで,その内容があるページ数を出力することも可能です。たとえば,以下のような感じです。

\pageref{eq:ラベル名}ページで述べた\eqref{eq:ラベル名}式は,

よく言われるのは,参照するラベルの前後で改行すべきでないということです。たとえば,

By Theorem \ref{ラベル名}, we have

としてしまうと,Theorem とラベル名で改行されてしまう可能性があります。これを防ぐには

By Theorem~\ref{ラベル名}, we have

のように,改行禁止のスペース ~ を入れることです。スペースについては,【LaTeX】水平方向の空白(スペース)のコマンド11個でも解説しています。

関連する記事