MathML とは数式を XML を使って記述する企画だ.
http://www.w3.org/TR/MathML/ に仕様が定義されている.
MathML には2種類ある.
数式をどのように表示するか,に主眼を置いた Presentation MathML,
数式のロジックをパースできるように書くことを目的としたのが Content MathML.
content MathML を普通に紙に鉛筆で書くような数式として描く(レンダリングする)のは以外に難しい.
例えば,分数なら 3/4 ではなく,分子の下に分母を書くとか,指数はちゃんと右肩に小さい数字を書くとかである.
フリーのプログラムだけでそれを行う方法をやっと見つけたので以下にメモしておく.
・mmlctop2_0.xsl: content MathML を presentation MathML に変換するスタイルシート
http://www.orcca.on.ca/MathML/
・SVGMath: presentation MathML を SVG に変換する python スクリプト
http://www.grigoriev.ru/svgmath/
まず,content MathML にスタイルシートを適用して presentation MathML に変換する.
$xsltproc -o test-p-mml.xml mmlctop2_0.xsl test-c-mml.xml
次に,presentation MathML を SVG に変換する.
$python ./math2svg.py -o test-mml.svg test-p-mml.xml
test-mml.svg を例えばブラウザで開けば,レンダリングされた数式が表示される.
http://www.w3.org/TR/MathML/ に仕様が定義されている.
MathML には2種類ある.
数式をどのように表示するか,に主眼を置いた Presentation MathML,
数式のロジックをパースできるように書くことを目的としたのが Content MathML.
content MathML を普通に紙に鉛筆で書くような数式として描く(レンダリングする)のは以外に難しい.
例えば,分数なら 3/4 ではなく,分子の下に分母を書くとか,指数はちゃんと右肩に小さい数字を書くとかである.
フリーのプログラムだけでそれを行う方法をやっと見つけたので以下にメモしておく.
・mmlctop2_0.xsl: content MathML を presentation MathML に変換するスタイルシート
http://www.orcca.on.ca/MathML/
・SVGMath: presentation MathML を SVG に変換する python スクリプト
http://www.grigoriev.ru/svgmath/
まず,content MathML にスタイルシートを適用して presentation MathML に変換する.
$xsltproc -o test-p-mml.xml mmlctop2_0.xsl test-c-mml.xml
次に,presentation MathML を SVG に変換する.
$python ./math2svg.py -o test-mml.svg test-p-mml.xml
test-mml.svg を例えばブラウザで開けば,レンダリングされた数式が表示される.