MathMLに関する 忘備録的なメモ。
数式をXMLで書くための文法。これにより、ブラウザでまともに数式を表示 したり、検索できるようになる。特に検索は非常に期待していて、 単なる単語の一致だけにとどまらず、「〜を積分している式」「〜が積の形で 含まれている式」などのように検索することが可能になる。
例えば、TeXによる式を以下のように書く。
\begin{equation} x = \cfrac{-b \pm \sqrt{b^2-4ac}}{2a} \end{equation} \begin{equation} a = \left( \begin{array}{cc} 1 & 2\\ 3 & 4 \end{array} \right) \end{equation}この結果は以下のよう。
<math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> <mi>x</mi> <mo>=</mo> <mfrac displaystyle="true" scriptlevel="0" > <mrow> <mrow> <mo>-</mo> <mi>b</mi> <mo>±</mo> <msqrt> <mrow> <mrow> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo>-</mo> <mn>4</mn> <mi>a</mi> <mi>c</mi> </mrow> </mrow> </msqrt> </mrow> </mrow> <mrow> <mrow> <mn>2</mn> <mi>a</mi> </mrow> </mrow> </mfrac> </mrow> </math> <br /> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> <mi>a</mi> <mo>=</mo> <mrow> <mo>(</mo> <mrow> <mtable> <mtr> <mtd columnalign="center" > <mrow> <mn>1</mn> </mrow> </mtd> <mtd columnalign="center" > <mrow> <mn>2</mn> </mrow> </mtd> </mtr> <mtr> <mtd columnalign="center" > <mrow> <mn>3</mn> </mrow> </mtd> <mtd columnalign="center" > <mrow> <mn>4</mn> </mrow> </mtd> </mtr> </mtable> </mrow> <mo>)</mo> </mrow> </mrow> </math>とても人間が書くような内容とは思えない。
つまり、MathMLは機械寄りの記述方式であり、 何らかの入力支援もしくは変換によって生成されることが期待されている。
MathMLには「Contents Martkup(内容記述)」「Presentation Markup(表 現記述)」の2種類ある。前者は数式を意味の上で記述する方式で、表現につ いては一切関与せず、データを数式として処理したいときに用いる。後者は内 容は全然関知しないが、とにかくTeXのように数式表現を書きたいときに用い る。また、両方を同時に用いるときの状況についても考慮されている。
なんとなくTeXのをXMLで書いた感じ。括弧は自動的に大きさが調整される。
他にもいくつかある。これぐらいがよく使う。 いろいろオプションがある。詳しくはW3Cの仕様書を参照。
そのうち書くかも。
大抵の数式ツールはMathMLを扱うことが出来る。
桜井雅史: | E-mail : m.sakurai@cmt.phys.kyushu-u.ac.jp Web page : http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/ |