図(EPSファイル)を貼りたい

テキスト中に図を貼りつけるときの基本パターンです。

TeXで図を扱う命令には、結構いろいろな流儀があります。特にEPS形式(Encapsulated PostScript)であれば、単に\epsfile{ファイル名, オプション}という使い方ができます。この場合にはepsbox.styを読みこむ必要があります。

実はepsbox.styで用意された命令は、LaTeX2.09などでも使えるというメリット(?)があります。ですが、LaTeX2eではgraphics.styで同様の機能が用意されています。それが\includegraphics命令です。私は普段、graphics.styの拡張版であるgraphicx.sty パッケージを使っています。\scaleboxで倍率を指定すれば、縦横の比率をそのままに拡大・縮小することができます(※1)。


プリアンブル /
\usepackage{graphicx}

図を貼る /
\begin{figure}[tbp]
\begin{center}
\scalebox{0.25}{\includegraphics{file.eps}}
\end{center}
\caption{キャプション}
\label{fig:label}
\end{figure}


このときに、\labelは必ず\captionの後に書くようにして下さい。この順序を間違えると、後で図の番号を引用するときに、ぜんぜん無関係な番号が表示されてしまいます。

複数の図を左右に並べるときはminipage環境を使います。


2枚の図を左右に並べる /
\begin{figure}[tbp]
\begin{minipage}{0.47\textwidth}
\begin{center}
\scalebox{0.5}{\includegraphics{mode-1.eps}}
\par
{(a) モード(I)}
\end{center}
\end{minipage}
\hfill
\begin{minipage}{0.47\textwidth}
\begin{center}
\scalebox{0.5}{\includegraphics{mode-2.eps}}
\par
{(b) モード(II)}
\end{center}
\end{minipage}
\caption{モデル(I)の固有モード.}
\label{fig:model-1}
\end{figure}


この入力は「図1(a)」「図1(b)」のように引用する場合に使います。もし、「図1」「図2」と引用したい場合には、それぞれのminipageの中に\captionと\labelを書けば良いことになります。


関連のない図を2枚並べる /
\begin{figure}[tbp]
\begin{minipage}{0.47\textwidth}
\begin{center}
\scalebox{0.5}{\includegraphics{case-1.eps}}
\caption{モデル(I).}
\label{fig:model-1}
\end{center}
\end{minipage}
\hfill
\begin{minipage}{0.47\textwidth}
\begin{center}
\scalebox{0.5}{\includegraphics{case-2.eps}}
\caption{モデル(II).}
\label{fig:model-2}
\end{center}
\end{minipage}
\end{figure}


これならば、図の表題は「図1:モデル(I)」、「図2:モデル(II)」のようになります。

なお、世の中には「図をm行n列に配置する」という、一見神業のようなスタイルファイルfigmn.styが存在します。ですが、私の見た限りでは、図ごとにキャプションをつけたりサイズを変えることはできないようです。

以下は体裁にこだわりたい人のためのコメントです。
私は普段、minipageの幅の合計が、ページ全体の幅よりも少し小さくなるようにしています。上の例では0.47\textwidthの幅のminipageを2つ並べているわけですから、2つあわせて、ページの幅の94%ということになります。一方、「図をめいいっぱいに貼りたい!」ときには0.5\textwidthまで大きくすることができるわけですが、2つの図のキャプションが長いときに差が現れます。つまり、めいいっぱいまでminipageを広げてしまうと、左右の図のキャプションがつながってしまって見にくくなるのです。
もう一点、\hfill命令についてですが、これを用いると2つの図を「できるだけ」左右に分けて表示することができます。もし、ページの幅に比べて図の幅が小さい場合には、ページの真ん中に大きな空白ができてしまい、割りとみっともないことになります。そのような場合は\hfillを用いない方が体裁が良いでしょう。

(2001.8.4)



(※1) ここでは図を真ん中寄せにするために \begin{center} 〜 \end{center} を使っています。この場合,上下に空白が入ります。center環境の代わりに \centering を使うと、余分な上下の空白は入りません(\centering を使う方が筋がよいのではないかと、最近は思います)。(2012.3.19 追記)

Back