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中插入圖片的使用方式是:
代碼:

比如一張新聞圖片:

效果:
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 ∣ ab???Negative?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?1?orb+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:21?a,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} 2?orn3?
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 ∫01?x2dx
本例中 \,
和 {\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 ?vu?yx?? ?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} 111?xyz?x2y2z2?
a b ? c ? ? ? ? e f ? g \begin{matrix} a & b & \cdots & c \\ \vdots& \vdots & \ddots & \vdots \\ e & f& \cdots & g \end{matrix} a?e?b?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} 13?24?
pmatrix:
( 1 2 3 4 ) \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ \end{pmatrix} (13?24?)
bmatrix:
[ 1 2 3 4 ] \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \end{bmatrix} [13?24?]
Bmatrix:
{ 1 2 3 4 } \begin{Bmatrix} 1 & 2 \\ 3 & 4 \\ \end{Bmatrix} {13?24?}
vmatrix:
∣ 1 2 3 4 ∣ \begin{vmatrix} 1 & 2 \\ 3 & 4 \\ \end{vmatrix} ?13?24? ?
Vmatrix:
∥ 1 2 3 4 ∥ \begin{Vmatrix} 1 & 2 \\ 3 & 4 \\ \end{Vmatrix} ?13?24? ?
[ 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?e?b?f?????c?g? ? ?a?e?b?f?????c?g? ? ?a?e?b?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] [14?25?36?]
其中 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) (ac?bd?)
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→∞lim?n(n+1)1?andx←示例lim?n(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∑n?i21?andi=1∏n?i21?andi=1?2?R
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℃??H2??SrSr×?+2e′+21?O2?(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∫01?x2dx?Better∫01?x2dx??
注意比較兩個式子間 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#F00?texttext?#0F0#FF0?texttext?#00F#F0F?texttext?#0FF#FFF?texttext?? -
例子:
$$
\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#FF0?texttexttexttexttexttexttexttexttexttexttexttext?#005#505#A05#F05#085#585#A85#F85#0F5#5F5#AF5#FF5?texttexttexttexttexttexttexttexttexttexttexttext?#00A#50A#A0A#F0A#08A#58A#A8A#F8A#0FA#5FA#AFA#FFA?texttexttexttexttexttexttexttexttexttexttexttext?#00F#50F#A0F#F0F#08F#58F#A8F#F8F#0FF#5FF#AFF#FFF?texttexttexttexttexttexttexttexttexttexttexttext??
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} % 總表格結束 min0123?00000?10111?20122?30123???max0123?00123?11123?22223?33333???Δ0123?00123?11012?22101?33210???
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?+?44?32?22?12?
不要使用普通的 \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?+?44?32?22?12?
當然,你可以使用 \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?+12?a2?+22?a3?+32?a4?+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. ??