]> Panopticon :: Blog :: mathMLの導入memo

<< 集合族 | main | 連続体仮説?仮設? >>

mathMLの導入memo

ブラウザで表示するには

まずはwindows。MozzilaやFirefoxの場合、フォントをインストールするだけでよい。MathML at MITに置いてあるMath Fonts to Install for Mozilla/Netscapeを使えば必要なフォントをまとめてインストールすることができる。

入力するには

MathMLの書式を覚えるのも手打ちするのもちょっと面倒なので、入力にはTeX2MathMLを使わせてもらう。指定されたウィンドウにTex形式を入力すると、リアルタイムで数式をレンダリングするとともにMathMLに変換してくれる。Texがそもそもわかんないんですな人はこのへん

DOCTYPE宣言

こんな感じ。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
               "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [
  <!ENTITY mathml "http://www.w3.org/1998/Math/MathML">
]> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">

IEだと]>の部分が見えてるなー。でもMozillaではこうしろって書いてあったのでそっち優先。

MIMEの設定

せっかくXHTML1.1で書いたんだし、拡張子をxhtmlにしてMIMEはapplication/xml+xhtmlで送ってやるのがよいと思うのだが、これをやるとIEで表示ができずファイルのダウンロード画面になってしまう(ユーザー側でレジストリをいじれば表示できるようだが)。

text/xmlで送るとW3C側のDTDがおかしいらしく、IEで

'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'の実行エラーです。ライン 85、位置 2

なんてエラーがでる。Firefoxでエラーが出ないのはそもそもDTDのチェックをしてないかららしい……それでいいのか。

text/htmlならIE、Firefoxどちらでも閲覧はできるけれども、MathMLが綺麗に表示されない。どうしたもんかな。

コンテントネゴシエーション

コンテントネゴシエーションについてはこちら。.htaccessを以下のように書き換え。さくらだとユーザー側でOptionsは使えないが、MultiViewsはあらかじめ指定してくれてるみたいなので下二行だけでよい。

Options +MultiViews
AddType text/html html
AddType application/xhtml+xml xhtml

これでindex.htmlへのリクエストに対し、IEへはindex.html.html、Firefoxへはindex.html.xhtmlを返すことができる。あとはファイルを準備するだけ。

MovableTypeの設定

当たり前だがバックアップとってから。メインページは使ってるテンプレートの出力ファイル名をindex.html.htmlに、テンプレートをもうひとつコピーしてそっちはindex.html.xhtmlにすればOK。

アーカイブは新規でマッピングを作る。アーカイブの拡張子はhtmlのままで、アーカイブ・マッピング側の出力フォーマットの末尾に.htmlと.xhtmlを足したものをそれぞれ作ってやればよい。

Passed validation

こんな感じ。一番上はBlogをFlash化しようとしたときの名残なので気にしないでください。今まで使ってたindex.htmlが残ってるとそっちが表示されてしまうので削除。

リンクの修正

上のようにマッピングを作ると、優先ラジオボタンにチェックのついたURLにMovableType側がリンクを貼ってしまう。これを直したい。

Permalinkの修正

remove-ext-from-permalink.plというPermalinkの拡張子をとっぱらうプラグインがあったので使わせてもらう。これは本来もっとしっかりしたURIに対して使うものみたいで、index.html.*のようなURLじゃないと書き換えてくれない。これをそれ以外のファイル名に対して使うには、ちょっと正規表現を書き換えてやればいい。

ヒント : (.*?)と\1

Archivelinkの修正

これも上と同じようにやろうと思ったんだけど、プラグインの中でどう指定していいのかわからなかったので力技にでる。カテゴリを並べ替えるのに使わせてもらっている、文字列の最初n文字を削るプラグインcutfirstcharを書き換えて、最後のn文字を削除するようにする。上のマッピングの場合.xhtmlへのリンクが張られているので、最後6文字を切り取ってやればよい。

ヒント :

> $string = substr('ABCD', 0, 3);
> print $string;
ABC
> print length($string);
3

そんな感じで

FirefoxならmathMLも綺麗に表示されるし、結果としてxhtml化もできて満足です。今までは個別エントリーの書き出しのことなんてなんも気にせずにMovableTypeのデフォルトのまま行っていたんだけれども、クールなURIについてもちょっと考えさせられたし。つってもこんなことやってないでまずはもっと整ったテンプレートを作れって話だな。

カテゴリ

Trackback URI

http://www.panopticon.jp/mt/mt-tb.cgi/41

Trackbacks(0)

コメントする