javascript で LaTeX : KaTeX がすごい
KaTeX : html 上で数式を組む時の新星候補
The fastest math typesetting library for the web.
KaTeX というものが存在する.
これは mathjax のような,tex ベースの数式組版ライブラリで,高速で依存関係無しに動き,TeX の美しさを持つライブラリという触れ込みである. 実際試してみると明らかに mathjax よりも高速,殆どストレスなく閲覧できる1.また,環境によらず同じ組版結果となるので, node.js で server-side で組んどくというようなことも出来るということだ.
公式サイトの例(マウスホバーで中身が見えるのは僕が細工した). 速すぎて気付かないかもしれないけれど,このレンダリングは完全にクライアントサイドで行われている.
\left
とか \!
にも対応している.
めり込んでみようか (\int_0^\infty\!\!\!\!\!\!\!\!\sin x
)
連分数(たんに \frac
の連鎖で書いた)
サポートしている分は文句なく綺麗に表示できている感じだ.本家の github.io では interactive に遊べるところがあるので試すと良いと思う.
導入
導入は非常に簡単で,katex.min.js
, katex.min.css
, あとは fonts/
があればいい.
release から新しいのを取ってきて展開,js
と css
を読み込んで,こういう感じに使う
katex.render(latexCode,domToWriteOn);
document.getElementsByClassName
とかで要素を取ってきてループで回すといいんじゃないだろうか(この記事ではそうしている).
因みに,タグの中にベタ書きすると 追記2015-05-20,本家 github.io では <
とかで扱いがややこしいから<div class="tex" data-expr="\int"></div>
みたいな書き方になっていて,これが一番やりやすいかもしれない.…と思ってたけど <pre>
とかなら普通に問題ないな,うん.今 pull-req が入ってる.
なお,ライセンスは MIT なので色々やり放題でもあります.
追記: というより,innerHTML
じゃなくて textContent
を使うのが
よいとおもう.html の中に例えば $$
で囲って数式を入れるのが
contrib の中に プラグイン的に入っていて,その中でも
textContent が使われている.
夢
まだ Initial release から 3日しか経っておらず,行列サポートはじめさまざまな issue が立っている ところだけれど, これは非常に期待できるのではないだろうか.reveal.js とか impress.js とうまく組み合わせれば beamer のよりスタイリッシュな代替としての利用もできそうですね.めっちゃ楽しみ.
-
ここで speed test やってるっぽい http://jsperf.com/katex-vs-mathjax/ ↩