MathJaxはCommonHTML出力で使うべきである
- MathJaxはそんなに遅くない
- MathJaxのCommonHTML出力は速い
- 基本的にSVG出力よりも良い
背景
このサイトに数式表示を導入したかった.
MathJax の存在は数年前から知っていたが, 数年前から知識をアップデートしていなかったため, 「MathJaxは遅い」という認識だった.
そこでを使おうと考えていたが, 調べ直した所, 今のはさほど遅くなかったので, MathJaxを導入した.
CommonHTML
CommonHTML出力はすべてのモダンブラウザで高品質の出力を生成します, 結果はブラウザとOS間で一貫しています. これはMathJax v2.6から, MathJax'sの基本的なモードです. 主な利点は, 品質, 一貫性, 速度, サーバーサイドでのサポートです. IE9と同等のブラウザをサポートしており, 古い世代のブラウザでは正常に機能しなくなります. CommonHTML出力はwebベースのフォントを使用しているため, ユーザはコンピュータに数式フォントをインストールする必要はありません. 現在はMathJaxのデフォルトのフォントのみをサポートしています.
メリット
- SVG出力と同等程度に高速
- SVG出力と違い, 文字列がコピー可能
- ユーザがMathJax用のフォントをインストールしていれば, webフォントを使う必要がないため更に高速
デメリット
近年webフォントは無闇矢鱈と乱用されている.
無用なwebフォントは有害である.
- ページ読み込みが低速化する
- 好みではないフォントで文字が表示されると読みにくい
- 読込中にテキストが白紙化されるサイトが存在する
そのため, webフォントを拡張機能を使ってブロックするユーザが存在する. firefox for androidに至っては, webフォントをオフにするオプションを備えている. Android 版 Firefox で Web フォントをオフにする | Android 版 Firefox ヘルプ
かくいう私もwebフォントバカに嫌気がさし, モバイル環境ではwebフォントをオフにしていた1人である.
当然, webフォントをオフにしている環境では, CommonHTML出力を使うと通常のフォントで表示されることになる. それがどうしても嫌ならばSVG出力を使うべきだが, 通常のフォントでも分数や行列$\pmatrix{a & b \cr c & d}$のレイアウトなどは正常に行われるため, 妥協するのも選択肢である.