mathjax

2017年12月9日土曜日

Bloggerで数式を書くためにMathJaxを有効にする。

ブログに数式を書きたかったので、方法を調べた。最初はMathMLというものが良さそうだと思って使っていたが、MathJaxというもっと良いものがあることが分かったのでこれを使えるように設定した。MathMLはタグを多く書かなければ数式に出来ないがMathJaxはLaTeXをそのまま書けば良く、LaTeXの数式表現は比較的短いことが分かった。例えば、
i\hbar\frac{\partial\psi}{\partial t} = -\frac{\hbar^2}{2m}\frac{\partial^2\psi}{\partial x^2}+V(x,t)\psi
これで、$$i\hbar\frac{\partial\psi}{\partial t} = -\frac{\hbar^2}{2m}\frac{\partial^2\psi}{\partial x^2}+V(x,t)\psi$$こういうのが書ける。

使い方は MathJaxのドキュメント Getting Started — MathJax 2.7 documentation に書いてある
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML">
</script>
というのと
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
});
</script>
<script type="text/javascript" async src="path-to-mathjax/MathJax.js?config=TeX-AMS_CHTML"></script>
というのをBloggerの管理者画面の「テーマ」→「HTMLの編集」で表示されるコードの<head>のすぐ後ろに追記すれば準備は完了。

後は、インラインならばLaTeXの数式の前後を\(...\)で囲う(トラブルが起きやすいから推奨しないとなっているけれど、$...$も使えた)。段落にするなら$$...$$\[...\]で囲う。

どんな感じかというと、インラインなら \(E=\frac{1}{2}mv^2\) というような感じ。段落にすると \[E=\frac{1}{2}mv^2\] となる。

ちなみにLaTeXで E=\frac{1}{2}mv^2 と書くこの簡単な数式も、MathMLで書くと、
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi>E</mi>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<mi>m</mi>
<msup>
<mi>v</mi>
<mn>2</mn>
</msup>
</math>


  E
  =
  
    1
    2
  
  m
  
    v
    2
  

となり、仕上がりは同じものの、書く労力がかなり違う。またLaTeXの書式は分からないので、HostMath - Online LaTeX formula editor and browser-based math equation editorなどの助けを借りて数式を作る。

また、数式が大き過ぎる気がしたので、こちらのサイトを参考に下記も書くことにした。
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  CommonHTML: {
    matchFontHeight: false,
    mtextFontInherit: true
  }
});
</script>

0 件のコメント:

コメントを投稿