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/ ↩