かってにインパクトファクター

子育てサラリーマンが日々の雑多なことをつらつらと綴ってます。時々政治ネタ経済ネタコンピュータネタなどをはさみます。

EPS形式ファイルとその変換

現在論文を書いている途中ということもあり、EPS周りのファイルの
変換をまとめておきたいと思います。

まず、前提として良く使うソフトとファイル形式(ベクトル形式のみ)を。

gnuplot Tgif Inkscape
OS UNIX,Windows UNIX UNIX,Windows
入力ファイル形式(拡張子 - Tgif(OBJ) SVG(SVG)
出力ファイル形式(拡張子 ESP(EPS),SVG,etc EPS,Tgif EPS,SVG

という感じ。


基本的にtexでぺたぺたはっつけてゆくので、最後はEPSで保存しています。
gnuplotで直接EPS出力できるのだから、それでいいジャンという話になって来そうですが、結構限界があります。出来るものはgnuplotで、出来ないものやめんどくさいものはTgifなりInkscapeに任せることになります。


一応私はBSDWindowsXPをもっていますし、Samba(Windows共有)で共有していますからOSが違ってもそれほど(ほとんど?)労力なくファイルをいじれます。図をBSD側において、それをWindowsから直接開くことも出来ます。


そこで問題になるのはなにか?
グラフ関係であれば、Tgifの方が便利で装置の図になるとInkscapeの方が便利なのですが、お互いを相互に行き来できる方法がないというところです。
TgifはTgif形式かEPS形式を吐け、InkscapeSVGかEPSを吐きます。
でもお互いEPS形式を取り込めません。


お互いのファイル形式を変換できるソフトがあると便利です。
EPS形式をいろんな形式に変換できるととっても便利。
ついでに、過去の資産のEPSファイルとかも編集できるようになります。
テキストエディタで力技は最後の手段ということで)

一応、EPS,PS関係の変換ソフトは色々あります。

FreeBSD5.4
eps2eps*
ps2ascii*
ps2epsi*
ps2frag*
ps2pdf*
ps2pdf12*
ps2pdf13*
ps2pdf14*
ps2pdfwr*
ps2pk*
ps2ps*
epstopdf*
hipstopgm*
pstopnm*

WindowsXP(Texインストール済み)
epstopdf.exe
ps2pk.exe
epstopdf.exe
epstopdf.pl
pstoedit.dll
pstoedit.exe
pstops.exe

しかし、~toepsとか~2epsがありません。
あってもGhostScriptで読めるドローデータだったりします。


そこで登場するのがpstoedit。

#pstoedit -f tgif *.eps *.obj

でEPSファイルがTgifで読めるようになります。
超素敵。

#pstoedit -f plot-svg *.eps *.svg

SVGに変換も出来ます。

私はファイル形式には詳しくありませんが、とりあえずこのツール
変換できる形式をあげときます(ほとんど自分用)。

-f ~ 拡張子 形式(説明、インクルードライブラリ)
psf .fps FlattenedPostScript(nocurves)
ps .spsc SimplifiedPostScriptwithcurves
debug .dbg fortestpurposes
dump .dbg fortestpurposes(sameasdebug)
gs .gs anydevicethatGhostScriptprovides-usegs format,e.g.gs pdfwrite
ps2ai .ai AdobeIllustratorviaps2ai.psofGhostScript
idraw .idraw Interviewsdrawformat(EPS)(~/pstoedit/libp2edrvstd.so)
fig .fig .figformatforxfig(~/pstoedit/libp2edrvstd.so)
xfig .fig .figformatforxfig(~/pstoedit/libp2edrvstd.so)
tgif .obj Tgif.objformat(~/pstoedit/libp2edrvstd.so)
gnuplot .gnuplot gnuplotformat(~/pstoedit/libp2edrvstd.so)
tk .tk tkand/ortkappletsourcecode(~/pstoedit/libp2edrvstd.so)
gschem .gschem gschemformat(~/pstoedit/libp2edrvstd.so)
pcbfill .pcbfill pcbformatwithfills(~/pstoedit/libp2edrvstd.so)
pcb .pcb pcbformat(~/pstoedit/libp2edrvstd.so)
pcbi .pcb engravedata-insulate/PCBformat(~/pstoedit/libp2edrvstd.so)
hpgl .hpgl HPGLcode(~/pstoedit/libp2edrvstd.so)
pic .pic PICformatfortroffet.al.(~/pstoedit/libp2edrvstd.so)
noixml .xml NemetschekNOIXMLformat(~/pstoedit/libp2edrvstd.so)
latex2e .tex LaTeX2epictureformat(~/pstoedit/libp2edrvstd.so)
mma .m MathematicaGraphics(~/pstoedit/libp2edrvstd.so)
asy .asy AsymptoteFormat(~/pstoedit/libp2edrvstd.so)
mpost .mp MetaPostFormat(~/pstoedit/libp2edrvstd.so)
sk .sk SketchFormat(~/pstoedit/libp2edrvstd.so)
text .txt textindifferentforms(~/pstoedit/libp2edrvstd.so)
kil .kil .kilformatforKontour(~/pstoedit/libp2edrvstd.so)
pdf .pdf Adobe'sPortableDocumentFormat(~/pstoedit/libp2edrvstd.so)
java2 .java2 java2sourcecode(~/pstoedit/libp2edrvstd.so)
java1 .java java1appletsourcecode(~/pstoedit/libp2edrvstd.so)
dxf .dxf CADexchangeformat(~/pstoedit/libp2edrvstd.so)
dxf_s .dxf CADexchangeformatwithsplines(~/pstoedit/libp2edrvstd.so)
rpl .rpl Real3DProgrammingLanguageFormat(~/pstoedit/libp2edrvstd.so)
rib .rib RenderManInterfaceBytestream(~/pstoedit/libp2edrvstd.so)
lwo .lwo LightWave3DObjectFormat(~/pstoedit/libp2edrvstd.so)
gmfa .meta ASCIIGNUmetafile(~/pstoedit/libp2edrvlplot.so)
gmfb .meta binaryGNUmetafile(~/pstoedit/libp2edrvlplot.so)
plot .plot GNUlibplotoutputtypes,e.g.plot typeX(~/pstoedit/libp2edrvlplot.so)
plot-pnm .pnm pnmviaGNUlibplot(~/pstoedit/libp2edrvlplot.so)
plot-cgm .cgm cgmviaGNUlibplot(~/pstoedit/libp2edrvlplot.so)
plot-ai .ai aiviaGNUlibplot(~/pstoedit/libp2edrvlplot.so)
plot-svg .svg svgviaGNUlibplot(~/pstoedit/libp2edrvlplot.so)
plot-ps .ps psviaGNUlibplot(~/pstoedit/libp2edrvlplot.so)
plot-fig .fig figviaGNUlibplot(~/pstoedit/libp2edrvlplot.so)
plot-pcl .pcl pclviaGNUlibplot(~/pstoedit/libp2edrvlplot.so)
plot-hpgl .hpgl hpglviaGNUlibplot(~/pstoedit/libp2edrvlplot.so)
plot-tek .tek tekviaGNUlibplot(~/pstoedit/libp2edrvlplot.so)
plot-X .X XviaGNUlibplot(~/pstoedit/libp2edrvlplot.so)
swf .swf SWFdriver (~/pstoedit/libp2edrvswf.so)
magick .... MAGICKdriver(~/pstoedit/libp2edrvmagick++.so)
emf .emf EnhancedWindowsmetafile(~/pstoedit/libp2edrvwmf.so)

~=/usr/local/lib
(built-in)は省略


Windows版もあったような気がしつつ、コンパイルで失敗したような気もします(本当いい加減)。
これで、WMFからもポストスクリプトプリンタを利用してpsに変換できますから、どのベクター形式からも相互に対応できることになります(多分)。


ということで、結構いい加減ですが、今日はこの辺で。
epsからwmfへの変換とか、そのうち加筆しているかもしれません。

そういえば、gnuplotからsvgに変換してもInkscapeで読めないことあるんですよね。
その辺も一度まとめた方が良いかも。