MathML
Webページなどに、画像を使わずに数式を表示するための、XMLに基づくマークアップ言語。W3Cが定めている。
イマシルちゃんの解説
Webページに分数やルート(√)みたいな数式を載せたいとき、昔は数式を画像にして貼り付けることが多かったんだ。
でも画像だと、拡大するとぼやけるし、読み上げソフトで読めないし、中の数字を書き換えるのも大変。
MathMLは、数式を「文字とタグ」で書くための言葉なんだ。
ブラウザがきれいに表示してくれるし、目が不自由な人の読み上げにも対応できるんだよ!
より深い解説
定義
MathML(Mathematical Markup Language)は、W3Cが勧告した、数式を記述するためのXMLのマークアップ言語である。HTML5では、HTMLの文書の中に直接書くことができる。
2種類の記述
| 種類 | 表すもの | 例 |
|---|---|---|
| プレゼンテーションMathML | 数式の見た目(どう表示するか) | 分数の線、上付き文字の位置 |
| コンテンツMathML | 数式の意味(何を計算するか) | 「足し算」「関数の適用」 |
記述の例
x² + 1 を、プレゼンテーションMathMLで書くと、次のようになる。
<math>
<msup><mi>x</mi><mn>2</mn></msup>
<mo>+</mo>
<mn>1</mn>
</math>
| 要素 | 意味 |
|---|---|
| mi | 識別子(変数など) |
| mn | 数 |
| mo | 演算子 |
| msup | 上付き(べき乗) |
| mfrac | 分数 |
| msqrt | 平方根 |
画像で表示する方法との比較
| MathML | 数式の画像 | |
|---|---|---|
| 拡大 | ぼやけない | ぼやける |
| アクセシビリティ | 読み上げソフトが数式として読める | 代替テキストに頼る |
| 検索・再利用 | 数式をテキストとして扱える | できない |
| 編集 | 文字を書き換えればよい | 画像を作り直す |
手で書くには記述が長くなるため、実際には、LaTeXの数式記法で書いてMathMLに変換したり、JavaScriptのライブラリで表示したりすることが多い。
似た名前の言語との区別
| 言語 | 用途 |
|---|---|
| MathML | 画像を使わずに数式を表示するための、XMLのマークアップ言語 |
| SysML | システムの設計と検証のための、UMLを拡張したモデリング言語 |
| SystemC | C++を基にした、ハードウェアとソフトウェアの協調設計のための記述言語 |