更好的数学公式格式化方法

本文介绍几种既保持代码可读性(允许换行)又能确保公式正确渲染的方法。

方法一:使用反斜杠加换行符(\\\n

在 Markdown 中编写 LaTeX 公式时,我们可以使用 \\ 作为 LaTeX 的换行符,然后在编辑器中正常换行。

分段函数示例

以下是一个分段函数的例子,注意每行结束使用 \\

$$|x| = \begin{cases} x, & \text{if } x \geq 0 \\ -x, & \text{if } x < 0 \end{cases}$$

渲染效果:

$$|x| =
\begin{cases}
x, & \text{if } x \geq 0 \
-x, & \text{if } x < 0
\end{cases}$$

多行公式示例

以下是一个多行公式的例子,同样每行结束使用 \\

$$ \begin{align} \sum_{i=1}^{n} i &= 1 + 2 + 3 + \ldots + n \\ &= \frac{n(n+1)}{2} \end{align} $$

渲染效果:

$$
\begin{align}
\sum_{i=1}^{n} i &= 1 + 2 + 3 + \ldots + n \
&= \frac{n(n+1)}{2}
\end{align}
$$

几何级数示例

$$ \begin{align} S &= 1 + r + r^2 + \ldots + r^{n-1} \\ rS &= r + r^2 + r^3 + \ldots + r^n \\ S - rS &= 1 - r^n \\ S(1 - r) &= 1 - r^n \\ S &= \frac{1 - r^n}{1 - r}, \quad r \neq 1 \end{align} $$

渲染效果:

$$
\begin{align}
S &= 1 + r + r^2 + \ldots + r^{n-1} \
rS &= r + r^2 + r^3 + \ldots + r^n \
S - rS &= 1 - r^n \
S(1 - r) &= 1 - r^n \
S &= \frac{1 - r^n}{1 - r}, \quad r \neq 1
\end{align}
$$

方法二:使用 aligned 环境

aligned 环境通常比 align 环境更容易在不同的渲染引擎中正确显示。

$$ \begin{aligned} \sum_{i=1}^{n} i &= 1 + 2 + 3 + \ldots + n \\ &= \frac{n(n+1)}{2} \end{aligned} $$

渲染效果:

$$
\begin{aligned}
\sum_{i=1}^{n} i &= 1 + 2 + 3 + \ldots + n \
&= \frac{n(n+1)}{2}
\end{aligned}
$$

方法三:使用 gathered 环境

如果不需要对齐,可以使用 gathered 环境:

$$ \begin{gathered} \sum_{i=1}^{n} i = 1 + 2 + 3 + \ldots + n \\ = \frac{n(n+1)}{2} \end{gathered} $$

渲染效果:

$$
\begin{gathered}
\sum_{i=1}^{n} i = 1 + 2 + 3 + \ldots + n \
= \frac{n(n+1)}{2}
\end{gathered}
$$

方法四:使用 array 环境代替 cases

有时 cases 环境可能不被某些渲染引擎很好地支持,可以使用 array 环境:

$$|x| = \left\{ \begin{array}{ll} x, & \text{if } x \geq 0 \\ -x, & \text{if } x < 0 \end{array} \right.$$

渲染效果:

$$|x| = \left{
\begin{array}{ll}
x, & \text{if } x \geq 0 \
-x, & \text{if } x < 0
\end{array}
\right.$$

方法五:使用 HTML 注释保持代码可读性

在 Markdown 中,我们可以使用 HTML 注释来保持代码的可读性,同时不影响渲染:

$$ \begin{align} S &= 1 + r + r^2 + \ldots + r^{n-1} \\ rS &= r + r^2 + r^3 + \ldots + r^n \\ S - rS &= 1 - r^n \\ S(1 - r) &= 1 - r^n \\ S &= \frac{1 - r^n}{1 - r}, \quad r \neq 1 \end{align} $$

渲染效果:

$$
\begin{align}
S &= 1 + r + r^2 + \ldots + r^{n-1} \
rS &= r + r^2 + r^3 + \ldots + r^n \
S - rS &= 1 - r^n \
S(1 - r) &= 1 - r^n \
S &= \frac{1 - r^n}{1 - r}, \quad r \neq 1
\end{align}
$$

方法六:使用 split 环境

split 环境也是一个不错的选择,特别是对于长公式:

$$ \begin{split} S &= 1 + r + r^2 + \ldots + r^{n-1} \\ rS &= r + r^2 + r^3 + \ldots + r^n \\ S - rS &= 1 - r^n \\ S(1 - r) &= 1 - r^n \\ S &= \frac{1 - r^n}{1 - r}, \quad r \neq 1 \end{split} $$

渲染效果:

$$
\begin{split}
S &= 1 + r + r^2 + \ldots + r^{n-1} \
rS &= r + r^2 + r^3 + \ldots + r^n \
S - rS &= 1 - r^n \
S(1 - r) &= 1 - r^n \
S &= \frac{1 - r^n}{1 - r}, \quad r \neq 1
\end{split}
$$

最佳实践总结

  1. 始终使用 \\ 作为换行符:在多行环境中,每行结束使用 \\,然后在编辑器中正常换行。

  2. 选择合适的环境

    • 对于需要对齐的多行公式,使用 alignedalign 环境
    • 对于不需要对齐的多行公式,使用 gathered 环境
    • 对于分段函数,使用 cases 环境或 array 环境
  3. 使用注释增强可读性:可以使用 HTML 注释来添加说明,不会影响渲染。

  4. 测试不同的渲染引擎:如果一种环境不工作,尝试另一种。


本文章发布于 hjq.college,转载请注明出处。