PostScript形式のファイルは実はテキストファイルで,エディタで自由に編集することが可能です. Postscript言語で書かれたファイルをプリンタから出力するためには,PostScriptを直接解釈して出力できる専用のPostScriptプリンタ(PSプリンタ)の利用が最も適しています. 本学のUNIXの部屋にあるプリンタはこのPostscriptプリンタです.
PostScriptプリンタが優れている理由として,高度なグラフィックスの表現がPostScriptによってプリンタ機器とは独立して記述できること,また多くのコンピュータ機器に対応したPostScript対応のソフトウェアがあることがあげられます. 有名な市販ソフトウェアにはAdobe Illustrator,Adobe PhotoShopやAldus FreeHandなどがあります.
しかし,PSプリンタ以外のプリンタにPostScriptファイルを出力することも可能で,そのためのPostScript言語互換インタープリタのソフトウェアが開発されています. その中でも最も入手しやすいのはGhostscriptです.EPSファイルとはEncapsulatex PostScriptファイルの略で,他のアプリケーションで取り扱いやすいように図形情報がカプセル化されたPostScriptファイルです. EPSファイルは必ず次のようなヘッダコメントから始まっています.GhostscriptはAladdin EnterprisesのL.Peter DeutschがGNU General Public Licenseに従って無料で配布しているPostScript互換インタープリタで,多くのプリンタに対応しています. UNIX版以外にもDOS版やWindows版およびMacintosh版などがあります.
1行目がバージョンコメントで,そのファイルがPostScriptファイルでありEPSファイルのバージョンを表しています. EPSファイルで最も重要な情報はコメント"%!PS-Adobe-3.0 EPSF-3.0 %%Creator: GraphicConverter %%Title: WINTEX.ps %%BoundingBox: 0 0 128 62 .............
%%BoundingBox:"で,次のような行になっています.
このコメントにはそのファイルで描く画像の位置と大きさを示すコメントが書かれています. 画像の外枠の左下の座標が%%BoundingBox: x0 y0 x1 y1
(x0, y0),右上の座標が(x1, y1)であることを意味しており,結果的に画像サイズは横幅が "x1-x0",縦幅が "y1-y0" であることを表しています.
単位はポイント=1/72インチです.
myphoto.psをモニタ上で表示するには,次のようにGhostscriptを使います.
何ページにもわたるPSファイルであるときには,Enterによってページを進めます.% gs myphoto.ps
課題1: 適当なGIF形式またはJPG形式の画像ファイルを画像処理ソフトウェア XVを使って,ポストスクリプト(EPS)ファイルに変換し,これをGhostscriptを使って表示せよ.
ただし,画像イメージは高々5cmx5cm程度の小さなものとせよ.
PSドライバには多くの種類がありますが,ASCII版日本語TeXやNTT版\JTeXに対応しているjdvi2kpsとdvi2ps-jがよく使われています
本学で使っているLaTeXシステムはASCII日本語LaTeXであるので,PSドライバとしてはjdvi2kpsを使います.
EPSファイルを取り込むための専用スタイルファイルにはPSドライバに対応したものを用意しなければなりません.
PSドライバに対応してPostScriptファイルを張り込むためのスタイルファイルには次のものがよく使われています.
| TeXの種類 | PSドライバ | EPSスタイルファイル |
|---|---|---|
| NTT版JTeX | dvi2ps-j | eclepsf.sty |
| ASCII版日本語TeX | jdvi2kps | epsbox.sty |
epsbox.sty』を使い,PSドライバjdvi2kpsを使って印刷することを前提としています.
まずEPSファイルをLaTeXファイルに張り付けて印刷するまでの手順を確認しておきましょう.
EPS用スタイルファイルの使い方はこの後で説明します.
EPSファイルの張り込みを指定してから印刷までの具体的な手順は次のようになります.
- EPSファイルとこれを取り込むためのEPSスタイルファイルを用意し,後で説明する方法でEPSファイルの取り込みを指定したLaTeXファイルを書く.
- LaTeXでコンパイルしてDVIファイルを作成する.
この時点では,DVIファイルにはまだEPSファイルは`取り込まれて'いません.
したがって,ファイルを移動するときにはEPSファイルも一緒に移動しなければなりません.
- プリンタから印刷する.
- 直接プリンタに印刷する.
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のキーワードが使えます.
\epsfile{file=image,height=3cm}
\epsfile{file=image,width=5cm}
\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を,水平方向と垂直方向を別々な倍率で指定したければ,それぞれhscaleとvscaleを使います.
\epsfile{file=image,scale=1.5}
\epsfile{file=image,hscale=2.0}
\epsfile{file=image,vscale=0.5}
\epsfile{file=image,hscale=2.0,vscale=0.5}
特に指定しなければ,hscaleとvscaleの値は1です.
課題2:
課題1で使用した画像ファイル,たとえばmyphoto.psを
- 原寸図
- 全体を80%
- 水平方向に1.5倍
- 垂直方向に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から入手できます.
情報処理概論目次