今回は図の挿入、つまり画像ファイルを文書に埋め込む方法を扱います。

ベクターイメージとラスターイメージ

画像ファイルは大まかに分けて2種類あります。それが、ベクターイメージとラスターイメージです。詳しい説明はWikipediaで分かりやすくまとまっているので、そちらを見てください。

ベクターイメージ – Wikipedia
http://ja.wikipedia.org/wiki/ベクターイメージ

簡単に言うと、拡大しても画像が劣化しないのがベクターイメージです。例えばpdfファイルは画像ファイルではないですがベクター形式なので、正式な手順で作られたものはいくら拡大しても文字が潰れません。

ベクターイメージを作成できるソフトウェアでは、AdobeのIllustratorなどが有名ですね。フリーソフトだと、Inkscapeがメジャーなようです。

Inkscape
http://www.inkscape.org/index.php?lang=jp

LaTeXに対応する画像形式

LaTeXで画像を埋め込むときに最も親和性が高いのは、eps画像です。これはベクターイメージで、IllustratorInkscapeで作れます。

もちろん、普通のjpg画像やpng画像を挿入することも出来ます。実験器具から画像データが出力される場合などはこちらの方が便利ですね。

ここで、LaTeXによる画像の扱い方を見てみましょう。LaTeXではコンパイルしたときに出来るdviファイルは、device-independent(デバイスに依存しない)の略です。実は、LaTeXでコンパイルが成功したからといってdviファイルがうまく表示出来るかどうかはわかない ということに注意が必要です。dvioutやdvipdfmxが画像形式に対応していないと、表示出来なかったりpdfに埋め込めなかったりします。つまり、dviファイルを表示・変換するソフトウェアの方が扱いたい画像形式に対応しているか も大事なのです。

ちなみに、dvioutはデフォルトでepsを、プラグインを導入すればjpgやpng、tiff形式の画像を表示することが出来ます。dvipdfmxコマンドはepsやpng,jpg,pdfといった形式に対応しています。

レポートを書く程度だったら、おそらくjpgやpng画像で埋め込むのが一番楽です。ちょっとこだわってベクターイメージを入れたいのなら、eps画像を使うのも良いでしょう。gnuplotなどのグラフ作成ソフトではeps形式で画像を出力できるものもあります。

dvioutのプラグインの導入の仕方は以下が参考になります。

Windows95/98/Me/NT/2000/XP におけるdviout のインストール
http://akagi.ms.u-tokyo.ac.jp/tex_dvioutw.html

Windows Vista,Windows 7でも同様の方法で導入可能です。

下準備

実際に画像を挿入してコンパイルする前に、ひとつ下準備が必要です。画像のboundingbox というものを設定しなければいけません。これは、画像ファイルのサイズのようなものだと思って下さい。通常は画象ファイルごとにbbファイルに保存されます。

まずはtexファイルと同じフォルダに画像ファイルを入れます。例えばfig1.pngというファイルだったとしましょう。そして、コマンドプロンプトから

ebb fig1.png

というコマンドを実行してください。そうすると、fig1.bbというファイルが出来ているはずです。これに、fig1.pngのboundingboxが記述されます。この作業は、eps画像の場合には必要がない場合があります。

埋め込み

では、実際に書いていきましょう。どのフォーマットの画像を挿入するにしても、graphicxパッケージが必要です。レポートを書くのであればpdfにして印刷・保存する人が殆どだと思われるので、dvipdfmオプションも付けておきましょう。(dvipdfmxではない)

\usepackeag[dvipdfm]{graphicx}

そして、画像を挿入したい場所で \includegraphics命令 を使います。

\includegraphics[width=8cm]{fig1.png}

このとき、オプションで横幅を指定できます。縦幅は画像の比率に従って適当な長さになります。元画像の比率を変えてもかまわないという人は、縦の幅も変えることが出来ます。その場合は、カンマで区切って指定してください。

\includegraphics[width=8cm,height=8cm]{fig1.png}

画像にキャプションを入れたり図番号を付けたりしたい場合には、figure環境 に入れます。

\begin{figure}[htbp]
\begin{center}
\includegraphics[width=8cm]{fig1.png}
\end{center}
\caption{サンプル画像}
\label{fig:サンプル}
\end{figure}

位置オプションや、caption、labelの付け方は表と同じです。


ためしに、画像を挿入したpdfを作ってみたのでコードの例と照らし合わせて参考にしてみてください。左のような画像をeps形式で埋め込みました。アップロードしておくので、興味のある人はダウンロードして使ってみて下さい.
texファイル+画象ファイル(eps)

\documentclass[a4j,11pt]{jsarticle}
% amsfontsは下の方で使うmathbbに必要なパッケージ
\usepackage{amsmath,amsfonts}
\usepackage{graphicx}
% タイトル設定する
\title{mandelbrot集合の紹介}
\date{}
% ページ番号を出さない
\pagestyle{empty}
% topmarginを削る
\setlength{\topmargin}{-2cm}
\begin{document}
% タイトルを表示するコマンド
\maketitle
% 空白の調整 \vspaceは縦方向の余白、\hspaceは横方向の余白を調整できる
\vspace{-1cm}
% mathbbは白抜きの文字を描くための命令
以下のように定義される複素数列 $z_n$ を考える.ただし, $c \in \mathbb{C}$ である.
\begin{align*}
z_{n+1} &= z_n^2 + c \\
z_0 &= 0
\end{align*}
これが $n \rightarrow \infty$で発散しないという条件を満たす複素数 $c$ 全体が作る集合をmandelbrot集合と言う.

この集合を複素平面上に描画すると,フラクタル図形になることが知られており, CGアートではその黎明期から題材になってきた.今回はgnuplotを利用して3次元図形として描画させてみたものを図 \ref{mandelbrot集合} に示す.

mandelbrot集合は,色を付けて描写すると大変美しい図形が出来るので、リアルタイムで描画してくれるフリーソフトも多い.一度試してみると良いだろう.
% 今回は貼り付ける画像の大きさを見て、bottomに配置することにした.
\begin{figure}[b]
% width を \textwidth にすることで、横の長さを文書領域目一杯に設定する
\includegraphics[width=\textwidth]{mandelbrot.eps}
\caption{mandelbrot集合のgnuplotによる描画例}
\label{mandelbrot集合}
\end{figure}
\end{document}

ベクターイメージであるeps画像を挿入したので、拡大しても画像が劣化しないことを確認してください.

知らない命令もあるかと思いますが、コメントで解説を入れておきました. 興味のある人は、ぐぐってください。


これで一連のLaTeX入門シリーズは終わりです。是非LaTeXを身につけて常用するようになってください。

,

今回は表の使い方です。

表を作る

表を作る時は、tabular環境 を使います。

まずは表の列数、仕切りの線と要素の位置を決めます。たとえば、 4列で,最初の1列が中央揃え、次の一列が左揃え、残りが右揃え、すべてに仕切り線をいれたい とします。その場合は、 tabular環境 を始めるときにオプションで以下のように設定しましょう。

\begin{tabular}[|c|l|r|r|]

行数を増やしたいときは、 \\ で改行すれば自動で増やしてくれます。このとき、各行の間に仕切り線を入れたいときには、 \hline という命令を使います。これは、一つにつき一本線を引いてくれるので、多重に線を引きたいときには何個か続けて命令を書いてください。

一行の中の各要素は &記号 で区切ります。

\begin{tabular}{|c|l|r|r|}
\hline
11 & 12 & 13 & 14 \\ \hline
21 & 22 & 23 & 24 \\ \hline
\end{tabular}

ふつうLaTeXで表を文書中に配置するときには、tabular環境 をさらにtable環境 の中に入れます. また、中央に表示したい場合はcenter環境 も併用します。表に対してキャプションを付けたいときには\begin{table} から\begin{tabular} の間に\caption{} という命令を挿入して指定して下さい。

\begin{table}
\begin{center}
\caption{test table} %これがキャプション
\begin{tabular}{c|c|c|c}
\hline \hline
11 & 12 & 13 & 14 \\ \hline
21 & 22 & 23 & 24 \\ \hline
31 & 32 & 33 & 34 \\ \hline
41 & 42 & 43 & 44 \\ \hline
\end{tabular}
\end{center}
\end{table}

今回はキャプションが ” Table 1: “ から始まっていますが、これはドキュメントクラスで指定されている形式、もしくはプリアンブル部で再定義した形式に従います。

table環境 では、数式の時と同じように 相互参照 が利用出来ます。 ただし、注意しなければならないのが表では数式と違い、ラベルが付くのはキャプションに対して である点です。なので、\caption{} よりも先に \label{} を付けてしまうと、正しい番号が取得できなくなってしまいます

\begin{table}
\begin{center}
\caption{test table}
\label{test-table} %必ずcaptionの後に書くこと!
\begin{tabular}{c|c|c|c}
\hline \hline
11 & 12 & 13 & 14 \\ \hline
21 & 22 & 23 & 24 \\ \hline
31 & 32 & 33 & 34 \\ \hline
41 & 42 & 43 & 44 \\ \hline
\end{tabular}
\end{center}
\end{table}

文書中の表の配置

表を配置する位置を決めるには、table環境でオプションを指定します。オプションは以下の4種類を使えます。

  • h  ソースコードに入力した位置(here)に表示
  • t   ページの一番上(top)に表示
  • b   ページの一番下(bottom)に表示
  • p   図表だけのページ(page)を新たに作成して表示

たとえば、以下のようにします。

\begin{table}[htbp]

このようにすると、LaTeXはまず hオプション で表示しようとし、それが不可能だった場合は tオプション で表示しようとし、という動作をします。

LaTeXでは、図表の配置に関して様々な制限があり、なかなか思い通りに配置できないこともありますが工夫してみてください。

面倒なので専用ソフトを使おう.

ここまで見てきて分かると思いますが、LaTeXで表を作るのはとても面倒です。簡単な表ならまだしも、大量のデータを表にしたい時は大変です。

そこで、Excel風の操作感で簡単に tabular環境 のソースコードを生成してくれるソフトを無料で公開して下さっている方がいるので、利用させてもらいましょう。

Visual Tabular
http://homepage2.nifty.com/~sugi/#release

使い方は非常に簡単なので、Readmeを見てください。

また、既にExcelにデータがある場合はExcel2Latexも有用です。

Excel2LaTeX Vector
http://www.vector.co.jp/soft/win95/writing/se091052.html

表が横にはみ出る

LaTeXでレポートを作成していると、表が文書領域をはみ出してしまうことが多々あります。

そのような時には、\scalebox を用いて表を縮小しましょう。 これにはgraphixパッケージが必要です。たとえば以下の用にします。

\scalebox{0.6}[0.8]{
\begin{tabular}{|c|c|c|c|}
\hline
11 & 12 & 13 & 14 \\ \hline
21 & 22 & 23 & 15 \\ \hline
\end{tabular}
}

上の例では、{0.6}が横方向の倍率で、[0.8]が縦方向の倍率です。縦方向の倍率は省略することもできます。これで横方向が収まるように調整しましょう。

,