画像ファイルの取り扱い
説明で使う見本ファイル
-
- JPEG画像ファイル Endeavour.jpg と、そのBB情報ファイル Endeavour.xbb
- このJPEGファイルをEPSファイルに変換したファイル Endeavour.eps
画像ファイルの貼り付け
EPSファイルの貼り込み
次のようにして、画像ファイルのためのパッケージ graphicx をプリアンブルで宣言し、LaTeXコマンド \includegraphics を使って、貼り込みたい画像ファイルを指定します(ここではEPS形式の sin.eps)。
パッケージ graphicx の利用において、オプション [dvipdfmx] を付けていることに注して下さい。 これによって、貼り込める画像形式として EPS 以外に、PNG, JPEG, PDF形式が利用できのです(GIF形式では不具合が発生します)。 最近のTeXシステムでは最終生成ファイルをPDFとするのが一般的で、 そのために、大抵の統合TeX環境では生成したDVIファイルをドライバ dvipdfmx を使ってPDFを生成する処理が自動的に行うように調整されています。 このオプションは、こうした処理を前提としているのです(特別な場合を除いて、このように記述しても問題ありません)。
\documentclass{jsarticle} ... \usepackage[dvipdfm]{graphicx} ... \begin{document} ... \includegraphics{sin.eps} ... \end{document}この例のsin.epsのように、
\includegraphics[scale=4]{sin.eps}と、オプション [scale=n] (空白無しで指定)を使って拡大すると(この例では4倍)、Adobe IllustratorなどによってPostscriptで描画保存したEPSまたはPDFファイルであればどれほど拡大しても画像表示の品質は保たれます。
通常の画像はそのサイズ表示でのピクセルを最小単位として描かれているので、拡大するとピクセル単位が拡大されてシャープさが失われしかもジャギーが現れてしまします。 たとえば、右図のように。
各形式の画像の貼り込み
たとえば、JPEG形式画像 Endeavour.jpg を貼り付けるためには画像を入れるべき領域の大きさBB(Bounding Box)情報を指定しなければなりません。 単位は bp(big point)または Postscript pointといい、1bp = 1/72 インチ = 0.35278mm = 1.00375ポイント。 ただ、BB情報は画像のピクセル情報とかならずしも一致しないことがあるので微妙だ(画面解像度 単位 [dpi] が関与する)。
その書式は、\includegraphicsのオプションで bb=0 0 x y と画像の大きさを指定します。 0 0 は画像の左下の座標,x y は右上の整数値座標で、各座標間は1個以上の半角空白を入れます。 例えば、以下のように書きます。
\documentclass{jsarticle} ... \usepackage[dvipdfm]{graphicx} ... \begin{document} ... \includegraphics[bb=0 0 100 142]{Endeavour.jpg} ... \end{document}
BB情報の取得に関するあれこれ
BB情報はその画像のポイント数としての大きさで、OSが提供っしてくれるファイル情報(大抵はピクセル値。右図)や画像を取り扱うソフトウエアを使って取得することができる。
じっさい、右図(MacOSのFinderの表示)では 画像ファイル Endeavour.jpg は 100 x 142 ピクセルのJPG形式であることを示しているので
\includegraphics[bb=0 0 100 142]{Endeavour.jpg}とBB情報を指定すればよいわけだ。 PDFファイルやPNGファイルについても同様である。
こうかくと、画像の貼り込みはたいへん面倒なことのように思えてくる。 以下で紹介するように、この処理は自動化すること可能です。
BB情報の自動生成
画像ファイルを実際にTeX文書に貼り込むには、次のようにbb情報を記述したxbbファイルを生成するとよいのだが、その生成自体を自動化することで作業を大幅に簡素化することができる。
xbbファイルを生成する
BB情報を知るのは面倒なので、TeXシステムに付属のBB情報を書出すコマンド extractbb を使ってBB情報をファイルに書き出すことができる(拡張子は .xbb )。 たとえば、画像がファイルのあるフォルダに移動し、次のように実行すると、画像 Endeavour.jpg のBB情報をファイル Endeavour.xbb に書き出すことができる(画像と同じフォルダ内に)。
% extractbb Endeavour.jpgなお、記号「%」は各自の環境に応じて表示されるコマンドプロンプトを表し、入力しない。 こうしておくと、TeXファイルでBB情報の指定は不要となり,単に
\includegraphics{Endeavour.jpg}と書くだけでよい。 複数のJPEGファイルがある場合には、
% extractbb *.jpgと実行すると、各JPEGファイル毎の .xbb ファイルが生成される(PDFファイルやPNGファイルについても同様)。
xbbファイルの自動生成
WindowsでW32TeXまたはTeXLiveを使っているのであれば、このようにわざわざ明示的に extractbb を行わなくても自動的に extractbb を実行して .xbb ファイルを作成してくれるので便利だ。 MacOSでMacTeX(TeXLive)を使っている場合には、 /usr/local/texlive/texmf-local/web2c/texmf.cnf に(なければ作成する)次を追加すると、extractbb を自動的に起動して .xbbファイルを生成してくれる。
shell_escape_commands = \ bibtex,bibtex8,bibtexu,pbibtex,upbibtex,biber,\ kpsewhich,\ makeindex,mendex,texindy,\ mpost,pmpost,upmpost,\ repstopdf,epspdf,extractbb,\
オマケ
以上でBB情報は自動生成されるのだが、 あと1つのJPEG形式などの画像ファイルのTeX文書への貼り込み方法は、convert コマンドを使って次のように画像形式を変換してEPSファイルを生成することだ。
% convert 元の画像ファイルの名前.jpg 変換された画像ファイルの名前.epsここではconvert コマンドを使ってJPEGファイル Endeavour.jpg からEPファイル Endeavour.eps ファイルを生成している。 こうしておいて、TeXファイルで
\includegraphic{Endeavour.eps}のようにBB情報なしで記入する(EPSファイルにはBB情報が記載されているためだ)。
逆に、Postscript/PDF形式で描画されていない画像ファイル(たとえば、sin.jpg)の場合、次のようして拡大縮小するためのオプション[scale=5]をつけて
\includegraphics[scale=5]{sin.jpg}と5倍に拡大すると、ジャギーが目立つようになる(これは当然で、後から画像ファイルをEPS形式に変換しでもピクセル単位でしかない元の不十分な情報が残るからだ)。