本の虫

著者:江添亮
ブログ: http://cpplover.blogspot.jp/
メール: boostcpp@gmail.com
Twitter: https://twitter.com/EzoeRyou
GitHub: https://github.com/EzoeRyou

アマゾンの江添のほしい物リストを著者に送るとブログ記事のネタになる

筆者にブログのネタになる品物を直接送りたい場合、住所をメールで質問してください。

KaTeXを使ってみた感想

ブラウザー上で動いて、texの数式を描画するライブラリには、有名なMathJaxの他に、KaTeXがある。

Khan/KaTeX: Fast math typesetting for the web.

KaTeXにはMathJaxにない様々利点があるが、欠点も多い。

マストドンで数式描画をするのにMathJaxの代わりにKaTeXが使えないかと試してみたが、結論から言うと、KaTeXはマストドンで使うのに適さない。

KaTeXは以下の用途で使うのに適している。

  1. 自分一人、あるいは十分に訓練されて連絡を密に取り合う人間だけで編集された文書
  2. 数式に間違いがなく、KaTeXで処理できること

以下のような場合には適さない。

  1. 不特定多数の人間が数式を入力する
  2. 数式は文法的に誤りを含む可能性がる

KaTeXの利点

KaTeXはMathJaxに比較して様々な利点がある。

速い。文句なくMathJaxより速い。

KaTeX and MathJax Comparison Demo

実装が軽量で依存がなくWebサイトに組み込みやすい。

JavaScriptファイル一つ、CSSファイル一つ、あとはフォントファイルしかない。

KaTeXはかなり理想的なのだが、問題がある。

数式のパースエラーに非寛容

数式がtexの文法違反だったりするとすぐに例外を投げる。例外を無効化もできるが、基本的にパースエラーを出した時点でそれ以上の処理を拒否する。

CJK文字に対応していない。

これは本当に耐え難い問題だ。我々は$力=質量\times加速度$を書くときは、

$力=質量\times加速度$

と書きたい。しかし、KaTeXはCJK文字に対応していない。

一応、\text{}で囲めば使えるらしいが、それは式の意味を買えてしまうし、第一、

$\text{力}=\text{質量}\times\text{加速度}$

とは書きたくない。そもそも意味が変わってしまう。不特定多数のユーザーがいる場合にこれを守らせるのも難しい。それにこうしてもやはりCJK文字の扱いには問題がある。

それ以外にも、基本的にエラーを出すと処理を中止するようになっていて、本当に使いづらい。

このため、KaTeXはマストドンで使うのに適さない。