Markdown 语法


Markdown是一种让你能专心写作,而不是费心排版的“轻量级标记语言”。它的核心语法非常简洁,20分钟内就能掌握。

为了便于你快速上手,我把最常用的语法整理在下面的速查表里了。特别留意我新增的 “格式化文本”“链接与图片” 的写法,这能帮你更好地排版文档。

✍️ Markdown 语法速查表

常用公式:

字母右上方加上标: $K^T$ => K T K^T KT
字母正上方加帽子: $\hat{h}$ => h ^ \hat{h} h^

字母右下方加下标: $h_0$ => h 0 h_0 h0

字母外面加根号:$\sqrt{A}$ => A \sqrt{A} A

分式A除以B: $\frac{A}{B}$ => A B \frac{A}{B} BA

分类语法示例预览效果
标题# 一级标题###### 六级标题
(#与文本间有空格)
## 二级标题二级标题
段落与换行1. 段落: 两个文本块之间空一行
2. 换行: 在行末敲两个空格再回车。
第一段

第二段
第一段

第二段
格式化文本- 斜体: *文本*_文本_
- 粗体: **文本**__文本__
- 粗斜体: ***文本***
- 删除线: ~~文本~~
**粗体**和*斜体*粗体斜体
列表- 无序列表: - , * , + 后加空格。
- 有序列表: 1. , 2. 后加空格。
- 嵌套列表: 子项前加2-4个空格或1个Tab
- 水果 - 苹果 1. 第一步 1. 子步骤 • 水果
◦ 苹果
1. 第一步
1. 子步骤
链接与图片- 链接: [链接文本](URL "可选标题")
- 图片: ![替代文本](图片URL "可选标题")
- 自动链接: <URL>
[百度](https://www.baidu.com)百度
代码- 行内代码: 用反引号 ` ` 包裹。
- 代码块: 用三个反引号 ` ````包裹,可在开头指定语言。
`print("hello")`
```````python ````
print("hello")
print(“hello”)
表格使用竖线 `分隔单元格,横线—` 分隔表头与内容。```
区块引用行首加 > 符号,可嵌套(多个>)。> 一级引用
>> 二级引用
> 一级引用
>> 二级引用
分隔线单独一行使用三个或更多 -, *, _---***
转义字符在Markdown特殊字符前加 \ 显示其原本含义。\*\*不是粗体\*\*不是粗体

小提示:在不同平台(如GitHub、论坛、笔记软件)使用Markdown时,同一种语法可能会有细微差异,建议以平台的预览效果为准。

🚀 拓展语法:不止于排版

除了上述基础功能,Markdown还能通过“拓展语法”实现更丰富的功能,让文档变得“可交互”。

  • 数学公式:借助 MathJaxKaTeX 插件,Markdown 可以渲染复杂的数学公式。

    • 行内公式:用单个 $ ... $ 包裹。例如,代码 $E = mc^2$ 会渲染为 (E = mc^2)。
    • 独立段落公式:用两个 $$ ... $$ 包裹。这在你最初提问的LaTeX场景中非常有用。
  • 图表绘制 (Mermaid):用代码块并标记语言为 mermaid,可以直接编写文本绘制流程图、时序图、甘特图等。这对于技术文档和项目规划很有帮助。

  • 复选框 (Task Lists):在GitHub等平台,可使用 - [ ]- [x] 来创建待办事项列表。

    - [x] 已完成的任务
    - [ ] 待办的任务1
    - [ ] 待办的任务2
    

💡 常用技巧与注意事项

  • 列表连续性:在有编号的列表(如“1. 第一步”)中,如果内容需要分段,可以用换行和缩进来保持列表的连续性。
  • ⚠️ 换行是个 “坑”:在Markdown中,直接按回车键并不会换行,而是会产生一个空格。需要在行末敲两个空格,然后按回车,才能实现真正的换行。这是新手最容易忽略的地方,但理解后会大幅提升排版流畅度。
  • HTML 救场:当Markdown语法无法满足排版需求时(如复杂的表格对齐、改变文字颜色和大小),可以直接在文档中 “插入HTML代码”

问题1:段落开头要空两格怎么做?

在 Markdown 中,段落默认没有首行缩进(每个段落都顶格写)。如果你需要实现“空两格”的效果(例如中文文章常见的首行缩进),可以借助 HTML 实体内联样式 来实现。

方法一:使用空格实体(最通用)

直接在段落开头插入 &emsp;(全角空格,相当于一个中文字符的宽度),中文首行缩进通常使用两个全角空格:

&emsp;&emsp;这是一个段落。在 Markdown 中,段落开头没有自动缩进,我们使用两个 `&emsp;` 实体来实现首行空两格的效果。这种方法几乎在所有支持 Markdown 的地方都能正常工作(GitHub、Typora、VS Code 预览等)。

效果预览:

这是一个段落。在 Markdown 中,段落开头没有自动缩进,我们使用两个 &emsp; 实体来实现首行空两格的效果。

也可以使用 &nbsp;(不换行空格,半角),但需要四个 &nbsp; 才相当于两个中文字符的宽度(不推荐,不易阅读)。

方法二:嵌入 HTML 与 CSS(更优雅,但部分环境不兼容)

如果你的 Markdown 渲染器支持内联样式(例如 Typora、HTML 输出的网站),可以用 <p> 标签配合 CSS text-indent 属性:

<p style="text-indent: 2em;">
这个段落整体会首行缩进 2 个字符宽度,不需要手动添加空格。每一段都需要单独包裹,或者通过全局样式设定。
</p>

⚠️ 注意:在 GitHub README、GitLab、大多数论坛等纯 Markdown 环境中,内联样式会被过滤掉,此时 方法一(&emsp;)最可靠

补充说明

  • Markdown 本质:Markdown 最终会被转换为 HTML,而 HTML 段落(<p>)默认无缩进。因此手动加空格或修改样式是唯一途径。
  • 写作习惯:在中文技术文档、笔记中,很多人已经习惯顶格写(屏幕阅读不强调首行缩进)。如需严格符合排版规范,建议用 &emsp;&emsp;
  • 全局设置:如果你使用本地 Markdown 编辑器(如 Typora、Obsidian),可以在主题 CSS 中添加 p { text-indent: 2em; } 让所有段落自动首行缩进,无需每次手动操作。

问题2:那我要让这个公式居中怎么办

要让这个公式在文档中居中显示,最简单的方法是把原来的 $...$(行内公式)改为 $$...$$(独立行公式)。大多数支持 LaTeX 数学渲染的环境(如 Markdown + MathJax、Jupyter Notebook、Typora 等)都会自动将 $$...$$ 中的公式居中且单独成行。

✅ 修改前(行内,不居中)

$\mathcal{L}_\epsilon = \mathbb{E}_{x_t, \epsilon, t} [||\epsilon_\theta(x_t, t) - \epsilon||^2]$

效果:(公式与文字混排,例如:损失函数定义为 L ϵ = E x t , ϵ , t [ ∣ ∣ ϵ θ ( x t , t ) − ϵ ∣ ∣ 2 ] \mathcal{L}_\epsilon = \mathbb{E}_{x_t, \epsilon, t} [||\epsilon_\theta(x_t, t) - \epsilon||^2] Lϵ=Ext,ϵ,t[∣∣ϵθ(xt,t)ϵ2],这样不够突出。)

✅ 修改后(独立行,居中)

$$
\mathcal{L}_\epsilon = \mathbb{E}_{x_t, \epsilon, t} [||\epsilon_\theta(x_t, t) - \epsilon||^2]
$$

效果:
L ϵ = E x t , ϵ , t [ ∣ ∣ ϵ θ ( x t , t ) − ϵ ∣ ∣ 2 ] \mathcal{L}_\epsilon = \mathbb{E}_{x_t, \epsilon, t} [||\epsilon_\theta(x_t, t) - \epsilon||^2] Lϵ=Ext,ϵ,t[∣∣ϵθ(xt,t)ϵ2]

📌 其他环境中的写法

  • LaTeX 文档:使用 \[ ... \]\begin{equation} ... \end{equation}(后者会自动编号)。
  • GitHub README:GitHub 原生不支持 LaTeX 渲染,需借助外部服务(如 https://latex.codecogs.com/...),但基础 Markdown 的 $$ 不会生效。
  • 微信公众号:部分排版工具支持用 $$ 或特定的“公式块”按钮。

💡 提示

  • 如果 $$...$$ 在您的环境里没有居中,请检查是否正确启用了数学渲染引擎(如 MathJax、KaTeX)。
  • 对于较长的公式,$$...$$ 还会自动增大上下间距,使排版更清晰。

问题3:如何生成目录?

@[TOC] (这里写目录标题)
# 一级目录
## 二级目录
### 三级目录

问题3:如何引用多段内容?

> 这个是区间引用,可是这只能让一段进入引用,我想引入很多段内容呢?

你说得对,单个 > 只能让后面的一行(或一个段落)进入引用。想要让连续的多段内容都变成引用,只需要在每一段(包括段落之间的空行)的开头都加上 > 符号

具体方法:

1. 连续多段落引用

> 这是第一段引用内容。
> 
> 这是第二段引用内容(与上一段之间有一个空行,空行处也需要写 `>` 才能保持引用不中断)。
> 
> 这是第三段。

效果:

这是第一段引用内容。

这是第二段引用内容(与上一段之间有一个空行,空行处也需要写 > 才能保持引用不中断)。

这是第三段。

关键点:段落之间的空行也要用 > 占位(可以只写一个 >,后面不加文字),否则引用会断开。


2. 引用内嵌套其他元素(列表、代码块等)

引用块内部还可以继续使用 Markdown 语法,只需在每一行(包括列表项、代码块的行)前都加上 >

> 这是一个引用块,里面包含列表:
> 
> - 列表项一
> - 列表项二
> 
> 以及一个代码块:
> 
> ```python
> print("hello")
> ```

效果:

这是一个引用块,里面包含列表:

  • 列表项一
  • 列表项二

以及一个代码块:

print("hello")

3. 简化写法:使用 > 后自动续行(仅限同一段落)

如果你只是要引用一个很长的段落(跨多行,但中间没有空行),只需要在第一行写一个 >,后面的行即使不加 > 也会被视为同一引用段落。

> 这是一个很长的引用段落,  
> 我可以在第二行继续写,前面不需要再次加 `>`,  
> 只要中间没有空行,它们都会属于同一个引用块。

效果:

这是一个很长的引用段落,
我可以在第二行继续写,前面不需要再次加 >
只要中间没有空行,它们都会属于同一个引用块。

但是一旦出现空行(表示新段落),就必须在新段落的第一行重新加上 >


总结

情况做法
引用一个段落(可跨多行)只在段落第一行写 >
引用连续多个段落每个段落(包括段落间的空行)都以 > 开头
引用中包含列表/代码块列表的每一行、代码块的每一行前面都加 >

你之前觉得只能引用一段,可能是因为没有在段落间的空行处加 >。试一下这个方法,就能轻松引入很多段内容了。

问题4:

p ( s 1 ∣ s 1 , a 2 ) = 0 , p(s_1|s_1, a_2) = 0, p(s1s1,a2)=0,
p ( s 2 ∣ s 1 , a 2 ) = 1 , p(s_2|s_1, a_2) = 1, p(s2s1,a2)=1,
p ( s 3 ∣ s 1 , a 2 ) = 0 , p(s_3|s_1, a_2) = 0, p(s3s1,a2)=0,
p ( s 4 ∣ s 1 , a 2 ) = 0 , p(s_4|s_1, a_2) = 0, p(s4s1,a2)=0,
p ( s 5 ∣ s 1 , a 2 ) = 0 , p(s_5|s_1, a_2) = 0, p(s5s1,a2)=0,

这样每行分得很开,怎么让它们靠近点

你这种写法,每一条公式都单独用了一对 $$ ... $$,相当于每行都是一个独立的段落。段落之间受 \parskip 或 Markdown 段落间距影响,自然就像“隔了几行”一样,看起来特别稀疏。

要让它们靠近,核心思路是:把这几条公式放进同一个数学环境里


✅ 最推荐:用 aligned 环境(可对齐等号)

把它们放在一个 $$ ... $$ 里,内部用 \begin{aligned}\\ 换行,再用 & 对齐等号:

$$
\begin{aligned}
p(s_1 \mid s_1, a_2) &= 0,\\
p(s_2 \mid s_1, a_2) &= 1,\\
p(s_3 \mid s_1, a_2) &= 0,\\
p(s_4 \mid s_1, a_2) &= 0,\\
p(s_5 \mid s_1, a_2) &= 0.
\end{aligned}
$$

效果(渲染大致样子):
p ( s 1 ∣ s 1 , a 2 ) = 0 , p ( s 2 ∣ s 1 , a 2 ) = 1 , p ( s 3 ∣ s 1 , a 2 ) = 0 , p ( s 4 ∣ s 1 , a 2 ) = 0 , p ( s 5 ∣ s 1 , a 2 ) = 0. \begin{aligned} p(s_1 \mid s_1, a_2) &= 0,\\ p(s_2 \mid s_1, a_2) &= 1,\\ p(s_3 \mid s_1, a_2) &= 0,\\ p(s_4 \mid s_1, a_2) &= 0,\\ p(s_5 \mid s_1, a_2) &= 0. \end{aligned} p(s1s1,a2)p(s2s1,a2)p(s3s1,a2)p(s4s1,a2)p(s5s1,a2)=0,=1,=0,=0,=0.

这样既有了紧凑的行间距,等号也对齐了。

⚠️ 我顺便把条件概率的竖线 | 改成了 \mid,能自动加一点间距,看起来更舒服。不改也没关系。


如果想不带对齐,单纯垂直居中排列

可以用 gathered 环境(每行都居中):

$$
\begin{gathered}
p(s_1|s_1, a_2) = 0,\\
p(s_2|s_1, a_2) = 1,\\
p(s_3|s_1, a_2) = 0,\\
p(s_4|s_1, a_2) = 0,\\
p(s_5|s_1, a_2) = 0.
\end{gathered}
$$

🔧 还想再紧一点?可以手动压缩行距

在各个 \\ 后面加一个可选间距,比如 \\[2pt](正数反而拉大,负数可收紧,但不建议太小),或者直接用 \\[-2pt]

$$
\begin{aligned}
p(s_1 \mid s_1, a_2) &= 0,\\[-2pt]
p(s_2 \mid s_1, a_2) &= 1,\\[-2pt]
p(s_3 \mid s_1, a_2) &= 0,\\[-2pt]
p(s_4 \mid s_1, a_2) &= 0,\\[-2pt]
p(s_5 \mid s_1, a_2) &= 0.
\end{aligned}
$$

如果不需要这么细致,用默认间距就已经比独立 $$ 紧凑非常多了。


明白原因就好:单个 $$ 是段落,聚合到一个 $$ 就是一个整体,行间距自然受控。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值