MathJaxをバージョンアップしました!

MathJaxのコードを最新のものに変更しました。多少は表示速度が上がったでしょうか?


MathJaxのバージョンが2.7.1からほったらかしだったので、このほど、一気に2.7.4にバージョンアップしました(※注)。また、config部分を「HTML」(HTML-CSS出力)から「CHTML」(CommonHTML出力)に変更したため、従来よりもかなり表示速度がアップしました。

読み込み先は以下の通りです。


<script type="text/javascript" id="MathJax-script" 
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js">
</script>

※注:現在、当サイトではMathJaxの3系をサポートしています。これに伴って、記事中のコードを一部改変しています。


これにより最新バージョンのMathJaxを読み込んでくれます。今までは各ページごとに貼り付けていましたが今回、<head>部分(header.php)に直接書いたので、いちいちコードをコピペしなくても当サイト内の全てのページでMathJaxが自由に使えるようになりました。

参考のために当サイトで使用しているカスタマイズ済みのコードは以下のように設定しています。


<script>
MathJax = {
loader: {load: ['[tex]/color']},
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']],
packages: {'[+]': ['color']}
},
svg: {
fontCache: 'global'
}
};
</script>
<script type="text/javascript" id="MathJax-script" 
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js">
</script>

先ほどの読み込み先のパス指定の前に色々と書き加えています(※読み込み先のパス指定の後に書いてしまうと上手く行きません)。

これにより、ドルマークを使ったTeX書式での数式の記述が可能となっています。これは<head>部分に貼り付けてもよいですし、<body>内に貼り付けても構いません(<head>に貼った方がページの読み込みがやや速くなるらしいですが)。もし自サイトでMathJaxを使いたい!という方がいればご自由にコピペしてお使い下さい・・・。


ただ、コマンドによっては上手く表示されないものもあるようです(バージョンアップしたのに!(泣))。

例えば、下付き中カッコ(\underbrace)や上付き中カッコ(\overbrace)であったり、下線(\underline)や上線(\overline)などは以下のようになってしまい、上手く表示できないようです。underbrace、overbraceの場合は$$\underbrace{abcdeabcde}_{text}$$ $$\overbrace{abcdeabcde}_{text}$$となってしまい、underbrace、overlineの場合は$$\underline{abcde}$$ $$\overline{abcde}$$となってしまいます。ベクトルも同様に断絶が発生してしまいます。$$\overrightarrow{OA}+\overrightarrow{OB}$$かといって「\vec」コマンドだと小さすぎますね・・・。$$\vec{OA}+\vec{OB}$$

“underbrace broken” などで検索するとそれなりにページが出てきますが、根本的な原因はよくわかりませんでした・・・。「\ (空白)」などでスペースを空けて微調整すれば多少は改善されますが、あまり良い見栄えとは言えませんね・・・。$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}$$なんかは問題なく表示できるみたいです。

サイトの環境がよくないのか、それともMathJax側の問題なのか、読み込み先のファイルの問題なのか・・・、原因が良く分っていないため何とも対策が取れていない状況です。そのうち直ってくれれば良いのですが・・・。

もし解決方法をご存知の方がいらっしゃいましたら是非ご教授下さい。よろしくお願い致します。


なお、「a<b」をドルマークで挟むと「$a<b$」と表示されますが、ブラウザがhtmlの括弧と間違えてしまうから「a < b」のように空白を挟まなければならない、という一種のしきたり(?)のようなものがあるらしいのですが、そんなことをしなくても全く問題なく表示できています。

この謎のルール(?)について、管理人はこれまで全く知らなかったため、一切気にしたことがありませんでしたが、今まで何の支障も来していません。今と昔では記法の事情が違ったのかもしれませんが、MathJax利用者にも色々な流派があるということでしょうか・・・?


(2018/07/22追記)
結局MathJaxのコードは<head>に貼らず、それぞれの記事に個別に対応できるように、各ページにちまちま貼ることにしました。上記のような現象が改善されれば再び<head>に貼ることになるかもしれません。

根本的な原因は不明ですが、どうやら「CHTML」(CommonHTML出力)にしたのがマズかったようです。これを元の「HTML」(あるいは「HTML-full」)に戻したらちゃんと表示されました。コマンドによっては使い分けが必要なようですね。


(2022/11/25追記)
現在、当サイトではMathJaxの3系をサポートしています。これに伴って、記事中のコードを一部改変しています。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です