Mathematical Markup Language
テンプレート:Infobox file format Mathematical Markup Language(マスマティカル マークアップ ランゲージ 略:MathML(マスエムエル))は、XMLアプリケーションの一つで、数式を記述するためのマークアップ言語である。単体では数式の記述しかできないため、文書として利用するにはXHTMLに埋め込んでXHTML文書として扱うなどする。
歴史
コンピュータ上で数式を記述する要求はウェブが普及する前からあった。なかでも[[TeX|テンプレート:TeX]]は有名でかつよく使われており、数式の表記方法としてもテキストのみで表記せざるを得ないときなどに用いられる他、ウィキペディアを含むウィキ等での数式を表現する手段として今日でもよく使われている。しかし、HTML上で数式を表現する手段がなく、ウェブで数式を表現するには画像にするか、PDFなどHTML以外の形式にすることが多い。
なお、HTML 3.0では数式を表現できるようにしていた。1995年の案ではMATH要素が入れられることになっていた[1]。これはMathematicaで有名な Wolfram Research の提案をもとにしたものである。しかしHTML3.0は後に破棄され、またほとんどのブラウザはMATH要素に対応しなかった。HTMLに数式を載せること自体は果たせなかったものの、後のW3CのMathワーキンググループの前身といえる HTML Math Editorial Review Board が設立されるなどした。ちなみに、これは現在のMathMLとは違い、[[TeX|テンプレート:TeX]]の数式表記に似た表記法であった。
1999年7月にMathML規格バージョン1.01がW3CのMathワーキンググループから勧告された。そして2001年2月にバージョン2.0が勧告され、2003年10月にバージョン2.0第2版が勧告された。その後、2010年10月にバージョン3.0が勧告された。
MathMLのオリジナルのバージョンでは名前空間が決められていなかった。というのも、まだXML名前空間の仕様自体が決まっていなかったからである。こうした事情から名前空間を指定されないことが多いが、名前空間を http://www.w3.org/1998/Math/MathML と指定しないとMathMLと認識しない実装も多い。
例
よく知られた二次方程式の解の公式を例にする:
- <math>x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}</math>
これを[[TeX|テンプレート:TeX]]で記述すると以下のようになる:
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
MathMLで記述すると以下のようになる:
<math> <mrow> <mi>x</mi> <mo>=</mo> <mfrac> <mrow> <mrow> <mo>-</mo> <mi>b</mi> </mrow> <mo>±</mo> <msqrt> <mrow> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo>-</mo> <mrow> <mn>4</mn> <mo>⁢</mo> <mi>a</mi> <mo>⁢</mo> <mi>c</mi> </mrow> </mrow> </msqrt> </mrow> <mrow> <mn>2</mn> <mo>⁢</mo> <mi>a</mi> </mrow> </mfrac> </mrow> </math>
このように人間の可読性を求めるならばテンプレート:TeXのほうが優れている。しかし、XMLアプリケーションであるMathMLは本来コンピュータによる数式の意味認識において有利となるよう設計されたものであり、人間がMathMLを直接書いたり編集したりすることは意図していない[2]。
ソフトウェアでの対応状況
2007年1月現在、普及はしているとは言い難いが、MathML出力をサポートしているソフトは増えつつある。
PubliconなどWolfram Researchの製品でMathMLを取り扱える。また、OpenOffice.orgやKOfficeといった一部のメジャーなオフィススイートの数式エディタでは MathML 出力が可能である。TeXmacsなどのWYSIWYGなエディタでMathML出力をすることができるものや、MathMLをネイティブに読込・保存できるソフトとしてFormulator[3]、Amayaなどがある。
他の数式表現形式からMathMLに変換するソフトもあり、例えば[[TeX|テンプレート:TeX]]からの変換ソフトとして[[ConTeXt|テンプレート:ConTeXt]]やMathType、itex2mmlなどがある。またウェブ上で変換をするページもある。
対応しているのは、Gecko を採用している Mozilla Firefox などのブラウザ[4]、Safari 5.1 以降。また、Presto を採用している、Opera 9.50[5]〜12.1 においても単体でほとんどの数式の表示が可能となったが、Opera 14 より WebKit そして Blink になり非対応。Google Chrome は対応していない。非対応ブラウザでも MathJax[6] で表示可能。Internet Explorer では、例えばプラグインの Design Science の MathPlayer をインストールすることで MathML を表示できるようになる。
ブラウザでのMath MLのレンダリングの品質はインストールされているフォントに依存する。テンプレート:仮リンクはオープンライセンスの数学フォントをリリースしている。Microsoft Windows付属のテンプレート:仮リンク Mathフォントもサポートしている。
註
- ↑ HTML Math
- ↑ テンプレート:Cite web
- ↑ Hermitech Laboratory - Formulator Mathml Weaver
- ↑ Authoring MathML for Mozilla
- ↑ Opera Desktop Team - Even more work
- ↑ MathJax
外部リンク
- W3C Math Home 規格書、FAQ、ソフトウェアの一覧がある