Jupyter Notebook中LaTeX公式需用$...$(行内)或$$...$$(独立行)包裹,禁用空格与HTML标签;下标用a_{ij},分式用rac{1}{2},多行对齐用egin{aligned}...end{aligned}等环境。

Markdown里写LaTeX公式的基本语法
Jupyter Notebook原生支持LaTeX数学公式,但必须用$$...$$或$...$包裹,且不能混用HTML标签或多余空格——这是最常卡住新手的地方。
行内公式用单美元符:$E = mc^2$;独立成行用双美元符:$$int_0^infty e^{-x^2}dx = rac{sqrt{pi}}{2}$$。注意:$前后**不能有空格**,否则渲染失败。
-
$a_b$→ 下标(_后紧跟一个字符,多字符需用{},如$a_{ij}$) -
$rac{1}{2}$→ 分式,分子分母都必须用{}包裹 -
$lpha, eta, sum, sqrt{x}$→ 希腊字母、运算符、根号等直接可用 - 换行用
\,但仅在$$...$$块内生效(如$$egin{aligned} a&=b \ c&=d end{aligned}$$)
为什么公式不渲染?常见错误排查
公式显示为纯文本(比如$x^2$原样打印出来),基本是以下三种情况之一:
- 单元格没设成
Markdown模式(右上角下拉菜单选Markdown,不是Code或Raw NBConvert) - 用了中文全角符号,比如
$或$$(务必用英文半角$) - 公式内部含未转义的
_或&(例如路径/data_v1/放在公式里会崩,应写成/data_v1/)
另外,Jupyter Lab 3.x+ 和 Classic Notebook 对egin{cases}等环境支持一致,但老版本(jupyter notebook < 6.0)可能不识别 ext{},建议改用mathrm{}。
复杂公式怎么写得更稳?推荐组合方式
多行对齐、分段函数、矩阵这类内容,别硬凑单行$$,用egin{...}end{...}环境更可靠:
$$
egin{cases}
x + y = 1 \
2x - y = 3
end{cases}
$$要点:
- 所有
egin{...}必须配end{...},且类型一致(cases、aligned、matrix等) -
&对齐位置,\换行,两者都不能漏 - 避免在
aligned里用ext{中文}——部分内核会报错,改用extrm{中文}或干脆移出公式块 - 如果公式太长导致换行错乱,加
displaystyle强制展开(如$displaystyle sum_{i=1}^{n} i$)
公式和代码混排时的注意事项
在同一个Markdown单元格里,公式和代码块(```python)可以共存,但顺序和空行会影响渲染:
- 公式块前后各留**一个空行**,否则可能被当作普通文本连读
- 不要把
$$写在代码块内部(```里任何$都会被当字面量) - 想在代码注释里写公式?不行——Markdown只解析单元格级别内容,
# $x^2$不会渲染 - 导出PDF时公式模糊?大概率是MathJax没加载完就导出,先按
Ctrl+M(MacCmd+M)手动刷新一次再导出
真正麻烦的是嵌套场景:比如用IPython.display.Math动态生成公式,那就不走Markdown路径了——那是另一套机制,别和$$混着用。


















