はてなブログで記事を書くときには、いくつかの方法があるのは以前書いた通り。
このとき、も使えるということを書いたんだけど、いざ使おうとしてみるといくつか問題が・・・
今日は、その問題の具体的な内容と、自分の見つけた回避策の紹介。
まずは基本から
はてなブログでを使う場合、次のように書く。
[tex:{TeXの数式}]
例えば、次のような感じ。
[tex:{ \frac{d}{dx} \int_a\^x f(t) \\: dt = f(x) }]
実際の見え方
このように、を使うと数式をキレイに書くことが出来る。
なお、のより詳しい使い方は、好き好きLaTeX2e/初級編 - MyTeXpertを見るのがオススメ。
PDFでも頒布されているので、簡単に参照することが出来る。
問題点
ただし、Markdown記法でを使おうとすると、いくつか問題点が。
ここで指摘されている通り、アンパサンド(&)が使えない。。。
だと、数式の列を揃えるためのalign環境や行列を書くためのarray環境で、アンパサンドを多用するので、これが使えないのはかなり致命的。
例えば、昨日書いた最適化問題の数式をalign環境で書こうとすると、次のような感じになってしまう。
[tex: { \begin{align} \mbox{min.} & \left\| C_a X_a - C_b X_b \right\| \\\\ \mbox{subject. to} & X_a + X_b \\le 100 \\\\ & X_a \\ge 0 \\\\ & X_b \\ge 0 \end{align} }]
実際の見え方
これはアカン。
回避する方法としては、Markdown記法以外を使うしかないと書かれてるのだけど、正直、数式を書くときだけMarkdown記法以外の編集方法にするのも不便なので、なんとかしたいところ。
回避策
じゃあ、どうするのか。
結論は簡単で、pre要素の中にの数式を書けばいい。
(※キーワードリンクが有効だと、texというキーワードにリンクが自動で貼られてしまって、ダメになる場合があるっぽい? ただ、キーワードリンクを無効にしてもダメな場合があるようなので、根本的な原因は不明)
(2015-09-26追記)
キーワードリンクの問題ではなく、Markdown記法の```
を使うと、この問題が起こるみたいだった。
pre要素を使っての数式を書く場合、記事中では```
を使わずに、preタグを直接HTMLで書いたほうがいいみたい。
(ただし、シンタックスハイライトは使えなくなる)
(2019-06-03追記)
以下の解決策を使うといい:
TeXをMarkdown記法でも使ってみた・改。 - いものやま。
Markdownの便利(?)なところとして、HTMLのタグをベタ書きすることも可能ということがある。
なので、Markdown側で勝手に改変を加えられると困る部分は、pre要素の中に明示的に入れてしまえばいい。
例えば、先ほどの例だと、次のような感じ:
<pre> [tex: { \begin{align} \mbox{min.} & \left| C_a X_a - C_b X_b \right| \\ \mbox{subject. to} & X_a + X_b \le 100 \\ & X_a \ge 0 \\ & X_b \ge 0 \end{align} }] </pre>
実際の見え方
バックスラッシュによるエスケープの数も、本来のと同じ数で済んでることが分かるかと思う。
なお、場合によっては、pre要素にすることでスタイルシートの影響を受け、フォントが小さくなったりボーダーが周りについてしまうことがあるので、それが気になるのなら、style属性を指定してあげるといいかもしれない。
例えば、
<pre style="border: none; font-size: 100%;"> [tex: { (ここにTeXの数式) }] </pre>
といった具合。
こうすると、先ほどの数式は、
という表示になる。
うん、いい感じ♪
今日はここまで!