PostScript画像変換 ps2img

最終更新: 2011/02/10 19:52:24 [| ]  最終更新: 2011/02/10 19:52:24

ps2imgとは

ps2img は Encapsulated PoscScript(EPS)ファイルを GIF/PNG/BMP に適宜拡大縮小しつつ変換するツールです。

論文などを執筆する際に、LaTeXは広く用いられています。 LaTeXで図を挿入する場合に、多く用いられるのが、EPS型式です。 UNIX用上で動作するドロー系ソフトやグラフツールはEPSを出力可能ですし、若干コツは要りますが、本家AdobeのIllustratorが出力するEPSファイルも挿入できます。

一方で、プレゼンテーションをする場合にはMicrosoft社のPowerpointを用いるというケースもよくあります(MS製品は嫌いでも)。 私はJustSystemの花子を使っていますが、いずれにせよ、EPSは直接扱い難く、論文に書いた図と同じようなものをわざわざ書き直すこともありました(実際、そのほうが見栄えも良くなるので)。
また、似たようなケースですが、WWWで情報公開する場合も、EPSは普通のブラウザで直接表示できないため、変換する必要があります

このような場合、EPSファイルを適当な画像ファイルに変換して、挿入してしまえばいいのは確かですが、gsのコマンドをごちゃごちゃ打ち込むのは面倒ですし、gvで表示させておいてキャプチャというのも手間がかかります。 そこで、EPSファイルを指定したサイズに拡大縮小し、指定した画像型式のファイルとして出力する、ps2img を開発しました。

長いこと、ps2gif だったのですが、昨今のgifに対する微妙な圧力を考慮し、PNG や Windows Bitmap も出力できるようにしました。 また、スライドに綺麗な数式を貼り込めるように、LaTeXの記述をダイレクトに画像ファイルにする機能もあります。


ps2imgの導入

必要なもの・環境

必要なもの:

いっぱつで動くことが期待されている環境: 困難が予想される環境:

ダウンロード

コマンド ps2img (2008/05/23, 2,210 bytes)
ライブラリ psimglib.pl (2008/05/23, 11,768 bytes)

ダウンロード後、適当なところに置いて、chmod +x で実行属性付加。

設定

  1. 環境に依存する設定
  2. 環境に依存しない設定



使い方

ps2gif(/png/bmp)

コマンドライン:

ps2gif (-d) <source> <destination> (<width> (<height> (<bgcolor>)))
引数: ※ width 以降の引数は省略できます。ただし、width だけ省略、といった扱いは できませんので、下記の説明にしたがって 0 を指定してください。

sourceを画像に変換しdestinationで指定したファイルに格納します。 特に出力サイズを指定しなければ、PostScriptの座標単位(多分ポイント)をそのまま1ピクセルに対応させます。 また、destinationとsourceの更新日および画像サイズを比較し、必要がなければ変換をスキップします
(背景色は未チェックのため、色のみ変えるdestinationを削除後に変換する必要あり)。

幅の指定は以下の2種類が可能です。

横幅のみ指定した場合は、縦幅は原図の縦横比を元に自動計算します。 逆に縦幅のみ指定した場合は、横幅を計算します。数値=0で、無指定扱いとなるため、縦のみ指定する場合は "0 縦幅" としてください。

color で背景色を指定することができます。これはスライドや、WEBページの背景色が指定されている場合などに、有用なオプションです。

このオプションを使うには、幅と高さを指定する必要がありますが、それらを指定するつもりがない場合は、0と指定してください。

tex2gif/png/bmp

コマンドライン:

tex2gif <TeX-text> <destination> (<mag> (<bgcolor>)))
引数: ※ mag 以降の引数は省略できます。ただし、mag だけ省略、といった扱いはできませんので、1 を指定してください。

TeX-text をLaTeXのソースとしてplatexでコンパイル(jarticle, 12pt)して、destination に出力します。 また、destination.tgi というファイルに変換情報を残し、前回の情報と、今回の要求を比較して、必要がなければ変換をスキップします
(何らかの理由で強制的に再変換するには tgi ファイルを削除する)。

引数 mag は出力の倍率を指定するもので、1のとき(多分)1ポイント1ピクセルで出力されます。LaTeXの場合、横幅の予想がつきにくいため、倍率指定のみになっています。

引数 color の背景色指定は上述のps2gifと同様です。

変換時にエラーが出た場合、大抵は、入力テキストのミスですが、一目で分からない場合、-d オプションをつけて実行すると、platexのエラー出力が確認でき、また、作業ディレクトリ(/tmp)にそれらしい名前の中間ファイルが残されますので、それを確認してください。

eqn2gif/png/bmp

コマンドライン:

eqn2gif <TeX-equation> <destination> (<mag> (<bgcolor>)))
引数: ※ mag 以降の引数は省略できます。ただし、mag だけ省略、といった扱いはできませんので、1 を指定してください。

TeX-equationをLaTeXの数式としてplatexでコンパイルして、画像に変換しdestination に出力します。tex2gifに \begin(end){eqnarray}を追加したものです。スライドなどに綺麗な数式を貼りたいときに、原稿から抜いてきた数式をこれで変換すると楽です。

引数 mag , color はtex2gifなどに準じます。

おまけで '\vect{x}'という制御綴りを追加してあります。これはボールドイタリックで出力するため、ベクトルや行列を記述できます。

環境変数

このツールは以下の環境変数を参照します。


実行例

tex2gif '\LaTeX' ps2img_1.gif 4
実行して得た画像1(LaTeXロゴ)
tex2gif '\LaTeX' ps2img_2.gif 4 #c0ffe0
実行して得た画像2(背景色指定)
eqn2gif 'y = f(x)' ps2img_3.gif 4
実行して得た画像3(簡単な数式)
eqn2gif 'r_{i,j}(t)&=&e_{i,j}(t)\cdot\sin\omega_i t\nonumber\\
&=&K_{Ci}~\vect{c}_i\cdot\vect{v}_j~\{1-2\cos(2\omega_i t)\}/2' 
ps2img_4.gif 2 (1行で)
実行して得た画像4(複雑な数式)
setenv NOSMOOTH 1 ; tex2gif 'a' ps2img_5ns.gif 2
setenv NOSMOOTH 0 ; tex2gif 'a' ps2img_5s.gif 2
スムージングあり スムージングなし
スクリプト:
#! /usr/local/bin/tcsh -f
setenv NOSMOOTH 1
ps2gif ../detectsys.eps detectsys.gif 1920
ps2gif ../excitesys.eps excitesys.gif 1920
ps2gif coopfield.eps coopfield.gif 800

# これを変えれば適当に一発。
set MAG=8
eqn2gif '\Phi_{i,j}(t)=S~B_{Ci}~\vect{c}_i\cdot\vect{v}_j~\cos\omega_i t' eqn1.gif $MAG
eqn2gif 'e_{i,j}(t)&=& K_{Ci}~\vect{c}_i\cdot\vect{v}_j~\sin\omega_i t' eqn2.gif $MAG
eqn2gif 'R_{i,j}&=&K_{Ci}~\vect{c}_i\cdot\vect{v}_j/2' eqn4.gif $MAG



色見本

ps2img, tex2img ともに背景色はrgb.txtの色名で指定できますが、どんな色があって、どんな色になるかはやってみなければわかりません。 そこで、色見本をつくりました。

色見本ページ:
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
(大量に画像が貼ってあるので激重注意, XF86-4)

色見本生成スクリプト等:
ディレクトリインデックス
makecolors.pl: 本体 (ps2gif 必須)
template_tb.eps: 黒線テンプレート
template_tw.eps: 白線テンプレート
以上を適当なフォルダにいれてmakecolors.pl実行。

注意:これらはあくまでps2imgほか、X11のrgb.txtを参照するソフトで使用可能ないろであって、よくあるHTMLで指定できる色見本とは異なります(そのため、わざわざgifにしているわけですが)。また、OSへの依存性がそこそこありますので、ご参考まで。


利用上のご注意



熊谷正朗 [→連絡]
東北学院大学 工学部 機械知能工学科 RDE
[| ]