Markdown从入门到精通
文章目录
- Markdown从入门到精通
- 前言
- 一、Markdown是什么
- 二、Markdown优点
- 三、Markdown的基本语法
- 3.1 标题
- 3.2 字体
- 3.3 换行
- 3.4 引用
- 3.5 链接
- 3.6 图片
- 3.7 列表
- 3.8 分割线
- 3.9 删除线
- 3.10 下划线
- 3.11 代码块
- 3.12 表格
- 3.13 脚注
- 3.14 特殊符号
- 四、Markdown的高级用法
- 4.1 个人看法
- 4.2 制作待办事项
- 4.3 书写公式
- 4.3.1 希腊字母
- 4.3.2 上下标
- 4.3.3 括号和分隔符
- 4.3.4 分数
- 4.3.5 开方
- 4.3.6 省略号
- 4.3.7 向量
- 4.3.8 积分
- 4.3.9 多行公式
- 4.3.10 大括号与行标
- 4.3.11 矩阵
- 4.3.12 极限运算
- 4.3.13 累加、累乘运算
- 4.3.14 关系运算符
- 4.3.15 集合运算符
- 4.3.16 对数运算符
- 4.3.17 三角运算符
- 4.3.18 微积分运算符
- 4.3.19 逻辑运算符
- 4.3.20 戴帽符号
- 4.3.21 连线符号
- 4.3.22 箭头符号
- 4.3.23 字体转换
- 4.3.24 高亮一行公式
- 4.3.25 更改文字颜色
- 4.3.26 删除线
- 4.4 数组和表格进阶
- 4.5 连分数
- 4.6 交换图
- 4.7 绘制流程图
- 4.8 绘制序列图
- 4.9 绘制饼图
- 4.10 绘制甘特图
- 五、Markdown工具
- 六、总结
- 七、参考博文
前言
Markdown 是一种轻量级标记语言,通俗的说你记笔记写博客的时候不用管排版如何,只要将自己的内容写上去,Markdown 语法就可以给你搞定一切。
一、Markdown是什么
Markdown
是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber)。
Markdown
允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的HTML文档。
Markdown
编写的文档可以导出 HTML 、Word、图像、PDF、Epub 等多种格式的文档。
Markdown
编写的文档后缀为 .md, .markdown。
Markdown
是现在现在是互联网上最流行的写作语言,许多网站平台的文章、博客、论文都是基于它写的。
例如:
国外的GitHub、Reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge等;
国内的CSDN、简书、掘金、博客园、知乎等。
推荐一款 Markdown 编辑器Typora(下载链接我放到文末)。这款软件足够轻量级,同时功能做到了尽可能的简单。至于Web编辑器CSDN等博客平台及笔记软件都可以。
二、Markdown优点
好多人看到Markdown的标签是【轻量级】【标记】【语言】就直接放弃,想着自己学习了非常多的语言,为了记个笔记写个博客还要再学习一门语言吗?实则不然,Markdown的语言非常非常简单,如果想学,10分钟你完全可以学完90%的常用的语法,而且你从此摆脱排版的折磨,属实是强迫症党的福利了。它的优点不仅限于此:
- 纯文本编辑,只要是支持Markdown编辑的都能获得同样的结果,摆脱排版苦恼
- 学习成本低,常用的语法很少,简单易学快速上手
- 支持跨平台同步数据
- 支持插入图片、视频等
- 随时修改,不必担心word等工具出现排版错误
三、Markdown的基本语法
3.1 标题
使用#号标记,可以表示1-6级标题, 随#的个数递增,一级标题字号最大,六级标题字号最小。
代码如下:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
效果如下:
注意:
- 最后一个
#
字符与标题中间留一个空格- 标题应该置于行首,如果放入表格中可能无法正确解析
3.2 字体
星号与下划线都可以,单是斜体,双是粗体,三是粗斜体
代码 | 效果 |
---|---|
*这是斜体* | 这是斜体 |
_这是斜体_ | 这是斜体 |
**这是粗体** | 这是粗体 |
__这是粗体__ | 这是粗体 |
***这是粗斜体*** | 这是粗斜体 |
___这是粗斜体___ | 这是粗斜体 |
快捷键:
加粗:Ctrl+B
斜体:Ctrl+I
3.3 换行
Markdown换行的方式有很多种:
- 直接在一句话后敲两个空格
- 两句话之间加一个空行
- 如果你在编辑的时候,想让一行文字在显示的时候换行,就在中间加
<br>
3.4 引用
Markdown 中引用通过符号 >
来实现。>
符号后通常加一个空格。
在引用的区块内,允许换行存在,换行并不会终止引用的区块。如果要结束引用,需要一行空白行,来结束引用的区块。
代码:
> 这是一个引用
效果:
这是一个引用
此外,引用还可以嵌套使用:
代码:
> 这是一个引用:
>> 这是一个引用的引用
>>> 这是一个引用的引用的引用
这是一个引用:
这是一个引用的引用
这是一个引用的引用的引用
3.5 链接
Markdown中插入链接的使用方式是:
代码:
[链接名称](链接地址)
<链接地址>
即是:
[这是我的主页](https://www.feihua.life)
或者
<https://www.feihua.life>
效果:
这是我的主页
或者
https://www.feihua.life
3.6 图片
Markdown中插入图片的使用方式是:
代码:
![图片描述,可写可不写,但是中括号要有](图片地址,本地链接或者URL地址。)
比如一张新闻图片:
![中国矿业大学徐海学院](https://xhxy.cumt.edu.cn/_upload/article/images/1d/62/cfe77186467e84487e392c35a04a/71ae997b-3222-4a7f-a03a-e60623091574.jpg)
效果:
3.7 列表
列表分为有序列表和无序列表
无序列表,使用*、+、-,再加一个空格作为列表的标记
有序列表,使用数字并加上.号,再加一个空格作为列表的标记
代码:
* 无序列表 1
+ 无序列表 2
- 无序列表 31. 有序列表 1
2. 有序列表 2
3. 有序列表 3
效果:
- 无序列表 1
- 无序列表 2
- 无序列表 3
- 有序列表 1
- 有序列表 2
- 有序列表 3
如果想要控制列表的层级,则需要在列表符号前使用Tab
代码:
+ 无序列表 1
+ 无序列表 2+ 无序列表 2.1+ 无序列表 2.21. 有序列表 11.1 有序列表 1.1
2. 有序列表 22.1 有序列表2.1
效果:
- 无序列表 1
- 无序列表 2
- 无序列表 2.1
- 无序列表 2.2
- 有序列表 1
1.1 有序列表 1.1 - 有序列表 2
2.1 有序列表2.1
3.8 分割线
Markdown 中给出了多种分割线的样式,我们可以使用分割线让文章结构更加的清晰。
分割线的使用,可以在一行中用三个-
or *
来建立一个分割线,但是注意:在分割线的上面空一行!!!
代码:
---
***
- - -
* * *
效果:
3.9 删除线
删除线的的使用,可以在要添加删除线的文字前后添加两个~
代码:
~~这是要被删除的文字~~
效果:
这是要被删除的文字
3.10 下划线
下划线的使用和html中类似,在需要添加下划线的文字首尾添加<u>文本</u>
代码:
<u>这行文字已被添加下划线</u>
效果:
这行文字已被添加下划线
3.11 代码块
Markdown中代码块有两种:
如果在一行内需要引用代码,只需要用反引号 ` 引起来就好了。
代码:
`Hello` World.
效果:
Hello
World.
如果是在一个块内需要引用代码,则在需要引用的代码块的前一行和后一行使用三个反引号,同时在前一个反引号后写入代码的语言。
代码:
效果:
```cpp
#include<iostream>
int main(){printf("HelloWorld");
}
```
#include<iostream>
int main(){printf("HelloWorld");
}
支持以下语言:
bash
c,clojure,cpp,cs,css
dart,dockerfile, diff
erlang
go,gradle,groovy
haskell
java,javascript,json,julia
kotlin
lisp,lua
makefile,markdown,matlab
objectivec
perl,php,python
r,ruby,rust
scala,shell,sql,swift
tex,typescript
verilog,vhdl
xml
yaml
3.12 表格
表格使用|
来分割不同的单元格,使用-
来分隔表头和其他行
:-
将表头及单元格内容左对齐-:
将表头及单元格内容右对齐:-:
将表头及单元格内容居中
代码:
| 项目 | 价格 | 数量 |
| :-------- | -----: | :----: |
| 计算机 | \$1600 | 5 |
| 手机 | \$12 | 12 |
| 管线 | \$1 | 234 |
效果:
项目 | 价格 | 数量 |
---|---|---|
计算机 | $1600 | 5 |
手机 | $12 | 12 |
管线 | $1 | 234 |
3.13 脚注
脚注是对文本的备注,我们时长在论文中看到脚注,在Markdown中的使用方法
代码:
使用 Markdown[^1]可以效率的书写文档, 直接转换成 HTML[^2], 你可以使用 Typora[^T] 编辑器进行书写。
[^1]: Markdown是一种纯文本标记语言
[^2]: HyperText Markup Language 超文本标记语言
[^T]: NEW WAY TO READ & WRITE MARKDOWN.
效果:
使用 Markdown1可以效率的书写文档, 直接转换成 HTML2, 你可以使用 Typora3 编辑器进行书写。
注意:脚注自动被搬运到最后面,请到文章末尾查看,并且脚注后方的链接可以直接跳转回到加注的地方。
3.14 特殊符号
对于Markdown中的语法符号,前面家反斜线\
即可以显示符号本身。
代码:
\\
\*
\_
\+
\.
等等
效果:
*
_
+
.
四、Markdown的高级用法
4.1 个人看法
此处只简要提一下,如果想要了解更多详细的高级用法:菜鸟教程Markdown高级用法、Cmd Markdown 简明语法手册
4.2 制作待办事项
我们可以使用Markdown来制作一个待办事项,格式为、-[]
表示未完成;-[x]
表示已完成
代码:
- [ ] 支持以 PDF 格式导出文稿
- [ ] 改进 Cmd 渲染算法,使用局部渲染技术提高渲染效率
- [x] 新增 Todo 列表功能
- [x] 修复 LaTex 公式渲染问题
- [x] 新增 LaTex 公式编号功能
效果:
- 支持以 PDF 格式导出文稿
- 改进 Cmd 渲染算法,使用局部渲染技术提高渲染效率
- 新增 Todo 列表功能
- 修复 LaTex 公式渲染问题
- 新增 LaTex 公式编号功能
4.3 书写公式
Markdown支持书写公式,例如书写一个质能守恒公式。
$$
表示整行公式
代码:
$$
E=mc^2
$$
效果:
E = m c 2 E=mc^2 E=mc2
4.3.1 希腊字母
输入 \小写希腊字母英文全称
和 \首字母大写希腊字母英文全称
来分别输入小写和大写希腊字母。对于大写希腊字母与现有字母相同的,直接输入大写字母即可。
输入 | 显示 | 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|---|---|
\alpha | α \alpha α | A | A A A | \beta | β \beta β | B | B B B |
\gamma | γ \gamma γ | \Gamma | Γ \Gamma Γ | \delta | δ \delta δ | \Delta | Δ \Delta Δ |
\epsilon | ϵ \epsilon ϵ | E | E E E | \zeta | ζ \zeta ζ | Z | Z Z Z |
\eta | η \eta η | H | H H H | \theta | θ \theta θ | \Theta | Θ \Theta Θ |
\iota | ι \iota ι | I | I I I | \kappa | κ \kappa κ | K | K K K |
\lambda | λ \lambda λ | \Lambda | Λ \Lambda Λ | \mu | μ \mu μ | M | M M M |
\nu | ν \nu ν | N | N N N | \xi | ξ \xi ξ | \Xi | Ξ \Xi Ξ |
o | o o o | O | O O O | \pi | π \pi π | \Pi | Π \Pi Π |
\rho | ρ \rho ρ | P | P P P | \sigma | σ \sigma σ | \Sigma | Σ \Sigma Σ |
\tau | τ \tau τ | T | T T T | \upsilon | υ \upsilon υ | \Upsilon | Υ \Upsilon Υ |
\phi | ϕ \phi ϕ | \Phi | Φ \Phi Φ | \chi | χ \chi χ | X | X X X |
\psi | ψ \psi ψ | \Psi | Ψ \Psi Ψ | \omega | ω \omega ω | \Omega | Ω \Omega Ω |
\partial | ∂ \partial ∂ | \nabla | ∇ \nabla ∇ |
部分字母有变量专用形式,以 \var-
开头。
小写形式 | 大写形式 | 变量形式 | 显示 |
---|---|---|---|
\epsilon | \Epsilon | \varepsilon | ϵ ∣ E ∣ ε \epsilon\mid\Epsilon\mid\varepsilon ϵ∣E∣ε |
\theta | \Theta | \vartheta | θ ∣ Θ ∣ ϑ \theta\mid\Theta\mid \vartheta θ∣Θ∣ϑ |
\rho | \Rho | \varrho | ρ ∣ P ∣ ϱ \rho\mid\Rho\mid\varrho ρ∣P∣ϱ |
\sigma | \Sigma | \varsigma | σ ∣ Σ ∣ ς \sigma\mid\Sigma\mid\varsigma σ∣Σ∣ς |
\phi | \Phi | \varphi | ϕ ∣ Φ ∣ φ \phi\mid\Phi\mid\varphi ϕ∣Φ∣φ |
4.3.2 上下标
KaTeX parse error: Undefined control sequence: \sideset at position 126: …{e},\text{i}\\ \̲s̲i̲d̲e̲s̲e̲t̲{^1_2}{^3_4}\bi…
4.3.3 括号和分隔符
()
、[]
和 |
表示符号本身,使用 \{\}
来表示 {}
。当要显示大号的括号或分隔符时,要用 \left
和 \right
命令。
一些特殊的括号:
输入 | 显示 | 输入 | 显示 |
---|---|---|---|
\langle | ⟨ \langle ⟨ | \rangle | ⟩ \rangle ⟩ |
\lceil | ⌈ \lceil ⌈ | \rceil | ⌉ \rceil ⌉ |
\lfloor | ⌊ \lfloor ⌊ | \rfloor | ⌋ \rfloor ⌋ |
\lbrace | { \lbrace { | \rbrace | } \rbrace } |
\lvert | ∣ \lvert ∣ | \rvert | ∣ \rvert ∣ |
\lVert | ∥ \lVert ∥ | \rVert | ∥ \rVert ∥ |
有时,我们需要在行内使用两个竖杠表示向量间的某种空间距离,可以这样写:\lVert \boldsymbol{X}_i - \boldsymbol{S}_j \rVert^2
→ ∥ X i − S j ∥ 2 \lVert \boldsymbol{X}_i - \boldsymbol{S}_j \rVert^2 ∥Xi−Sj∥2
空格
有四种宽度的空格可以使用: \,
、\;
、\quad
和 \qquad
,灵活使用 \text{n个空格}
也可以在任意位置实现空格。
同时存在一种负空格 \!
用来减小字符间距,一般在物理单位中使用。
重复使用 \!
命令能够实现不同元素的叠加渲染,如∧◯∧◯ 和 }!!!\div}!!!\div
- 例子:
\begin{array}{c|c}\text{Spaces} & \text{Negative Space in Units} \\\hline \\\overbrace{a \! b}^{\text{\!}} \mid \underbrace{ab}_{\rm{default}} \mid \overbrace{a \, b}^{\text{\,}} \mid \underbrace{a \; b}_{\text{\;}} \mid \overbrace{a \quad b}^{\text{\quad}} \mid \underbrace{a \qquad b}_{\text{\qquad}} & \mathrm{N}\!\cdot\!\mathrm{m} \mid \mathrm{s}\!\cdot\!\mathrm{A} \mid \mathrm{kg}\!\cdot\!\mathrm{m}^2 \\
\end{array}
- 显示:
Spaces Negative Space in Units a b ⏞ ∣ a b ⏟ d e f a u l t ∣ a b ⏞ ∣ a b ⏟ ∣ a b ⏞ ∣ a b ⏟ N ⋅ m ∣ s ⋅ A ∣ k g ⋅ m 2 \begin{array}{c|c} \text{Spaces} & \text{Negative Space in Units} \\ \hline \\ \overbrace{a \! b}^{\text{\!}} \mid \underbrace{ab}_{\rm{default}} \mid \overbrace{a \, b}^{\text{\,}} \mid \underbrace{a \; b}_{\text{\;}} \mid \overbrace{a \quad b}^{\text{\quad}} \mid \underbrace{a \qquad b}_{\text{\qquad}} & \mathrm{N}\!\cdot\!\mathrm{m} \mid \mathrm{s}\!\cdot\!\mathrm{A} \mid \mathrm{kg}\!\cdot\!\mathrm{m}^2 \\ \end{array} Spacesab ∣default ab∣ab ∣ ab∣ab ∣ abNegative Space in UnitsN⋅m∣s⋅A∣kg⋅m2
一些常见的公式单位可表达如下:
- 例子:
$$ \mu_0=4\pi\times10^{-7} \ \left.\mathrm{\mathrm{T}\!\cdot\!\mathrm{m}}\middle/\mathrm{A}\right. $$
$$ 180^\circ=\pi \ \mathrm{rad} $$
$$ \mathrm{N_A} = 6.022\times10^{23} \ \mathrm{mol}^{-1} $$
- 显示:
μ 0 = 4 π × 1 0 − 7 T ⋅ m / A \mu_0=4\pi\times10^{-7} \ \left.\mathrm{\mathrm{T}\!\cdot\!\mathrm{m}}\middle/\mathrm{A}\right. μ0=4π×10−7 T⋅m/A
18 0 ∘ = π r a d 180^\circ=\pi \ \mathrm{rad} 180∘=π rad
N A = 6.022 × 1 0 23 m o l − 1 \mathrm{N_A} = 6.022\times10^{23} \ \mathrm{mol}^{-1} NA=6.022×1023 mol−1
4.3.4 分数
通常使用 \frac {分子} {分母}
来生成一个分数,分数可多层嵌套。 若分数只有一层,也可使用 分子 \over 分母
命令。 例内 \quad
\mid
\,
等均为空格或分隔符号,为方便公式格式对比而添加,请注意辨别。
- 例子:
$$ \frac{a-1}{b-1} \quad or \quad {a+1 \over b+1} $$
-
显示:
a − 1 b − 1 o r a + 1 b + 1 \frac{a-1}{b-1} \quad or \quad {a+1 \over b+1} b−1a−1orb+1a+1
当分式 仅有两个字符时 可直接输入 \frac ab
来快速生成一个 。
- 例子:
$$ \frac 12,\frac 1a,\frac a2 \quad \mid \quad \text{2 letters only:} \quad \frac 12a \,, k\frac q{r^2} $$
-
显示:
1 2 , 1 a , a 2 ∣ 2 letters only: 1 2 a , k q r 2 \frac 12,\frac 1a,\frac a2 \quad \mid \quad \text{2 letters only:} \quad \frac 12a \,, k\frac q{r^2} 21,a1,2a∣2 letters only:21a,kr2q
4.3.5 开方
使用 \sqrt [根指数,省略时为2] {被开方数}
命令输入开方。 本例内 \quad
均为空格符号,为方便公式格式对比而添加,请注意辨别。。
- 例子:
$$ \sqrt{2} \quad or \quad \sqrt[n]{3} $$
-
显示:
2 o r 3 n \sqrt{2} \quad or \quad \sqrt[n]{3} 2orn3
4.3.6 省略号
数学公式中常见的省略号有两种,\ldots
表示与 文本底线 对齐的省略号,\cdots
表示与 文本中线 对齐的省略号。
- 例子:
$$ f(x_1,x_2,\underbrace{\ldots}_{\rm ldots} ,x_n) = x_1^2 + x_2^2 + \underbrace{\cdots}_{\rm cdots} + x_n^2 $$
- 显示: f ( x 1 , x 2 , … ⏟ l d o t s , x n ) = x 1 2 + x 2 2 + ⋯ ⏟ c d o t s + x n 2 f(x_1,x_2,\underbrace{\ldots}_{\rm ldots} ,x_n) = x_1^2 + x_2^2 + \underbrace{\cdots}_{\rm cdots} + x_n^2 f(x1,x2,ldots …,xn)=x12+x22+cdots ⋯+xn2
4.3.7 向量
使用 \vec{向量}
来自动产生一个向量。也可以使用 \overrightarrow
等命令自定义字母上方的符号。 例内 \quad
\mid
\,
等均为空格或分隔符号,为方便公式格式对比而添加,请注意辨别。
- 例子:
$$ \vec{a} \cdot \vec{b}=0 $$
-
显示:
a ⃗ ⋅ b ⃗ = 0 \vec{a} \cdot \vec{b}=0 a⋅b=0
-
例子:
$$ xy \text{ with arrows:} \quad \overleftarrow{xy} \; \mid \; \overleftrightarrow{xy} \; \mid \; \overrightarrow{xy} $$
-
显示:
x y with arrows: x y ← ∣ x y ↔ ∣ x y → xy \text{ with arrows:} \quad \overleftarrow{xy} \; \mid \; \overleftrightarrow{xy} \; \mid \; \overrightarrow{xy} xy with arrows:xy∣xy ∣xy
4.3.8 积分
使用 \int_积分下限^积分上限 {被积表达式}
来输入一个积分。
例子:
$$ \int_0^1 {x^2} \,{\rm d}x $$
显示:
∫ 0 1 x 2 d x \int_0^1 {x^2} \,{\rm d}x ∫01x2dx
本例中 \,
和 {\rm d}
部分可省略,但加入能使式子更美观,
4.3.9 多行公式
a = b + c + d = e + f \begin{align} a&=b+c+d\\ &=e+f \end{align} a=b+c+d=e+f
4.3.10 大括号与行标
f ( x ) = { sin x , − π ≤ x ≤ π 0 , 其他 f(x)= \begin{cases} \sin x, & -π\le x \le π\\ 0,& \text{其他} \end{cases} f(x)={sinx,0,−π≤x≤π其他
若想让文字在左侧对齐显示,则有如下方式:
- 例子:
$$\left.\begin{array}{l}\text{if $n$ is even:} & n/2 \\\text{if $n$ is odd:} & 3n+1 \\\end{array}\right\}=f(n)
$$
- 显示:
if n is even: n / 2 if n is odd: 3 n + 1 } = f ( n ) \left. \begin{array}{l} \text{if $n$ is even:} & n/2 \\ \text{if $n$ is odd:} & 3n+1 \\ \end{array} \right\} =f(n) if n is even:if n is odd:n/23n+1}=f(n)
在 \left
和 \right
之后加上要使用的括号来创建自动匹配高度的圆括号 (
)
,方括号 [
]
和花括号 \{
\}
。
在每个公式末尾前使用 \tag {行标}
来实现行标。
- 例子:
$$
f\left(\left[ \frac{1+\left\{x,y\right\}}{\left(\frac xy + \frac yx\right)(u+1)}+a\right]^{3/2}
\right)
\tag {行标}
$$
- 显示:
f ( [ 1 + { x , y } ( x y + y x ) ( u + 1 ) + a ] 3 / 2 ) (行标) f\left( \left[ \frac{ 1+\left\{x,y\right\} }{ \left( \frac xy + \frac yx \right) (u+1) }+a \right]^{3/2} \right) \tag {行标} f (yx+xy)(u+1)1+{x,y}+a 3/2 (行标)
如果你需要在不同的行显示对应括号,可以在每一行对应处使用 \left.
或 \right.
来放一个“不存在的括号”。
- 例子:
$$
\begin{align*}a=&\left(1+2+3+ \cdots \right. \\&\cdots+\left. \infty-2+\infty-1+\infty\right)
\end{align*}
$$
- 显示:
a = ( 1 + 2 + 3 + ⋯ ⋯ + ∞ − 2 + ∞ − 1 + ∞ ) \begin{align*} a=&\left(1+2+3+ \cdots \right. \\ &\cdots+\left. \infty-2+\infty-1+\infty\right) \end{align*} a=(1+2+3+⋯⋯+∞−2+∞−1+∞)
如果你需要将大括号里面显示的分隔符也变大,可以使用 \middle
命令,此处分别使用单竖线 |
和双竖线 \\|
。
- 例子:
$$
\left\langle q \; \middle|\frac{\frac xy}{\frac uv}\middle\| p
\right\rangle
$$
- 显示:
⟨ q | x y u v ∥ p ⟩ \left\langle q \; \middle| \frac{\frac xy}{\frac uv} \middle\| p \right\rangle ⟨q vuyx p⟩
使条件表达式适配行高
在一些情况下,条件表达式中某些行的行高为非标准高度,此时使用 \\[2ex]
语句代替该行末尾的 \\
来让编辑器适配。
- 例子:
不适配:
$$
f(n) = \begin{cases}\frac{n}{2}, & \text{if $n$ is even} \\3n+1, & \text{if $n$ is odd} \\\end{cases}
$$
适配:
$$
f(n) = \begin{cases}\frac{n}{2}, & \text{if $n$ is even} \\[2ex]3n+1, & \text{if $n$ is odd} \\\end{cases}
$$
- 显示:
不适配:
f ( n ) = { n 2 , if n is even 3 n + 1 , if n is odd f(n) = \begin{cases} \frac{n}{2}, & \text{if $n$ is even} \\ 3n+1, & \text{if $n$ is odd} \\ \end{cases} f(n)={2n,3n+1,if n is evenif n is odd
适配:
f ( n ) = { n 2 , if n is even 3 n + 1 , if n is odd f(n) = \begin{cases} \frac{n}{2}, & \text{if $n$ is even} \\[2ex] 3n+1, & \text{if $n$ is odd} \\ \end{cases} f(n)=⎩ ⎨ ⎧2n,3n+1,if n is evenif n is odd
一个 [ex]
指一个 “X-Height”,即 x 字母高度。可以根据情况指定多个 [ex]
,如 [3ex]
、[4ex]
等。
其实可以在任意换行处使用 \\[2ex]
语句,只要你觉得合适。
4.3.11 矩阵
无框矩阵
在开头使用 \begin{matrix}
,在结尾使用 \end{matrix}
,在中间插入矩阵元素,每个元素之间插入 &
,并在每行结尾处使用 \\
。
使用矩阵时必须声明 $
或 $$
符号。
- 例子:
$$
\begin{matrix}1 & x & x^2 \\1 & y & y^2 \\1 & z & z^2 \\
\end{matrix}
$$
- 显示:
1 x x 2 1 y y 2 1 z z 2 \begin{matrix} 1 & x & x^2 \\ 1 & y & y^2 \\ 1 & z & z^2 \\ \end{matrix} 111xyzx2y2z2
a b ⋯ c ⋮ ⋮ ⋱ ⋮ e f ⋯ g \begin{matrix} a & b & \cdots & c \\ \vdots& \vdots & \ddots & \vdots \\ e & f& \cdots & g \end{matrix} a⋮eb⋮f⋯⋱⋯c⋮g
边框矩阵
在开头将 matrix
替换为 pmatrix
bmatrix
Bmatrix
vmatrix
Vmatrix
。
- 例子:
$ \begin{matrix} 1 & 2 \\ 3 & 4 \\ \end{matrix} $
$ \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ \end{pmatrix} $
$ \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \end{bmatrix} $
$ \begin{Bmatrix} 1 & 2 \\ 3 & 4 \\ \end{Bmatrix} $
$ \begin{vmatrix} 1 & 2 \\ 3 & 4 \\ \end{vmatrix} $
$ \begin{Vmatrix} 1 & 2 \\ 3 & 4 \\ \end{Vmatrix} $
- 显示:
matrix:
1 2 3 4 \begin{matrix} 1 & 2 \\ 3 & 4 \\ \end{matrix} 1324
pmatrix:
( 1 2 3 4 ) \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ \end{pmatrix} (1324)
bmatrix:
[ 1 2 3 4 ] \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \end{bmatrix} [1324]
Bmatrix:
{ 1 2 3 4 } \begin{Bmatrix} 1 & 2 \\ 3 & 4 \\ \end{Bmatrix} {1324}
vmatrix:
∣ 1 2 3 4 ∣ \begin{vmatrix} 1 & 2 \\ 3 & 4 \\ \end{vmatrix} 1324
Vmatrix:
∥ 1 2 3 4 ∥ \begin{Vmatrix} 1 & 2 \\ 3 & 4 \\ \end{Vmatrix} 1324
[ a b ⋯ c ⋮ ⋮ ⋱ ⋮ e f ⋯ g ] ( a b ⋯ c ⋮ ⋮ ⋱ ⋮ e f ⋯ g ) ∣ a b ⋯ c ⋮ ⋮ ⋱ ⋮ e f ⋯ g ∣ \begin{bmatrix} a & b & \cdots & c \\ \vdots& \vdots & \ddots & \vdots \\ e & f& \cdots & g \end{bmatrix} \begin{pmatrix} a & b & \cdots & c \\ \vdots& \vdots & \ddots & \vdots \\ e & f& \cdots & g \end{pmatrix} \begin{vmatrix} a & b & \cdots & c \\ \vdots& \vdots & \ddots & \vdots \\ e & f& \cdots & g \end{vmatrix} a⋮eb⋮f⋯⋱⋯c⋮g a⋮eb⋮f⋯⋱⋯c⋮g a⋮eb⋮f⋯⋱⋯c⋮g
带分割符号的矩阵
- 例子:
$$
\left[\begin{array}{cc|c}1 & 2 & 3 \\4 & 5 & 6 \\\end{array}
\right]
$$
- 显示:
[ 1 2 3 4 5 6 ] \left[ \begin{array}{cc|c} 1 & 2 & 3 \\ 4 & 5 & 6 \\ \end{array} \right] [142536]
其中 cc|c
代表在一个三列矩阵中的第二和第三列之间插入分割线。
行中矩阵
若想在一行内显示矩阵,可使用 \bigl(\begin{smallmatrix} 表达式 \end{smallmatrix}\bigr)
- 例子:
这是一个行中矩阵的示例 $\bigl(\begin{smallmatrix} a & b \\ c & d \end{smallmatrix}\bigr)$
- 显示:
这是一个行中矩阵的示例 ( a b c d ) \bigl(\begin{smallmatrix} a & b \\ c & d \end{smallmatrix}\bigr) (acbd)
4.3.12 极限运算
使用 \lim_{变量 \to 表达式} 表达式
来输入一个极限。如有需求,可以更改 \to
符号至任意符号。
例子:
$$ \lim_{n \to \infty} \frac{1}{n(n+1)} \quad and \quad \lim_{x\leftarrow{示例}} \frac{1}{n(n+1)} $$
显示:
lim n → ∞ 1 n ( n + 1 ) a n d lim x ← 示例 1 n ( n + 1 ) \lim_{n \to \infty} \frac{1}{n(n+1)} \quad and \quad \lim_{x\leftarrow{示例}} \frac{1}{n(n+1)} n→∞limn(n+1)1andx←示例limn(n+1)1
4.3.13 累加、累乘运算
使用 \sum_{下标表达式}^{上标表达式} {累加表达式}
来输入一个累加。与之类似,使用 \prod
\bigcup
\bigcap
来分别输入累乘、并集和交集。
此类符号在行内显示时上下标表达式将会移至右上角和右下角,如 \sum_{i=1}^n \frac{1}{i^2}
显示为 ;
或在行内可使用 \sum\limits_{下标表达式}^{上标表达式} {累加表达式}
使上下标仍在正上正下方。如 \sum\limits_{i=1}^n \frac{1}{i^2}
显示为 。
本例内 \quad
均为空格符号,为方便公式格式对比而添加,请注意辨别。
- 例子:
$$ \sum_{i=1}^n \frac{1}{i^2} \quad and \quad \prod_{i=1}^n \frac{1}{i^2} \quad and \quad \bigcup_{i=1}^{2} \Bbb{R} $$
- 显示:
∑ i = 1 n 1 i 2 a n d ∏ i = 1 n 1 i 2 a n d ⋃ i = 1 2 R \sum_{i=1}^n \frac{1}{i^2} \quad and \quad \prod_{i=1}^n \frac{1}{i^2} \quad and \quad \bigcup_{i=1}^{2} \Bbb{R} i=1∑ni21andi=1∏ni21andi=1⋃2R
4.3.14 关系运算符
输入 | 显示 | 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|---|---|
\pm | ± \pm ± | \times | × \times × | \mid | ∣ \mid ∣ | \div | ÷ \div ÷ |
\nmid | ∤ \nmid ∤ | \circ | ∘ \circ ∘ | \ast | ∗ \ast ∗ | \cdot | ⋅ \cdot ⋅ |
\odot | ⊙ \odot ⊙ | \otimes | ⊗ \otimes ⊗ | \oplus | ⊕ \oplus ⊕ | \leq | ≤ \leq ≤ |
\geq | ≥ \geq ≥ | \neq | ≠ \neq = | \approx | ≈ \approx ≈ | \backslash | \ \backslash \ |
4.3.15 集合运算符
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\emptyset | ∅ \emptyset ∅ | \in | ∈ \in ∈ | \notin | ∉ \notin ∈/ |
\subset | ⊂ \subset ⊂ | \supset | ⊃ \supset ⊃ | \subseteq | ⊆ \subseteq ⊆ |
\supseteq | ⊇ \supseteq ⊇ | \cap | ∩ \cap ∩ | \cup | ∪ \cup ∪ |
\vee | ∨ \vee ∨ | \wedge | ∧ \wedge ∧ | \uplus | ⊎ \uplus ⊎ |
\top | ⊤ \top ⊤ | \bot | ⊥ \bot ⊥ | \complement | ∁ \complement ∁ |
4.3.16 对数运算符
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\log | log \log log | \lg | lg \lg lg | \ln | ln \ln ln |
4.3.17 三角运算符
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\backsim | ∽ \backsim ∽ | \cong | ≅ \cong ≅ | \angle A | ∠ A \angle A ∠A |
\sin | sin \sin sin | \cos | cos \cos cos | \tan | tan \tan tan |
\csc | csc \csc csc | \sec | sec \sec sec | \cot | cot \cot cot |
4.3.18 微积分运算符
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\int | ∫ \int ∫ | \iint | ∬ \iint ∬ | \iiint | ∭ \iiint ∭ |
\partial | ∂ \partial ∂ | \oint | ∮ \oint ∮ | \prime | ′ \prime ′ |
\lim | lim \lim lim | \infty | ∞ \infty ∞ | \nabla | ∇ \nabla ∇ |
4.3.19 逻辑运算符
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\because | ∵ \because ∵ | \therefore | ∴ \therefore ∴ | \neg | ¬ \neg ¬ |
\forall | ∀ \forall ∀ | \exists | ∃ \exists ∃ | \not\subset | ⊄ \not\subset ⊂ |
\not< | ≮ \not< < | \not> | ≯ \not> > | \not= | ≠ \not= = |
\vdash | ⊢ \vdash ⊢ |
4.3.20 戴帽符号
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\hat{xy} | x y ^ \hat{xy} xy^ | \widehat{xyz} | x y z ^ \widehat{xyz} xyz | \bar{y} | y ˉ \bar{y} yˉ |
\tilde{xy} | x y ~ \tilde{xy} xy~ | \widetilde{xyz} | x y z ~ \widetilde{xyz} xyz | \acute{y} | y ˊ \acute{y} yˊ |
\breve{y} | y ˘ \breve{y} y˘ | \check{y} | y ˇ \check{y} yˇ | \grave{y} | y ˋ \grave{y} yˋ |
\dot{x} | x ˙ \dot{x} x˙ | \ddot{x} | x ¨ \ddot{x} x¨ | \dddot{x} | KaTeX parse error: Undefined control sequence: \dddot at position 1: \̲d̲d̲d̲o̲t̲{x} |
若需要在特定文字顶部\底部放置内容,可使用 \overset{顶部内容}{正常内容}
和 \underset{底部内容}{正常内容}
命令。 例内 \qquad
\quad
\mid
\;
\,
等均为空格或分隔符号,为方便公式格式对比而添加,请注意辨别。
- 例子:
$$ \verb+\overset{above}{level}+ \qquad \overset{xx}{ABC} \;\; \mid \quad \overset{x^2}{\longmapsto}\ \, \mid \quad \overset{\bullet\circ\circ\bullet}{T}
$$
- 显示:
\overset{above}{level} A B C x x ∣ ⟼ x 2 ∣ T ∙ ∘ ∘ ∙ \verb+\overset{above}{level}+ \qquad \overset{xx}{ABC} \;\; \mid \quad \overset{x^2}{\longmapsto}\ \, \mid \quad \overset{\bullet\circ\circ\bullet}{T} \overset{above}{level}ABCxx∣⟼x2 ∣T∙∘∘∙
- 例子:
$$ \verb+\underset{below}{level}+ \qquad \underset{xx}{ABC} \;\; \mid \quad \underset{x^2}{\longmapsto}\ \, \mid \quad \underset{\bullet\circ\circ\bullet}{T}
$$
- 显示:
\underset{below}{level} A B C x x ∣ ⟼ x 2 ∣ T ∙ ∘ ∘ ∙ \verb+\underset{below}{level}+ \qquad \underset{xx}{ABC} \;\; \mid \quad \underset{x^2}{\longmapsto}\ \, \mid \quad \underset{\bullet\circ\circ\bullet}{T} \underset{below}{level}xxABC∣x2⟼ ∣∙∘∘∙T
此命令可叠加嵌套使用,生成类似化学反应式的多重条件符号, 如 \overset{H_2}{\underset{1300℃}{\Longleftrightarrow}}
:
S r O + V S r ′ ′ ⟺ 1300 ℃ H 2 S r S r × + 2 e ′ + 1 2 O 2 ( g ) {\rm SrO+V^{''}_{Sr}}\overset{H_2}{\underset{1300℃}{\Longleftrightarrow}}{\rm Sr_{Sr}^\times+2e^{'}+\frac 12O_2(g)} SrO+VSr′′1300℃⟺H2SrSr×+2e′+21O2(g)
和 \overset{Surface/bulk}{\underset{diffusion}{\longleftrightarrow}}
:
⟷ d i f f u s i o n S u r f a c e / b u l k \overset{Surface/bulk}{\underset{diffusion}{\longleftrightarrow}} diffusion⟷Surface/bulk
在书写化学方程式时可声明 \require{AMDcd}
语句,使用 MathJax 内置的交换图表功能,具体例子可参见下文。
4.3.21 连线符号
其它可用的文字修饰符可参见官方文档 “Additional decorations”。
输入 | 显示 |
---|---|
\fbox{a+b+c+d} | a+b+c+d \fbox{a+b+c+d} a+b+c+d |
\overleftarrow{a+b+c+d} | a + b + c + d ← \overleftarrow{a+b+c+d} a+b+c+d |
\overrightarrow{a+b+c+d} | a + b + c + d → \overrightarrow{a+b+c+d} a+b+c+d |
\overleftrightarrow{a+b+c+d} | a + b + c + d ↔ \overleftrightarrow{a+b+c+d} a+b+c+d |
\underleftarrow{a+b+c+d} | a + b + c + d ← \underleftarrow{a+b+c+d} a+b+c+d |
\underrightarrow{a+b+c+d} | a + b + c + d → \underrightarrow{a+b+c+d} a+b+c+d |
\underleftrightarrow{a+b+c+d} | a + b + c + d ↔ \underleftrightarrow{a+b+c+d} a+b+c+d |
\overline{a+b+c+d} | a + b + c + d ‾ \overline{a+b+c+d} a+b+c+d |
\underline{a+b+c+d} | a + b + c + d ‾ \underline{a+b+c+d} a+b+c+d |
\overbrace{a+b+c+d}^{Sample} | a + b + c + d ⏞ S a m p l e \overbrace{a+b+c+d}^{Sample} a+b+c+d Sample |
\underbrace{a+b+c+d}_{Sample} | a + b + c + d ⏟ S a m p l e \underbrace{a+b+c+d}_{Sample} Sample a+b+c+d |
\overbrace{a+\underbrace{b+c}_{1.0}+d}^{2.0} | a + b + c ⏟ 1.0 + d ⏞ 2.0 \overbrace{a+\underbrace{b+c}_{1.0}+d}^{2.0} a+1.0 b+c+d 2.0 |
\underbrace{a\cdot a\cdots a}_{b\text{ times}} | a ⋅ a ⋯ a ⏟ b times \underbrace{a\cdot a\cdots a}_{b\text{ times}} b times a⋅a⋯a |
4.3.22 箭头符号
- 推荐使用符号:
输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
---|---|---|---|---|---|
\to | → \to → | \mapsto | ↦ \mapsto ↦ | \underrightarrow{1km/min} | 1 k m / m i n → \underrightarrow{1km/min} 1km/min |
\implies | ⟹ \implies ⟹ | \iff | ⟺ \iff ⟺ | \impliedby | ⟸ \impliedby ⟸ |
- 其它可用符号:
输入 | 显示 | 输入 | 显示 |
---|---|---|---|
\uparrow | ↑ \uparrow ↑ | \Uparrow | ⇑ \Uparrow ⇑ |
\downarrow | ↓ \downarrow ↓ | \Downarrow | ⇓ \Downarrow ⇓ |
\leftarrow | ← \leftarrow ← | \Leftarrow | ⇐ \Leftarrow ⇐ |
\rightarrow | → \rightarrow → | \Rightarrow | ⇒ \Rightarrow ⇒ |
\leftrightarrow | ↔ \leftrightarrow ↔ | \Leftrightarrow | ⇔ \Leftrightarrow ⇔ |
\longleftarrow | ⟵ \longleftarrow ⟵ | \Longleftarrow | ⟸ \Longleftarrow ⟸ |
\longrightarrow | ⟶ \longrightarrow ⟶ | \Longrightarrow | ⟹ \Longrightarrow ⟹ |
\longleftrightarrow | ⟷ \longleftrightarrow ⟷ | \Longleftrightarrow | ⟺ \Longleftrightarrow ⟺ |
4.3.23 字体转换
若要对公式的某一部分字符进行字体转换,可以用 {\字体 {需转换的部分字符}}
命令,其中 \字体
部分可以参照下表选择合适的字体。一般情况下,公式默认为斜体字 。
示例中 全部大写 的字体仅大写可用。
输入 | 全字母可用 | 显示 | 输入 | 仅大写可用 | 显示 |
---|---|---|---|---|---|
\rm | 罗马体 | S a m p l e \rm{Sample} Sample | \mathcal | 花体(数学符号等) | S a m p l e \mathcal{Sample} Sample |
\it | 斜体 | S a m p l e \it{Sample} Sample | \mathbb | 黑板粗体(定义域等) | S a m p l e \mathbb{Sample} Sample |
\bf | 粗体 | S a m p l e \bf{Sample} Sample | \mit | 数学斜体 | KaTeX parse error: Undefined control sequence: \mit at position 1: \̲m̲i̲t̲{Sample} |
\sf | 等线体 | S a m p l e \sf{Sample} Sample | \scr | 手写体 | KaTeX parse error: Undefined control sequence: \scr at position 1: \̲s̲c̲r̲{Sample} |
\tt | 打字机体 | S a m p l e \tt{Sample} Sample | \cal | 等同于 \mathcal | S a m p l e \cal{Sample} Sample |
\frak | 旧德式字体 | S a m p l e \frak{Sample} Sample | \Bbb | 等同于 \mathbb | S a m p l e \Bbb{Sample} Sample |
\boldsymbol | 向量或者矩阵的加粗斜体 | Γ \boldsymbol{\Gamma} Γ |
转换字体十分常用,例如在积分中:
- 例子:
$$
\begin{array}{cc}\mathrm{Bad} & \mathrm{Better} \\\hline \\\int_0^1 x^2 dx & \int_0^1 x^2 \,{\rm d}x
\end{array}
$$
- 显示:
B a d B e t t e r ∫ 0 1 x 2 d x ∫ 0 1 x 2 d x \begin{array}{cc} \mathrm{Bad} & \mathrm{Better} \\ \hline \\ \int_0^1 x^2 dx & \int_0^1 x^2 \,{\rm d}x \end{array} Bad∫01x2dxBetter∫01x2dx
注意比较两个式子间 d x dx dx 与 d x {\rm d} x dx 的不同。
使用 \operatorname
命令也可以达到相同的效果。
4.3.24 高亮一行公式
使用 \bbox[底色, (可选)边距, (可选)边框 border: 框宽度 框类型 框颜色]
命令来高亮一行公式。
底色和框颜色支持详见“[更改文字颜色](# 4更改文字颜色-color)”,边距及框宽度支持 绝对像素 px
或 相对大小 em
,框类型支持 实线 solid
或 虚线 dashed
。
- 例子:
$$
\bbox[yellow]{e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1)
}
$$
- 显示:
KaTeX parse error: Undefined control sequence: \bbox at position 2: \̲b̲b̲o̲x̲[yellow]{ e…
- 例子:
$$
\bbox[#9ff, 5px]{ % 此处向外添加 5 像素的边距e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1)
}
$$
- 显示:
KaTeX parse error: Undefined control sequence: \bbox at position 2: \̲b̲b̲o̲x̲[#9ff, 5px]{ % …
- 例子:
$$
% 此处使用 0.5 倍行高作为边距,附加 2 像素的实线边框(Ctrl+Alt+Y 可见)
\bbox[#2f3542, 0.5em, border:2px solid #f1f2f6]{\color{#f1f2f6}{e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1)}
}
$$
- 显示:
KaTeX parse error: Undefined control sequence: \bbox at position 49: …Ctrl+Alt+Y 可见) \̲b̲b̲o̲x̲[#2f3542, 0.5em…
4.3.25 更改文字颜色
使用 \color{颜色}{文字}
来更改特定的文字颜色。
更改文字颜色需要浏览器支持 ,如果浏览器不知道你所需的颜色,那么文字将被渲染为黑色。对于较旧的浏览器(HTML4 & CSS2),以下颜色是被支持的:
输入 | 显示 | 输入 | 显示 |
---|---|---|---|
black | t e x t \color{black}{text} text | grey | t e x t \color{grey}{text} text |
silver | t e x t \color{silver}{text} text | white | t e x t \color{white}{text} text |
maroon | t e x t \color{maroon}{text} text | red | t e x t \color{red}{text} text |
yellow | t e x t \color{yellow}{text} text | lime | t e x t \color{lime}{text} text |
olive | t e x t \color{olive}{text} text | green | t e x t \color{green}{text} text |
teal | t e x t \color{teal}{text} text | auqa | t e x t \color{auqa}{text} text |
blue | t e x t \color{blue}{text} text | navy | t e x t \color{navy}{text} text |
purple | t e x t \color{purple}{text} text | fuchsia | t e x t \color{fuchsia}{text} text |
对于较新的浏览器(HTML5 & CSS3),HEX 颜色将被支持:
输入 \color {#rgb} {text}
来自定义更多的颜色,其中 #rgb
或 #rrggbb
的 r
g
b
可输入 0-9
和 a-f
来表示红色、绿色和蓝色的纯度(饱和度)。
- 例子:
$$
\begin{array}{|rrrrrrrr|}\hline\verb+#000+ & \color{#000}{text} & & &\verb+#00F+ & \color{#00F}{text} & & \\& & \verb+#0F0+ & \color{#0F0}{text} && & \verb+#0FF+ & \color{#0FF}{text} \\\verb+#F00+ & \color{#F00}{text} & & &\verb+#F0F+ & \color{#F0F}{text} & & \\& & \verb+#FF0+ & \color{#FF0}{text} && & \verb+#FFF+ & \color{#FFF}{text} \\
\hline\end{array}
$$
-
显示:
#000 t e x t #00F t e x t #0F0 t e x t #0FF t e x t #F00 t e x t #F0F t e x t #FF0 t e x t #FFF t e x t \begin{array}{|rrrrrrrr|}\hline \verb+#000+ & \color{#000}{text} & & & \verb+#00F+ & \color{#00F}{text} & & \\ & & \verb+#0F0+ & \color{#0F0}{text} & & & \verb+#0FF+ & \color{#0FF}{text} \\ \verb+#F00+ & \color{#F00}{text} & & & \verb+#F0F+ & \color{#F0F}{text} & & \\ & & \verb+#FF0+ & \color{#FF0}{text} & & & \verb+#FFF+ & \color{#FFF}{text} \\ \hline\end{array} #000#F00texttext#0F0#FF0texttext#00F#F0Ftexttext#0FF#FFFtexttext -
例子:
$$
\begin{array}{|rrrrrrrr|}\hline\verb+#000+ & \color{#000}{text} & \verb+#005+ & \color{#005}{text} & \verb+#00A+ & \color{#00A}{text} & \verb+#00F+ & \color{#00F}{text} \\\verb+#500+ & \color{#500}{text} & \verb+#505+ & \color{#505}{text} & \verb+#50A+ & \color{#50A}{text} & \verb+#50F+ & \color{#50F}{text} \\\verb+#A00+ & \color{#A00}{text} & \verb+#A05+ & \color{#A05}{text} & \verb+#A0A+ & \color{#A0A}{text} & \verb+#A0F+ & \color{#A0F}{text} \\\verb+#F00+ & \color{#F00}{text} & \verb+#F05+ & \color{#F05}{text} & \verb+#F0A+ & \color{#F0A}{text} & \verb+#F0F+ & \color{#F0F}{text} \\
\hline\verb+#080+ & \color{#080}{text} & \verb+#085+ & \color{#085}{text} & \verb+#08A+ & \color{#08A}{text} & \verb+#08F+ & \color{#08F}{text} \\\verb+#580+ & \color{#580}{text} & \verb+#585+ & \color{#585}{text} & \verb+#58A+ & \color{#58A}{text} & \verb+#58F+ & \color{#58F}{text} \\\verb+#A80+ & \color{#A80}{text} & \verb+#A85+ & \color{#A85}{text} & \verb+#A8A+ & \color{#A8A}{text} & \verb+#A8F+ & \color{#A8F}{text} \\\verb+#F80+ & \color{#F80}{text} & \verb+#F85+ & \color{#F85}{text} & \verb+#F8A+ & \color{#F8A}{text} & \verb+#F8F+ & \color{#F8F}{text} \\
\hline\verb+#0F0+ & \color{#0F0}{text} & \verb+#0F5+ & \color{#0F5}{text} & \verb+#0FA+ & \color{#0FA}{text} & \verb+#0FF+ & \color{#0FF}{text} \\\verb+#5F0+ & \color{#5F0}{text} & \verb+#5F5+ & \color{#5F5}{text} & \verb+#5FA+ & \color{#5FA}{text} & \verb+#5FF+ & \color{#5FF}{text} \\\verb+#AF0+ & \color{#AF0}{text} & \verb+#AF5+ & \color{#AF5}{text} & \verb+#AFA+ & \color{#AFA}{text} & \verb+#AFF+ & \color{#AFF}{text} \\\verb+#FF0+ & \color{#FF0}{text} & \verb+#FF5+ & \color{#FF5}{text} & \verb+#FFA+ & \color{#FFA}{text} & \verb+#FFF+ & \color{#FFF}{text} \\
\hline\end{array}
$$
- 显示:
#000 t e x t #005 t e x t #00A t e x t #00F t e x t #500 t e x t #505 t e x t #50A t e x t #50F t e x t #A00 t e x t #A05 t e x t #A0A t e x t #A0F t e x t #F00 t e x t #F05 t e x t #F0A t e x t #F0F t e x t #080 t e x t #085 t e x t #08A t e x t #08F t e x t #580 t e x t #585 t e x t #58A t e x t #58F t e x t #A80 t e x t #A85 t e x t #A8A t e x t #A8F t e x t #F80 t e x t #F85 t e x t #F8A t e x t #F8F t e x t #0F0 t e x t #0F5 t e x t #0FA t e x t #0FF t e x t #5F0 t e x t #5F5 t e x t #5FA t e x t #5FF t e x t #AF0 t e x t #AF5 t e x t #AFA t e x t #AFF t e x t #FF0 t e x t #FF5 t e x t #FFA t e x t #FFF t e x t \begin{array}{|rrrrrrrr|}\hline \verb+#000+ & \color{#000}{text} & \verb+#005+ & \color{#005}{text} & \verb+#00A+ & \color{#00A}{text} & \verb+#00F+ & \color{#00F}{text} \\ \verb+#500+ & \color{#500}{text} & \verb+#505+ & \color{#505}{text} & \verb+#50A+ & \color{#50A}{text} & \verb+#50F+ & \color{#50F}{text} \\ \verb+#A00+ & \color{#A00}{text} & \verb+#A05+ & \color{#A05}{text} & \verb+#A0A+ & \color{#A0A}{text} & \verb+#A0F+ & \color{#A0F}{text} \\ \verb+#F00+ & \color{#F00}{text} & \verb+#F05+ & \color{#F05}{text} & \verb+#F0A+ & \color{#F0A}{text} & \verb+#F0F+ & \color{#F0F}{text} \\ \hline \verb+#080+ & \color{#080}{text} & \verb+#085+ & \color{#085}{text} & \verb+#08A+ & \color{#08A}{text} & \verb+#08F+ & \color{#08F}{text} \\ \verb+#580+ & \color{#580}{text} & \verb+#585+ & \color{#585}{text} & \verb+#58A+ & \color{#58A}{text} & \verb+#58F+ & \color{#58F}{text} \\ \verb+#A80+ & \color{#A80}{text} & \verb+#A85+ & \color{#A85}{text} & \verb+#A8A+ & \color{#A8A}{text} & \verb+#A8F+ & \color{#A8F}{text} \\ \verb+#F80+ & \color{#F80}{text} & \verb+#F85+ & \color{#F85}{text} & \verb+#F8A+ & \color{#F8A}{text} & \verb+#F8F+ & \color{#F8F}{text} \\ \hline \verb+#0F0+ & \color{#0F0}{text} & \verb+#0F5+ & \color{#0F5}{text} & \verb+#0FA+ & \color{#0FA}{text} & \verb+#0FF+ & \color{#0FF}{text} \\ \verb+#5F0+ & \color{#5F0}{text} & \verb+#5F5+ & \color{#5F5}{text} & \verb+#5FA+ & \color{#5FA}{text} & \verb+#5FF+ & \color{#5FF}{text} \\ \verb+#AF0+ & \color{#AF0}{text} & \verb+#AF5+ & \color{#AF5}{text} & \verb+#AFA+ & \color{#AFA}{text} & \verb+#AFF+ & \color{#AFF}{text} \\ \verb+#FF0+ & \color{#FF0}{text} & \verb+#FF5+ & \color{#FF5}{text} & \verb+#FFA+ & \color{#FFA}{text} & \verb+#FFF+ & \color{#FFF}{text} \\ \hline\end{array} #000#500#A00#F00#080#580#A80#F80#0F0#5F0#AF0#FF0texttexttexttexttexttexttexttexttexttexttexttext#005#505#A05#F05#085#585#A85#F85#0F5#5F5#AF5#FF5texttexttexttexttexttexttexttexttexttexttexttext#00A#50A#A0A#F0A#08A#58A#A8A#F8A#0FA#5FA#AFA#FFAtexttexttexttexttexttexttexttexttexttexttexttext#00F#50F#A0F#F0F#08F#58F#A8F#F8F#0FF#5FF#AFF#FFFtexttexttexttexttexttexttexttexttexttexttexttext
4.3.26 删除线
使用删除线功能必须声明 $$
符号。
在公式内使用 \require{cancel}
来允许片段删除线的显示。
声明片段删除线后,使用 \cancel{字符}
、\bcancel{字符}
、\xcancel{字符}
和 \cancelto{字符}
来实现各种片段删除线效果。
- 例子:
$$
\require{cancel}
\begin{array}{rl}\verb|y+\cancel{x}| & y+\cancel{x} \\\verb|\cancel{y+x}| & \cancel{y+x} \\\verb|y+\bcancel{x}| & y+\bcancel{x} \\\verb|y+\xcancel{x}| & y+\xcancel{x} \\\verb|y+\cancelto{0}{x}| & y+\cancelto{0}{x} \\\verb+\frac{1\cancel9}{\cancel95} = \frac15+& \frac{1\cancel9}{\cancel95} = \frac15 \\
\end{array}
$$
- 显示:
KaTeX parse error: Undefined control sequence: \require at position 2: \̲r̲e̲q̲u̲i̲r̲e̲{cancel} \begin…
使用 \require{enclose}
来允许整段删除线的显示。
声明整段删除线后,使用 \enclose{删除线效果}{字符}
来实现各种整段删除线效果。
其中,删除线效果有 horizontalstrike
、verticalstrike
、updiagonalstrike
和 downdiagonalstrike
,可叠加使用。
- 例子:
$$
\require{enclose}
\begin{array}{rl}\verb|\enclose{horizontalstrike}{x+y}| & \enclose{horizontalstrike}{x+y} \\\verb|\enclose{verticalstrike}{\frac xy}| & \enclose{verticalstrike}{\frac xy} \\\verb|\enclose{updiagonalstrike}{x+y}| & \enclose{updiagonalstrike}{x+y} \\\verb|\enclose{downdiagonalstrike}{x+y}| & \enclose{downdiagonalstrike}{x+y} \\\verb|\enclose{horizontalstrike,updiagonalstrike}{x+y}| & \enclose{horizontalstrike,updiagonalstrike}{x+y} \\
\end{array}
$$
- 显示:
KaTeX parse error: Undefined control sequence: \require at position 2: \̲r̲e̲q̲u̲i̲r̲e̲{enclose} \begi…
此外, \enclose
命令还可以产生包围的边框和圆等,参见 MathML Menclose Documentation 以查看更多效果。
- 例子:
分别使用 circle
和 roundedbox
包围的公式
$$
\require{enclose}
\begin{array}{c}\enclose{circle}{f(\top),\, f^2(\top),\, f^3(\top) \,\cdots\, f^n(\top)} \\\enclose{roundedbox}{f(\bot),\, f^2(\bot),\, f^3(\bot) \,\cdots\, f^n(\bot)} \\
\end{array}
$$
使用 box
框住所有公式
$$
\require{enclose}
\enclose{box}{\begin{array}{c}f(\top),\, f^2(\top),\, f^3(\top) \,\cdots\, f^n(\top) \\f(\bot),\, f^2(\bot),\, f^3(\bot) \,\cdots\, f^n(\bot) \\\end{array}
}
$$
- 显示:
分别使用 circle
和 roundedbox
包围的公式:
KaTeX parse error: Undefined control sequence: \require at position 2: \̲r̲e̲q̲u̲i̲r̲e̲{enclose} \begi…
使用 box
框住所有公式:
KaTeX parse error: Undefined control sequence: \require at position 2: \̲r̲e̲q̲u̲i̲r̲e̲{enclose} \encl…
4.4 数组和表格进阶
通常,一个格式化后的表格比单纯的文字或排版后的文字更具有可读性。
数组和表格均以 \begin{array}
开头,并在其后定义列数及每一列的文本对齐属性,c
l
r
分别代表居中、左对齐及右对齐。若需要插入垂直分割线,在定义式中插入 |
,若要插入水平分割线,在下一行输入前插入 \hline
。
与矩阵相似,每行元素间均须要插入 &
,每行元素以 \\
结尾,最后以 \ end{array}
结束数组。
使用单个数组或表格时无需声明 $
或 $$
符号。
- 例子:
\begin{array}{c|lcr}n & \text{左对齐} & \text{居中对齐} & \text{右对齐} \\\hline1 & 0.24 & 1 & 125 \\2 & -1 & 189 & -8 \\3 & -20 & 2000 & 1+10i \\
\end{array}
- 显示:
n 左对齐 居中对齐 右对齐 1 0.24 1 125 2 − 1 189 − 8 3 − 20 2000 1 + 10 i \begin{array}{c|lcr} n & \text{左对齐} & \text{居中对齐} & \text{右对齐} \\ \hline 1 & 0.24 & 1 & 125 \\ 2 & -1 & 189 & -8 \\ 3 & -20 & 2000 & 1+10i \\ \end{array} n123左对齐0.24−1−20居中对齐11892000右对齐125−81+10i
嵌套的数组或表格**
多个数组\表格可 互相嵌套 并组成一组数组或表格。
使用嵌套前必须声明 $$
符号。
- 例子:
$$
\begin{array}{c} % 总表格\begin{array}{cc} % 第一行内分成两列\begin{array}{c|cccc} % 第一列"最小值"数组\text{min} & 0 & 1 & 2 & 3 \\\hline0 & 0 & 0 & 0 & 0 \\1 & 0 & 1 & 1 & 1 \\2 & 0 & 1 & 2 & 2 \\3 & 0 & 1 & 2 & 3 \\\end{array}&\begin{array}{c|cccc} % 第二列"最大值"数组\text{max} & 0 & 1 & 2 & 3 \\\hline0 & 0 & 1 & 2 & 3 \\1 & 1 & 1 & 2 & 3 \\2 & 2 & 2 & 2 & 3 \\3 & 3 & 3 & 3 & 3 \\\end{array}\end{array} % 第一行表格组结束\\\begin{array}{c|cccc} % 第二行 Delta 值数组\Delta & 0 & 1 & 2 & 3 \\\hline0 & 0 & 1 & 2 & 3 \\1 & 1 & 0 & 1 & 2 \\2 & 2 & 1 & 0 & 1 \\3 & 3 & 2 & 1 & 0 \\\end{array} % 第二行表格结束
\end{array} % 总表格结束
$$
- 显示:
min 0 1 2 3 0 0 0 0 0 1 0 1 1 1 2 0 1 2 2 3 0 1 2 3 max 0 1 2 3 0 0 1 2 3 1 1 1 2 3 2 2 2 2 3 3 3 3 3 3 Δ 0 1 2 3 0 0 1 2 3 1 1 0 1 2 2 2 1 0 1 3 3 2 1 0 \begin{array}{c} % 总表格 \begin{array}{cc} % 第一行内分成两列 \begin{array}{c|cccc} % 第一列"最小值"数组 \text{min} & 0 & 1 & 2 & 3 \\ \hline 0 & 0 & 0 & 0 & 0 \\ 1 & 0 & 1 & 1 & 1 \\ 2 & 0 & 1 & 2 & 2 \\ 3 & 0 & 1 & 2 & 3 \\ \end{array} & \begin{array}{c|cccc} % 第二列"最大值"数组 \text{max} & 0 & 1 & 2 & 3 \\ \hline 0 & 0 & 1 & 2 & 3 \\ 1 & 1 & 1 & 2 & 3 \\ 2 & 2 & 2 & 2 & 3 \\ 3 & 3 & 3 & 3 & 3 \\ \end{array} \end{array} % 第一行表格组结束 \\ \begin{array}{c|cccc} % 第二行 Delta 值数组 \Delta & 0 & 1 & 2 & 3 \\ \hline 0 & 0 & 1 & 2 & 3 \\ 1 & 1 & 0 & 1 & 2 \\ 2 & 2 & 1 & 0 & 1 \\ 3 & 3 & 2 & 1 & 0 \\ \end{array} % 第二行表格结束 \end{array} % 总表格结束 min012300000101112012230123max012300123111232222333333Δ012300123110122210133210
4.5 连分数
就像输入分式时使用 \frac
一样,使用 \cfrac
来创建一个连分数。
- 例子:
$$
x = a_0 + \cfrac{1^2}{a_1 +\cfrac{2^2}{a_2 +\cfrac{3^2}{a_3 +\cfrac{4^4}{a_4 + \cdots}}}}
$$
- 显示:
x = a 0 + 1 2 a 1 + 2 2 a 2 + 3 2 a 3 + 4 4 a 4 + ⋯ x = a_0 + \cfrac{1^2}{a_1 + \cfrac{2^2}{a_2 + \cfrac{3^2}{a_3 + \cfrac{4^4}{a_4 + \cdots } } } } x=a0+a1+a2+a3+a4+⋯44322212
不要使用普通的 \frac
或 \over
来生成连分数,看起来会很奇怪。
- 反例:
$$
x = a_0 + \frac{1^2}{a_1 +\frac{2^2}{a_2 +\frac{3^2}{a_3 +\frac{4^4}{a_4 + \cdots}}}}
$$
- 显示:
x = a 0 + 1 2 a 1 + 2 2 a 2 + 3 2 a 3 + 4 4 a 4 + ⋯ x = a_0 + \frac{1^2}{a_1 + \frac{2^2}{a_2 + \frac{3^2}{a_3 + \frac{4^4}{a_4 + \cdots } } } } x=a0+a1+a2+a3+a4+⋯44322212
当然,你可以使用 \frac
来表达连分数的紧缩记法。
- 例子:
$$
x = a_0 + \frac{1^2}{a_1 +}\frac{2^2}{a_2 +}\frac{3^2}{a_3 +}\frac{4^4}{a_4 +}\cdots
$$
- 显示:
x = a 0 + 1 2 a 1 + 2 2 a 2 + 3 2 a 3 + 4 4 a 4 + ⋯ x = a_0 + \frac{1^2}{a_1 +} \frac{2^2}{a_2 +} \frac{3^2}{a_3 +} \frac{4^4}{a_4 +} \cdots x=a0+a1+12a2+22a3+32a4+44⋯
连分数通常都太大以至于不易排版,所以建议在连分数前后声明 $$
符号,或使用像 [a0,a1,a2,a3,…]
一样的紧缩记法。
4.6 交换图
使用一行 \require{AMScd}
语句来允许交换图表的显示。
声明交换图表后,语法与矩阵相似,在开头使用 \begin{CD}
,在结尾使用 \ end{CD}
,在中间插入图表元素,每个元素之间插入 &
,并在每行结尾处使用 \\
。
- 例子:
$$
\require{AMScd}
\begin{CD}A @>a>> B \\@V b V V\# @VV c V \\C @>>d> D \\
\end{CD}
$$
- 显示:
KaTeX parse error: Undefined control sequence: \require at position 2: \̲r̲e̲q̲u̲i̲r̲e̲{AMScd} \begin{…
其中,@>>>
代表右箭头、@<<<
代表左箭头、@VVV
代表下箭头、@AAA
代表上箭头、@=
代表水平双实线、@|
代表竖直双实线、@.
代表没有箭头。
在 @>>>
的 >>>
之间任意插入文字即代表该箭头的注释文字。
- 例子:
$$
\require{AMDcd}
\begin{CD}A @>>> B @>{\text{very long label}}>> C \\@. @AAA @| \\D @= E @<<< F \\
\end{CD}
$$
- 显示:
KaTeX parse error: Undefined control sequence: \require at position 2: \̲r̲e̲q̲u̲i̲r̲e̲{AMDcd} \begin{…
在本例中,very long label
自动延长了它所在箭头以及对应箭头的长度,因而交换图表十分适合进行化学反应式的书写。
- 例子:
$$
\require{AMDcd}
\begin{CD}\rm{RCOHR^{'}SO_3Na} @>{\large\text{Hydrolysis, $\Delta$, Dil.HCl}}>> \rm{(RCOR^{'})+NaCl+SO_2+ H_2O}
\end{CD}
$$
- 显示:
KaTeX parse error: Undefined control sequence: \require at position 2: \̲r̲e̲q̲u̲i̲r̲e̲{AMDcd} \begin{…
4.7 绘制流程图
代码:
graph TB;
subgraph 分情况
A(开始)-->B{判断}
end
B--第一种情况-->C[第一种方案]
B--第二种情况-->D[第二种方案]
B--第三种情况-->F{第三种方案}
subgraph 分种类
F-.第1个.->J((测试圆形))
F-.第2个.->H>右向旗帜形]
end
H---I(测试完毕)
C--票数100---I(测试完毕)
D---I(测试完毕)
J---I(测试完毕)
代码说明:
字母表示 | 含义 |
---|---|
TB | 从上到下 |
BT | 从下到上 |
LR | 从左到右 |
RL | 从右到左 |
表述 | 说明 | 含义 |
---|---|---|
id[文字] | 矩形节点 | 表示过程 |
id(文字) | 圆角矩形节点 | 表示开始与结束 |
id((文字)) | 圆形节点 | 表示连接。为避免流程过长或有交叉,可将流程切开成对 |
id{文字} | 菱形节点 | 表示判断、决策 |
id>文字 ] | 右向旗帜节点 |
- T、B、L、T分别是Top/Bottom/Left/Right的缩写
- id为节点的唯一标识,类似于变量。括号内为节点要显示的文字
- 单向箭头为流程进行方向。支持虚线与实线,有箭头与无箭头、有文字与无文字。分别是—、-.-、 -->、-.->、–文字–>、-.文字.->、–文字—、-.文字.-
- 支持子图。如代码、效果图所示。
效果:
4.8 绘制序列图
序列图共有5个部分,分别是:参与者、消息线、循环、选择、可选、并行、注解。
代码:
sequenceDiagram
Title: 小明买书participant consumer as 小明
participant store as 书店
participant publisher as 出版社consumer ->> store: 想买一本限量版书籍
store -->> consumer: 缺货
consumer ->> store: 隔一个月再次询问
store -->> consumer: 抢完了
loop 一个星期一次
consumer -x +store: 有货了吗
store --x -consumer: 正在订,有货马上通知你
endstore ->> publisher: 我要订购一批货
publisher --x store: 返回所有书籍的类别信息alt 书籍类别符合要求
store ->> publisher: 请求书单信息
publisher --x store: 返回该类别书单信息
else 书单里的书有市场需求
store ->> publisher: 购买指定数据
publisher --x store: 确认订单
else 书籍不符合要求
store -->> publisher: 暂时不购买
endpar 并行执行
publisher ->> publisher : 生产
publisher ->> publisher : 销售
endopt 书籍购买量>=500 && 库存>=50
publisher ->> store : 出货
store --x publisher : 确认收货
endNote left of consumer : 图书收藏家
Note over consumer,store : 去书店购买书籍
Note left of store : 全国知名书店
Note over store,publisher : 去出版社进货
Note left of publisher : 持有版权的出版社
代码说明:
- 消息线
类型 | 描述 |
---|---|
-> | 无箭头的实线 |
–> | 无箭头的虚线 |
->> | 有箭头的实线(主动发出消息) |
–>> | 有箭头的虚线(响应) |
-x | 末端为X的实线(主动发出异步消息) |
–x | 有箭头的实线(以异步形式响应消息) |
alt 可以理解为可替代的方案,可能的情况
opt 可以理解为一个
if
语句,满足条件下执行的操作
效果:
4.9 绘制饼图
代码:
pietitle Pie Chart"Dogs" : 386"cats" : 567"rabbit" : 700"pig":365"tiger" : 15
效果:
4.10 绘制甘特图
这里先介绍一下语法结构:
ganttdateFormat YYYY-MM-DD //底部的时间格式title Adding GANTT diagram functionality to mermaid //甘特图名称excludes weekends //周末有休息section A //可以理解为一个功能模块task1 :done,des1, 2014-01-06,2014-01-08 //可以理解为这个功能模块的各项进度安排task2 :active,des2, 2014-01-09, 3d //以下参数都是合法的task3 :des3, after des2, 5d //我们等一下每个都试一下task4 :crit, done, 2014-01-06,24htask5 :crit, done, after des1, 2dtask6 :crit, active, 3dtask7 :crit, 5dtask8 :2dtask9 :1d... :[参数1:crit,可不填],[参数2:active,done,可不填表示待完成],[参数3:小名],[参数4:开始时间],[参数5:结束时间]section Bsection C ...
样例代码:
ganttdateFormat YYYY-MM-DDtitle 软件开发任务进度安排 excludes weekendssection 软硬件选型 硬件选择 :done,desc1, 2023-05-01,6w 软件设计 :active,desc2, after desc1,3wsection 编码准备软件选择 :crit,done,desc3,2023-06-01,2023-06-29编码和测试软件 :1w安装测试系统 :2023-07-12,1wsection 完成论文编写手册 :desc5,2024-03-01,10w论文修改 :crit,after desc3,3w论文定稿 :after desc5,3w
效果:
五、Markdown工具
本地APP:首推 Typora,当然还有其他一些好用的软件,我用的是Typora;
国内博客平台:CSDN、简书、掘金、博客园、知乎等。
Typora下载链接:Typora下载
六、总结
快快把Markdown语法学起来吧,一起加油!!!
Markdown是一种纯文本标记语言 ↩︎
HyperText Markup Language 超文本标记语言 ↩︎
七、参考博文
- Mark Down公式指导手册
Markdown是一种纯文本标记语言 ↩︎
HyperText Markup Language 超文本标记语言 ↩︎
NEW WAY TO READ & WRITE MARKDOWN. ↩︎