囲碁の数理の連載で数式を書くことがしばしばあります。簡単な式はブログでも書けるのですが、ちょっと複雑になると書けません。これまでは主にExcelシート上に式をレイアウトして、[Print Screen]キーで画像をペイントに取り込んでトリミングし、ブログにイメージとして貼る。という作業を行っていました。
HTML5にはMathML(マスエムエル)という言語が直接書き込めるとのことだったので、試してみました。ただし、IEやChromeは未サポートとのことで、AppleのブラウザSafariをインストールしました。

上図のソースは以下のとおりです。なぜか文字がギリシャ文字に、反転を表す上線が矢印に化けてしまっています。
<html>
<head>
<meta charset=”UTF-8″>
<title>MathMLサンプル</title>
</head>
<body>
<math>
<mi mathvariant=”bold-italic”>x</mi>
<mo>=</mo>
<mover>
<mi mathvariant=”bold-italic”>l</mi>
<mo accent=”false”>¯<!– ¯ –></mo>
</mover>
<mo>−<!– − –></mo>
<mi mathvariant=”bold-italic”>v</mi>
</math>
</body>
</html>
そこで、IEやChromeでも動作するMathJax(マスジャックス)というJavascriptで書かれた数式整形スクリプトを試してみました。

今度のソースはさきほどと前半がちょっと違っているだけですが、うまく表示できました。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MathJaxおよびMathMLサンプル</title>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
</script>
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi mathvariant="bold-italic">x</mi>
<mo>=</mo>
<mover>
<mi mathvariant="bold-italic">l</mi>
<mo accent="false">¯<!-- ¯ --></mo>
</mover>
<mo>−<!-- − --></mo>
<mi mathvariant="bold-italic">v</mi>
</math>
</body>
</html>
MathJaxはMathMLだけでなくTeX(テフ)という組版ソフトの書式もサポートしています。論文を書く場合などにはかなりTeXは活用されていると思います。MathJaxで数式を書いておくと、MathMLにもTeXにも簡単に変換できます。ということで、MathJaxとTeXでさきほどの式を書いてみます。今度はIE9で表示してみました。

こちらのソースは以下のようになります。数式の部分は実質1行で、内容もわかりやすいですね。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MathJaxおよびTeXサンプル</title>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
</script>
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
</head>
<body>
$$
\boldsymbol{x} =\overline{ \boldsymbol{l}}- \boldsymbol{v}
$$
</body>
</html>
さらに、Google Chrome Web StoreにDaum Equation Editorというフリーソフトがあり簡単にTeXのコードを作ることができます。

このほかにも数式エディタは多数あると思います。
HTML5のMathMLがまだサポートされていない現状では、MathJaxとTeXで数式を書いておけば、式も簡単だし、将来MathMLにも変換できるので、今はMathJaxとTeXの組合せが一番いいように思いました。
囲碁の数理でたくさんの数式を使っていますので、MathJaxとTeXを使って一度まとめておきたいと思います。
