[[TeX入門]]/
[[最初の例>TeX入門/最初の例]]/
[[簡単な数式 (1)>TeX入門/簡単な数式(1)]]/
[[簡単な数式 (2)>TeX入門/簡単な数式(2)]]/
[[各種パッケージの利用>TeX入門/各種パッケージの利用]]/
[[レポート>TeX入門/レポート]]/
[[HTML と LaTeX の比較>TeX入門/HTMLとLaTeXの比較]]/
[[複雑な数式>TeX入門/複雑な数式]]/
図表/
[[文献引用]]/
[[マクロの作成>TeX入門/マクロの作成]]/
[[スライドの作り方(jsarticle 編)>TeX入門/スライドの作り方(jsarticle編)]]

''目次''
#contents

* まずは実習 [#y0bb1fde]

以下に詳しい説明がありますが,まずは簡単な実習として,PNGまたはJPEGの図を挿入してみましょう。

例えば [[apple.png:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/dtp/apple.png]] (426x496)
を挿入するには次のようにします。

 \documentclass{jsarticle}
 \usepackage[dvipdfmx]{graphicx}
 \begin{document}
 
 まだあげ初めし前髮の/林檎のもとに見えしとき/前にさしたる花櫛の/花ある君と思ひけり
 
 \includegraphics[width=5cm]{apple.png}
 
 \end{document}

dvipdfmo またはオリジナルの dvipdfm を使用する場合は次のようにします。

 \documentclass{jsarticle}
 \usepackage[dvipdfm]{graphicx}
 \begin{document}
 
 まだあげ初めし前髮の/林檎のもとに見えしとき/前にさしたる花櫛の/花ある君と思ひけり
 
 \includegraphics[bb=0 0 426 496,width=5cm]{apple.png}
 
 \end{document}

つまり,図を入れるには,まず2行目に

 \usepackage[dvipdfmx]{graphicx}

を付け加え,図を入れたい箇所に

 \includegraphics[width=幅]{ファイル名}


を挿入します。なお “bb” とは “bounding box” を意味しています。

BoundingBox を直接指定する場合は

 \includegraphics[bb=0 0 横ピクセル数 縦ピクセル数,width=幅]{ファイル名}

を挿入します。

これを保存し,まず platex コマンドで処理し,次に dvipdfmx コマンドで処理してPDFにします。
図のファイルも文書ファイルと同じところに保存しておかなければなりません。

このままでは図は文字と同じように左から全角1文字下がったところに入ります。
図を中央揃えしたい場合は,

 \centering
 \includegraphics[width=5cm]{apple.png}

のようにします。すぐ下に文字を入れる場合は

 \centering
 \includegraphics[width=5cm]{apple.png} \\
 林檎の図

のようにします(図番号を入れる方法は以下の解説をご覧ください)。



なお上記の \centering の代わりに \begin{center} 〜  \end{center} で囲む方法でも同様の効果が得られます.その場合にはいくらかの間隔が自動的に挿入されますが,これを余分と判断なさる方は \centering の方を使ってください.参考意見:[[center vs. \centering:http://texblog.net/latex-archive/layout/center-centering/]]

// 妥当ではないというより単に「center 環境の場合には環境の前後にいくらかの
// 空白が入る(list 環境を用いているため)」というのを嫌う人がいる(場合がある)
// という程度のことでは? もちろん,それを嫌うのであれば \centering コマンドを
// 使えばよいというのはそのとおりのなのですが.

* 図表の取り扱いの概要 [#qa85d325]
LaTeX では文書中に図表を配置することができます。一口に“図表"といってもその内容や形式はさまざまです。たとえば、グラフ・写真・イラスト等々を画像ファイルにしたものや、罫線とデータを並べた表をLaTeXで直接記述したもの、同じく表であっても他のソフトウェアなどを利用して画像ファイルとしたものなどです。LaTeX においては、文書に挿入する図表の中身やファイル形式などは設定しだいでさまざまなものに対応できます。LaTeXとしては、その図表を版面(紙面)に配置するためにどれくらいの幅と高さを確保するかだけを問題としていて、その図表がどんなファイル形式を持つのかや、その図表が実際に視覚的なデザインとしての図であるのか、罫線や言語的な要素で作られた表であるのかなどには頓着しません。ファイル形式などが問題となるのは、LaTeXで処理した組版結果を実際に表示したり印刷したりするソフトウェアにおいてです。(このページのほか、[[TeX と「TeX 以外」]]にも解説があります。)

さて LaTeX で文書中に図表を配置するには、いろいろな状況があります。
+ 文書中の、まさにその位置に配置したい
+ 図表番号とキャプションをつけた上で、文書中のまさにその位置に配置したい
+ 図表番号とキャプションが付いていればよく、配置場所はどこでもよい

*** 1番目の状況では、 [#b09fae11]
図表を配置したい場所で \includegraphics 命令を使用します。
 ---- ソースファイル例 ----
 ここで次の図を見てください。
 \includegraphics{図のファイル.png}
 図で赤く示されているのが...
実際にこれで図を取り込むには図のファイル形式に応じた適切な設定が必要となります。このページの後のほうの説明を参照してください。画像ファイルを用いるのではなく、図や表を直接 LaTeX で記述するには、picture 環境や tabular 環境を利用します。picture 環境は簡単な図形を描画できますし、tabular 環境は表を作成できます。
 ---- ソースファイル例 ----
 ここで次の図を見てください。
 \begin{picture}
  ... 描画命令など
 \end{picture}
 図で赤く示されているのが...

 ---- ソースファイル例 ----
 ここで次の表を見てください。
 \begin{tabular}{|r||c|l}
  ... 表の要素など
 \end{tabular}
 図で赤く示されているのが...

*** 3番目の状況では、 [#n82e2ad9]
figure 環境や table 環境を利用します。'''キャプションを“図**”としたければ figure 環境を、“表**”としたければ table 環境を使います'''。LaTeX は、環境の中身が実際に図なのか表なのかは判断しません。
 ---- ソースファイル例 ----
 \begin{figure}
 \label{figA}
 \includegraphics{図のファイル.png}
 \caption{度数分布図}
 \end{figure}
 ここで図\ref{figA}を見てください。
 図で赤く示されているのが...
figure環境で図に番号が自動的に付けられて、キャプションと一緒に「図3:度数分布図」のように図に添えられます。この図番号は \label と \ref を用いて参照されて、本文中で「ここで図3を見てください」のようになるわけです。番号が付いているので図そのものは紙面のどこに配置されても(次のページに飛んでいってしまっても)本文の意味は通るので、LaTeX が改段落や改ページの具合を見ながら適切な位置を選んで配置します。図の配置についても詳しくは後述します。figure環境の中で図を取り込んでいる部分については1番目の状況と同じです。

表組みを画像ファイルとして用意したものを取り込みたい場合は、図の取り込みと同様に \includegraphics 命令を使います。ただキャプションを“表**”とするために figure 環境に代えて table 環境を使用すればよいわけです。画像ファイルとしてではなく、直接 LaTeX で表を記述する場合は、table 環境の中で tabular 環境を用いればよいでしょう。

*** 2番目の状況については、 [#y7adf341]
LaTeX はデフォルトでは対応していません。これをしたい場合はちょっとしたテクニックが必要です。→TeXQ&Aなどで検索してみてください。

//ポスタークラスでは、figureが再定義されて、2番目の状況になっていると
//思います。

*図のファイル形式に応じた記述法・設定法 [#o967961d]

**EPS形式の図の挿入 [#v4efe6a4]

たとえば [[apple.eps:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/dtp/apple.eps]]
というEPS形式の図があったとします.(図をEPS以外の形式で保存している場合もあるかと思います.その場合は[[変換ツール>変換ツール#w1278ce9]]に挙げられているソフトでEPS形式に変換することになります.
←今はPDFにするのが前提ならEPSに限らずPDF、PNG、JPEGがそのまま使えますので特にEPSにこだわる必要はないでしょう)このとき,次のようにすれば図(と
[[詩:http://www.aozora.gr.jp/cards/000158/files/18352_15628.html]] :) )が挿入できます。 

 \documentclass{jsarticle}     % または jarticle 等々
 \usepackage[dviout]{graphicx} % または dvips または dvipdfm
 \begin{document}
 
 まだあげ初めし前髮の/林檎のもとに見えしとき/前にさしたる花櫛の/花ある君と思ひけり
 
 \includegraphics[width=5cm,clip]{apple.eps}
 
 \end{document}

この dviout と書いたところはドライバ(出力ソフト)の名前です。 dvips(k) の場合は dvips,(up)dvipdfm(x) の場合は dvipdfmx,dvipdfmo またはオリジナルの dvipdfm の場合は dvipdfm とします。 
この dviout と書いたところはドライバ(出力ソフト)の名前です。 dvips(k) の場合は dvips,dvipdfm(x) の場合は dvipdfmx,dvipdfmo またはオリジナルの dvipdfm の場合は dvipdfm とします。 

これでエラーになる場合は pTeX または dviout または Ghostscript のインストールがうまくいっていないのでしょう(あるいは非常に古いのでしょう)。 インストールガイド をよく読んでネットからダウンロードしてインストールするか,[[本>TeXの本]] についている CD-ROM でインストールしましょう。 

** PDF形式の図の挿入 [#a58e4bcb]

RIGHT:cf.) [[PDFの作り方#図の描き方>PDFの作り方#yca8607c]]

最終的にPDF形式で出力したい場合は,図もPDF形式で用意しておくのが便利です。 

たとえば [[apple.pdf:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/dtp/apple.pdf]]
というPDF形式の図があった場合,次のようにすれば図が挿入できます。 

 \documentclass{jsarticle}     % または jarticle 等々
 \usepackage[dvipdfmx]{graphicx}
 \begin{document}
 
 まだあげ初めし前髮の/林檎のもとに見えしとき/前にさしたる花櫛の/花ある君と思ひけり
 
 \includegraphics[width=5cm,clip]{apple.pdf}
 
 \end{document}

Windows に最新版の W32TeX で環境を構築した場合,dvipdfmx 用の BoundingBox を作成する extractbb または xbb というツールが付属しています。

 extractbb apple.pdf

または

 xbb apple.pdf

とすると apple.xbb というファイルが生成されます。

W32TeX では texmf.cnf で

 shell_escape_commands = \
 bibtex,pbibtex,jbibtex,repstopdf,epspdf,extractbb,\
 makeindex,mendex,mpost,pmetapost,upmetapost,kpsewhich

と定義されているので特に明示的に extractbb を行わなくても自動的に extractbb を実行して .xbb ファイルを作成します。([[qa:56046]])

dvipdfmo またはオリジナルの dvipdfm を使用する場合で,\usepackage[dvipdfm]{graphicx} を指定して,井上さんの [[mediabb.sty:http://www.ns.musashi-tech.ac.jp/~inoue/Pages/TeX/mediabb.sty.html]]
をインストールして使用する場合は 

//RIGHT:mediabb.sty が一時的に入手出来ないようです。入手はこちら等からどうぞ [[qa:51987]]
// 入手出来るようになりましたので,上の行はコメントしました。-- tony 2008/09/30

 \documentclass{jsarticle}     % または jarticle 等々
 \usepackage[dvipdfm]{graphicx}
 \usepackage{mediabb}
 \begin{document}
 
 まだあげ初めし前髮の/林檎のもとに見えしとき/前にさしたる花櫛の/花ある君と思ひけり
 
 \includegraphics[width=5cm,clip]{apple.pdf}
 
 \end{document}

これを platex で処理し,続いて dvipdfmx で処理すると,全体がPDF形式になります。

ただし,[[mediabb.sty には BibTeX を使って参考文献を文書末尾に挿入すると余計な文字が「参考文献」という行の直前に入り込むという副作用がある:http://twitter.com/#!/Izumi_Fujio/status/109093777431474176]]そうなので,このような場合は mediabb.sty を使用せず ebb コマンドで PDF ファイルからバウンディングボックス情報を含む bb ファイルを生成しておくとよいそうです.

このようにPDFを使えば,Ghostscriptが呼び出されることがないので,処理も速くなります。

PostScriptとPDFの両方を出力する必要がある場合は,apple.eps と apple.pdf
を両方用意しておいて,
 \includegraphics[width=5cm,clip]{apple}
のように拡張子なしでインクルードします。
こうすれば,\usepackage[オプション]{graphicx}
のオプション次第で,適当なほうがインクルードされます。

*** pdf ファイルの bounding box 情報に関する注意点 [#tc030150]

詳しくは[[PDFの作り方]]の[[挿入図ファイルについて>PDFの作り方#n20e1824]]をご参照願います。


*** pdfTeX [#zed83e69]

pdfTeX を利用しているときは、graphicx パッケージのオプションを
次のように設定すればいいようです。

 \usepackage[pdftex]{graphicx}


** PNG形式の図の挿入 [#s7e8e2f8]

例えば [[apple.png:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/dtp/apple.png]] (426x496)
を使うには,PDFの場合と同様にすればいいのですが,mediabb.styは必要ありません。
mediabb.styを使っても,PDFと違って,PNGはサイズの自動取得ができません。

Windows に最新版の W32TeX で環境を構築した場合,dvipdfmx 用の BoundingBox を作成する extractbb または xbb というツールが付属しています。

 extractbb apple.png

または

 xbb apple.png

とすると apple.xbb というファイルが生成されます。

W32TeX では texmf.cnf で

 shell_escape_commands = \
 bibtex,pbibtex,jbibtex,repstopdf,epspdf,extractbb,\
 makeindex,mendex,mpost,pmetapost,upmetapost,kpsewhich

と定義されているので特に明示的に extractbb を行わなくても自動的に extractbb を実行して .xbb ファイルを作成します。([[qa:56046]])

dvipdfmo またはオリジナルの dvipdfm を使用する場合で,もしサイズがわかっているのであれば,図を読み込むところで,

 \includegraphics[bb=0 0 426 496,width=5cm]{apple.png}

のように大きさ情報を [bb=0 0 x y] の形式で与えてしまうのが簡単です。
これを自動化するには,ebb というツールが dvipdfm に同梱されているはずですので,あらかじめ

 ebb apple.png

と(Windowsならコマンドプロンプトで)打ち込んでおけば,大きさ情報を書き込んだ apple.bb というファイルが生成されますので,[bb=0 0 x y] のような情報を書き込まなくても処理できます。

extractbb (xbb) と ebb では,微妙に出力する BoundingBox の値が異なりますので注意してください。以下に,2008/2/17 付けの W32TeX の ChangeLog を引用します。

 [2008/02/17]
 ...
 (14) dvipdfm-w32.tar.bz2
     dvipdfmx.exe を更新した。また xbb.exe が出力するファイルの拡張子を
     オリジナルと同じで .xbb とした。同梱した dvipdfmx.def を使う場合は
     BoundinbBox 用には xbb.exe を使って、foo.xbb を作るようにすること。
     また、ebb.exe におけるデフォルトの PIX2PT を、オリジナルと同じ
     72/100 に戻した。ただしこの値はオプションによって自由に変えられるので
     ebb -h として使用法を確かめること。
     dvipdfm.def は foo.bb なるファイル名しか使えないので、xbb.exe の出力は
     使えない。 dvipdfmx.def の場合は xbb.exe の出力が使える。そこで次の
     データを参考にすると良いかもしれない:
     実験によると以下のようになると思う。
     (a) pdf の場合
         ebb foo と xbb foo の出力は同じ BoundingBox を持つ
     (b) jpeg の場合
         ebb -R foo と xbb foo の出力は同じ BooundingBox を持つ
     (c) png の場合
         ebb -r 96 foo と xbb foo の出力は同じ BoundingBox を持つ

* 図と文字の重ね打ち [#rc7de959]

図中にTeXで組んだ文字を入れる方法はいろいろありますが,ここではoverpic.styによる方法を説明します。

 \documentclass{jsarticle}
 \usepackage[dvipdfm]{graphicx}
 \usepackage[abs]{overpic} % この行を追加
 \usepackage{mediabb}
 \usepackage{pict2e}  % 後で矢印をきれいに出すため。なければ不要
 \begin{document}
 
 % \includegraphics[width=5cm,clip]{apple.pdf} を次のように書き換える
 \begin{overpic}[width=5cm,clip,grid]{apple.pdf}
 \end{overpic}
 
 \end{document}

こうすると,図の上にグラフ用紙がオーバーレイされます。これを見ながら,挿入したい文字と矢印を座標で指定します。文法はpicture環境と同じです(pict2e.styを使えばpicture環境がさらに強力になるのでお薦めします)。

 \begin{overpic}[width=5cm,clip,grid]{apple.pdf}
   \linethickness{3pt}  % pict2e.styがなければ\thicklinesにする
   \put(150,80){\vector(-1,0){25}}
   \put(155,75){\Huge\sffamily Byte!}
 \end{overpic}

多少試行錯誤が必要ですが,これでよければgridを外します。

overpic.styは [[CTAN:macros/latex/contrib/overpic/]] にあります。
overpic.styだけをダウンロードして,適当なところ(わからなければ文書ファイルと同じところ)に入れておきます。

pict2e.styは [[CTAN:macros/latex/contrib/pict2e/]] にありますが,展開したものを [[ここ:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/archive/pict2e/]] に置いておきます。
dvipdfm(x)を使うなら,pict2e.styとp2e-dvipdfm.defだけダウンロードして,やはり適当なところに入れておきます。

** 2色刷り [#s5ccf134]

最近の本は黒とあと1色の2色刷りにすることが多くなりました。

プロセスカラーはCMYKで行いますが,このような2色刷りには,黒をK,もう一つの色(特色,スポットカラー)を例えばCに当てておいて,印刷時にCの色を指定します。

例えば上の例で図中の文字と矢印だけ特色にするには,次のようにします。

 \documentclass{jsarticle}
 \usepackage[dvipdfm]{graphicx,color}
 \usepackage[abs]{overpic}
 \usepackage{mediabb}
 \usepackage{pict2e}
 \definecolor{spot}{cmyk}{1,0,0,0}
 \begin{document}
 
 \begin{overpic}[width=5cm,clip]{apple.pdf}
   \color{spot}\linethickness{3pt}
   \put(150,80){\vector(-1,0){25}}
   \put(155,75){\Huge\sffamily Byte!}
 \end{overpic}
 
 \end{document}

* 図の配置 [#i209eceb]

図を適当な場所に配置してキャプションを付けるには,次のようにします。

 \begin{figure}
   \centering  % 中央揃えするなら
   \includegraphics[...]{...}
   \caption{林檎とバイトの関係}
 \end{figure}

ただし,図の位置はコンピュータが決めますので,必ずしもこのように書いた位置に入るとは限りません。
// もっとも,キャプションをつけ,かつ,図表にはその番号で言及するのであれば,
// “その場”配置にこだわる必要はありません.
これが嫌なときは,頭のところで

 \usepackage{float}

と宣言しておき,図を入れるところでは

 \begin{figure}[H]

のように大文字の [H] を付けておきます。

float マクロを読み込まなくても,[h] のかわりに [!h] を使うと,より here に
近い位置に埋め込もうとします?
// float の配置に ! 指定を行った場合には,\textfraction 等の
// float 配置パラメータを無視して単に float を収める余地があるか否かしか
// チェックしません(したがって,! と h を併用した場合には,概ね“その場”
// 配置となります).ただし,\intextsep(h 配置の float とその前後の本文との
// 間の空白の大きさ)は考慮されますので,float の大きさが微妙な場合には
// やはり次ページ送りになることもあります.
// もっとも,!h 指定の場合は,現在のページにその float を収める余地がない
// 場合には自動的に !ht 指定として扱う(つまり,現在のページの残りは
// テキストで埋めて,float は次ページの上部に置く)ので(その旨の警告も
// 現れます),float パッケージでの H 指定よりも都合がよいことも多いでしょう.