Markdown 箭头符号

Markdown 里怎么写箭头?

Markdown 本身没有专门的箭头语法,不像加粗有 **、链接有 []()。但好消息是,你可以通过几种变通方式在 Markdown 里显示箭头,而且大多数方法用起来比想象中简单。

目前主流的做法有四种:

  • 直接复制粘贴 Unicode 箭头字符(最简单,推荐新手用)
  • HTML 实体编码(兼容性好,适合写文档)
  • Emoji 语法(GitHub、Discord 等平台专用)
  • LaTeX 数学箭头(适合数学公式和逻辑推导)

下面我逐一讲清楚每种方法怎么用、适合什么场景。

方法一:直接复制 Unicode 箭头字符

这是最直接的方式——你需要什么箭头,直接从下面表格里复制粘贴到你的 Markdown 文件里就行。不需要记任何代码,也不需要特殊语法。

说实话这个方法我用得最多,因为 Markdown 文件本质上就是纯文本,而 Unicode 字符在所有文本编辑器里都能直接输入。你在 GitHub README 里写 A → B,渲染出来就是带箭头的文字。

常用箭头速查表

箭头字符说明
右箭头
左箭头
上箭头
下箭头
左右双向箭头
上下双向箭头
右上箭头
右下箭头
左上箭头
左下箭头
双线右箭头
双线左箭头
双线上箭头
双线下箭头
双线双向箭头
粗体箭头
三角箭头
长右箭头
长左箭头
长双向箭头

有一点要注意:有些比较冷门的 Unicode 箭头(比如一些带修饰的变体箭头),在个别渲染器里可能显示不出来,变成一个小方框。不过上面表格里列的这些常用箭头,基本上所有平台都支持。

对了,如果你需要更多特殊箭头,可以去 unicode.org 的 Arrows 区块定义 查看完整的 Unicode 箭头列表,那里有好几百种变体。

方法二:HTML 实体编码

如果你不想复制粘贴,或者需要在代码里保持可读性(毕竟 Unicode 字符在代码编辑器里不太好辨认),可以用 HTML 实体。

Markdown 支持内嵌 HTML,所以 HTML 实体在绝大多数 Markdown 渲染器里都能正常工作。比如你写 →,渲染出来就是 → 右箭头。

基本箭头 HTML 实体

箭头HTML 实体效果
右箭头→
左箭头←
上箭头↑
下箭头↓
双向箭头↔
上下箭头↕

还有用数字编码的方式,比如 → 也等于 → 右箭头。数字编码用的是 Unicode 的十进制值,好处是它不局限于有名字的实体——理论上所有 Unicode 箭头都能用数字编码表示。

箭头十进制编码十六进制编码
→→
←←
↑↑
↓↓
↔↔
⇒⇒
⇔⇔

我之前有一阵子习惯用 HTML 实体,后来发现写 → 虽然代码里能看懂,但在纯文本编辑器里预览的时候还是一堆符号不好辨认。所以后来大部分场景我就直接复制 Unicode 字符了。不过 HTML 实体在需要明确标注"这里是个箭头"的正式文档里还是挺有用的。

顺便说一句,如果你对 HTML 符号编码感兴趣,Toptal 的 HTML Arrows 是目前最完整的在线参考,每种箭头都提供了 Unicode 编码、HTML 实体、CSS 代码等好几种格式。

方法三:GitHub Emoji 箭头语法

GitHub Flavored Markdown(以及 Discord、Slack 等平台)支持用 Emoji 短代码来输入箭头。这种方式的好处是语义清晰,写 :arrow_right: 一看就知道是什么意思。

GitHub Emoji 箭头

语法效果说明
:arrow_right:右箭头
:arrow_left:左箭头
:arrow_up:上箭头
:arrow_down:下箭头
:arrow_upper_right:右上箭头
:arrow_upper_left:左上箭头
:arrow_lower_right:右下箭头
:arrow_lower_left:左下箭头
:left_right_arrow:双向箭头
:arrow_double_up:双线上箭头
:arrow_double_down:双线下箭头
:triangular_flag_on_post:🚩旗标(有时用于标注)

需要注意,Emoji 语法只在支持 Emoji 渲染的平台上有效。你在 GitHub 的 README、Issue、PR 描述里用没问题,但如果你是在本地用 Typora 写文档然后导出 PDF,Emoji 箭头可能渲染出不同的样式(变成彩色 Emoji 图标而不是纯文本箭头)。

实测发现 GitHub 上的 Emoji 箭头和 Unicode 箭头的视觉效果不太一样——Emoji 版本更像是图标,而 Unicode 版本更像是文本字符。具体用哪种看你个人偏好和文档风格。如果你在写正式的技术文档,Unicode 字符通常更合适;如果是 GitHub README 或者比较轻松的内容,两种都可以。

方法四:LaTeX 数学箭头

如果你的 Markdown 编辑器支持 LaTeX/MathJax(比如 Obsidian、Typora、Jupyter Notebook),那数学模式下的箭头是另一个强大的选择。这在写数学笔记、逻辑推导或者算法分析时特别好用。

数学箭头要用 $...$(行内公式)或 $$...$$(独立公式)包裹:

常用数学箭头

LaTeX 代码效果说明
$\rightarrow$右箭头
$\leftarrow$左箭头
$\Rightarrow$双线右箭头(推导)
$\Leftarrow$双线左箭头
$\Leftrightarrow$双线双向箭头(等价)
$\mapsto$映射箭头
$\hookrightarrow$带钩右箭头
$\uparrow$上箭头
$\downarrow$下箭头
$\nearrow$右上箭头
$\searrow$右下箭头
$\longmapsto$长映射箭头
$\xrightarrow{text$→(text)带文字的箭头

向量箭头

LaTeX 代码效果说明
$\vec{a}$a⃗向量 a
$\overrightarrow{AB}$AB→从 A 到 B 的向量
$\overleftarrow{AB}$←AB反向向量

LaTeX 箭头有个前提:你的 Markdown 渲染器必须支持 MathJax 或 KaTeX。GitHub 原生不支持 LaTeX 数学公式(不过 2022 年后部分场景已支持),所以在 GitHub 上用 LaTeX 箭头可能会直接显示为原始代码。如果你主要在 Obsidian 或 Typora 里写东西,那就放心用,这两个都支持 LaTeX。

四种方法怎么选?

很多教程会直接丢一堆代码给你,但不说什么时候该用哪个。这里简单总结一下我的建议:

日常写文档、做笔记 → 直接复制 Unicode 字符。最简单,哪里都能用,没有兼容性问题。

写 GitHub README 或团队文档 → HTML 实体或 Unicode 都行。HTML 实体的好处是代码里一眼能看出这是个箭头;Unicode 的好处是更简洁。

在 GitHub/Discord/Slack 里写评论 → Emoji 语法。这些平台对 Emoji 支持最好,而且语义清晰。

写数学笔记或逻辑推导 → LaTeX 数学箭头。数学模式下的箭头是专业的数学符号,而且在公式排版里和其他数学元素配合得最好。

方法优点缺点适用场景
Unicode 复制粘贴零门槛,全平台通用代码里不好辨认日常文档、笔记
HTML 实体代码可读性好,兼容性强需要记代码名正式文档、技术文档
Emoji 语法语义清晰,GitHub 原生支持仅限支持 Emoji 的平台GitHub、Discord、Slack
LaTeX 数学箭头专业数学符号,支持带文字箭头需要渲染器支持 MathJax数学公式、逻辑推导

不同平台的兼容性

因为 Markdown 的渲染器有很多种,同一个箭头在不同平台上的表现可能不一样。我实际测试了几个主流平台:

方法GitHubObsidianTyporaVS Code 预览
Unicode 字符
HTML 实体
Emoji 语法❌ 显示代码❌ 显示代码❌ 显示代码
LaTeX 箭头⚠️ 部分支持✅(需插件)

可以看出,Unicode 字符和 HTML 实体是最稳的方案,基本上所有平台都能正常显示。Emoji 语法只在 GitHub 风格的渲染器里有效。LaTeX 则需要 MathJax/KaTeX 支持。

所以如果你不确定你的文档最终会在什么平台上展示,优先用 Unicode 字符或 HTML 实体,这两个是最安全的选择。关于 HTML 在 Markdown 中的更多用法,可以看看我之前写的 markdown html 语法 相关内容。

箭头在 Mermaid 流程图中的用法

说到 Markdown 里的箭头,还有一个场景不能忽略——Mermaid 流程图。如果你在 Markdown 中用 Mermaid 画流程图,箭头的写法又不一样了:

```mermaid
graph LR
    A[开始] --> B[处理]
    B --> C{判断}
    C -->|是| D[结束]
    C -->|否| B


Mermaid 用 `-->` 表示实线箭头,`-.->` 表示虚线箭头,`==>` 表示粗线箭头。这和我们上面说的 Unicode/HTML 箭头是完全不同的体系——Mermaid 箭头是流程图语法的一部分,不是文本符号。

关于 Mermaid 流程图的详细用法,我在 [markdown 流程图](/markdown/diagram/) 那篇有详细介绍,这里就不展开了。

## 快速参考:最常用的箭头

如果你只是想快速找一个箭头用,直接从下面挑:

| 你想要的 | 复制这个 | 或者写这个 |
|---------|---------|-----------|
| 右箭头 | → | `→` |
| 左箭头 | ← | `←` |
| 上箭头 | ↑ | `↑` |
| 下箭头 | ↓ | `↓` |
| 双向箭头 | ↔ | `↔` |
| 推导箭头 | ⇒ | `⇒` |
| 等价箭头 | ⇔ | `⇔` |

说实话,Markdown 箭头符号这件事本身不难,难的是信息太分散——有的教程只讲 HTML 实体,有的只讲 Unicode,还有的混着说。我把所有方法整理在一起,就是想让你不用再东翻西找,一篇搞定。

## 参考来源

- [Unicode Arrows 区块定义](https://unicode.org/charts/PDF/U2190.pdf) — Unicode 官方 Arrows 字符区块规范
- [GitHub Flavored Markdown Spec](https://github.github.com/gfm/) — GitHub 官方 Markdown 规范,定义了 Emoji 语法等扩展
- [Markdown Guide — Hacks](https://www.markdownguide.org/hacks/) — Markdown Guide 官方关于符号和 HTML 实体的说明
- [Toptal HTML Arrows](https://www.toptal.com/designers/htmlarrows/arrows/) — 最完整的 HTML 箭头符号编码参考
- [MathJax 官方文档](https://docs.mathjax.org/) — LaTeX 数学箭头在 Web 环境中的渲染支持说明