情報処理概論目次

ポストスクリプトファイル

拡大縮小などが自由にできて仕上がり結果がきわめて美しいPostScript(ポストスクリプト)形式の画像を,専用のスタイルファイルを使ってLaTeX文書に張り込む方法を解説します.

PostScriptとEPS

PostScriptとはAdobe社が開発したプリンタ出力のためのインタープリタ型のページ記述言語です. PostScriptは,文字はもちろんのこと,イラストや写真などのグラフィックスを高度なレベルで表現する能力があり,品質を損なうことなく縮小・回転や変形などの画像操作を行なえるなど強力な機能を備えています.

PostScript形式のファイルは実はテキストファイルで,エディタで自由に編集することが可能です. Postscript言語で書かれたファイルをプリンタから出力するためには,PostScriptを直接解釈して出力できる専用のPostScriptプリンタ(PSプリンタ)の利用が最も適しています. 本学のUNIXの部屋にあるプリンタはこのPostscriptプリンタです.

PostScriptプリンタが優れている理由として,高度なグラフィックスの表現がPostScriptによってプリンタ機器とは独立して記述できること,また多くのコンピュータ機器に対応したPostScript対応のソフトウェアがあることがあげられます. 有名な市販ソフトウェアにはAdobe Illustrator,Adobe PhotoShopやAldus FreeHandなどがあります.

しかし,PSプリンタ以外のプリンタにPostScriptファイルを出力することも可能で,そのためのPostScript言語互換インタープリタのソフトウェアが開発されています. その中でも最も入手しやすいのはGhostscriptです.

GhostscriptはAladdin EnterprisesのL.Peter DeutschがGNU General Public Licenseに従って無料で配布しているPostScript互換インタープリタで,多くのプリンタに対応しています. UNIX版以外にもDOS版やWindows版およびMacintosh版などがあります.

EPSファイルとはEncapsulatex PostScriptファイルの略で,他のアプリケーションで取り扱いやすいように図形情報がカプセル化されたPostScriptファイルです. EPSファイルは必ず次のようなヘッダコメントから始まっています.
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: GraphicConverter
%%Title: WINTEX.ps
%%BoundingBox: 0 0 128 62
  .............
1行目がバージョンコメントで,そのファイルがPostScriptファイルでありEPSファイルのバージョンを表しています. EPSファイルで最も重要な情報はコメント"%%BoundingBox:"で,次のような行になっています.
%%BoundingBox: x0 y0 x1 y1
このコメントにはそのファイルで描く画像の位置と大きさを示すコメントが書かれています. 画像の外枠の左下の座標が(x0, y0),右上の座標が(x1, y1)であることを意味しており,結果的に画像サイズは横幅が "x1-x0",縦幅が "y1-y0" であることを表しています. 単位はポイント=1/72インチです.

ポストスクリプトの表示:Ghostscript

ポストスクリプト(またはEPS)ファイルmyphoto.psをモニタ上で表示するには,次のようにGhostscriptを使います.
% gs myphoto.ps
何ページにもわたるPSファイルであるときには,Enterによってページを進めます.

課題1: 適当なGIF形式またはJPG形式の画像ファイルを画像処理ソフトウェア XVを使って,ポストスクリプト(EPS)ファイルに変換し,これをGhostscriptを使って表示せよ.

ただし,画像イメージは高々5cmx5cm程度の小さなものとせよ.

LaTeX文書に画像を張り込む

LaTeX文書中に別に用意したポストスクリプトファイルを張り込んで一緒に出力することができます.

DVI->PSドライバ

LaTeXファイルにPostScript画像ファイルを張り付けて出力するためには, の二つが必要です.

PSドライバには多くの種類がありますが,ASCII版日本語TeXやNTT版\JTeXに対応しているjdvi2kpsとdvi2ps-jがよく使われています

本学で使っているLaTeXシステムはASCII日本語LaTeXであるので,PSドライバとしてはjdvi2kpsを使います.
EPSファイルを取り込むための専用スタイルファイルにはPSドライバに対応したものを用意しなければなりません. PSドライバに対応してPostScriptファイルを張り込むためのスタイルファイルには次のものがよく使われています.
TeXの種類PSドライバEPSスタイルファイル
NTT版JTeXdvi2ps-jeclepsf.sty
ASCII版日本語TeXjdvi2kpsepsbox.sty
これらのEPS用スタイルファイルを使うと,EPSファイルを張り込めるだけでなく,PostScriptの大きな特徴の一つである図形の拡大縮小もその品質を損なうことなく簡単に行なえます.

EPSファイルの張り込み出力までの手順

以下の説明では,ASCII日本語LaTeX用のポストスクリプト用スタイルファイル『epsbox.sty』を使い,PSドライバjdvi2kpsを使って印刷することを前提としています.

まずEPSファイルをLaTeXファイルに張り付けて印刷するまでの手順を確認しておきましょう. EPS用スタイルファイルの使い方はこの後で説明します. EPSファイルの張り込みを指定してから印刷までの具体的な手順は次のようになります.

  1. EPSファイルとこれを取り込むためのEPSスタイルファイルを用意し,後で説明する方法でEPSファイルの取り込みを指定したLaTeXファイルを書く.

  2. LaTeXでコンパイルしてDVIファイルを作成する. この時点では,DVIファイルにはまだEPSファイルは`取り込まれて'いません. したがって,ファイルを移動するときにはEPSファイルも一緒に移動しなければなりません.

  3. プリンタから印刷する.
    • 直接プリンタに印刷する. PSドライバによって,DVIファイルは先頭から逐次PostScriptに変換され,EPSファイル`取り込み'の箇所ではこれを読んでPostScriptコードとして標準出力に出力されるので, この出力をPostScriptプリンタへリダイレクションする. 実際には,標準出力に出力されたPostScriptコードを,lprにパイプします.
      % jdvi2kps(またはdvi2ps) DVIファイル名 | lpr
      
    • ポストスクリプトファイルに出力する. 次のように,適当なファイル名を決めて,PSファイルとしてリダイレクションします.
      % jdvi2kps dviファイル名 > PSファイル名
      
      こうして得られるPostScriptファイルにはEPSファイルの情報も含められているので,このファイルだけでEPSファイルが張り込まれたLaTeX文書を出力することができます.
      % lpr PSファイル名
      

EPS用スタイルファイルの使い方

EPSファイルをLaTeXに張り込むためのコマンドを説明します. EPSファイルには拡張子として".eps"または".ps"を付けるのが慣習になっています. ちなみにPostScriptファイルには拡張子として通例".ps"を付けます.

ASCII日本語LaTeX用のPSドライバjdvi2kpsを使う場合には,ポストスクリプトファイルの張り込み用のスタイルファイルepsbox.styを使います. 以下ではepsbox.sty}を例にとって説明しますが,NTT日本語LaTeXで広く使われているPS用スタイルファイルeclepsf.styと同じ書式で書ける範囲で紹介します. したがってeclepsf.styの使い方についても,スタイルファイル名をepsboxからeclepsfに取り替えるだけで,後は同じように成立します.

LaTeXのページにEPSファイルを取り込むためには,次のようにLaTeXファイルを書き,コマンド\epsfile{...}を使います.

\documentstyle[epsbox]{jarticle}
\begin{document}
.....
\epsfile{file=EPSファイル名[,オプション]}
....
\end{document}
EPSファイルの場所指定は,"このLaTeXファイルからEPSファイルまでの相対ディレクトリパス"を区切り記号/を使って指定します. たとえば,sin曲線を表わすEPSファイルsin.epsを用意しておいて,次のように文中でEPSファイルを取り込む命令を記述します.
元のサイズです.\epsfile{file=psfile/sin.eps}\\
拡大もできます.\epsfile{file=psfile/sin.eps,scale=1.5}
変形も\epsfile{file=psfile/sin.eps,hscale=0.5,vscale=2}この通りです.
すると、次のような図が得られます。

図からもわかるように,"\epsfile{...}"で張り込まれる画像は"文中の文字"として扱われます. また,拡大や変形によっても画像の品質には変化がないというPostScriptの特質もうかがえます.

コンパイルした後でxdviでプレビューします。 xdviでは、ポストスクリプトを張り付けている領域は四角の空白領域となっていますが、右にある[Ps Fig]ボタンを押すとGhostscriptが自動的に起動してポストスクリプトの内容も同時にプレビューできます。

ポストスクリプトファイルの内容をみることのできない他のプレビューアを使っているとき、epsbox.styにはドラフト機構を使うと便利です。 LaTeXファイルの任意の場所で『\psdraft』と指定すると,"それ以降"のEPSファイルは取り込まれずにその外枠とファイル名だけが表示されます. 一方,『\psfull』 と指定すると"それ以降"EPSファイルが出力されます. この機構を使って,プレビューやPostScriptに対応していないプリンタを使っているときにページレイアウトの参考にしたり(微妙にずれますが),草稿としての出力ができます.

EPSファイルを読み込む"\epsfile{...}"のオプションの使用法の一部を以下に示します. このとき,カンマ『,』の前後には余分な空白を入れてはいけません.
大きさの指定
EPSファイルの画像の大きさを指定することができ,高さを示すheightと幅を示すwidthのキーワードが使えます.

  1. \epsfile{file=image,height=3cm}
  2. \epsfile{file=image,width=5cm}
  3. \epsfile{file=image,height=3cm,width=5cm}

このようにファイル名の拡張子『.ps』は省略することができます.

1番目と2番目のように,高さまたは幅のどちらかを指定したときには,もう一方も同じ倍率で拡大・縮小されます. つまり,元のEPS画像image.psの大きさを幅x,高さyだとすると,1番目はheightがhとするとwidth=h・x/y,2番目はwidthがwとするとheight=w・y/xになります. 3番目のように,両方指定したときはその大きさになるように拡大・縮小されます.

倍率の指定
全体の倍率はscaleを,水平方向と垂直方向を別々な倍率で指定したければ,それぞれhscalevscaleを使います.

  1. \epsfile{file=image,scale=1.5}
  2. \epsfile{file=image,hscale=2.0}
  3. \epsfile{file=image,vscale=0.5}
  4. \epsfile{file=image,hscale=2.0,vscale=0.5}

特に指定しなければ,hscalevscaleの値は1です.

課題2: 課題1で使用した画像ファイル,たとえばmyphoto.ps

  1. 原寸図
  2. 全体を80%
  3. 水平方向に1.5倍
  4. 垂直方向に1.2倍
して,LaTeX文書に貼り付けて提出せよ. ただし,LaTeX文書では
\begin{figure}[htbp]
\begin{center}
\epsfile{file=myphoto,hscale=1.5}
\end{center}
\caption{原寸から水平方向に1.5倍拡大したEPSファイル}
\end{figure}
などのように,figure環境をつかい,図の説明を\caption{...}{内に加え,文書としての体裁を完全に備えたものとせよ.

画像形式の変換ソフトウェア

画像ファイルのファイル形式の変換ソフトウェアでは,UNIXならXV,MacintoshではGraphicConverter,WindowsではGIXなどが有名です. いずれも,インターネットマガジン等の付録CD-ROMから入手できます.
情報処理概論目次