第 8 章 図表の組版 141
8.2 図
なんといっても
L
ATEX
では画像に関する多くの処理をデバイスドライバに頼るしかな いので,自分の使おうとしているデバイスドライバがどのような画像処理に対応している のかを知っておきましょう.Dvipdfmx
,PostScript
ならばdvips
を使うと良いでしょう.図の挿入に関しての方法は大きく分けて
2
通りあります.1
つはペイントソフトなどで 書いた画像をそのまま取り込む方法, もう1
つはL
ATEX
のpicture
環境で図を直接書 く方法です.2
つ目の方法の詳しいことは『L
ATEX
コンパニオン』[29]
と『L
ATEX
グラ フィックスコンパニオン』[30]
を参照してください.一般的な図の取り込み方としては別 のソフトウェアでEncapsulated PostScript
(EPS
)形式で画像を保存し,それをgraphicx パッケージで読み込むのではないかと思われます.商用のソフトウェアであれば大抵 でEPS
出力をサポートしています.現在確認できているだけも,Photoshop
,Illustrator
,Gnuplot
,Mathematica
,Matlab
などがあります.そのほかにも汎用CAD
ソフトなども 対応しているようです.Unix
系OS
の場合L
ATEX
と相性が良いと思われるのはTgif
や好き好き
L
ATEX 2ε 8.2
図8
Ngraph
でしょう.それらをWindows
環境にインストールするには少々骨の折れる作業ですが,
Cygwin
上のXFree86
で日本語のフォントやCanna
などを一緒にインストールするとできるそうです.
8.2.1 EPS 画像の張り込み
EPS
とはEncapsulated PostScript
の略でAdobe
社の開発したページ記述言語で,Post-Script
にプレビュー用の情報を付加したファイル形式です.単一ページでベクトル画像を保存するのに良く使われる増す.
EPS
形式の画像の場合はdvips
を使うとファイル形式の 変換を必要とせずにそのままPS
ファイルに取り込むこともできます.Dvipdfmx
などは1
度Ghostscript
のpdfwrite
を使ってEPS
からL
ATEX
での基本的なEPS
画像の扱い方を説明します.1.
各アプリケーションでEPS
保存オプションをモノクローム256
色(8
ビット),PostScript
レベル2
などに設定してから保存します.フォントはアウトライン化(ベクトル化)できる場合は行います.カラー印刷する場合はカラーで構いません が容量は大きくなります.
2.
文書のプリアンブルでgraphicxパッケージを使うことを宣言します.\usepackage[デバイスドライバ]{graphicx}
PS
形式の文書を出力するならば,dvips
を指定します.Dvipdfmx
を使うためにdvipdfm
を指定します.3.
図を挿入したい場所に\includegraphics
命令を使ってファイル名を示します.\includegraphics[設定]{ファイル}
仮引数には表
8.6
などのオプションが使えます.表8.6 graphicxパッケージで使える主なオプション
設定項目名 説明 値
width=
h幅i 出力する図の幅を指定します 長さ,100mm
などheight=
h高さi 出力する図の高さを指定します 長さ,100mm
などangle=
h角度i 反時計回りの回転角度を指定します0
<値<360 scale=
h数値i 図の拡大・縮小率を指定します0
<値例 え ば
Ghostscript
の 下 に はexamples
と い う デ ィ レ ク ト リ が あ り ま す .そ こ にgolfer.eps
というEPS
画像があります.このEPS
画像ファイルgolfer.eps
をL
ATEX
の文書に張り込むにはgolfer.eps
をL
ATEX
の原稿のあるディレクトリにコピーして\usepackage[]{graphicx}
をプリアンブルに書きます.そして
document
環境の中で\includegraphics[width=5cm]{golfer.eps}
とします.これを
platex
でタイプセットし,整形されたDVI
ファイルhfilei.dvi
をプレ ビューアで見ることができます.上記の操作が問題なくできるでしょうか.基本的に
L
ATEX
で既存の画像を張り込むと きはL
ATEX
に標準で含まれているgraphicxパッケージを使うことになると思われます.既存の
JPG
,BMP
,EPS
などの画像はL
ATEX
の力ではどうしようもありありません.それらの画像に関してはデバイスドライバに一任しています.そのため取り込むことので きる画像はデバイスドライバに依存します.それでも画像の張り込みに関してはgraphicx パッケージという統合的な方法が提供されています.このパッケージを使うことによって 任意のデバイスドライバに合わせたコマンドを記述しなくても良いように工夫がされてい ます.
まずこのgraphicxを使うためにプリアンブルに以下の
1
行を追加します.\usepackage{graphicx}
このとき使用するデバイスドライバが重要で最終的に
PostScript
形式か,DVI
形式か,そ れともWindows
で印刷すること も考えるならば最終的にDvipdfmx
を使うことになるでしょうから,Dvipdfmx
の場合は\usepackage[dvipdfm]{graphicx}
とします.
Dvipdfmx
の場合もgraphicxにおいてはdvipdfm
と同じ設定になりますからdvipdfmx
と書いてはいけません.Unix
系OS
ならばPostScript
のほうが良いでしょうから\usepackage[dvips]{graphicx}
とします.
dvipsk
であろうがpdvips
だろうがdvips
オプションを使います.他にはxdvi
やdviout
も指定できます.dviout
の場合はdviout
がインストールされているフォルダのGRAPHIC/LATEX2E/dviout.def
というファイルを$TEXMF/tex/latex/graphics/
にコ ピーしてください.手持ちの画像の形式を判断して使用するデバイスドライバを考えるのが良いでしょう.
標準的に指定できるデバイスは
dvips xdvi dvipdf dvipdfm pdftex dvipsone dviwindo emtex dviwin pctexps pctexwin pctexhp pctex32 truetex tcidvi vtex oztex textures
などです.デバイスドライバによっては graphicx 用の独自の設定ファイル hドライ バi.def
が含まれていることもあるので確認してください.既存の画像は基本的に
\includegraphics
命令で読み込みます.\includegraphics[
h設定i]{
hファイル名i}
好き好き
L
ATEX 2ε 8.2
図8
Windows
の方で手持ちの画像のほとんどがビットマップで存在するならばdviout
をデバイスドライバに選択すれば良いでしょう.
EPS
画像が多いならば1
度EPS
からDvipdfmx
を使うのが良いと思われます.Unix
系OS
ならば手持ちの画像 をEPS
に変換してdvips
を使うことになるでしょう.試しにご自分の持っている画像h ファイルiをhデバイスiで取り込めるのかを試してみください.\documentclass{jarticle}
\usepackage[デバイス]{graphicx}
\begin{document}
\includegraphics{ファイル}
\end{document}
dviout
の場合EPS
画像を取り込むときはGhostscript
にてEPS
をdviout
のGhostscript
に関する設定を適切に行ってください.図8.1
のように画像が張り込まれているでしょうか.画像によってはページをはみ出したりして いる場合があるでしょうし,表示が大きすぎる場合があるでしょう.その場合は取り込み に関する設定をします.,
-2 -1 0 1 2
-1 0 1 2
図8.1 画像を取り込んだ例
height=
h高さi 単位付きで画像の高さを指定します.totalheight=
h総合的な高さi 単位付きで画像の総合的な高さを指定します.width=
h幅i 単位付きで画像の幅を指定します.scale=
h数値i 画像の拡大率を指定します.angle=
h角度i 反時計回りに画像を回転する角度を指定します.bb=
h画像の位置情報i 画像のどの領域を使うべきかを指定します.‘bb=0 0 640 480’
とすると原点を
(0,
0)として縦横‘640
×480’
の領域を使うようにします.noclip
画像用に使うべき領域を元の画像がはみ出している場合に画像を切り抜かないようにします.
clip
画像が確保された領域よりも大きい場合は切り抜きします.draft
実際に画像を張り込まずに画像が占有するだろう領域を枠による代替表示になり,ファイル名も表示します.
keepaspectratio
拡大縮小したときに縦横比を保存するようにします.graphicxパッ ケージの標準では保存されます.レポートや論文などで図には図見出しを付けて中央揃えにするのが望ましいと思われま すので
\begin{figure}[htbp]
\begin{center}
\includegraphics[width=10cm]{images/file.eps}
\caption{図見出し}\label{fig:samplefig}
\end{center}
\end{figure}
のように使うことになるでしょう.ただし,これを毎回書くのは面倒なので次のような図 用の
myfig
命令を作成します.\newcommand{myfig}[4][width=.8\textwidth]{%
\begin{figure}[htbp]%
\centering\includegraphics[#1]{#2}%
\caption{#3}\label{fig:#4}%
\end{figure}}
このように定義しておけば次のように使えます.
以上の考察から図~\ref{fig:sample}のような 図が得られる.
\myfig[width=100pt,clip]{images/file.eps}{図の張り込みの例}{sample}
浮動体の図は
DVI
ファイルに出力されるときに思いもよらない場所まで旅をしますの で,思い通りの場所に図を出力できなくても気にしないでください.そもそも図表に対し て「上記の図はなんちゃら」とか「下記の図はなんちゃら」という表現は間違いで,全て の図表は「図3.1
はなんちゃら」のように番号で参照します.ですから本来は図や表がど のような場所に旅立っても困らないはずです.図などを反時計回りに
90°
回転させることがあるでしょう.その場合は\rotatebox
命 令を使います.他にも便利な命令があります.\rotatebox[
h設定i]{
h角度i}
要素これは