ASCIIMathPHP for WordPress
WordPress で数式を入力するため、ASCIIMathPHP を使って ASCIIMath 形式から MathML を生成するプラグインを作ってみました。後述の通り問題山積ですが、人柱万歳な方は好きに使ってください(使用法などの解説一切なし)。
ASCIIMathML のページにある例(の一部)とそれを変換させてみた結果はこんな感じです (Firefox など MathML 対応ブラウザでご覧ください):
x^2+y_1+z_12^34
sin^-1(x)
d/dxf(x)=lim_(h->0)(f(x+h)-f(x))/h
\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}
f(x)=sum_(n=0)^oo(f^((n))(a))/(n!)(x-a)^n
f(x)=\sum_{n=0}^\infty\frac{f^{(n)}(a)}{n!}(x-a)^n
[[a,b],[c,d]]((n),(k))
x/x={(1,if x!=0),(text{undefined},if x=0):}
ご覧の通り LaTex 形式の数式はちゃんと変換できていません。単に ASCIIMathPHP がベースとしている ASCIIMathML.js のバージョンが古いからなのですが、ASCIIMathPHP をアップデートするのはかなり面倒そうです…
他にも問題があります。XML ドキュメントとして XHTML+MathML を生成することになるため、出力全体が Valid でなければなりません。しかし、現実の WordPress (や TinyMCE) は平気で Invalid な出力をしますので、うっかりしているとパースエラーになってしまいます…
Comment by dynamis
2006/7/29
コメント欄での変換テスト。