$\require{cancel}$html上で、数式を表現するには欠かせないMathJax。とても便利だが、計算式の途中で数字や文字に取り消し線(こんなものです。$\cancel{3}とか\bcancel{a}とか\xcancel{2ab^{2}}などです。$)を引く方法がわからなくて、ちと困りました。解決策をメモっておきます。

【前提条件】

  1. サイトは、Wordpressで運用している。
  2. MathJaxの設定は、header.phpに記述済。(正常に動作)
  3. MathJaxの記述は初志者レベルだが、html,css,javascript,php,sqlなどはまぁ、中レベル。

MathJaxのサイト:http://docs.mathjax.org/en/latest/tex.html を参考に2つの解決策を試しました。
拡張機能(追加パッケージ)を読み込ませて運用する方法です。結果、どちらでもうまく表示されました。が、個人的には、<解決策>の2を利用することにしました。理由は、<解決策>の1では、header.phpに読み込ませるので、不要なページ、すべてのページに拡張機能が読み込まれることになります。原則、使わないのなら、読み込まないということで、<解決策>2を選択しました。

<解決策>

  1. header.phpに拡張機能読み込み設定を追記。
  2. 投稿ページ内に拡張機能読み込みマクロを記述。

1.header.phpに拡張機能読み込み設定を追記。

一般的なMathJaxの設定を、</head>の前に、次のように記入します。これが、MathJaxの運用時の設定です。

<script type="text/javascript"
  src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    TeX: { equationNumbers: { autoNumber: "AMS" }},
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      processEscapes: true
    },
    "HTML-CSS": { matchFontHeight: false },
    displayAlign: "left",
    displayIndent: "2em"
  });
</script>

このスクリプト内のTexセクション内に、

TeX: {
extensions: ["cancel.js"]
}

を追記します。

完成形が、下のものです。

<script type="text/javascript"
  src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    TeX: { equationNumbers: { autoNumber: "AMS" },
        extensions: ["cancel.js"]},
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      processEscapes: true
    },
    "HTML-CSS": { matchFontHeight: false },
    displayAlign: "left",
    displayIndent: "2em"
  });

さらに、拡張機能を追加したい場合は、「,」で区切って[” “,” ” ]のように、カッコ内に追記していけばよろしいようです。
例えば、

extentions:["cancel.js","autobold.js"]

みたいな感じです。

2.投稿ページ内に拡張機能読み込みマクロを記述。

マクロ、\require{}を利用します。今回は、取り消し線なので、

\require{cancel}

となります。私は、これを、取り消し線を利用するときだけ、投稿ページの先頭部分に次のように記述しています。(最初に1回記述すれば、そのページ内で有効になります。もちろん、他のページでは無効です。)

$\require{cancel}$

注意、{ }内のパラメータには、jsが付きません。つまり、cancel.jsではなく、cancelのみです。

〔課題〕
複数の拡張機能を記述する書式がわかりません。試せばいいのですが。どたなかがんばって試してください。わかった方は、ぜひ、コメントで教えてください。(時間があれば、試して、その結果をアップします。今の所、不都合がないのでこのままです。)

取り消し線の表示例

解決策1の場合は、投稿ページに下記のマクロを書けば、表示例のように表示されます。
解決策2の場合は、投稿ページに内にまず、$\require{cancel}$を記述してから、マクロを記述すれば、表示例のように表示されます。

記述したマクロ 表示の例
$ \cancel{5} $ $ \cancel{5} $
$ \xcancel{ax^{2}} $ $ \xcancel{ax^{2}} $
$ \displaystyle\frac{\cancelto{1}{2}}{\cancelto{2}{4}} $ $\displaystyle\frac{\cancelto{1}{2}}{\cancelto{2}{4}}$
$ \bcancel{\sqrt{21}} $ $ \bcancel{\sqrt{21}} $