Markdown 转 LaTeX
在左侧写带 $ 公式的 Markdown,右侧实时预览、逐条提取 LaTeX,并导出可直接编译的 Overleaf 文档。全部计算都在浏览器本地完成。
Markdown 里怎么写 LaTeX 数学公式?
用美元符号把公式包起来即可:`$E = mc^2$` 是行内公式,独占若干行的 `$$...$$` 是居中的行间公式。Markdown 本身不解析数学,真正负责渲染的是所在平台——GitHub、Jupyter、Obsidian 以及主流静态站点生成器都会把公式交给 KaTeX 或 MathJax 处理。
行内公式:质能关系 $E = mc^2$。
$$
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
$$第一行的公式排在句子中间;$$ 之间的内容会被渲染成独占一行的居中行间公式。
在线使用 Markdown 转 LaTeX
Markdown 编辑器
输出结果
带数学公式的 Markdown
行内公式:
行间公式:
求和公式:
矩阵:
方程组:
Markdown 中的 LaTeX 语法详解
Markdown 与 LaTeX 通过美元符号衔接。规则本身很短,但几乎所有渲染问题都出在三个细节上:分隔符两侧的空格、被 Markdown 当成斜体吃掉的下划线,以及各平台自带的另一套数学语法。
单个美元符号:行内公式
两侧各一个美元符号,公式会排在正文行内。分隔符和公式之间不能有空格——一旦有空格,多数渲染器会把美元符号当成货币符号原样输出。
质能方程 $E = mc^2$ 至今仍令人惊叹。
像 \$25 这样的价格需要转义,否则会被当作公式起始。第一行的 E = mc² 排在句子中间;第二行转义后的美元符号会原样显示为 $,不会开启公式。
双美元符号:行间公式
两个美元符号生成居中的块级公式。分隔符要各自独占一行,并且公式块前后都要留一个空行——否则 Jupyter 和部分静态站点生成器会拒绝渲染。
求根公式给出方程的两个解:
$$
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$渲染为独占一行的居中公式,与上方段落之间有明显间隔。
矩阵、方程组与对齐环境
凡是需要多行的结构都写在 amsmath 环境里:行之间用双反斜杠分隔,列之间用 & 对齐,外层仍然用 $$ 标记为行间公式。
$$
\begin{cases}
3x + 5y + z = 0 \\
7x - 2y + 4z = 0
\end{cases}
$$渲染为带大括号的二元方程组。把 cases 换成 pmatrix、bmatrix 或 aligned,就能用同样的行列写法得到矩阵和多步推导。
GitHub 与 GitLab 的公式围栏
GitHub 在文件、Issue 和评论中直接支持 $ 与 $$,但官方文档推荐的写法是行内用美元加反引号、块级用 math 代码围栏;GitLab 用的是同样两种形式。围栏写法最稳妥,因为围栏内的内容不会先被 Markdown 解析一遍。
行内:$`\sqrt{3x-1}+(1+x)^2`$
```math
\left| \vec{v} \right| = \sqrt{x^2 + y^2}
```两种写法在 GitHub 和 GitLab 上都能正常渲染。math 围栏可以彻底避免转义问题,因为内容会被原样交给数学渲染器。
转义下划线、美元符号与反斜杠
下划线在 LaTeX 里是下标,在 Markdown 里是斜体,先跑 Markdown 的解析器可能会把它吃掉。给字符加转义,或把公式放进 math 围栏即可解决。反斜杠只有在 Markdown 本身位于字符串字面量中时才需要写成两个。
$x_1 + x_2$ 严格解析器可能丢掉下划线
$x\_1 + x\_2$ 在所有渲染器中都安全
价格:\$50 转义后的美元符号,不会触发公式转义后的写法在 KaTeX 和 MathJax 中排版结果完全相同,同时能安全通过 Markdown 自身的斜体解析。
可直接编译的 Overleaf 文档
要在 Markdown 之外编译这些公式,需要一层文档骨架:加载 amsmath 与 amssymb,再把每个行间公式放进 equation 环境——这正是本工具 Overleaf 标签页自动生成的内容。
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
\begin{equation}
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
\end{equation}
\end{document}无需任何改动即可在 Overleaf、pdflatex 或 tectonic 中编译,输出带编号的公式。
各平台对 Markdown 数学公式的支持
数学公式是 Markdown 里可移植性最差的部分:下面每个平台用的渲染引擎都不一样,有的干脆不支持。把公式写进 README 或 Wiki 之前,先对照这张表。
| 平台 | 支持情况 | 说明 |
|---|---|---|
| GitHub | 完全支持 | 文件、Issue、PR 和 Discussions 中 $、$$、$`...`$ 与 math 围栏均可用。 |
| GitLab | 完全支持 | 推荐行内 $`...`$ 与 math 围栏;较新版本也支持裸写的 $$。 |
| Jupyter Notebook | 完全支持 | Markdown 单元格用 MathJax 渲染 $ 与 $$,也支持 align、cases 等环境。 |
| Obsidian | 完全支持 | 基于 MathJax。$$ 必须各自独占一行,否则公式块会被当成行内公式。 |
| R Markdown / Quarto | 完全支持 | 编织成 HTML 时走 MathJax,编织成 PDF 时交给真正的 LaTeX 引擎。 |
| VS Code 预览 | 部分支持 | 内置预览需要安装 Markdown+Math 扩展;MDX 工具链的行为又不一样。 |
| Notion | 部分支持 | 有自己的行内公式和公式块,粘贴进去的 $$ 原始语法不会自动转换。 |
| Discord / Slack | 不支持 | 完全没有数学渲染能力,只能贴图片或用代码块表示。 |
如何把 Markdown 中的公式转成 LaTeX
粘贴 Markdown
把包含 $...$ 或 $$...$$ 公式的文档粘贴到左侧编辑器。内容由 remark 在本地边输入边解析,不会上传到任何服务器。
查看实时预览
预览标签页用 KaTeX 渲染整篇文档,导出前可以先确认每个公式都能正确解析。
核对提取出的公式
切到 LaTeX 标签页,可以看到从文档中提取出的每一条行内和行间公式,每条都带独立的复制按钮。
导出可编译文档
Overleaf 标签页会把所有公式包进 article 文档,并预先加载 amsmath、amssymb、amsfonts 和 mathtools,复制后可直接在 Overleaf 编译。
常见问题
Markdown 里怎么写 LaTeX 公式?
用美元符号作分隔符。一对美元符号 $E = mc^2$ 生成排在句中的行内公式;两对美元符号各自独占一行则生成居中的行间公式。Markdown 本身不解析数学,公式最终是由所在平台交给 KaTeX 或 MathJax 渲染的。
Jupyter Notebook 里怎么写 LaTeX 公式?
在 Markdown 单元格里写 $公式$ 表示行内公式、$$公式$$ 表示行间公式,然后运行该单元格,MathJax 会完成渲染。Jupyter 也直接支持 align、cases 等 amsmath 环境。与 Python 字符串字面量不同,Markdown 单元格里的反斜杠不需要写成两个。
R Markdown 里怎么用 LaTeX?
正文中同样使用 $ 与 $$ 分隔符。编织成 HTML 时由 MathJax 渲染;编织成 PDF 时会交给真正的 LaTeX 引擎,因此还能直接写原生 LaTeX 命令,并通过 YAML 头部的 header-includes 字段加载宏包。如果公式是在 R 代码块里生成的,需要配合 cat() 并把 results 设为 asis。
Markdown 和 LaTeX 有什么区别?
Markdown 是一套轻量的结构化语法,负责标题、列表、链接这类内容组织,源码本身就便于阅读。LaTeX 则是完整的排版系统,能精确控制分页、交叉引用、参考文献和数学排版。在 Markdown 中嵌入 LaTeX 数学公式,等于正文保持可读、公式享受专业排版。
怎么把带 LaTeX 公式的 Markdown 转成 PDF?
最常规的方案是 Pandoc:执行 pandoc paper.md -o paper.pdf,公式会由 xelatex 之类的 LaTeX 引擎排版。Quarto、Typora 以及若干 VS Code 扩展也提供了一键导出。如果只需要公式部分,可以直接用本工具导出 Overleaf 文档再编译。
怎么把 LaTeX 转回 Markdown?
Pandoc 同样支持反向转换:pandoc paper.tex -o paper.md。数学公式会保留在美元符号之间,但自定义宏、浮动体、精确的图片位置、参考文献样式这些 Markdown 没有对应语法的特性会被压平或丢弃,转换后需要人工复核。
为什么我的 Markdown 公式渲染不出来?
常见原因有四个:美元符号和公式之间有空格;行间公式块前后没有留空行;下划线在数学渲染器接手之前被 Markdown 当成斜体消耗掉了;或者所在平台根本不支持数学渲染。把公式改写进 math 代码围栏可以规避其中大部分问题。
Markdown 里怎么写矩阵和方程组?
在行间公式中使用 amsmath 环境。pmatrix、bmatrix、vmatrix 分别生成圆括号、方括号和竖线包裹的矩阵,cases 生成带大括号的方程组。行之间用双反斜杠分隔,列之间用 & 对齐。
Markdown 里能用 TikZ 这类 LaTeX 宏包吗?
浏览器端渲染的 Markdown 不行。KaTeX 和 MathJax 只实现了数学命令,没有宏包系统,因此 TikZ 图形和 \usepackage 声明都会被忽略。只有当 Markdown 通过 Pandoc、Quarto 等工具交给真正的 LaTeX 引擎编译成 PDF 时,这些宏包才会生效。
写 Markdown 公式时反斜杠需要写两个吗?
在普通的 .md 文件里不需要,\frac、\sum 按 LaTeX 原样写即可。只有当这段 Markdown 本身位于另一个字符串里时才需要加倍,例如 JavaScript 模板字符串、JSON 字段或 Python 文档字符串——那里的反斜杠本身就是转义字符。