GitHub Pagesでちょっと遊んでみる(3): GitHub PagesでMathJax!!

By | 2019年1月13日 , Last update: 2022年11月13日

はじめに

本WebサイトはWordpressで構築されていますが、ちょっとした事情でMarkdownでページを作ってみたくなったのと、GitHub Pagesで構築している「panda大学習帳外伝」にMarkdown記法及びMathJaxを使ったページを書いてみることにしました。

スポンサーリンク

GitHub PagesでMathJaxを使用するための設定等の方法

MathJaxを使用した記事をGitHub Pagesで書くためには、MathJaxを使用するための設定が必要になります。

MathJaxを使用するための設定及びMathJaxによる数式などの記述は以下の手順で行います。なお、以下の手順のうち、手順1及び2は初回またはmathjax.htmlの内容を変更した場合にのみ行います。また、記事作成用のPCにJekyllはインストールしていないので、GitHub Pagesでのコンパイルはぶっつけ本番になります。(`・ω・´)

  1. GitHub Pagesのリポジトリのトップディレクトリの下にある_includes/mathjax.htmlを作成し、以下のような感じで記述します。

    2-19行目の定義内容は本Webサイトの管理人たるpandaのお好み感満載(詳細はこちらの記事参照。)ですが、15-19行目については必須(18行目のconfigパラメータは変更可能ですが、cdn.mathjax.orgのCDNが2017年4月に運用を終了していますので、それ以外のURLは変更しない方が無難です。)の設定になります。
  2. mathjax.htmlをGitHub Pagesのリポジトリにcommit & pushします。
  3. MathJaxを使用したいmarkdownファイルのヘッダに”mathjax: true”という行を以下のように記述し、MathJaxを使用可能とする設定を行います。
    ---
    (その他の設定)
    mathjax: true
    ---

     

  4. markdownファイルの中に$\LaTeX$の数式をサクサク書きます。
  5. $\LaTeX$の数式が書けたらmarkdownファイルをGitHub Pagesのリポジトリにcommit & pushして、GitHub Pagesでコンパイルしてもらいます。
  6. 出来上がったHTMLファイルにアクセスし、出来具合を確認します。

試しに記事を書いてみました。

MathJaxを使用するための設定が終わったら、以下の条件を満たす記事になりそうなネタを考えます。

この記事の場合分けの片方($z<0$の場合)が、

  • それなりにまとまった量が期待できる記事。
  • 積分記号とかが登場する記事。
  • Markdown記法とMathJaxという異なる言語系を混ぜて記事を書くので、できるだけ問題が発生しにくい内容の記事(問題が発生した場合でも、検証可能な問題しか発生しないのがベスト)。

という条件を満たしそうな感じがしたので、書いてみることにしました。

それで、書いてみた例が↓になります。

本Webサイトにある場合分けの一方の記事とは符号が反転しているだけ…と見せかけて、本質的に異なっているのは最後の変数変換の部分だけというほぼコピペな記事です。

Markdown記法における特殊文字のMathJaxの数式モードにおける回避策例のようなもの。

ところが、その(前節で記述した)コピペが簡単にはうまくいきませんでした。(´・ω・`)

これは、MathJax(というか$\LaTeX$)で割と頻繁に使用する文字がMarkdown記法では特殊文字として取り扱われることが原因のようです。

この記事では、以下のように書き換えることが必要でしたので、例として挙げておきます。

WordPress Markdown 影響しそうな記述
\{ \} \\\{ \\\} 括弧がたくさん必要な場合。(インライン数式の場合は\\{または\\}と書くと良いようです。)
\\ \cr align環境中における改行。
_ \_ 添え字及び定積分の積分区間の記述。アンダースコアの位置に<em>タグが挿入されてしまう場合には必須。使用例はこちら参照。
| \| 絶対値。
\| \\| 絶対値(ベクトルの長さ等を$\|\boldsymbol{x}\|$のような感じで書きたい場合)。
使用例はこちらこちら参照。

Markdown記法の特殊文字にはバックスラッシュも含まれているので、これもバックスラッシュ2個にしなければならないのかと思いきや、その必要がなさそうなケースの方がほとんどだったりします。そのあたりの法則性については調べていません。(´・ω・`)

$\LaTeX$の記述ではマクロの呼び出しにバックスラッシュを多用するので、それらをバックスラッシュ2個にするとなると実用性が大幅に低下することになってしまうところでしたが、幸か不幸かその必要はなさそうです。

まとめ

積分計算の場合分けの片方の計算であり、かつほとんどの内容が場合分けの一方のコピペに近いので、作成にはそれほど時間を要しないだろうと思っていました。しかし、Markdown記法の特殊文字に$\LaTeX$の数式を書く際にほぼ必ず使用する文字が含まれているために期待した通りの数式の表示にならず、かなり苦労してしまいました。

Markdown記法にMathJaxによる処理の対象となる数式を埋め込む場合に参考にしていただけると幸いです。

この記事は以上です。

References / 参考文献