TeXで生成された図や数式を余白なしのpdfやpngに変える方法

例えば、md2inaoを使って文章を書く場合、文中に数式を埋め込みたくなる。例えば、Sphinxの場合はmathというマークアップによって、TeXによって生成された数式を埋め込むことができる。こういったことをやりたい。TeXには詳しくないのだが。

TeXで生成した数式などを、A4 1ページまるまるの画像ではなく、なるべく最小限の幅にしたいときがある。そういうときには、previewパッケージを用いるようだ。ただし、previewパッケージはdvipdfmxに対応していない。普段はdvipdfmxを使っているので、これが使えるとありがたい。Takayuki YATOさん(zr-tex8r)がgistに掲載しているprdvipdfmx.defを使うとそれが可能となるようだ。

prdvipdfmx.defが導入されれば、以下のような手順で目的のpdf/png画像を得ることができた。

> platex math.tex
> dvipdfmx math.dvi
> convert -density 600 math.pdf math.png # 必要に応じて

さて、そのprdvipdfmx.defはどうやって導入するのだろうか。

[改訂第5版] LaTeX2e 美文書作成入門

[改訂第5版] LaTeX2e 美文書作成入門

prdvipdfmx.defの導入方法

prdvipdfmx.defはTeXから見える位置に置けばいいらしいが、どこにファイルを置けばTeXから見えるのかよく分からなかった。環境変数TEXMFHOMEというのがあるらしいが、MacTex2013を入れた段階ではそういう環境変数は設定されていなかった。kpathseaというTeXが使っているファイル名からファイルの実体を探し出すシステムがある。ls-Rとかのキャッシュを使うヤツですな。

kpathseaでのwhich的なものがあり、それを使えばkpathseaが検索対象とするTEXMFの位置が分かるらしい。

> kpsewhich -var-value TEXMF
{/Users/suenaga.tasuku/Library/texlive/2013/texmf-config,/Users/suenaga.tasuku/Library/texlive/2013/texmf-var,/Users/suenaga.tasuku/Library/texmf,!!/usr/local/texlive/2013/texmf-config,!!/usr/local/texlive/2013/texmf-var,!!/usr/local/texlive/2013/../texmf-local,!!/usr/local/texlive/2013/texmf-dist}

どうやら、MacTex2013においては、~/Library/texmfを検索対象としているようだ。このディレクトリ直下にファイルを置いても認識されない。~/Library/texmf/texというディレクトリを掘って、そこ以下にファイルを置かないといけない。

prdvipdfmx.defを~/Library/texmf/tex直下にコピーした。以下のようにしてきちんとkpathseaに認識されていることが分かる。

> kpsewhich prdvipdfmx.def
/Users/suenaga.tasuku/Library/texmf/tex/prdvipdfmx.def

standaloneクラス

なお、previewパッケージを使う方法以外にも、standaloneというクラスを使う方法もあるようだ。何も考えなくとも、dvipdfmxにも対応しているらしいが、とりあえずはdvipdfmxでいけるようになったのでこれでいい。