図を入れよう!

目次

はじめに --- 画像を取り込むために

画像を扱う際のdvioutの設定

画像を扱う前に、dvioutに付属しているファイルをコピーする必要があります。(ただし、dvioutで画像のついたファイルを閲覧しない場合、すなわちdvipdfmxでDVIファイルをPDFにし、Adobe Readerで閲覧する場合はここに書いている作業をする必要はありません。)

C:\dviout\GRAPHIC\LATEX2E(Cドライブのdvioutフォルダの中のGRAPHICフォルダのLATEX2Eフォルダの中)にあるdviout.defというファイルをC:\usr\local\share\texmf\tex\latex\graphicsにコピーします。

dviout.defのコピー

なお、作者のdvioutインストール解説では、C:\dviout\GRAPHIC\LATEX2Eのgraphics.cfgおよびcolor.cfgをC:\usr\local\share\texmf\tex\latex\config にコピーするとありますが、もともとこのフォルダには既にgraphic.cfgおよびcolor.cfgが存在しており、コピーしてもしなくとも以下の画像表示の動作には影響はないようです。

画像を取り込む文法

TeXでは、付属のgraphicxパッケージを読み込むと、文中に画像を取り込むこと が出来ます。まず、プリアンブル(「\documentclass{jarticle}と \begin{document}の間」という意味でしたね)に次のように、「graphicxパッケー ジを使うから、読み込んでおいてね」と命令します。(とりあえずこの時はPDFファ イルさえ出来ればいいので、オプションにdvipdfmxと書いておいています。PSファ イルを(一時的であれ)作りたい場合はdvips, dvioutで閲覧・確認したい場合はdvioutをオプショ ンにします。)

\usepackage[dvipdfmx]{graphicx}

以前紹介した\textcolor等で色文字や網掛けを行いたい場合は、colorパッケー ジも使いますので、次のように指 定しておくといいでしょう。

\usepackage[dvipdfmx]{graphicx,color}

その上で、多くの場合は次のように使います。

\begin{figure}[htbp]
\begin{center}
\includegraphics*[width=8cm,height=5cm]{(絵や図のファ イルの名前を記入)}
\end{center}
\caption{(絵や図の(実際に表示される)見出しを記入)}

\end{figure}%

図を入れる命令は\includegraphics*のみです。上の行の8cmの部分には横の、5cmの部分には縦の長さを記入しています。も ちろん数値は訂正可能です。さらに、widthおよびheightどちらも省略可能です。(といいますか、普通は省略します。)すなわち、

\includegraphics*{(絵や図のファ イルの名前を記入)}

のように書くことも出来ます。 なお、\includegraphics*のアスタリスクは消すことも出来ますが、きちんとした大 きさで画像を切り取ってもらうためのものなので、一般に は入れておいた方がいいでしょう。

そして、組版の際に図の位置を適当に調整したり、図の見出しを含めるなど図に関する様々な命令が使えるように、 図の周りをfigure環境で囲んでいます。こうすることで、図の名前を「図1: (図の名前)」などとタイトルがつけられるようになるのです。また、\begin{figure}の後ろの[htbp]は、画像を「その場」に置くことを優先し、レイアウト上置けない場合は、ページの上・ページの底・1ページ丸ごと使う、の優先順位で画像を置くという意味のオプションです。

さて、ここまでの説明だけならまだ簡単ですが、画像ファイルの「形式」 (分からない方は、後に述べる説明をご覧ください)に よっては厄介なことがたくさんあります。「厄介なこと」というのは、画像ファ イルの形式によっては画像の縦横比を同じままにして取り込むことが 出来なくなってしまいます。こうした厄介な問題から逃げる場合はEPS形式 の画像、もしくは他形式からEPS形式に変換したものを使う方法を取るのが手っ 取り早いです。ただ、もしもそのままの形式で画像を扱いたいのであれば、BoundingBoxというものを作成しないといけません。(これについては後述します。)

「ファイル形式」って何だろう?

ここで、「ファイル形式」についてよく知らない方のために、少し説明した いと思います。初歩的な内容(の割に、意外に十分理解されてない)ですので、 知っている方は読み飛ばしてください。

世の中には実に様々なファイルがあります。Wordで作られたファイルである doc形式、今我々の作っているtex形式などがあります。そして画像も、現実の絵 画に「油絵」とか「水彩画」とかがあるように、画像ファイルにも データの表現の仕方によって、EPS, BMP, JPEG(ジェイペグ), GIF(ジフ), PNG(ピング)などがあります。こうした「ファイルの種類」 のことを「ファイル形式」といいます。

でも、画像ファイルに種類があることは分かっても、ファイルはファイルで すよね。これをWindowsやお絵かきソフトはどのようにして「このファイルは○ ○形式だ!」と判断しているのでしょうか。

この秘密は、ファイル名の語尾にあるピリオド以下数文字にあります。 (Windowsの設定によっては、ピリオド以下数文字が見られないかもしれません。 Windows Meではフォルダのウィンドウから[ツール (T)] -> [フォルダオプショ ン(O)]で出てくるウィンドウで[表示]タブをクリックし、[詳細設定]の項目群の 中から「登録されているファイルの拡張子は表示しない」のチェックを外します。 他のバージョンのWindowsでも似たような方法で出来ると思います。)

見えたでしょうか。かなり多くのファイルが、"test.tex"だの "bunsho.doc"だの"picture.jpg"だの、最後にピリオド以 下数文字があることでしょう。

画像ファイルの拡張子

このような、ピリオド以下数文字を 拡張子 といいます。Windowsやその上で動く 画像編集ソフトは、たったこれだけの情報だけで、 どのような形式のファイル化を判断しているのです。(ちなみにMac OSやその上 で動く画像編集ソフトは、ファイルに埋め込まれた機械語(マックバイナリ)で ファイルの種類を判断しています。)なお、拡張子は「目印」で あって、本当にこのファイルが拡張子どおりのファイルであることを保証するこ とは出来ません。

上のことを示すために、面白い実験をしてみましょう。もしも上の画像のファイルの1つ(ここでは拡 張子がbmpの画像ファイルのうちの1つを選んでみましょう)の拡張子を、Word文 書を示すdocに変えます。つまり、○○.bmpを○○.docに書き変えてしまうので す。するとどうでしょう。Word(正確にはWindowsも)が「これはWord文書だ」 と勘違いし、本来なら「ペイント」などの画像編集ソフトで開くべきファイルを ワープロソフトのWordで開いてしまうではありませんか!(下の図は、Wordが画像 ファイルを無理やり「文書」として読み込もうとして、出てきたウィンドウです。)

拡張子を変えると、画像ファイルをWord
で開ける

もちろん、拡張子を変えても、画像ファイルは画像ファイルですし、単に目 印(=拡張子)が変わったに過ぎませんので、Wordでこのファイルはうまく開け ません。ファイル形式を本当に変えるには、専用のファイル形式変換ソフトを用 いるか、画像ソフト等で別形式で保存しなおすしかありません。

ここから色々なファイル形式が出てくると思います。よくわからない方は、 とりあえず次の「BMP形式で扱う」のみをご覧ください。

画像を取り込む手っ取り早い方法 --- BMP形式で扱う方法

Windows付属の「ペイント」をはじめ、Windows上の画像編集ソフトのほとんどが対応しているのがBMPとよばれる形式です。まったくサイズを縮めたりはしていないのでファイルサイズは大きめです。しかし、dvioutおよびdvipdfmxにおいて標準で対応していることを考えると、この形式のまま画像を扱うのが得策です。(ただし、dvipdfmxの最新版でないとBMP形式には対応していません。)

まず、次のようにLaTeXファイルを記述します。今回はAdobe Readerで閲覧しますのでこのまま変更する必要はありません。dvioutで閲覧したい場合はdvipdfmxオプションのある行の先頭に「%」をつけ、dvioutオプションのある行の先頭にある「%」を外します。(%は「コメント行」といい、%のある行はLaTeXに無視されるのです。)

\documentclass{jarticle}
\usepackage[dvipdfmx]{graphicx,color}
%\usepackage[dviout]{graphicx,color}
%\usepackage[dvips]{graphicx,color}
\begin{document}

これはテストです。

\includegraphics*{textest2.bmp}

\end{document}

次に、別途作成した画像をBMP形式で保存します。ここでは以下のように「ペイント」で作成した画像を例に取ります。

今回使う画像

まず、作成した画像をBMP形式で保存します。具体的には、「ペイント」の場合はメニューバーより[ファイル]→[名前を付けて保存]と選び、ファイル名(半角英数字が望ましい)を付け、[ファイルの種類:]で「bmp」と書かれている形式を選びます。(上のように単純な図の場合、色数の少ない形式のほうが、LaTeXで処理したときにエラーが出なくて無難かもしれません。)ファイルの保存先も選びますが、その際には必ず LaTeXソースファイルと同じ場所を選んでください。その上で[保存]をクリックします。

BMP形式で保存

さて、今回のBMP形式のように、EPS以外の形式の画像ファイルの場合、問題となるのが、 画像の縦横比を同じままにして取り込むことが 出来なくなってしまうという問題です。理由は単純です。画像の縦横比 を知るには、当然画像の縦と横の長さが分からなければなりません。EPSファイ ルは、そうした情報をBounding Box(バウンディングボックス)という「枠」として持っています。試しに 適当なEPSファイルをダブルクリックしてGSview(ここではAFPL GSview 4.3で 説明します)で開き、点線の枠が見えていなければ[Options] -> [Show Bounding Box]でBounding Boxを表示させてみます。たしかに、EPSファイ ルにはBounding Box があることが分かると思います。(上の操作がわからない方は特に真似る必要はありません。)

点線で示されたBounding Box

しかし、他の画像形式、たとえば今回のBMP形式にはこうしたBounding Boxは 存在しません。したがって、Bounding Boxにあたるものを示す画像の幅・高さ を指定するかしないでTeXにかけると、エラーが出てしまいます。

幸いにも、dviout for Windows ではBMP等の形式の画像で、縦横の長さを測っ てBounding Boxを作り、bbファイルに保存するツールが2つ付属しています。そ れぞれC:\dviout(以下の話は、dviout.exeがC:\dvioutにあると仮定して話を進 めます)に入っています。

1つは CreateBB です。これは、マウス操作でBBファイルを作るツールです。

CreateBB

変換したいファイルを [Select Files...] をクリックして 出てきたウィンドウで選び、[開く (O)] をクリックすると、Bounding Boxを作っ た結果であるBBファイルが出てきます。その上で[Create BB file]をクリックすることで、Bounding Boxの情報が書き込まれたbbファイルが生成されます。フォルダの中に画像ファイルがたくさんあり、それ全部について BBファイルを作りたいとき は [Browse...] をクリックします。(フォルダの中のサブフォルダの中の画像についてもBBファイルを作りたいときはSearch Folder Recursivelyにチェックを入れておきます。)BBファイ ルを作りたいファイルを選びたいときは [File Type...] から選びます。

もう1つはMS-DOSプロンプト(コマンドプロンプト)で使うbmc.exeです。BMPファイルのあるフォルダに移動した上で、次 のようにしてbbファイルを作ってください。ここで"foo.bmp"は画像 ファイル名です。(よく分からない方はCreateBBでBBファイルを作るようにしてください。)

bmc -b foo.bmp

これで準備が出来ました。普段どおりplatexで処理し、(DVIファイルを閲覧しないまま)dvipdfmxで処理します。ではPDFファイルをAdobe Readerなどで開いてみてください。うまく表示されたでしょうか?

PDFファイルを閲覧

EPS 形式で扱う方法

TeXやdvioutで画像を扱うときに EPS という形式がかつて頻繁に用いられていました。DVIやPDFにして閲覧するだけであれば、今ならBMPの方が楽ですが、PSファイルの作成が必要な場合は、画像をEPS形式にしておく必要があります。しかし、我々の持っている画像の形式はJPEGやGIF, PNGといった他の形式の場合も多いでしょう。でも、ご安心ください。他の画像形式からEPSに変換 するためには、必ずしもソフトを買ってお金を支払う必要はありません。

EPS-conv の場合

EPS-conv は、他形式の画像ファイルからEPS形式の画像ファイルへと変換す るためのソフトです。インストール方法は次の最初の方をご覧ください。

LaTeX にピッタリのソフト紹介

インストールが終わったら、ソフトを起動して、そのウィンドウにドラッグ &ドロップして変換してみてください。モードは「カラー」の「256階調」がい いでしょう。(バージョンによって、多少表現が変わっているかもしれません。 ここの設定が違うと、白黒のEPSに変換されることもあります。)出来上がった EPSファイルをダブルクリックしてGSviewで開いて、(カラー画像はカラーで) 表示されれば成功です。

PostScript プリンタドライバの場合

上の方法は簡単なので便利ではありますが、BMP 等の画像形式に出来 ない場合(もしくは、BMP にすると線が滑らかでなくなるので、したくない 場合)は、上の方法では少々不適当です。(PrintScreenキー等を使って画 像キャプチャーし、適当な画像編集ソフトに貼り付けて保存すれば出来な いこともないのですが、それでは不満が残る場合もあるでしょう。)その 場合は、PS 形式や EPS 形式のファイルに「印刷」出来るプリンタドライ バを用いるといいでしょう。

具体的にどうするかについては、次をご覧下さい。

PS プリンタドライバのインストールと活用方法

さらに、dvioutでEPSファイルを見られるように設定していることを確認します。dvioutを起動し、メニューより[Option]→[Setup Parameters]より、Graphicタブを選び、[GIF:]を「BMP(full color)」のように選択し、[Save]→[適用]→[OK]の順にクリックします。

EPSファイルをdvioutで見られるようにするための設定

EPS ファイルが出来たら、それをTeXファイルと同じ場所に置きます。

TeXファイルのプリアンブル(\documentclassと\begin{document}の間)のgraphicxオプションはどれでも構いません。

次のように\includegraphicsにファイル名(ここではfoo.eps)を、拡張子を省略 せずに指定します。

\includegraphics*[width=8cm]{foo.eps}

そして、platexで処理します。

いかがでしょうか。もしDVIファイルにしたら白黒で表示されたのであれば、 DVIファイルを見るソフト(DVIware)の設定が間違っているか、カラーで見る機能 が欠けているかのどちらかです。

dvipskでDVIファイルをPSファイルに、dvipdfmでDVIファイルをPDFに変換す る際にも、普通に変換するだけできちんとEPS画像が埋め込まれます。

他の形式のまま画像を扱う方法

JPEG, PNG, TIFFなどの他の形式のまま画像を扱いたい場合も、BMP形式と同様にしてBounding Boxを作成し、それからpLaTeX処理します。

なお、JPEG, PNG, TIFF等でBounding Boxを作りたい場合は、dviout for Windowsのメニューバーから[Option] -> [Setup Parameters...] で出てくるウィンドウの Graphic タブの "spi:"という項目で、Susie プラグイン(拡張機能)のファイルがど こにあるかを示してください。(私の場合はC:\susie346b )あとは[Save] -> [適用 (A)] -> [OK] です。(なお、Susie plug-in は次の場所で公開さ れています。持っていない方はこの2つは手に入れたほうが いいでしょう。

ちなみに Susie というのは、Internet Explorerや通常の画像ソフトでは対応していな いようなマニアック な形式の画像も含め、実に様々な形式の画像を見るために使うソフ トです。Susie プラグインは、その Susie で対応していなかった画像形式でも 見られるように作られた拡張機能で、実に多くの形式のものがあります。画像を 扱うSusie以外のソフトでも、この多くのプラグインが扱えるように作られてい ることがあり、dviout for Windows もその1つなのです。)

あとは普通どおりpLaTeX処理すればよいです。しかし、dvipdfmxで変換できるのはPNGとJPEG、そして先ほどのBMPとEPSのみです。PDFに変換したい場合、他の形式の場合はこれらの形式に保存・変換しておく必要があります。

背景に色や画像を使う方法

はじめに

TeXはもともと印刷用のソフトなので、この解説は一見邪道かもしれません。 色や画像が背景にあると、印刷に時間のかかる上にモノクロプリンターではきれ いに印刷できない可能性があります。見栄えを良くしたい文書や 広告用文書にTeXを使うならば、話は別ですが・・・。

しかし、後述するdvipdfmでPDFに変換でき、電子文書としてTeXで作ったもの を利用する際には、かえって背景に色や画像があったほうがいいかもしれません。

以下の解説では、プリアンブルに次のように書いてください。

\usepackage[dvipdfmx]{graphicx,color}

背景色の変更

まず、背景に色を塗るには次のようにします。

\pagecolor[rgb]{1,0,0.94}

RGB値は{と}で囲み、区切りはコンマ(,)でつけます。値は最小0、最大1として 小数(1と0は整数)で示します。255でないことに注意してください。

RGB値はホームページ(web page)の編集等で知っている方もいらっしゃるかとは思います が、ここで、RGB値での示し方を知らない方への解説を行うことにします。 RGB値は、の順番で、最 大を1、最小を0として、それぞれの混ぜる色の度合いを示します。たとえば、 の混合物ですので {1, 0,1}と示します。一般的 に、{,, }のように、1を最大とした小数で書くわけです。

直感的にRGB値を知りたい方は、Windows付属の「ペイント」で[色 (C)] -> [色の編集 (E)] -> で出たウィンドウで、下の[色の作成 (D) >>] をクリックします。すると、下の図のようなウィンドウが出ますの で、1番右の濃淡を決めるパレットで黒と白の中間色をクリックしてから、左の パレットから望みの色をクリックします。その上で必要ならば右の濃淡パレッ トで白黒の濃淡を決めます。すると最大255、最小0でRGB値が示さ れますので、値から電卓で255を割ってください。これでお望みのRGB値が出る はずです。

RGB値の求め方

背景に画像を使う方

背景に画像を使う命令が用意されているわけではありませんので、プリアン ブルで定義するしかありません。幸いにも奥村先生の「TeX Q&A」掲示板に て、この方法を教えてくださった方々がいらっしゃいました。本来ならば名前を 挙げて御礼申し上げなければならないのかもしれませんが、プライバシーの兼ね 合いもあり、ここでは名前を出さないことにします。ほんとうに、ありがとうご ざいました。

まずは使用例からです。

背景画像の使用例

プリアンブルに書く\usepackageとマクロは次の通りです。ここで、画像名を "SEAMARBL.jpg"とします。

\usepackage[dvipdfmx]{graphicx}

\makeatletter
\let\@@shipout\shipout
\def\shipout\vbox{\@@shipout\vbox\bgroup\afterassignment\insertBackGround\let\reserved@a=}
\def\insertBackGround#1{#1%
        \iftombow
                \copy\BackGround\kern0pt
        \else
                \kern-1truein\moveleft1truein\copy\BackGround\kern1truein
        \fi}
\newbox\BackGroundUnit
\newbox\BackGround
\setbox\BackGroundUnit\hbox{\includegraphics*{SEAMARBL.jpg}}
\@tempdima\paperheight
\advance\@tempdima\ht\BackGroundUnit\advance\@tempdima\dp\BackGroundUnit
\setbox\BackGround\vbox to \@tempdima{
        \@tempdima=\paperwidth\advance\@tempdima\wd\BackGroundUnit
        \leaders\hbox to\@tempdima{\leaders\copy\BackGroundUnit\hfil}\vfil
}
\wd\BackGround=0pt\ht\BackGround=0pt\dp\BackGround=0pt
\makeatother

ここで、青字の部分を必要に応じて編集すればOKです。(たとえば、処理に 時間がかかる場合はwidthを\paperwidth, heightを\paperheightとして、画像を 紙の大きさに拡大してやることも考えられます。)JPEGやPNGを背景画像 に使っている場合は、忘れずにCreateBBかbmc.exeを使ってBBファイルを作って ください。あとは、platexとdvipdfm (dvipdfmx) でいつもの通り処理し、PDFファ イルを得てください。

簡単にマクロについて説明しますと、\includegraphicsで取り込んだ単位画 像を\leadersという命令で並べているわけです。ページからは画像がはみ出して しまうでしょうが、たいがいは問題はないはずです。

さて、ここで背景の画像形式にEPSではなく、JPEGを使っています。その理由は、 EPSで処理すると、JPEGやPNGよりもかなりの時間を消費してしまうからです。

基本的に、背景に画像を使うケースはDVIファイルにして印刷する文書より、 PDFにしてWebで公開する文書のほうが作る頻度が高いと思われますので、DVIか らPDFに変換する際に、画像をPDFに埋め込む処理をすることは多いでしょう。そ の際にEPSを使うと内部でGhostscriptを呼び出し、処理に時間をかける上に何度 も強制終了してくれます。(Windows Me, AFPL Ghostscript 7.04の環境の場合) 。ですから、JPEGやPNGを扱ったほうがいいでしょう。(JPEGならば、17ページ の背景画像付き文書を1秒程度で変換してくれました。(CPU:700MHz, Main Memory:256MB))

さらに言うと、PNGは高圧縮なのか、画像埋め込み・PDF表示ともに時間がかかりま す。ファイルサイズを気にしないならば、JPEGにしたほうがいいでしょう。

前へ   次へ   目次に戻る

This document is dedicated to the Public Domain! --- この著作権を放棄した文書は「みなさんのもの」です!
This web page is written by Yasuhiro Otomo.
If you have any question about this page, send e-mail to me --- ご質問は大友まで。
You can link to this web page freely! --- リンクはご自由にどうぞ!
This web page typed on Meadow/1.15 (SHOUBU)