« ロボ大蛇 | メイン | 期日前投票 »

2005年09月07日(水曜日)

数学日記の準備完了 [ コンピュータ&インターネット ]

nDiaryで数式を書くためのプラグインを何とか作った。実は帰省中も親の書斎にこもりながら,あれこれ試行錯誤して作っていたのだった。nDiaryはRubyプログラムなので,Rubyを知る必要があるのだが,幸いPerlを勉強したおかげで,それほど苦労せずに済んだ。もっとも,Rubyらしさ,つまりオブジェクト指向とは縁のない旧式のプログラムなのだが。

手順は次の通り。一日の日記の文字列はいくつかのパラグラフに分割されてnDiaryに渡されるので,その部分にのみ集中してプラグイン(FILTER)を書けばよい。$...$, $$...$$の箇所を正規表現ルーチンにより探し出して,中身を取り出す。それをLaTeXの文書に書き出して,platexで処理してdviファイルを作る。このdviファイルを画像ファイル(PNGやGIF)に変換する,というもの。

試行錯誤したのは,画像に変換するところ。最初は dvipng を使って,

  dvipng tmp.dvi -T tight -D 150 -o tmp.png --gamma 1.1 -Q 5

のように処理していた。dviファイルから直接pngファイルが生成でき,速くて良いのだが,画質の点で,今ひとつ満足がいかなかった。次に,大した違いがあるわけじゃないのだが,dvipsにより一旦EPSFに変換して,ImageMagick付属のconvertでpngファイルにしてみた。オプションがかなり沢山あるので,まだ試行錯誤中なのだが,とりあえず,
  dvips -E  tmp.dvi
  convert -density 300  -geometry 50% tmp.ps tmp.png

とすると,解像度300で画像を生成したのち,50%に縮小することでアンチエイリアス処理ができるようだ。画質はこの方が少しだけ良いように感じる。
riemann_zeta.png
上記の方法で作った画像がこれ。pxfontsを指定して組版したので,Palatino風の書体になっている。

nDiaryは基本的にサーバー上ではなく,自分のコンピュータで日記を作成してからアップロードするものなので,サーバーにTeXなどがなくても,この方法ならば,数式を含む日記が書ける。あとの問題は内容だけだ(笑)。

投稿者 sukarabe : 2005年09月07日 21:48

トラックバック

このエントリーのトラックバックURL:
http://njet.oops.jp/cgi/mt/mt-tb-alt.cgi/778

コメント

コメントしてください

comment spam対策のため,名前とメールの入力が必須になっていますが,メールアドレスは公開されません。Web SiteのURLは任意です。Type Key IDをお持ちの方はType Keyをサイン・インしてくださってもいいです。




保存しますか?