はてなブログにLaTeXで数式を書く (Markdown記法用)

追記 2014/05/10 この記事は古いので、 はてなブログの LaTeX 数式表示がデフォルトで MathJax 化された を参照してください。

MathJaxを導入したら、はてなブログがMarkdown+LaTeXという夢の様な環境になって便利という話。

はてな記法で数式を書く

以前は以下の方法ではてなブログに数式を書いていた。 いわゆるはてな記法を使う方法。


[tex:{ \displaystyle
b_n = \sum_{m=0}^{N-1} a_m
}] 

{ \displaystyle
b_n = \sum_{m=0}^{N-1} a_m
}


この方式では数式が画像に変換されてしまい、よくない。

MathJaxで数式を書く

画像化するのではなく、javascriptでフォントの位置とサイズを整えて数式を表示するMathJaxという仕組みがある。 MathJaxはすでに有力な標準仕様で、画像化するより MathJaxを使ったほうが綺麗らしい ので乗り換えた。 LaTeXコマンドをそのままブログに書ける ので、かなり便利。 

導入の詳細は はてなブログで MathJax \( \alpha^{\beta^{\gamma}} \) (←リンク名にも数式が使えるのだ) や MathJaxでの数式表示を試す を参照。 要するにはてなブログのサイドバーに

<script
  type="text/javascript"
  src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
></script>

と書くだけ。むっちゃ簡単。

文中の数式は、以下のように\\(と\\)で数式部を挟む。


京都北山 \\( \alpha \\) ステーション!

京都北山 \( \alpha \) ステーション!


普通のLaTeXでは$ \alpha $ とするけれど、 MathJaxでは $ 記号が推奨されない。 そのかわり、普通のMathJaxでは\( \alpha \)とするのが推奨されている。 ただしこのブログは Markdown で書かれてるのでエスケープを2重にしなければならない。 つまり\\( \alpha \\)とする。 エスケープ関連の問題はややこしいので追記に書いた。

別行立ての数式を書く時はalign環境を使う。


\begin{align\*}
b_n = \sum_{m=0}^{N-1} a_m
\end{align\*}

\begin{align} b_n = \sum_{m=0}^{N-1} a_m \end{align}


算数のおべんきょうが捗る。

2014/02/17 追記

id:tosh1ki さんに指摘されたので追記します。
参考 : はてなブログ(Markdown記法)+MathJaxの記入例

MathJax環境内では _,*[]() の文字をエスケープしないと、 数式化されない場合がある。一例を上記ブログから引用する。

アンダースコアを全てエスケープした場合
\\(
\mathcal{Z}[x\_{n}]=\sum\_{n=-\infty}^{\infty} x\_{n}z^{-n}\\
\\)

\( \mathcal{Z}[x_{n}]=\sum_{n=-\infty}^{\infty} x_{n}z^{-n}\ \)

↑正しく数式化された。

アンダースコアのエスケープを外した場合
\\(
\mathcal{Z}[x_{n}]=\sum_{n=-\infty}^{\infty} x_{n}z^{-n}\\
\\)

\( \mathcal{Z}[x{n}]=\sum{n=-\infty}^{\infty} x_{n}z^{-n}\ \)

↑数式化されない!!

きちんとエスケープしましょう。