数学公式

数学公式是 Markdown 里唯一需要额外引擎才能工作的语法。写法只有两个符号——行内用一对美元符号,块级用两对——但要真正显示成排版好的公式,渲染器必须加载 KaTeX 或 MathJax。这一页讲清正确写法、LaTeX 里的反斜杠,以及一个技术文档里非常容易踩的坑:正文里出现美元符号。

两种写法

行内公式写在文字中间,两侧各一个美元符号:

行内公式:$x$ 的写法。
<p>行内公式:<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>x</mi></mrow><annotation encoding="application/x-tex">x</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">x</span></span></span></span> 的写法。</p>

渲染出来的是一大段 KaTeX 生成的 HTML:里面同时塞了一份 MathML(给屏幕阅读器和复制粘贴用)和一份纯 HTML 排版(给显示用),外面套着 <span class="katex">。页面上看不到美元符号。

块级公式用两对美元符号,而且这两个符号要各自独占一行:

$$
x
$$
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>x</mi></mrow><annotation encoding="application/x-tex">x</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">x</span></span></span></span></span>

两者在 HTML 里差得很明显:行内公式是段落里的 <span class="katex">,块级公式是独立成行的 <span class="katex-display">。

反斜杠只写一个

LaTeX 命令前面是一个反斜杠。写两个的话,\\ 会被当成换行命令,后面的字母就排成了普通文本:

$$
\int_0^1 x^2 dx = \frac{1}{3}
$$

上面这段才是正确写法。写成 \\int 和 \\frac 的话,KaTeX 会先输出一条断行,再把 int、frac 当普通字母排出来,公式就废了。

正文里的美元符号

技术文档写价格、金额是常事。但两个美元符号会被配成一对公式:价格 $100 和 $200 都包邮 里,$100 和 $ 被当成公式,「和」字也进了公式内部。

解决办法是给美元符号加反斜杠:

价格 \$100 和 \$200 都包邮
<p>价格 $100 和 $200 都包邮</p>

一个常见的错误写法

有人会写成 \$ ... \$,以为反斜杠是公式的一部分。其实反斜杠恰恰把美元符号转义掉了:

行内公式写成 \$E = mc^2\$ 这样的效果
<p>行内公式写成 $E = mc^2$ 这样的效果</p>

没开公式渲染的平台

目标平台没加载公式引擎时,同样的源码会原样显示:行内公式变成一串带美元符号的文本,块级公式塌成一个普通段落。跨平台发布前,先确认对方支持公式。

常见坑

写法实际渲染原因
$E = mc^2$公式行内公式
$$E = mc^2$$ 写在同一行仍是行内公式块级的两个符号要独占两行
\$ E = mc^2 \$原样的美元符号反斜杠把美元符号转义掉了
正文里的 $100 和 $被当成公式两个美元符号配成一对
\\frac{a}{b}断行加字母 fracLaTeX 里 \\ 是换行命令
\(E = mc^2\)原样括号本管线只认美元符号

练习

把下面这段内容改写成 Markdown,要求:写出一个行内公式和一个块级公式;块级公式的两个 $$ 各自独占一行;LaTeX 命令只用一个反斜杠;正文里的价格要转义,不能被当成公式。

质能方程 E=mc^2 是最著名的行内公式示例。

\int_0^1 x^2 dx = 1/3 这个积分的结果。

本工具的定价是 $9 / 月,团队版是 $19 / 月。
美元符号转义

解题思路: 行内公式用一对美元符号包在文字中间;块级公式用两对美元符号,两个符号各自独占一行。公式内容是 LaTeX,命令前面只写一个反斜杠。正文里的美元符号要转义,否则两个会被配成一对公式,把中间的汉字卷进去。

详细步骤:

  1. 第一句的行内公式写成 $E = mc^2$,两侧各一个美元符号,紧贴文字。
  2. 第二句改成块级公式:第一个 $$ 独占一行,回车后写 \int_0^1 x^2 dx = \frac{1}{3},再回车写第二个 $$ 独占一行。\int 和 \frac 都只写一个反斜杠。
  3. 第三句的价格写成 \$9 和 \$19,两个美元符号都转义掉,就不会被配成公式。
  4. 块级公式前后都留空行,让它独立成段。
  5. 检验:渲染后第一句嵌着一个行内公式,第二句是独立成行的块级公式,第三句的价格原样显示为 $9 和 $19,「和」字没有跑进公式里。

最终答案:

质能方程 $E = mc^2$ 是最著名的行内公式示例。

$$
\int_0^1 x^2 dx = \frac{1}{3}
$$

本工具的定价是 \$9 / 月,团队版是 \$19 / 月。

小结

读完这一页,你应当能写出行内和块级两种公式,能解释为什么 LaTeX 命令只用一个反斜杠,能说清正文里的美元符号为什么会被配成公式,也能在公式没渲染时先确认平台有没有加载公式引擎。

发现内容有问题?

告诉我们哪里需要改进。