パスワードを忘れた? アカウント作成
209154 journal

taggaの日記: [メモ] 数式画像の作り方

日記 by tagga

LaTeX2Htmlの数式部分だけのことをやりたいなあと考えて、 latex2html のソースを眺めて、検索かけて、man 読んで……と悩んでのとりあえずのメモ。 同じようなツールは探すといろいろあるに違いないけど。 LaTeX と Dvi2Ps が日本語に対応していると、数式で日本語も使える。

  1. LaTeX で数式を書く

    • 適当な大きさないなるように、文字の大きさを TeX で決めておく。
    • \clearpage で、 各ページには画像に変換するものだけを 1つずつ配置する。
    • \pagestyle{empty} でノンブルを消す。
  2. Dvi2Ps で各ページを PostScript に変換する。

    • pdvips -S1 -i FOO.dvi
    • これで FOO.001, FOO.002, ... という連番の PS ができる。
  3. 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 が普及したときにはそっちに変換するように プログラムを書き替えればいいってことで割り切った。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人

読み込み中...