« 久々の午前様 | メイン | 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に変換されると,
と表示されるはず。
これが全然駄目。いろいろ試みるうちに,ファイルの拡張子を.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をサイン・インしてくださってもいいです。