名前: 神保 日時: 2006-06-08 20:46:05 IPアドレス: 150.46.3.*
TeX Wiki の「TeXの数式をDTPソフトに」のサイトを参考に、 OpenOffice.org 2.0x (以下、OOo) や Inkscape でTeXの数式を利用する方法を 検討してみました。 作業は、すべて Windows XP 上ですることにします。 Inkscape は、SVG を直接編集でき、また OOo でもインポートフィルタ SVG Import Filter for OpenOffice 2.0 http://www.ipd.uka.de/~hauma/svg-import/ で読み込んで利用できるので、アウトライン化されたEPSファイルを SVGに変換することにしました。 その過程でいくつかのノウハウが得られましたので報告します。 同時に解決できていない問題点を最後の項目に書ました。 その点について御助言を頂ければ幸いです。 1. testeq.eps をSVGファイルに変換するために、ラスタベクタ変換をする potrace コマンドを利用することを考えてみました。 使用した Potrace (http://potrace.sourceforge.net/) のバージョンは、最新の 1.7 です。 まず十分解像度の高いビットマップ画像を作ります。 gswin32c -q -sDEVICE=pbm -sOutputFile=testeq.pbm -r2400 -dNOPAUSE -dBATCH -dSAFER -dEPSCrop testeq.eps 次に、potrace コマンドでベクタ化しSVGファイルとして出力します。 potrace -o testeq.svg -s testeq.pbm このようにしてできたSVGファイルは、元のEPSファイルと比べて遜色ない ように見えます。 解像度を指定する "-r2400" の部分の値を大きくするとより正確になるはず ですが、おそらくその値の自乗に比例して一時ファイル testeq.pbm の サイズが巨大になってしまいます。 2. 次に、"-f plot-svg" オプションを指定して pstoedit コマンドを使って みます。 使用した pstoedit (http://www.pstoedit.net/pstoedit) のバージョンは、最新の 3.44 です。 "-f svg" オプションもあるようですが、シェアウェアなので無料で使える "-f plot-svg" だけを検討することにします。 直接 testeq.eps を処理しようとすると「フォントがないので別のもので 代用する」というような内容の警告が出て、文字化けしたようなものが できてしまうので、「TeXの数式をDTPソフトに」にあるように、 一旦アウトライン化されたEPSファイルを作ってからそれをSVGファイルに 変換することにします。 「TeXの数式をDTPソフトに」には、「できたtesteq2.epsの %%BoundingBox: 行がなぜか変なので」とありますが、この問題は、上の 1. に書いたように gswin32c コマンドの "-dEPSCrop" オプションを指定すると解決するようです。 また、この "-dEPSCrop" を付けると、十分にアウトライン化されるように 予め大きい描画の EPS ファイルを作っておかなくても "-r<DPI値>" の オプションで解像度の値 nnn を十分大きくすれば問題は生じないように 見えます。 例えば、次のコマンドでアウトライン化されたEPSファイル testeq2.eps を 作ることにします。 gswin32c -q -sDEVICE=epswrite -sOutputFile=testeq2.eps -r9600 -dNOPAUSE -dBATCH -dSAFER -dEPSCrop testeq.eps この testeq2.eps を次のコマンドでSVG化してみます。 pstoedit -f plot-svg -dt -ssp testeq2.eps testeq2.svg なお、"-ssp" を指定しないと TeX の \alpha や \beta の白抜きの 部分が黒く塗り潰されてしまいます。 3. この方法で作ったSVGファイルは、「TeXの数式をDTPソフトに」の例にある 数式では問題なかったのですが、 \[ \alpha \: \setlength{\unitlength}{0.6ex}% \begin{picture}(4,2) \put(0,1){\vector(1,0){4}} \end{picture} \: \beta \; \rule{1em}{1ex} \] のように数式中に長方形を含む場合その部分が消えてしまうようです。 この例では、右端の黒い長方形の外に、右矢印の軸の部分も消えてしまいます。
この書き込みへの返事: