北海道大学 大学院工学院 応用物理学専攻 応用物理学コース English version
光量子物理学研究室 Laboratory of Nonlinear Optics and Laser Physics

光量子Tips - 論文中の図

(2014/12/13作成開始)
ここでは卒業論文を書くために使うTeX(テフ)の図の挿入方法について説明します。

速習・TeX用の図を作る(Illustrator編)

すこし、本文の内容が分かりづらいので、Illutrstorで作った図をTeX文章の中に表示させる一連の作業をまとめます。

作業工程一覧

  1. PDF形式で保存
  2. TeX文章内でfigure環境を書く

トラブルシューティング

  1. 画像が表示されない
    まず、プリアンブルに"\usepackage[dvipdfmx]{color}"が書かれているか確認しましょう。書かれていない場合は、付け足してください。
    それでも上手くいかない場合は、PDFのバージョンを1.4に下げて保存してみてください。
  2. 画像の大きさが指定した大きさとは違う・はみ出している・小さすぎる
    その画像用のxbbファイルを作りましょう。

TeXにおける図

図の種類

TeXでは様々な画像ファイルを文章中に表示できます。そのうち、一般的な物(JPEG, PNG, PDF, EPS)の特徴をまとめたものを表1に示します。

表1 TeX(正しくはdvipdfmx)で扱える画像の種類とその向き不向き
形式JPEGPNGPDFEPS
種類ラスターイメージ(「座標(0,0)は赤、座標(0,1)は緑」などピクセルごとの色を記録)ベクターイメージ(「座標(0,0)から座標(100,100)に赤色の直線を描く」など図形情報を記録)
写真△~○××
比較的簡単な絵△~○
図形で構成される図×
bbファイル or Bounding Boxの情報必要不要(?)
備考-dviからPDFを変換する際に時間がかかる。

卒論を作る際にお勧めな図のファイル形式はPDFとPNGです。(写真を載せる場合はJPEGがよいです。)EPSは従来のTeXの文章作成に良く使われてきたファイル形式ですが、EPSは使わない方がよいです。(詳しく知りたい場合はは参考文献[1]をお読みください)

PDF形式で図が保存できるソフトには、InkscapeやAdobe Illustratorなどがあります。Inkscapeは無償で使えるオープンソースソフトウェアですので、誰でもPDF形式の図が作れます。

図を保存するときの注意(pdf)

ここの内容はpdfで作成した画像がうまく表示されないときに試してみてください。デフォルトのバージョン(PDF 1.5)で保存しても通常は上手く表示されます

PDF形式で図を保存する際にはPDFのバージョンに注意しなければならない時があります。PDFで作成した画像がうまく表示されないときはPDFバージョンを1.4(Acrobat 5)以下にして保存すると表示されるようになることがあります。(これは、PDFのバージョン1.4と1.5の間が大幅に異なっており、1.4時代につくられたものを利用している場合、1.5以降のPDFがうまく読み込めないために起こる問題のようです[8])

Inkscape(無償)とAdobe Illustratorでの保存時の設定を図1図2にそれぞれ示します。

図1 InkscapeでPDF形式で保存をしたときに現れる設定ボックス。PDFのバージョンを必ず1.4にしなければならない。

図2 Adobe IllustratorでPDF形式で保存をしたときに現れる設定ボックス。PDFのバージョンを必ず1.4にしなければならない。

ブリアンブルに必要な情報

画像を表示させるためには、プリアンブルに幾つかのスタイルファイルを読み込ませる必要があります。コード1の内容がプリアンブル部にあるかを確認し、ない場合・少し異なる場合は、適宜追加・修正をしてください。(詳しく知りたい場合はは参考文献[1],[2]を参照してください。)

コード1 プリアンブル部に必要な命令(プリアンブル部とは、¥documentclassから¥begin{document}の間の部分)
\usepackage[dvipdfmx]{graphicx}
\usepackage[dvipdfmx]{color}

BoundingBoxの情報の取得法

TeXで画像を表示させるときには、「画像の大きさ」をコンパイラに教えなければなりません。TeXに画像の大きさを伝えるには2つの方法があり、一つは、bbファイル(xbbファイル)を用意することで、もう一つは、\includegraphics命令のオプションでBounding Box情報を書くことです。

ここでは、extractbbというプログラムを用いて、xbbファイルを作り出す方法を紹介します。(参考文献[1]に詳しく書いてありますが、この方法が最も現在のTeXの作法として正しいものです。)xbbファイルは表示させたい画像ごとに作る必要があります。

例として、"schloss.jpg"(図3)というファイル用のxbbファイルを作り出す方法について説明します。(例ではJPEG形式を取り扱いますが、他の形式でも方法は同じです。)

図3 "schloss.jpg"

まず、テキストエディタ(メモ帳、Terapad秀丸など)でコード2に書かれた内容をxbbファイルを作り出したい画像ファイルがある場所と同じ所(同じディレクトリ)に"extract.bat"というファイル名で保存してください(図4)。保存する際の注意として、ファイル形式を「すべてのファイル(*.*)」とすることを忘れないでください。(拡張子が.batであることが大事です。)このファイルは、xbbファイルを生成するときに用いるextractbbというプログラムを起動するための「バッチファイル」と呼ばれるものです。

ここでは、"schloss.jpg"用のxbbファイルを作るため、コード2の1行目の後半(extractbbの後)がschloss.jpgとなっています。このファイル名部分を適宜変えてください。(注:日本語ファイル名の場合は""(ダブルクオーテーション)で囲む必要があります。例:extractbb "図.jpg")

コード2 extract.batの内容 (注:日本語ファイル名の場合は""(ダブルクオーテーション)で囲む必要があります。例:extractbb "図.jpg")
extractbb schloss.jpg
pause

図4 保存するときには必ずファイル形式を「すべてのファイル(*.*)」として、xbbファイルを生成したい画像(文章中に表示させたい画像)と同じディレクトリに保存してください。

さて、図5のように"extract.bat"というバッチファイルができるのでこれを実行します。"extract.bat"をダブルクリックしてください。すると、図6のようにコマンドプロンプトが表示され自動的にxbbファイル(schloss.xbb)が生成されます。(コマンドプロンプトは、何れかのボタンを押すと閉じますので、何れかのボタンを押してください。)

図5 作成した"extract.bat"をダブルクリック

図6 自動的に"schloss.xbb"が生成される

さて、これで目的のxbbファイルが生成されました。このファイルの中身はテキストエディタで読むことができます。(開き方:図7,図8)

図7 生成されたxbbファイルの見方(一例)

図8 生成されたxbbファイルの内容

図8の赤枠で囲まれた内容がBoundingBoxの情報です。

生成したxbbファイルをTeXが読み込む画像ファイルと同じ場所(ディレクトリ)に置けば、自動的にTeXはxbbファイル内のBoundingBoxの情報を読み込んでくれて、画像が(作成者が意図した)適切な大きさで表示されます。ほかにも、¥includegraphicsのbbオプションでBoundingBoxの情報を伝えることができます。

図を表示する

figure環境

TeXの本文内で図を表示するのには基本的にfigure環境を用います。ここでは、その書き方について説明します。

コード3がfigure環境を用いた図のひな型です。

コード3 figure環境のひな型(例)
\begin{figure}[tbp]
\centering
\includegraphics[width=0.5\hsize]{schloss.jpg}
\caption{どこかの美しいお城\label{お城の図}}
\end{figure}

figure環境で表示される図の位置はTeXコンパイラによって適宜決定されます。すなわち、製作者が図の位置を細かく指定できません。しかし、卒論においては、TeXコンパイラが決めた図の位置に従うのが適切です。1行目の[tbp]は図が置かれる位置の優先順位について記述しています。詳しく知りたい場合は、参考文献[3]などをご覧ください。

2行目の¥centeringは図を中央ぞろえさせるための命令です。

3行目で図("schloss.jpg")を読み込んでいます。画像ファイル名だけが書かれている場合は今書いているTeXファイルと同じ所にその画像および、xbbファイルが存在しなければなりません。例えば、TeXファイルがあるディレクトリの中の"image"フォルダ内に画像ファイル("schloss.jpg")とそのxbbファイルがある場合は、

\includegraphics[width=0.5\hsize]{image/schloss.jpg}

と書くことができます。このようにして、TeXファイルが存在するフォルダ内にファイルがあふれかえらないようにすることが可能です。

また、xbbファイルが無くても、

\includegraphics[width=0.5\hsize,bb= 0 0 320 240]{image/schloss.jpg}

とBoungingBoxの情報を直接打つことができます。(BoundingBoxの情報の取得方法については、BoundingBoxの情報の取得法を参照してください。)

[...]の中のwidth=0.5\hsizeは、「表示する画像の横のサイズが横幅(紙の横幅ではなく、分子ようが表示される領域の横幅)の0.5倍になるように表示せよ」という意味の命令です。詳しくは、参考文献[3]などをご覧ください。

4行目は図のキャプションの設定と¥refで参照するためのキーの設定です。¥labelコマンドは必ず¥caption{...}の中で行ってください[4]

図を複数並べたいときは参考文献[3]を、1ページ内に表示できる図の最大数を増やしたい場合は参考文献[5]を、さらに図の表示について詳しく知りたい場合は参考文献[6][7]をご覧ください。

¥ref

最後に、¥refを用いた図の引用方法について説明します。

コード3が既に本文に書かれているとして説明を行います。この図を本文中で引用する場合は、

私は、とあるお城に行った。その時、図\ref{お城の図}の写真を撮った。なんて美しいお城なのだろう。

のように書きます。こうすると、TeXコンパイラが自動的に、"¥ref{お城の図}"を図番号に変換してくれます。このため、文章を書きすすめる途中で、図の数が増えたり減ったりしても、本文の図番号を変えずに済み、効率的です。

参考文献

  1. 日本人のための LaTeX タブー集 ~画像読込編~
  2. 使ってはいけない LaTeX のコマンド・パッケージ・作法
  3. 物理のかぎしっぽ 図の挿入
  4. 最後から二番目の真実 texで図の参照番号にずれが出て困った
  5. 図表が後ろのページにずれるのを防ぎたい
  6. TeX Wiki TeX入門/図表
  7. TeX Wiki http://denki.nara-edu.ac.jp/~yabu/soft/tex/tex.html
  8. マクロツイーター出力 PDF のバージョン(とか)を指定する