GitHub Markdownで数式の左端が揃わない現象の回避策

GitHub Markdownで数式の左端が揃わない現象の回避策について、以下に纏めました。

現象

以下のように場合分けをすると、数式の左端が揃わない現象が発生します。

ソースは以下の通り。casesやarray環境でも発生し、インデントや不要な空白を消しても発生します。

\begin{equation}
  \left\{
    \begin{aligned}
      F_{0} &= 0 \\
      F_{1} &= 1 \\
      F_{n} &= F_{n-1} + F_{n-2} \quad (n \geq 2)
    \end{aligned}
  \right.
\end{equation}

生成されたHTMLを確認すると、不要な空白が挿入されていることが分かります。

<mtr>
  <mtd style="text-align: left;">
    <msub>
      <mi>F</mi>
      <mrow data-mjx-texclass="ORD">...</mrow>
    </msub>
  </mtd>
  <mtd style="text-align: left;">...</mtd>
</mtr>

<mtr>
  <mtd style="text-align: left;">
    <mtext>&nbsp;</mtext> <!-- 不要な空白が挿入されている -->
    <msub>
      <mi>F</mi>
      <mrow data-mjx-texclass="ORD">...</mrow>
    </msub>
  </mtd>
  <mtd style="text-align: left;">...</mtd>
</mtr>

<mtr>
  <mtd style="text-align: left;">
    <mtext>&nbsp;</mtext> <!-- 不要な空白が挿入されている -->
    <msub>
      <mi>F</mi>
      <mrow data-mjx-texclass="ORD">...</mrow>
    </msub>
  </mtd>
  <mtd style="text-align: left;">...</mtd>
</mtr>

回避策

\\ の直後で改行すると発生するようなので、(1) 空白を追加する、(2) 改行の位置を調整する、(3) 改行しない 等で回避できます。

(1) 空白を追加する

F_{0} &= 0 \\␣
F_{1} &= 1 \\␣
F_{n} &= F_{n-1} + F_{n-2} \quad (n \geq 2)

(2) 改行の位置を調整する

   F_{0} &= 0
\\ F_{1} &= 1
\\ F_{n} &= F_{n-1} + F_{n-2} \quad (n \geq 2)

(3) 改行しない

F_{0} &= 0 \\ F_{1} &= 1 \\ F_{n} &= F_{n-1} + F_{n-2} \quad (n \geq 2)


一方で、Markdown + MathJax 環境だとそれぞれの記法が衝突するため、そもそも \\ を使わない方が良いという意見もあります。

(4) \\ の代わりに \newline を使用する

F_{0} &= 0 \newline
F_{1} &= 1 \newline
F_{n} &= F_{n-1} + F_{n-2} \quad (n \geq 2)
参考

zenn.dev
kmyk.github.io


\ にしている人もいます。記法の衝突を回避していると思われますが、今後も動作する保証はありません。

(5) \\ の代わりに \ を使用する

F_{0} &= 0 \
F_{1} &= 1 \
F_{n} &= F_{n-1} + F_{n-2} \quad (n \geq 2)