はてなブログの[tex:]
記法で数式を表示するとやたらとはまります。この記事ではそれを記録していきます。
を表示する
を表示するだけではまります。普通[tex: a^x]
と書きたくなりますが、これだと
[tex: ax]のようにうまく表示されません。
正しくは[tex: a\^x]
というふうに、^の前にエスケープを入れます。これで正しくと表示されます。
しかし不思議なことに、[tex: a^{x+1}]
と書いた場合は、エスケープがないのにと正しく表示できるようです。
(2015/05/20追記)後述のようにpreタグを使う回避策もあります。
文中で大きな数式を使う
[tex: \sum_{k=1}\^{N} a_k ]
と書くと、のように、数式が潰れて表示されます。
文中でも大きな数式を表示したいときは、[tex: \displaystyle \sum_{k=1}\^{N} a_k ]
のようにdisplaystyleを加えればOKです。こうするとのように、数式の文字が潰れず表示されます。
ただし、[tex: \displaystyle \frac{\sum_{k=1}\^{N} a_k}{N} ]
のように縦が長い数式に関しては、displaystyleを加えてものように数式が潰れることを回避できませんでした。
単独では正しく表示できる数式も、2回繰り返すとなぜか正しく表示できないことがある
たとえば[tex: \lim_{t \to 0} \frac{a\^{x+t} - a\^x}{t} ]
という数式は、のように正しく表示できます。
しかし、上記と同じ数式を、イコールによって2回繰り返した[tex: \lim_{t \to 0} \frac{a\^{x+t} - a\^x}{t} = \lim_{t \to 0} \frac{a\^{x+t} - a\^x}{t} ]
という数式は、[tex: \lim{t \to 0} \frac{a^{x+t} - a^x}{t} = \lim{t \to 0} \frac{a^{x+t} - a^x}{t} ]のように正しく表示できなくなってしまいます。
対策としては、とにかく怪しい記号をエスケープしておくことしかなさそうです。先ほどの数式の場合、アンダーバーが悪さをしていたようです。すべてのアンダーバーを\によるエスケープした数式[tex: \lim\_{t \to 0} \frac{a\^{x+t} - a\^x}{t} = \lim\_{t \to 0} \frac{a\^{x+t} - a\^x}{t} ]
は、のように正しく表示できました。
アンド記号が表示できない (2014/12/01, 2015/05/20追記)
はてなブログをmarkdown記法で使っている場合、アンド記号と不等号を使うことができません。(参考:はてなブログでtexの数式がうまく表示されない場合の対処法 - INPUTしたらOUTPUT!)。それぞれ&
<
>
などと強制置換されてしまいます。
不等号に関しては、texに\lt
と\gt
という命令が用意されているのでこれを使えばよいですが、アンド記号に関しては直接的な解決法は見つかっていません。 後述のように回避策が見つかりました(2015/05/20追記)。
はてなブログのサポートにメールで問い合わせたところ、一時的にブログの設定をmarkdown記法からはてな記法に変えることでこの問題を回避できるとのことです。掲載の許可をいただいたのでそのまま引用します。
ご返信の件につきまして、申し訳ございませんが、 編集モードをMarkdownモードにしたまま、アンド記号を含むtex記法を 正しく表示させる方法はなく、現時点で修正予定もございません。 なお、はてなブログは、記事作成時に設定されている編集モードが適用されます。 一度記事を作成されますと、その後編集モードを変更しても、 作成済みの記事の編集モードは変更されません。 例えば、はてな記法モードに設定し、その状態で記事を作成しますと その記事ははてな記法モードになりますが、その後設定を Markdownモードに変更しても、その記事ははてな記法モードのままとなります。 そのため、アンド記号を含むtex記法を記述するときのみ はてな記法モードで記事を作成することは可能です。
preタグを使ってアンド記号を表示し、かつ本来不要なエスケープを省く方法 (2015/05/20追記)
TeXをMarkdown記法でも使ってみた。 - いものやま。によると、<pre>
タグで[tex:]
を囲うことで、アンド記号を表示することができるそうです。以下ではその方法を引用して解説します。
例えば<pre>[tex:a \& b]</pre>
と書くと、以下のようにアンド記号が表示できました。
この方法を使うと、^
や_
をバックスラッシュでエスケープする必要がなくなる、という嬉しい効果もあります。
さらに、数式の周りに枠が出るのと、フォントサイズが小さくなるのを以下の方法で回避できるそうなのですが、残念ながら私の環境ではうまくいきませんでした。
<pre style="border: none; font-size: 100%;">
[tex: {
(ここにTeXの数式)
}]
</pre>