Inkscape で LaTeX の数式を入力する

Inkscape の話。
メニューの「エフェクト」→「レンダリング」→「LaTeX数式」で、表示されたウィンドウに LaTeX 形式で入力すれば、かっちょいい数式を挿入できる。しかもベクトルデータだからきれい! なお、この機能を動作させるには、pstoedit がインストールされている必要がある。
ありがたいこの機能、なぜか僕の環境だと動作しない。c:\program files\inkscape\share\extentions ディレクトリにある
- eqtexsvg.py
に問題があるようなので、修正してみた。
—
内部で行われている動作はこんな風になっている。
- まず、テンポラリフォルダを作成する。
- つぎに数式を含む tex ファイルを生成する。
- latex で、 tex ファイルから dvi ファイルを作る。
- dvips で、 dvi ファイルから ps ファイルを作る。
- pstoedit で、 ps ファイルから svg ファイルを作る。
- svg ファイルを読み込む。
という具合。
Windows 版 Inkscape ではテンポラリフォルダを c:\docume~1\ユーザー名\locals~1\temp\ の中に作り、この中に tex ファイルなんかを作ろうとする。このパスの中に含まれるチルダのせいで、LaTeX コンパイル時に撃沈する。そんなわけで「テンポラリフォルダは自前のを用意するから、そちらを使え」とスクリプトを書き換える。
eqtexsvg.py (83行目)
#base_dir = tempfile.mkdtemp("", "inkscape-");
base_dir = "d:\\temp\\inkscape\\"
eqtexsvg.py (100行目)
#os.rmdir(base_dir)
ちなみに # はコメントアウトのしるし。
extexsvg.py (113行目)
#os.system('dvips -q -f -E -D 600 -y 5000 -o ' + ps_file + ' ' + dvi_file)
os.system('dvips -q -f -E -Pdl -o ' + ps_file + ' ' + dvi_file)
なお、Python で書かれているので、インデントの量でブロックが決まる。インデントの量をむやみに変えないように注意すべし。
—
ついでに、最初に「LaTeX数式」機能を起動すると、なぜか数式が \( \) で括られている。本来は \[ \] なので修正すると良いかも。もちろん \begin{equation*} \end{equation*} などでもおっけ。
—
関連記事
Print This Post


9月 10th, 2007 at 21:46
はじめまして。
この記事に本当に助けられました。 ありがとうございます。
ところで、記事の転載はやはりまずいでしょうか。
自分のページにアーカイブとして残しておきたかったのですが、問題あるかなと思いリンクするにとどまっています。
もし、問題なければ宜しくお願いします。
9月 11th, 2007 at 2:55
>gussan さん
はじめまして。お役に立てたようで嬉しいです。
差し支えなければ転載・引用じゃんじゃんお願いします。
おっしゃるとおり Inkscape は便利なソフトなのに情報が少ないので、
いくらかでも知識の共有に貢献できればと思いまする。
9月 11th, 2007 at 11:02
ありがとうございます!
オープンソースを使っている身として 僕も、コアな部分やらサポート的な部分やらで貢献していきたいなと思っています。
9月 23rd, 2007 at 13:19
はじめまして.5時間もかかってやっとここにたどり着けましたw
これから試してみますが,本当に助かりました.
最近になって,Inkscapeを使い出すようになったのですが,
inkscapeで,epsfileを作るのにtexの数式をどうインポートしようか困っていたところです.
ありがとうございました.
しかし,まず「エフェクト」→「レンダリング」→「LaTeX数式」がないので探しますorz
失礼いたします.
9月 23rd, 2007 at 15:15
度々失礼します.
「エフェクト」→「レンダリング」→「LaTeX数式」について調べていたましたが,
それらしき情報が見つからず,四苦八苦しております.
その間に,windowsでtex数式を持ってくる方法として,
“.tex” -> “.pdf” (winshell) -> “.svg” (pstoedit)
という手順を見つけることができました.
(ちなみに,”.tex” -> “.ps” -> “.svg” については,文字化けしました)
結果オーライなんですが,このHPに書いてある方法の方が,スマートなので是非やってみたいです.
もしよろしければ,エフェクトの追加方法を教えていただけないでしょうか?
使用しているPCはwinXPで,Inkscapeはver.0.45です.
お手数ですがよろしくお願いします.
9月 24th, 2007 at 0:59
> burote さん
はじめまして。
僕の環境も Windows XP で Inkscape 0.45 です。
エフェクトは最初からついていた覚えがありますが……無くなっちゃったんでしょうか?
参考までに LaTeX 数式メニューが表示されているところの画像を追加してみました。
pstoedit は EPS ファイルを Inkscape に取り込みたいときには便利ですね^^
僕もグラフを取り込むのに使っています。
9月 24th, 2007 at 12:07
偶然このコメントを見つけたので書き込みます。
buroteさんはLaTexインストールしてパスが通っているでしょうか? 私はノートPCにもInkscapeを入れているのですが、Texを入れてないからなのか、EfectにLatex数式が表示されていません。
一度確認してみてください。
(そしてInkscapeをインストールしてエフェクトに自動的に表示されるかどうか知りたいので)
ちなみに、最悪の場合dvipsコマンドとGSコマンドを使ってアウトラインをとる方法があります。
9月 25th, 2007 at 3:25
>shun
画像ありがとうございます.丁度,”LaTex数式”のみない状態ですw
その後,pstoeditを使ってsvgを作ってみました.現在は1ページ丸々コンバートしているので,処理が重くてあまりいい方法ではないかもしれませんね….orz
それから,変換したあと,Oなどの閉じた文字は内側も真っ黒になり,”○”が”●”になります...
早いうちに,上記の方法でLaTeXとInkscapeの環境をよくしたいものです(^^;)
>gussan改めyoshi@マイチキンハート
はじめまして.
“LaTexインストールしてパスが通っているでしょうか?”という質問についてですが,
まず”パスが通っている”についてよくわからなかったので,ググッて調べました.
その上で,LaTeXのパスは具体的にどれにあたるのでしょうか?
また,ここでいうLaTeX=Winshell と考えています.m(_ _)m
知識がないため話にならないかもわかりませんが,ご教授いただければとおもいます.
9月 25th, 2007 at 11:36
いろいろ試してみました。 Texが使えているということはおそらくPATHは通っていると思います。 おそらくpstoeditをインストールしていないのでは? インストール(ダウンロード)していてもpathが通っていなければ使えません。
ちなみに、LaTeX=Winshellではないです。以下のページが参考になります。http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?WinShell
pstoeditのパスの通し方はダウンロードしてきたファイルをたとえば「C:」に解凍すると「C:\pstoedit」というフォルダができると思います。次に環境変数の設定で「C:\pstoedit」などと設定すればよい(はずな)のですが・・・
詳細については私のページで(2,3日中に)まとめてみますので、参考にしてみてください。
ここの管理人さん、コメント欄がQ&Aみたいになってすみません。
9月 25th, 2007 at 13:15
まとめてみました。 管理人さんリンクを張らせてください。
http://www.my-chicken-heart.com/2007/09/pstoeditpath.html
うまくいったらコメント宜しくお願いします。
9月 27th, 2007 at 13:30
>yoshi@マイチキンハート
現在,論文を必死に書いているところでありまして,恐縮ではありますが,手短に失礼します.
上記にあるとおり,PATHを通すことにより,Inkscapeの”エフェクト”にLaTeX数式”が表示されました.他エラーがありますが,本サイトの管理人さんの方法で問題が解決されると思います.
ご連絡遅くなってしまい申し訳ありませんでした.
また,管理人さんにもこの場をお借りしましたこと,お詫び申しあげるとともに感謝しております.
9月 27th, 2007 at 14:14
先ほど,上記ブログに記載されている方法を用いまして,トライしてみました.
しかし,自分で作ったフォルダー(F:\\Inkscape\\)にeq.texまでは保存されますが,その後がうまくいっていない様子です.
(”eqtexsvg.py”の105行目あたり,「os.system(‘latex -output-directory=’ + base_dir + ‘ -halt-on-error ‘ + latex_file + ‘ > ‘ + out_file)」以降の部分)
また,調べた後にご報告しにこれればと思っています.
失礼します.
9月 28th, 2007 at 12:08
とりあえず、よかったですね。
ちなみに僕も論文の真っ最中です 笑
苦肉の策ですが、Tex数式をsvgに変換する方法をアップしてみましたので試してみてくださいな。
http://www.my-chicken-heart.com/2007/09/inkscapetex.html