MathJax は $\mathrm{\LaTeX}$ 並みの数式表示能力をJavaScriptで実現したライブラリです。
MathJaxを使うには,<head>
… </head>
の中のどこかに次のように書いておきます:
<script async src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML"> </script>
以前のこのページでは最後の部分が TeX-AMS_HTML
になっていましたが,今は TeX-AMS_CHTML
(CommonHTML)が推奨のようです。
最近は http://
より https://
が推奨されているようです。また,単に //
で始まるURLを使えば,http://
か https://
かは元サイトに合わせてくれます(古いブラウザではうまくいかないかもしれません)。
ただし,当サイトでお勧めしている デフォルトでは周囲の環境と英小文字の高さ(x-height)を自動的に合わせますが,日本語環境ではうまくいかないこともあるので,このサイトではその機能を次のようにして切っています:<html lang="ja">
のような日本語環境指定のHTMLの中では,周囲の環境と文字の高さ(x-height)のバランスを自動調整する機能がうまく働かないので,上の代わりに次のように書いておくほうがいいでしょう:
<script type="text/x-mathjax-config"> MathJax.Hub.Config({ CommonHTML: { matchFontHeight: false } }); </script> <script async src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML"> </script>
数式の書き方はほぼLaTeX + amsmathのスタイル通りです。ただ,本文中の数式はデフォルトでは
$ ... $
ではなく
\( ... \)
で指定します。これが面倒なら,頭の部分を
<script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ['\\(','\\)']], processEscapes: true }, CommonHTML: { matchFontHeight: false } }); </script> <script async src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML"> </script>
のようにすれば $ ... $
も使えるようになります。ただの \$ を使いたい場合には \$
のようにエスケープします。なお,<pre> ... </pre>
や <code> ... </code>
の中ではエスケープは不要です。
さらに,別行の数式を中央揃えでなく左から全角2文字分くらいで揃えるには,次のようにします。
<script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ['\\(','\\)']], processEscapes: true }, CommonHTML: { matchFontHeight: false }, displayAlign: "left", displayIndent: "2em" }); </script> <script async src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML"> </script>
例:
エネルギーと質量には \( E = mc^2 \) の関係がある。
エネルギーと質量には \( E = mc^2 \) の関係がある。
エネルギーと質量には $E = mc^2$ の関係がある。
エネルギーと質量には $E = mc^2$ の関係がある。
HTMLだけで書いた E = mc2(<span lang="en"><i>E</i> = <i>mc</i><sup>2</sup></span>
)と比較してください。
別行の数式は \[ ... \]
です。
\[ \frac{\pi}{2} = \left( \int_{0}^{\infty} \frac{\sin x}{\sqrt{x}} dx \right)^2 = \sum_{k=0}^{\infty} \frac{(2k)!}{2^{2k}(k!)^2} \frac{1}{2k+1} = \prod_{k=1}^{\infty} \frac{4k^2}{4k^2 - 1} \]\[ \frac{\pi}{2} = \left( \int_{0}^{\infty} \frac{\sin x}{\sqrt{x}} dx \right)^2 = \sum_{k=0}^{\infty} \frac{(2k)!}{2^{2k}(k!)^2} \frac{1}{2k+1} = \prod_{k=1}^{\infty} \frac{4k^2}{4k^2 - 1} \]
注意として,$a<b$
のように書くと,ブラウザが <
をタグの一部と解釈してしまって,うまくいきません。$a < b$
のようにスペースを空ければたいていうまくいくはずです($a < b$
のテスト:$a < b$ ←MacのSafari,Chrome,Firefox,WindowsのIE11ではうまくいきました。うまくいかないブラウザがあれば教えてください)。あるいは,$a < b$
のように書くか,$a \lt b$
のようなマクロを使います。
MathJaxの \lt
というマクロは,標準のLaTeXでは定義されていません。\newcommand{\lt}{<}
のように定義しておく必要があります。
詳細は本家の MathJax Documentation をご覧ください。ぎるばーとさんのMathJaxの使い方も参考になります。
Last modified: