Inkscape で eps をきれいに出力する方法

Inkscape という強力なオープンソースのベクタ図形描画ソフト (illustrator みたいなもの) がある. linux で使えるベクタドローソフトでは, InkscapeOpenOffice.org あたりが代表的だと思うが,多分かっこいいイラスト(?)を書くのには Inkscape が一番だと(個人的には)思う.

Inkscape で書いたイラストを latex に貼るとき(論文執筆などで),eps に変換する必要があるが,ぼかしなどを含む場合は,ちょっとしたテクニックが必要になったりするので,紹介.

とりあえず,最新バージョンに

現時点での最新版は 0.47 だが,これをインストールした方がいい(古いバージョンだとepsの吐き出しが限定的だったり,gnuplotで吐いたSVGをちゃんと読めなかったりする). linux の場合はInkscapeのページからソースをダウンロードしてきて,おなじみの

tar jxvf inkscape-0.47pre0.tar.bz2
cd inkscape-0.47pre0/
./configure
make
sudo make install

でインストール.

直接 eps で保存する

「ファイル」メニューから「コピーを保存」を選んで,ファイルタイプとしてepsを選び,保存すれば,epsが生成される.ぼかしや透過を含まない場合はこれで十分だ.ぼかしなどを含む場合でも,バージョンが0.47以降(?)だと,eps生成の設定(保存ダイアログでSaveを選択した後に表示される)で "Rasterize filter effects" というチェック項目があるので,これにチェックをいれれば,ぼかしを含む画像でもepsに変換できる.

しかし,この方法で生成したepsは,文字や線が拡大するとギザギザになっていて,せっかくベクタで作ったのに残念な感じがする(解像度を高くしておけば,実際はあまり目立たない).

気にする人は,次の方法をためしてみよう.

(余談だが,たまに画面で見ているものとはずれたepsが生成されることがある.このような場合には,グループ化を解除すれば,なおることがある.)

印刷PDFを生成,epsに変換

この方法は,ちょっと面倒くさい.が,古いバージョンでも使える.まず,

1. PDFを生成する

☆ 新しいバージョンの場合
「ファイル」メニューから「コピーを保存」を選んで,ファイルタイプとしてPDFを選び,保存する."Export drawing, not page" にチェックをいれておくと,描画範囲だけPDFになる.

☆ 古いバージョンの場合
「ファイル」メニューから「印刷」を選び,ファイルに出力する-出力の形式:PDFを選んでPrintする(次のステップでpsを出力するが,ここではPDFで出力しよう.でないと,ギザギザが発生する).

次に,

2. PDFをpsに変換する

acroread を使うのが,一番安定していてよろしい.「PDFのサイズに合わせて用紙を選択」はチェックを外す,「ページの拡大/縮小」は「なし」がよい.「ページの自動回転」はチェックした方がいい場合も...

さらに,「詳細設定」をクリックし,「プリンタによるカラー指定」にチェックをいれる(これ重要のようだ).でないと,色合いがずれる.

最後に,

3. psをepsに変換する

pstoepsi というコマンドを使う.

pstoepsi HOGE.ps HOGE.eps

これでepsができる.

できたepsを拡大してみると,直接epsを生成する方法で発生したギザギザがなくなっていることがわかる(ぼかし部分はラスタ化されているからギザギザ.しかたない).

問題点

この方法で生成したepsをlatexに貼ってdvi化し,xdviで見ると,epsがずれて見える.原因不明.これはdviをpsやpdfに変換すれば問題なく(期待した位置に)表示される.

(追記@2011/11/22) Acrobat Reader で PDF を PS に変換して LaTeX に貼り付け に書いてある方法で解決できるかもしれない.

また,今度は色合いが若干ずれる場合がある.

私の環境では,acroread でPDFを生成するときに,「詳細設定」をクリックし,「プリンタによるカラー指定」にチェックをいれると解決される.これもなぜだかよくわからない.