Markdown 转 LaTeX

在左侧写带 $ 公式的 Markdown,右侧实时预览、逐条提取 LaTeX,并导出可直接编译的 Overleaf 文档。全部计算都在浏览器本地完成。

免费 · 无需注册 · 全程在浏览器内运行最后更新

Markdown 里怎么写 LaTeX 数学公式?

用美元符号把公式包起来即可:`$E = mc^2$` 是行内公式,独占若干行的 `$$...$$` 是居中的行间公式。Markdown 本身不解析数学,真正负责渲染的是所在平台——GitHub、Jupyter、Obsidian 以及主流静态站点生成器都会把公式交给 KaTeX 或 MathJax 处理。

markdown
行内公式:质能关系 $E = mc^2$。

$$
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
$$

第一行的公式排在句子中间;$$ 之间的内容会被渲染成独占一行的居中行间公式。

在线使用 Markdown 转 LaTeX

Markdown 编辑器

输出结果

带数学公式的 Markdown

行内公式:E=mc2E = mc^2

行间公式:

ddx(0xf(u)du)=f(x)\frac{d}{dx}\left( \int_{0}^{x} f(u)\,du\right)=f(x)

求和公式:

i=1ni=n(n+1)2\sum_{i=1}^{n} i = \frac{n(n+1)}{2}

矩阵:

(abcd)\begin{pmatrix} a & b \\ c & d \end{pmatrix}

方程组:

{3x+5y+z=07x2y+4z=06x+3y+2z=0\begin{cases} 3x + 5y + z = 0 \\ 7x - 2y + 4z = 0 \\ -6x + 3y + 2z = 0 \end{cases}

Markdown 中的 LaTeX 语法详解

Markdown 与 LaTeX 通过美元符号衔接。规则本身很短,但几乎所有渲染问题都出在三个细节上:分隔符两侧的空格、被 Markdown 当成斜体吃掉的下划线,以及各平台自带的另一套数学语法。

单个美元符号:行内公式

两侧各一个美元符号,公式会排在正文行内。分隔符和公式之间不能有空格——一旦有空格,多数渲染器会把美元符号当成货币符号原样输出。

markdown
质能方程 $E = mc^2$ 至今仍令人惊叹。
像 \$25 这样的价格需要转义,否则会被当作公式起始。

第一行的 E = mc² 排在句子中间;第二行转义后的美元符号会原样显示为 $,不会开启公式。

双美元符号:行间公式

两个美元符号生成居中的块级公式。分隔符要各自独占一行,并且公式块前后都要留一个空行——否则 Jupyter 和部分静态站点生成器会拒绝渲染。

markdown
求根公式给出方程的两个解:

$$
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$

渲染为独占一行的居中公式,与上方段落之间有明显间隔。

矩阵、方程组与对齐环境

凡是需要多行的结构都写在 amsmath 环境里:行之间用双反斜杠分隔,列之间用 & 对齐,外层仍然用 $$ 标记为行间公式。

markdown
$$
\begin{cases}
3x + 5y + z = 0 \\
7x - 2y + 4z = 0
\end{cases}
$$

渲染为带大括号的二元方程组。把 cases 换成 pmatrix、bmatrix 或 aligned,就能用同样的行列写法得到矩阵和多步推导。

GitHub 与 GitLab 的公式围栏

GitHub 在文件、Issue 和评论中直接支持 $ 与 $$,但官方文档推荐的写法是行内用美元加反引号、块级用 math 代码围栏;GitLab 用的是同样两种形式。围栏写法最稳妥,因为围栏内的内容不会先被 Markdown 解析一遍。

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 本身位于字符串字面量中时才需要写成两个。

markdown
$x_1 + x_2$     严格解析器可能丢掉下划线
$x\_1 + x\_2$   在所有渲染器中都安全
价格:\$50      转义后的美元符号,不会触发公式

转义后的写法在 KaTeX 和 MathJax 中排版结果完全相同,同时能安全通过 Markdown 自身的斜体解析。

可直接编译的 Overleaf 文档

要在 Markdown 之外编译这些公式,需要一层文档骨架:加载 amsmath 与 amssymb,再把每个行间公式放进 equation 环境——这正是本工具 Overleaf 标签页自动生成的内容。

markdown
\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

  1. 粘贴 Markdown

    把包含 $...$ 或 $$...$$ 公式的文档粘贴到左侧编辑器。内容由 remark 在本地边输入边解析,不会上传到任何服务器。

  2. 查看实时预览

    预览标签页用 KaTeX 渲染整篇文档,导出前可以先确认每个公式都能正确解析。

  3. 核对提取出的公式

    切到 LaTeX 标签页,可以看到从文档中提取出的每一条行内和行间公式,每条都带独立的复制按钮。

  4. 导出可编译文档

    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 文档字符串——那里的反斜杠本身就是转义字符。