2010年6月7日月曜日

inkscape & textext 導入

Tex で論文とかスライドとか作るときに,EPS の図を何で作るかというのでいつも頭を悩ませている。前は EPS draw とかで描いて,数式はダミーのフレーズを入れておいて,Tex のソース側で psfrag なんかを使って書き換えていた。ところが,なぜか知らんが,今の環境に最新版の Tex を入れたところ,psfrag がうまく動かない。まぁ,そもそも psfrag もいちいち数式を読み代えなくちゃいけないところが気持ち悪い。Power Point とかで作った図を EPS ファイルに落として,Bounding Box を書き替えるなんていう力技をウェブで見つけたので,それも試してみたんだが,includegraphics でクリッピングがうまくいかなかったりする。

やっぱ,直接 EPS に Tex の数式を吐かなくちゃダメよね,ってことで,inkscape というドローソフトに textext なる拡張を加える方法を発見。これを試してみた。最初にインストールしたのは
  1. inkscape 0.47
  2. pstoedit 3.50
  3. textext 0.4.4
これに ghostscript も必要と書いてあったが,すでにあるので省略。インストール後,inkscape を起動して,「エクステンション」→「Tex Text」 を選ぶものの Tex のソースを入力すべきウィンドウが開かない。調べてみたら,pstoedit にパスが通ってないっていうので,通して再チャレンジ,すると今度は,

CORE_RL_Magick++_.dll がみつかりません。
  再インストールすると 問題が解決されるかもしれません。

とかいうエラーが出る。 で,上のメッセージでGoogle 検索したところ,ImageMagick とやらをインストールすれば,解決するかもってことがわかった。「聞いてないよ」と思いつつ,これをインストール。で,再度チャレンジ,そうすると数式入力用のポップアップウィンドウが開いたので,そこに 「$\alpha$」って入力して,「OK」をクリック。すると今度は,

Error occurred while converting text from Latex to SVG:

と言われる始末。この時点でかなり嫌になってきてたんだが,もうちょい粘ってみようと思い,いろいろ調べたら,あるじゃないですか。textext のソースを書き換えるとうまく行ったってのを見つけたので,ここを参照しながら試してみる。作業内容は
  • C:/tmp/textext というフォルダを作る。
  • Inkscape\share\extensions\textext.py の 662 行目の
    self.tmp_path = tempfile.mkdtemp()
    をコメントアウトし,次のように,上で作ったフォルダに変更。
    self.tmp_path = 'c:/tmp/textext'
    さらに,747行目の
    self.try_remove(self.tmp_path)
    をコメントアウト。
よし,もうこれでいいだろと思って再チャレンジしたら,またダメ。かなりくじけそうになったが,参照したページをよく見ると,上のパスの設定で「最後のスラッシュ(/)は必要」と書いてある。確かに,上の /tmp/textext の後ろにスラッシュを入れ忘れている。もう,これで最後にしようと思い,スラッシュを追加して再度チャレンジ。そうしたら,出ましたがな。

(倍率を指定できるので,上のαは10.0 倍で出力してある。 )

自分の不注意もあったものの,えらい難産だった。日本語のウェブページではこんなに苦労した事例が見つからなかったんだけど,みんなうまく行ってたわけ?? まぁ,とにかく,これでなんとかなったよ。EPS で保存して Tex にかけたら,無事読み込めました。

ちなみに,Tex のプリアンブルをファイルとして読ませると,いろいろなフォントやマクロを使ったり,独自の定義も読み込んだりできるようなので,使いこなすと便利そうではある。作図がどの程度使いやすいかは,いろいろやってみないと何とも言えないので,しばらくこいつを使ってみようと思います。

0 件のコメント:

コメントを投稿