問題の背景 ~LaTeXの変換がうまくいかない~
筆者はMathJax-LaTeXにmhchemを導入して化学式を記載しています。先日、過去記事を見返していたところ、変換がうまくいってない箇所がありました。例として、
$\ce{H2SO4}$
と表示したい部分が、
\$\ce{H2SO4}$
となっておりました。記事作成時は特に問題なく変換できていたのですが……
今回、この現象に対して行った対処を、自身の備忘録として残します。
前提 ~mhchemの導入方法~
当初はMathJax-LaTeXにmhchemを導入して化学式が書けていたにもかかわらず、時間が経ったら今回の症状が起きた、という背景になります。なお、当初mhchemの導入方法は、以下のサイトを参考にさせて頂いて、進めていました。
WordPressで化学式を書きたい! mathjaxとmhchem | ともけむブログ (tomo-chem.com)
具体的対処方法
症状の原因としては、
①Mathjax-Latexプラグインにおける、Force Loadの設定が誤っている
②mhchemを有効化するコードが、何らかの要因でheader.phpから消えている
の2個が考えられましたので、それぞれを確認しました。
Mathjax-Latexプラグインにおける、Force Loadの設定が不適切
Mathjax-Latexプラグインには、「Force Load」という設定項目があります。この設定にチェックを入れない場合は、各記事の最初に「$\verb|[|$mathjax$\verb|]|$」と入力しないとMathjax-Latexおよびmhchemは有効化されません。一方でチェックを入れると、各記事に「$\verb|[|$mathjax$\verb|]|$」を入力しなくてもよくなるようです。
いろいろ検索してみると、Force Loadのチェック有無でLaTeX変換に関するトラブルが解消できる例があるようでした。そこで、はじめに私は「Force Load」のチェックをつけたり外したりしてみましたが、自分の場合は解消しませんでした。
以上より、私の場合に関しては、Force Loadが原因ではなさそうでした。
※補足
状況によってはForce Loadのオンオフで解決できる場合もあるかもしれません。Force Loadは、
①Wordpress管理画面 左列の「プラグイン」
→ ②Mathjax-Latexの「設定」
→ ③出てくる画面の一番上の「Force Load」
の順にクリックしていくとアクセスできます。
mhchemを有効化するコードが、header.phpから消えている
mhchemを有効化させるには、以下のコードをWordpressテーマのheader.phpに記載する必要があります。しかしながら、何らかの理由でこのコードが消えてしまうと、mhchemが使えないということになってしまいます。
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
"HTML-CSS": {
matchFontHeight: false,
mtextFontInherit: false
},
tex2jax: {
inlineMath: [ ['$','$'], ['\\(','\\)'] ],
processEscapes: true
},
TeX: {
extensions: ["mhchem.js"] }
});
</script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax-mhchem/3.3.2/mhchem.js?config=TeX-AMS_CHTML">
</script>
ともけむブログ様より引用
そこで、実際に私の環境で確認してみました。私の使っているWordpressテーマは「Cocoon Child」です。
はじめに、以下に従ってCocoon Childのテーマ編集画面を開きます。①→②の順にクリックすると、③の位置にテーマファイル一覧が表示されます。
しかし、上の図では、テーマファイルの中にheader.phpが存在しません。これは、Cocoon ChildがCocoonの子テーマであるためにおこる現象です。このようなケースでは、はじめに下図の青枠部分に示すように、「編集するテーマを選択」から「Cocoon」を選んで「選択」をクリックし、親テーマであるCocoonのテーマファイルを表示します。
Cocoonのテーマファイル一覧を表示すると、その中に「テーマヘッダー(header.php)」と書かれたものがあり、これがCocoonのheader.phpになります。私の場合、「テーマヘッダー(header.php)」をクリックして中を確認したところ、かつて書き込んだコードが消えていました。そこで、改めて下図のように入力したところ、無事にLaTeXが変換できるようになりました!
コードの入力を、以下のように<head>の下位置にするのが最適なのかは自信がないですが、今のところ不具合なく動いています。
まとめ
以上、MathJax-LaTeXとmhchemの変換がされない場合の対処方法を紹介しました。おそらく、WordpressやMathJax-LaTeXの更新等が要因で、コードが消えてしまったために今回の症状が起きたと推測していますが、今後は同様の症状が起きたら、この方法で対処しようと思います。
類似の症状が出た方の参考となれば幸いですが、各個人ごとにWordpressの環境が異なり、「同様の挙動を示さない・何らかの不具合を引き起こす」可能性も、ないとは断言できないので、試す際は自己責任でお願いいたします。
コメント