MathJax3 を使う

作成日:2019-11-13
最終更新日:

MathJax3 による表現

2019 年まで、数式は MathJax のバージョン 2を使っていた。 ただし、表記法は TeX ではなく ASCIIMath を使っていた。 MathJax はバージョン 3 になったが、ASCIIMath の表記法が残念なものになった。これを本稿で説明する。

MathJax (www.mathjax.org) のページは英語である。

MathJax の使い方

MathJax はリモートにあるサーバを使うのがよさそうだ。 これには、<head> と </head> の間で、バージョン 3 の場合は次の行を書けばよい。

<script>
  MathJax = {
    loader: {load: ['input/asciimath', 'output/chtml', 'ui/menu']},
  };
</script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/startup.js">
</script>

MathJax4 の場合については、MathJax4 を使うというページにも書いた。

さて書き方は、MathJax のバージョン 2 とは異なる実装になっている。その理由は、 Loading the AsciiMath Component (docs.mathjax.org) という項に書かれている。 以下、拙訳をつけてみる。

AsciiMath 入力 jax はまだバージョン3や4に完全には移植されていない。 代わりに、AsciiMath コンポーネントはバージョン2にある AsciiMath 入力 jax と、 バージョン3フレームワークにパッチを適用されたレガシーバージョン2コードの一部を使う。 この方法は、バージョン3の純粋なソリューションよりも効率が低く、 やや大きく、構成プロセスが複雑になる可能性がある。 AsciiMath の完全な移植は、将来のバージョン3のリリースで予定されている。

AsciiMath はバージョン 3 に完全には移植されていないため、 結合されたコンポーネントにはバージョン3が含まれていない。 したがって、AsciiMath 表記を使用するには、 MathJax 構成のローダーブロック内のロード配列に input / asciimath を追加して、 MathJax wを自分で読み込むよう設定する必要がある(例は上記)。

ここで、AsciiMath 入力 jax という用語が頻出するが、AsciiMath 形式での入力を、 MathJax が解釈できる jax という形式に変換する、ぐらいの意味にとっておけばよいと思う。

実例

今まではバージョン 3 の表示例を示していたのだが、すでにバージョン 4 に移行され、ここで表示する意味はなくなったので消去することにした。