Inkscape で LaTeX の数式を入力する このエントリーを含むはてなブックマーク このエントリーをはてなブックマークに追加

Inkscape の話。

20070619 schroedinger

メニューの「エフェクト」→「レンダリング」→「LaTeX数式」で、表示されたウィンドウに LaTeX 形式で入力すれば、かっちょいい数式を挿入できる。しかもベクトルデータだからきれい! なお、この機能を動作させるには、pstoedit がインストールされている必要がある。

20070924 latexeq

ありがたいこの機能、なぜか僕の環境だと動作しない。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 Print This Post

13 Responses to “Inkscape で LaTeX の数式を入力する”

  1. gussan@マイチキンハート Says:

    はじめまして。
    この記事に本当に助けられました。 ありがとうございます。
    ところで、記事の転載はやはりまずいでしょうか。
    自分のページにアーカイブとして残しておきたかったのですが、問題あるかなと思いリンクするにとどまっています。
    もし、問題なければ宜しくお願いします。

  2. shun Says:

    >gussan さん
    はじめまして。お役に立てたようで嬉しいです。
    差し支えなければ転載・引用じゃんじゃんお願いします。
    おっしゃるとおり Inkscape は便利なソフトなのに情報が少ないので、
    いくらかでも知識の共有に貢献できればと思いまする。

  3. gussan Says:

    ありがとうございます!
    オープンソースを使っている身として 僕も、コアな部分やらサポート的な部分やらで貢献していきたいなと思っています。

  4. burote Says:

    はじめまして.5時間もかかってやっとここにたどり着けましたw
    これから試してみますが,本当に助かりました.
    最近になって,Inkscapeを使い出すようになったのですが,
    inkscapeで,epsfileを作るのにtexの数式をどうインポートしようか困っていたところです.
    ありがとうございました.
    しかし,まず「エフェクト」→「レンダリング」→「LaTeX数式」がないので探しますorz

    失礼いたします.

  5. burote Says:

    度々失礼します.
    「エフェクト」→「レンダリング」→「LaTeX数式」について調べていたましたが,
    それらしき情報が見つからず,四苦八苦しております.
    その間に,windowsでtex数式を持ってくる方法として,
    “.tex” -> “.pdf” (winshell) -> “.svg” (pstoedit)
    という手順を見つけることができました.
    (ちなみに,”.tex” -> “.ps” -> “.svg” については,文字化けしました)

    結果オーライなんですが,このHPに書いてある方法の方が,スマートなので是非やってみたいです.
    もしよろしければ,エフェクトの追加方法を教えていただけないでしょうか?
    使用しているPCはwinXPで,Inkscapeはver.0.45です.
    お手数ですがよろしくお願いします.

  6. shun Says:

    > burote さん
    はじめまして。

    僕の環境も Windows XP で Inkscape 0.45 です。
    エフェクトは最初からついていた覚えがありますが……無くなっちゃったんでしょうか?
    参考までに LaTeX 数式メニューが表示されているところの画像を追加してみました。

    pstoedit は EPS ファイルを Inkscape に取り込みたいときには便利ですね^^
    僕もグラフを取り込むのに使っています。

  7. gussan改めyoshi@マイチキンハート Says:

    偶然このコメントを見つけたので書き込みます。
    buroteさんはLaTexインストールしてパスが通っているでしょうか? 私はノートPCにもInkscapeを入れているのですが、Texを入れてないからなのか、EfectにLatex数式が表示されていません。
    一度確認してみてください。
    (そしてInkscapeをインストールしてエフェクトに自動的に表示されるかどうか知りたいので)

    ちなみに、最悪の場合dvipsコマンドとGSコマンドを使ってアウトラインをとる方法があります。

  8. burote Says:

    >shun
    画像ありがとうございます.丁度,”LaTex数式”のみない状態ですw
    その後,pstoeditを使ってsvgを作ってみました.現在は1ページ丸々コンバートしているので,処理が重くてあまりいい方法ではないかもしれませんね….orz
    それから,変換したあと,Oなどの閉じた文字は内側も真っ黒になり,”○”が”●”になります...
    早いうちに,上記の方法でLaTeXとInkscapeの環境をよくしたいものです(^^;)

    >gussan改めyoshi@マイチキンハート
    はじめまして.
    “LaTexインストールしてパスが通っているでしょうか?”という質問についてですが,
    まず”パスが通っている”についてよくわからなかったので,ググッて調べました.
    その上で,LaTeXのパスは具体的にどれにあたるのでしょうか?
    また,ここでいうLaTeX=Winshell と考えています.m(_ _)m

    知識がないため話にならないかもわかりませんが,ご教授いただければとおもいます.

  9. gussan改めyoshi@マイチキンハート Says:

    いろいろ試してみました。 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みたいになってすみません。

  10. yoshi@マイチキンハート Says:

    まとめてみました。 管理人さんリンクを張らせてください。
    http://www.my-chicken-heart.com/2007/09/pstoeditpath.html
    うまくいったらコメント宜しくお願いします。

  11. burote Says:

    >yoshi@マイチキンハート
    現在,論文を必死に書いているところでありまして,恐縮ではありますが,手短に失礼します.
    上記にあるとおり,PATHを通すことにより,Inkscapeの”エフェクト”にLaTeX数式”が表示されました.他エラーがありますが,本サイトの管理人さんの方法で問題が解決されると思います.
    ご連絡遅くなってしまい申し訳ありませんでした.
    また,管理人さんにもこの場をお借りしましたこと,お詫び申しあげるとともに感謝しております.

  12. burote Says:

    先ほど,上記ブログに記載されている方法を用いまして,トライしてみました.
    しかし,自分で作ったフォルダー(F:\\Inkscape\\)にeq.texまでは保存されますが,その後がうまくいっていない様子です.
    (”eqtexsvg.py”の105行目あたり,「os.system(‘latex -output-directory=’ + base_dir + ‘ -halt-on-error ‘ + latex_file + ‘ > ‘ + out_file)」以降の部分)

    また,調べた後にご報告しにこれればと思っています.
    失礼します.

  13. yoshi@マイチキンハート Says:

    とりあえず、よかったですね。
    ちなみに僕も論文の真っ最中です 笑

    苦肉の策ですが、Tex数式をsvgに変換する方法をアップしてみましたので試してみてくださいな。
    http://www.my-chicken-heart.com/2007/09/inkscapetex.html

Leave a Reply