« 久々の午前様 | メイン | itex2MMLのテスト »

2005年02月16日

itex2MML Plugin for MovableTypeを導入する

itex2MMLはLaTeX風に書いた数式表現をMathMLに変換してくれるプログラムである。現時点ではJacques Distlerという方が開発・保守されているようだ(最初は別の人だったみたいだが)。そして,このitex2MMLをMovableTypeで使うためのText Filter Pluginもある。これを導入してみた。

itex2MML Plugin for MovableTypeの導入手順

まずJacques DistlerさんのWebLogにあるitex2MML Pluginのページに行く。Source distribution とあるところをクリックして一式をダウンロードする。解凍すると,itex2MMLのソース・コードとMacOSX用にコンパイルしたバイナリー,それからMovableTypeで使うための itex2mml.pl がある。自分でコンパイルできる人はそうすればよいが,そうでない場合(つまり僕の場合)はバイナリーをどこかで調達する必要がある。

ローカルで使うのではなく,サーバー上で使いたいわけだから,サーバーのOSに合わせる。ここのようにLINUXであれば,James GrahamさんのところにLinux/x86用のバイナリーがあるので,そこからダウンロードさせてもらう。それから,自分のサイトのサーバー上でのフルパスを調べておく。ロリポップだと,
/home/sites/lolipop.jp/users/....../web/
のようになっていると思う。以上で準備はOKだ。

準備ができたら作業に入る。

  • itex2MMLの本体,つまり実行ファイルを適当な場所にアップロードする。僕の場合は,自分のサイトのホーム直下にbinというフォルダーを作ってそこに入れた。そして,属性を755などの実行可能なものに変更する。

  • MovableType用のプラグインであるitex2MML.plをテキスト・エディターで開く。ここで,/usr/local/bin/itex2MMLと書かれているところが2カ所ある。これを自分がアップロードした場所に変更する。僕の場合だと,
    /home/sites/lolipop.jp/users/......../web/bin/itex2MML ということになる。

  • 編集が終わったitex2MML.plをMovableTypeのプラグイン・フォルダーにアップロードする。

  • MovableTypeのエントリー編集画面で,テキスト・フォーマットの選択肢に,itex to MathML と itex to MathML with parbreaks の2つが増えているはず。

以上で作業は終了,と言いたいのだが,MozillaがMathMLを表示するには,HTMLではなくXMLにしておかねばならないらしい。ここいらになると良く分かってないので困るのだが,付属の解説やWeb上の説明を読むと,ページの情報みたいな所に,Content-Typeはapplication/xhtml+xml だよ,ということを書いておけということらしい。

良くは分からないなりに,XHTML1.1+MathML2.0の文書という宣言をすることにした。とりあえずトップページだけだが。そして,Content-Typeをtext/htmlからapplication/xhtml+xmlに変更する。W3Cに行ってチェックすると,いきなりNOT VALIDと表示されてしまう。対処療法で,駄目と言われたところをコメントアウトする。(検索のフォームが文法違反と言われたので,現在削除中です。)とりあえずなんとかValid XHTML1.1+MathML2.0をクリアーする。

さあ,実験だ,ということで,簡単な数式を書く。

 \frac{1}{2}+\frac{1}{3}+\frac{1}{7}+\frac{1}{42}=1 
というLaTeXコードでテストしてみる。これがMathMLに変換されると, 1 2 +1 3 +1 7 +1 42 =1 と表示されるはず。 これが全然駄目。いろいろ試みるうちに,ファイルの拡張子を.htmlから.xhtmlに変更すれば,ちゃんとレンダリングされることを発見した。しかしなあ・・・.htmlのままでもMathMLが表示されているページはいくつもあるのになあ・・・。このページも.htmlのままだから,多分表示されないだろう。あー,疑問だらけだ!

さらに具合の悪いことに気づく。出力をindex.htmlからindex.xhtmlに変更し,古いindex.htmlを削除したところ,フォルダーのURLでアクセスした場合に,ファイルが存在しません,というエラーメッセージが出てしまう。え~index.phpとかindex.cgiはOKなのになあ・・・。ということで,これも見よう見まねで,.htaccessファイルを書く羽目になる。
DirectoryIndex index.xhtml と設定する。index.htmlにアクセスされたときのために,リダイレクトもした方が良いだろうか。うーむ。

これだけ頑張ったのだが,十分とは言えないなあ。もう少し勉強しないと。それに,Mozilla系はちゃんとMathMLをレンダリングするが,Internet Explorerが全然サポートできてないので,大多数の人はそのままでは数式が見れない。WindowsであればDesign Science社からInternet Explorer用のMathMLレンダリング・プラグイン MathPlayer が無償で配布されているから,それをインストールすれば見られるんだけどね。

追記

結局,ブロッグのトップのディレクトリーで .htacess に次のように書き加えることで一応の解決を見た。これは,Jacques Distlerさんの解説にあったものをほとんどコピーしたものだが,一カ所だけ変更してある。それは,index.shtml とあったところを index.html と変えたところ。だって,shtmlファイルはうちにはないから。それから RewriteBase のところは,ドメイン名というかサイトの直下をルートと考えたときのパスを書くと良いみたい。うちは直下に mt フォルダーを作って,そこにブロッグのトップがあるので,そのパスを書いた。

RewriteEngine On
RewriteBase /mt/
RewriteRule ^$ index.html
RewriteCond  %{HTTP_USER_AGENT} Gecko|W3C.*Validator|MSIE.*MathPlayer
RewriteRule \.html$|\.shtml$   - [T=application/xhtml+xml]
RewriteCond  %{HTTP_USER_AGENT} Chimera|Camino|KHTML
RewriteRule \.html$|\.shtml$   - [T=text/html]
RewriteCond  %{HTTP_USER_AGENT} Camino.*MathML-Enabled
RewriteRule \.html$|\.shtml   - [T=application/xhtml+xml]

ちなみにドル記号は itex2MML を使うときは数式の始まりと認識されてしまうので,全角文字の$で表記した。使うときは半角に。というかドル記号の実体参照ってないのかな?

投稿者 sukarabe : 2005年02月16日 15:50

トラックバック

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

コメント

さっき一瞬このBlogにアクセスできなかったけど、それって実験中だったのでしょうか?
いずれにせよ、アクセス可能になって安心しました。

投稿者 kebaneco : 2005年02月16日 21:11

すみません。あれこれ実験中でした。今のところ,index.xhtmlを読ませるように設定中です。index.xmlにしてみたら,IEでXMLをパースできずにエラーということもありましたし。

投稿者 sukarabe : 2005年02月16日 22:05

コメントしてください

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




保存しますか?