画像を含む TeX ソースを dviout で印刷すると共に PDF に変換する方法

2006年8月5日メールはこのアドレスへお願いします

今までは画像を含んだ TeX ファイル( *.dviファイル)を作ることはなかったが,最近(2006年夏)画像(*.JPG)を含んだTeXファイルを作成する必要に迫られたのでいろいろ調べて作成できるようになった。その手順をメモしておく。やりたいことは次の二つだ。
  1. 画像を含んだ TeX ファイル( *.dviファイル)を作成して,dviout で印刷する
  2. TeX ファイル( *.dviファイル)を変換して PDF ファイルを作成する

■ dviout で印刷する

dviout は画像描画フリーソフトの Susie プラグインを利用することで JPEG ファイルなどを表示することができる。ただし標準インストールした状態では無理なので,少し修正が必要となる。その手順は

■ 2007年7月16日追記 最近の角藤版 W32TeXでは既に次の 2. の設定がされているので 2. は必要ありません(むしろトラブルの原因となるのでコピーしないで下さい)。

  1. c:\dviout\graphic\latex2e\dviout.def を c:\usr\local\share\texmf\tex\latex\graphics へコピー(上書き)
  2. c:\dviout\graphic\latex2e\color.cfg と c:\dviout\graphic\latex2e\graphic.cfg を c:\usr\local\share\texmf\tex\latex\config へコピー(上書き)
  3. Susie plug-in をダウンロードして適当なフォルダに解凍(展開)する
  4. dviout のメニューから [Option] → [Setup Parameters] → [Graphic] の順に選択して [spi:] に Susie plug-in を解凍(展開)したフォルダを記入する
次にTeXソースを作成します。dviout で印刷するときはプリアンブルを次のように書きます(私は三重大学の奥村先生の作成されたスタイルファイル jsarticle.cls を使用しているので次のようにしていますが,通常は jarticle にした方が良いでしょう)。
 \documentclass{jsarticle}
 \usepackage[dviout]{graphicx}
そして画像を挿入したいところに次のように書きます。画像ファイルはTeXソースと同じフォルダに置いてください。
 \includegraphics*[clip,width=30mm]{C0115.jpg}

■ *.dvi を PDF ファイルに変換する 2009/10/26改定

Acrobat を持っている場合,簡単な方法は dviout から Adobe PDF プリンタに出力して PDF を作る方法です。しかし Acrobat をお持ちなら *.dvi を *.ps に変換してから Distiller を使った方がサイズがコンパクトなPDFが作成できるようです。 dviout から Adobe PDF プリンタに出力した場合 160KB で, *.dvi を *.ps に変換してから Distiller を使った場合は 100KB になりました。

まずあらかじめ bmeps.exe を使って *.jpg から *.bb を作成しておく必要があります。コマンドプロンプトで次のコマンドを実行します。

 bmeps -b C0115.jpg C0115.bb
これにより C0115.bb というファイルが作成されます。単なるテキストファイルで内容は %%BoundingBox: 0 0 1600 1200 のような画像のピクセル数です。

次にTeXソースの書き方です。プリアンブルを次のように書きます(私は三重大学の奥村先生の作成されたスタイルファイル jsarticle.cls を使用しているので次のようにしていますが,通常は jarticle にした方が良いでしょう)。

 \documentclass{jsarticle}
 \usepackage[dvips]{graphicx}
 \DeclareGraphicsRule{.jpg}{eps}{.bb}{`bmeps -c #1}
*.tex ファイルをコンパイルして *.dvi ファイルに変換します。こうして作成した *.dvi ファイルを dvipsk.exe で *.ps ファイルに変換します。*.eps 画像を含んだ *.ps ファイルが作成されるためファイルサイズは大きくなりますが(下記サンプルでは27MBになりました) Distiller でPDFに変換すればサイズは小さくなります。

そして画像を挿入したいところに次のように書きます。

 \includegraphics*[clip,width=30mm]{C0115.jpg}
それから次のようにします。
  1. TeXソースをコンパイルして ki012.dvi を作成します
  2. コマンドプロンプトから次のコマンドを実行して ki012.dvi を ki012.ps に変換します( B4 横置きの場合)
    dvipsk -R0 -Ppdf -t jisb4 -t landscape ki012 
    
  3. ki012.ps を Acrobat Distiller で PDF に変換します
「 -t b4 」とすると ISO 規格の B4 用紙が使われてしまいます。ISO B4 は日本で使われる B4 よりひと回り小さいです。日本で使われる B4(JIS 規格の B4 用紙)を利用するためには「 -t jisb4 」 と書かなければなりません。(他に利用可能な用紙サイズオプションは C:\usr\local\share\texmf\dvips\config\config.ps (テキストファイル)に書かれています)


■ 画像ファイルの拡張子は小文字にすること

Windowsの場合は *.JPG と *.jpg は違いがありませんが,TeX が主に使われる UNIX 系の世界では *.JPG と *.jpg は全く別物です。そのため拡張子によってはエラーとなってコンパイルができないことがあります。私の持っているデジカメでは拡張子が大文字なので
 \includegraphics*[clip,width=30mm,height=30mm]{C0115.JPG}
と書いていましたがエラーでコンパイルがストップすることがありました。トラブルを避けるためには
 \includegraphics*[clip,width=30mm,height=30mm]{C0115.jpg}
のように拡張子は小文字で書く方が良いようです。


■ dvipdfmx.exe を使えばタダで PDF が作れる

Acrobat をお持ちでないなら dvipdfmx.exe を使う方法があります。ただしファイルサイズは大きくなります( 410KB になりました)。この場合はプリアンブルや画像取り込み命令を次のようにします。プリアンブルは dvipdfmx ではなく dvipdfm であることに注意して下さい。
 \documentclass{jsarticle}
 \usepackage[dvipdfm]{graphicx}

 \includegraphics*[clip,width=30mm]{C0115.jpg}
それから次のようにします。
  1. TeXソースをコンパイルして ki012.dvi を作成します
  2. コマンドプロンプトから次のコマンドを実行して ki012.dvi を ki012.pdf に変換します( B4 横置きの場合)
    dvipdfmx -p b4 -l ki012
    

 画像を含むPDFサンプル

ki012.pdf ( Adobe Acrobat Distiller で作成,105K bytes)  ki012.tex (テキストファイル 7K bytes)

 UNIQUE LABORATORY に戻る