2009年12月5日土曜日

LaTeXの数式をsvgにする

LaTeXの数式を画像に入れたい,ってときありますよね.
僕はあります.
そういうときは,結局,TeXでつくる書類に入れる図だったりするので,今まではpicture環境で入れてた.
ただ,数式の数が増えるとめんどくさい.
いちいち,場所を調整するのも面倒だし,図の大きさを変えたいときとか,位置調整したり,\unitlengthを調整したりと,結構手間がかかるのよね.
見栄えはいいけど.

LaTeXの数式をInkscapeに挿入できるエクテンションがあるらしい(参考).
調べると,pstoeditというので,eps --> svgへの変換が可能らしい.
というか,ここに書いてあった通りにできました.
手順は,
とりあえず,pstoeditをインストール.
fink install pstoedit
もしくは,
sudo port install pstoedit
LaTeXのソースを作る.
\documentclass[30pt]{jsarticle}
\usepackage{txfont}
\begin{document}
\thispagestyle{empty}
$$\sum_{k=1}^{n} k = \frac{n(n-1)}{2}$$
\end{document}
こんな感じで.日本語は入れちゃ駄目.
あと,documentclassをjsarticleにしないと,30ptというデカ文字は指定できないっぽい.
できたら,LaTeXのコンパイル.
platex math.tex
できたmath.dviをepsに変換するよ.
dvips -Ppdf -E math.dvi -o math.eps
さらにこのmath.epsをアウトライン化.
eps2eps math.eps math1.eps
eps2epsはghostscriptについてくるコマンドなので,TeXがコンパイルできるなら,多分インストール済み.
上書き保存はできないので,ファイル名を変える必要あり.
最後に,math1.epsをsvgに変換だ.
pstoedit -f plot-svg math1.eps math.svg
以上で完成です.

Inkscapeに読み込むには,ファイル --> インポートで出来る.
グループ化されているので,オブジェクト --> グループ解除する.
文字内で円になっている箇所が,塗りつぶされている可能性があるので,その箇所を範囲指定してから,パス --> 排他を選ぶ.
いや〜出来た,出来た.
コマンドがたくさん出てきたので,関数としてzshrcに書いておいたら,快適になりました.

0 件のコメント:

コメントを投稿