LaTeX

LaTeXを使ったレポート作成のあれこれ②

え?前回の①の作成が2020年の1月5日って本当ですか…。やばいですね!

というわけで、約4か月ぶりの投稿です。では、さっそく参照\refに関して書いていきます。

\refコマンドとは

本文中で「図1に〇〇の原理を示す。」や「表2に示す〇〇の測定データより~」や「式(1)に代入して〇〇を得る。」などを記述する場合、あの図の番号なんだっけ…となることがある。それを解消するには\refコマンドを使うとよい。

使い方

例えば、コンパイル後のpdfファイルに「図1に〇〇の原理を示す。」と表示したい場合で説明する。まず、figure内に\labelコマンドを書く。必ず\captionコマンド以降に記述する。中括弧{}内部はその図の名前を指定する。例えばfig:figure1とする。この名前は固有の名前である必要があり、そのtexファイル内で競合しないようにする(つまり同じ名前をつけない)。

\begin{figure}
  \centering
  \includegraphics[サイズ指定]{図1のファイル名}
  \caption{キャプション}
  \label{fig:figure1}
\end{figure}

さて、これで「図1に〇〇の原理を示す。」とtexファイルに書く必要はなくなる。texファイルには

図\ref{fig:figure1}に〇〇の原理を示す。

と書く。「なんだ、長くなって面倒になったじゃないか」となると思うが、\refが本領を発揮するのは、あとで図などを追加した場合。

レポートを書いていると「あの図を追加しようかな…」とか「この図はいらないな…」となることがある。このとき、手打ちで図の番号を書いていた場合、すべての番号をずらしていく必要があり、非常に面倒かつミスが多発する。\refを使っておけば図を追加なり削除するなりするだけで解決する。

ところで、図を例として説明したが、これは数式や表にも用いることができる。つまり、すべての図・表・数式にはラベルをつけて、本文中ではすべて参照すればレポートがサクッと書けるようになる。

ここで一つ注意点があり、数式の参照時に括弧()をつけたい場合は、自分で式(\ref{})のように書いても良いが、amsmath環境を用いている場合は\eqrefを使えば括弧が表示される(refとeqrefの使い分けが面倒だな…)。

labelの命名法

多くの方がすでにやっている命名法だと思うが、図・表・数式にラベルを書く際、その命名は、図では「fig:図の名前」、表では「tab:表の名前」、数式では「eq:数式の名前」とするのが便利である。

参照時の表示の変更

数十ページにわたるレポートでは図などが膨大な量になるため、「章番号.章内における番号」みたいな表記にしたほうがよい。例えば2章の図3では「図2.3」のほうが読みやすい。この変更方法について記す。

例えば図の場合ではプリアンブル部に

\makeatletter
\def\thefigure{\thesection.\arabic{figure}}
\@addtoreset{figure}{section}
\makeatother

と書くだけでよい。

表の場合は、

\makeatletter
\def\thetable{\thesection.\arabic{table}}
\@addtoreset{table}{section}
\makeatother

数式の場合は、

\makeatletter
\def\theequation{\thesection.\arabic{equation}}
\@addtoreset{equation}{section}
\makeatother

とプリアンブルに書く。

まとめ

全ての図・表・数式には必ず\labelでラベルをつけて、本文中では\refで全部参照する!

以上!

ABOUT ME
POM_AK
ガバガバで動けばヨシ!程度のプログラムを書きます