taggaの日記: [メモ] 数式画像の作り方
LaTeX2Htmlの数式部分だけのことをやりたいなあと考えて、 latex2html のソースを眺めて、検索かけて、man 読んで……と悩んでのとりあえずのメモ。 同じようなツールは探すといろいろあるに違いないけど。 LaTeX と Dvi2Ps が日本語に対応していると、数式で日本語も使える。
-
LaTeX で数式を書く
- 適当な大きさないなるように、文字の大きさを TeX で決めておく。
- \clearpage で、 各ページには画像に変換するものだけを 1つずつ配置する。
- \pagestyle{empty} でノンブルを消す。
-
Dvi2Ps で各ページを PostScript に変換する。
- pdvips -S1 -i FOO.dvi
- これで FOO.001, FOO.002, ... という連番の PS ができる。
- ImageMagick® の convert コマンドで、PNG に変換して、
周囲をトリミングする。
- convert -trim FOO.00x FOO-00x.png
考えている用途は、 文書にプログラムを埋め込むツールを使って半自動で HTML を作る場合に、 TeX の式を画像に変換してリンクすること。 なんとかなりそうだな。
11:20追記: Dvi ファイルを引数にする Perl。
use strict;
use warnings;
my ($basename, $count, $pngfile);
my $dvips = "pdvips";
my $convert = "convert";
foreach my $dviname (@ARGV) {
$basename = $dviname;
$basename =~ s/\.dvi$//;
system("$dvips -S1 -i $dviname 2> /dev/null") == 0
or die "$0: can't exec -- $dvips -S1 -i $dviname\n";
foreach my $psfile (glob("$basename.[0-9][0-9][0-9]")) {
$count = (split(/\./, $psfile))[-1];
$pngfile = "$basename-$count.png";
system("$convert -trim $psfile $pngfile") == 0
or die "$0: can't exec -- $convert -trim $psfile $pngfile\n";
unlink $psfile;
}
}
dvipng が日本語対応していて、しかもトリムの感じがよければいいのになあ。
16:30 追記: 確かにもうそろそろこういうのはちょっとねえと僕も思うけど、 あれこれダウンロードしてくれと説明を書くくらいなら現状では画像が楽なんだよねえ……。 まあ、手で MathML を書く日が来るとは思えないから、 今は画像に変換するけど、いずれは MathML が普及したときにはそっちに変換するように プログラムを書き替えればいいってことで割り切った。
[メモ] 数式画像の作り方 More ログイン