Web で数式 (その 2)

以前 Web で数式を入れたい時は、『Google Chart Tool の Mathematical (TeX) Formulas』が良い、と書いたが、あべのりさんとのやり取りからMathJax も良さそう。

しかる場所に、ファイルを置いた後、HTML ソースには、ヘッダ部に

<script type="text/javascript" src="MathJax/MathJax.js"></script>

と書いておけば、

$$x=\frac{-b \pm \sqrt{b^2-4ac}}{2a}$$

と TeX の記法を用いた部分が、

$$x=\frac{-b \pm \sqrt{b^2-4ac}}{2a}$$

となる。(上記左は『Google Chart Tool の Mathematical (TeX) Formulas』を利用)

上記右の例も STIX 等数式用のフォントがインストールしてあれば、かなり綺麗に表示されているはず。

更に

  • 標準的な TeX はもちろん、LaTeX の環境だけでなく、AMS-LaTeX の環境やコマンドが使える (ドキュメントには書かれていない気がするが、align, equation, eqnarray 環境でも TeX の数式モードになる)
  • TeX, LaTeX のエラーが有れば、それをちゃんと表示してくれる
  • 数式環境で良く用いる <, >, & は、HTML で特殊文字扱いだが、そのままで OK (ほとんどのブラウザで問題に成らないだろうが、各々 &lt; や \lt, &gt; や \gt, &amp; としたほうが安全だろう)

注意点は、次の通り。

  • 上記の通り、JavaScript を使っているので、閲覧する側で、これが ON になっていないと駄目 (TeX ソース形式のまま表示される)
  • 付属サンプル・ファイルの sample-tex.htm には、
    <script src="../MathJax.js">
      MathJax.Hub.Config({
        extensions: ["tex2jax.js"],
        jax: ["input/TeX","output/HTML-CSS"],
        tex2jax: {inlineMath: [["$","$"],["\\(","\\)"]]}
      });
    </script>
    といった例で書かれているが、このようにオプションを指定する場合は、デフォルト設定をちゃんと変えておくか、明示的に AMS を指定しておかないと、AMS Symbol が使えない。それだけなら良いが、ドキュメント に、その例として

    The AMSmath extension implements AMS math environments and macros, and the AMSsymbol extension implements macros for accessing the AMS symbol fonts. To use these extensions, add them to your extensions array.

    extensions: ["TeX/AMSmath.js","TeX/AMSsymbol.js",...]
    	
    との記述がある (強調部は筆者) が、間違いがあり AMSsymbol.js ではなく AMSsymbols.js。