ここで紹介するのは,これまでの数式の表示方式と違い,数式を画像ではなく,構造により表示する方法です.これは,HTMLからXMLへの移行により可能となったものです.例えば,MathMLでを表現しようとすると,
<math xmlns="http://www.w3.org/1998/Math/MathML">
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mo>+</mo>
<mn>1</mn>
</math>
のように記述しなければなりません.さらに,IEのブラウザでは表示できないので,プラグインとして,
MathPlayer
をインストールする必要があります.
また,TeXの書き方に慣れているものにとっては,辛いものがあります.そこで,当然,TeXからMathMLに変換してくれるソフトを期待するところですが,なかなかフリーのものが出てきません.フリーでないものならば,
MathML-Editorsにあります.
表現記述
MathMLで記述することは,それほど難しくはありません.ただ,面倒なだけです.そこで,自分でソフトウェアを作成しようと考えているユーザに,記述の決まりを紹介します.
- 数字(number)は<mn>と</mn>で囲む : <mn>3</mn>
- 変数(identifier)は<mi>と</mi>で囲む : <mi>a</mi>
- 文字列(text)は<mtext>と</mtext>で囲む : <mtext>文字列</mtext>
- 演算子(operator)は<mo>と</mo>で囲む : <mo>+</mo>
- 記号 : &(TeX記号名);
- 文字の積 を表すには <mi>a</mi>⁢<mi>b</mi>と書く
- を表すには <mn>2</mn>π<mi>b</mi>と書く
- を表すには<mi>a</mi>±<mi>b</mi>と書く
- を表すには
<mo>∫</mo>
<mrow>
<mfenced>
<mrow>
<mi>x</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</mfenced>
<mo>⁢</mo>
<mrow>
<mo>ⅆ</mo>
<mi>x</mi>
</mrow>
</mrow>
と書く
- 微分演算子d &dd
- 上付き(sup) を表すには, <msup> <mi>a</mi> <mo>2</mn> </msup>
- 下付き(sub) を表すには, <msub> <mi>a</mi> <mo>2</mn> </msub>
- 真上(over) を表すには,
<mrow>
<mn>2</mn>
</mrow>
<mrow>
<mo>⁢</mo>
<mover accent="true">
<mi>a</mi>
<mo>^</mo>
</mover>
</mrow>
- 真下(under) を表すには, <munder accent="true"> <mi>a</mi> <mo>RightArrowSPMlt;/mo> </munder>
- 空白(space) : <mspace width="10pt"/>
- 数式のまとまり(TeXの{}に相当) : <mrow> 〜</mrow>
- 分数(fraction) を表すには,
<mfrac>
<mrow>
<mi>x </mi>
<mo>- </mo>
<mn>1 </mn>
</mrow>
<mn>3 </mn>
<mo>InvisibleTimes; </mo>
<mi>x </mi>
<mrow> 3 </mrow>
</mfrac>
- 平方根(square root) を表すには,
<msqrt>
<mrow> 〜 </mrow>
</msqrt>
- m乗根(mth root) :
<mroot>
<mrow> 本体 </mrow>
<mrow> 基数 </mrow>
</mroot>
- 表(table) : <mtable> 以下の中身 </mtable>
- 列要素 : <mtr> 〜 </mtr>
- 項目要素 : <mtd> 〜</mtd>
このように,記述法はキーボードで記述するのに適した方法ではありません.しかし,これらが数学の教育に与える影響は非常に大きいことが推測できます.この方式を用いればコンピュータを使った学習で,式のどこを間違えたかを見つけることができるようになるはずです.これは,これまでのlatex2html, mimetexとの大きな違いです.
もう一つ,式の途中の間違いを見つけることができる方法に,手書き数式認識があります.数式をペンで紙に書くように,マウスやペンタブレットを用いて数式を書く方法です.この手書きとMathMLを融合させると,すばらしい教育支援システムが開発できそうです.そこで,次章では,手書きを用いて数式を表すことについて説明します.