Markdown:常用语法、数学公式、特殊符号、流程图
在编写文档的过程中,常常遇到输入法无法输入的数学符号,数学公式,还有流程框图等,因此markdown可以作为一个有力的工具。本文将介绍markdown可用的常用语法、数学公式、特殊符号、流程图。
常用语法
1.行内语法
1.1 注释
- HTML注释
<!--哈哈我是注释,不会在浏览器中显示。-->
- hack方法
hack方法是利用markdown的解析原理实现注释的。有的markdown解析器不支持其它的注释方法,可用hack方法。hack方法比上面HTML方法稳定得多,但是语义化太差。
[//]: # (哈哈我是最强注释,不会在浏览器中显示。)
[^_^]: # (哈哈我是最萌注释,不会在浏览器中显示。)
[//]: <> (哈哈我是注释,不会在浏览器中显示。)
[comment]: <> (哈哈我是注释,不会在浏览器中显示。)
1.2 任务列表
- [ ] 任务一 未做任务 `- + 空格 + [ ]`
- [x] 任务二 已做任务 `- + 空格 + [x]`
效果如下:
-
任务一 未做任务
- + 空格 + [ ]
-
任务二 已做任务
- + 空格 + [x]
1.3 对齐方式
<center>行中心对齐</center>
<p align="left">行左对齐</p>
<p align="right">行右对齐</p>
显示效果:
行左对齐
行右对齐
1.4 斜体、粗体、删除线、下划线、背景高亮
*斜体* or _斜体_
**粗体**
***加粗斜体***
~~删除线~~
++下划线++
==背景高亮==
显示效果:
斜体 or 斜体
粗体
加粗斜体删除线
++下划线++
背景高亮
1.5 列表
- 无序列表
使用 *,+,- 表示无序列表。
代码:
* 无序列表项 一
+ 无序列表项 二
- 无序列表项 三
- 无序列表项 一
- 无序列表项 二
- 无序列表项 三
1.6 多级引用
代码:
>>> 三级引用
>> 二级引用
> 一级引用
显示效果:
三级引用
二级引用
一级引用
1.7 转义字符、字体、字号、颜色
-
转义字符
Markdown中的转义字符为\,转义的有: \ 反斜杠 ` 反引号 * 星号 _ 下划线 {} 大括号 [] 中括号 () 小括号 # 井号 + 加号 - 减号 . 英文句号 ! 感叹号。 -
字体、字号、颜色
代码:
<font face="黑体">我是黑体字</font>
<font face="微软雅黑">我是微软雅黑</font>
<font face="STCAIYUN">我是华文彩云</font>
<font color=#0099ff size=5 face="黑体">黑体</font>
<font color=Blue size=5>我是蓝色</font>
<font color=gray size=5>我是灰色</font>
显示效果:
我是黑体字
我是微软雅黑
我是华文彩云
黑体
我是蓝色
我是灰色
1.8 图片
![Alt text](图片链接 "optional title")
Alt text:图片的Alt标签,用来描述图片的关键词,可以不写。
图片链接:可以是图片的本地地址或者是网址。
"optional title":鼠标悬置于图片上会出现的标题文字,可以不写。
2. 块语法
2.1 内容目录
代码:
@[toc] 注意:可以不用@,只输入@后面的内容即可。
显示效果见文首。
2.2 表格
代码:
|学号|姓名|序号|
|-|-|-|
|小明|男|5|
|小红|女|79|
|小刚|男|192|
显示效果:
学号 | 姓名 | 序号 |
---|---|---|
小明 | 男 | 1 |
小红 | 女 | 21 |
小刚 | 男 | 666 |
2.3 LaTeX 公式
- 整行公式
代码:
$$整行公式$$
显示效果:
- 行内公式
$行内公式$
显示效果:
- 块级公式
代码:
$x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a}$
$[\frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\ldots} } } }]$
显示效果:
2.4 分割线
代码:
* * *
***
*****
- - -
-----------
显示效果:
3. 数学公式
3.1 变量上下标
- 上标
$x^2$
⇒ - 下标
$x_i$
⇒ - 上下标
$x_i^2$
⇒
默认情况下,上下标符号仅仅对下一个字符作用。一组字符使用{}包裹起来的内容。例如:$x^{12}_{34}$
⇒ ;${x^5}^6$
⇒ - 左右标
${^1_2}A{^3_4}$
⇒
3.2 公式中的各类括号
- 小括号和方括号:使用初始的()和[]即可
()
⇒ () ;[]
⇒ [] - 大括号:由于大括号{}被用来分组,因此需要使用""转义字符{和}表示大括号。如:
$\{a*b\}$
⇒ 。 - 尖括号:使用
\langle
和\rangle
分别表示左尖括号和右尖括号。如$\langle x \rangle$
⇒ 。 - 上取整:使用
\lceil
和\rceil
表示。如$\lceil x \rceil$
⇒ 。 - 下取整:使用
\lfloor
和\rfloor
表示。如$\lfloor x \rfloor$
⇒ 。
需要注意的是,原始括号并不会随着公式的大小自动缩放。如$(\frac12)$
⇒ 。可以使用\left( …\right)
来自适应的调整括号。如$\left( \frac12 \right)$
⇒ 。可以明显看出,后一组公式中的括号是经过缩放的。
3.3 求和、积分、交并集、累积
\sum
用来表示求和符号,其下标表示求和下限,上标表示上线。如$\sum_1^n$
==。\int
用来表示积分符号,同样地,其上下标表示积分的上下限。如$\int_1^\infty$
==。
与此类似的符号还有:$\prod$
== $\bigcup$
== $\bigcap$
== $\iint$
==
3.3 分式/根式
分式有两种表示方法。
第一种:使用$\frac ab$
,结果为。如果分子或分母不是单个字符,需要使用{}来分组。
第二种:使用\over
来分隔一个组的前后两部分,如${a+1\over b+1}$
== 。
根式使用$\sqrt[a]b$
来表示。其中,方括号内的值用来表示开几次方,省略方括号则表示开方,如$\sqrt[4]{\frac xy}$
== ,$\sqrt{x^3}$
== 。
3.4 特殊字符
名称 | 写法 | 语法 |
---|---|---|
alpha | \alpha | |
beta | \beta | |
gamma | \gamma | |
delta | \delta | |
epsilon | \epsilon | |
zeta | \zeta | |
eta | \eta | |
theta | \theta | |
iota | \iota | |
kappa | \kappa | |
lambda | \lambda | |
mu | \mu | |
nu | \nu | |
xi | \xi | |
omicron | \omicron | |
pi | \pi | |
rho | \rho | |
sigma | \sigma | |
tau | \tau | |
upsilon | \upsilon | |
phi | \phi | |
chi | \chi | |
psi | \psi | |
omega | \omega |
一些符号有大写格式,只需要将语法中第一个字母改为大写。如:\Omega
⇒ ,\omega
⇒ 。
4. 流程图
4.1 横向流程图
```mermaid
graph LR
A[方形] -->B(圆角)
B --> C{条件a}
C -->|a=1| D[结果1]
C -->|a=2| E[结果2]
F[横向流程图]
显示结果:
4.2 竖向流程图
```mermaid
graph LR
A[方形] -->B(圆角)
B --> C{条件a}
C -->|a=1| D[结果1]
C -->|a=2| E[结果2]
F[横向流程图]
显示结果:
4.3标准流程图
```mermaid
flowchat
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?) sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
显示结果:
4.4 标准流程图源码格式(横向)
```mermaid
flowchat
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st(right)->op(right)->cond
cond(yes)->io(bottom)->e
cond(no)->sub1(right)->op
显示结果:
4.5 UML时序图源码样例
```mermaid
sequence
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象A->对象B: 你真的好吗?
显示结果:
4.6 UML时序图源码复杂样例
```mermaid
sequenceDiagram
Title: 标题:复杂使用
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象B->小三: 你好吗
小三-->>对象A: 对象B找我了
对象A->对象B: 你真的好吗?
Note over 小三,对象B: 我们是朋友
participant C Note right of C: 没人陪我玩
显示结果:
4.7 UML标准时序图样例
```mermaid
%% 时序图例子,-> 直线,-->虚线,->>实线箭头
sequenceDiagram
participant 张三
participant 李四
张三->王五: 王五你好吗?
loop 健康检查
王五->王五: 与疾病战斗
end
Note right of 王五: 合理 食物 <br/>看医生...
李四-->>张三: 很好!
王五->李四: 你怎么样?
李四-->王五: 很好!
显示结果:
4.8 甘特图样例
```mermaid
%% 语法示例
gantt
dateFormat YYYY-MM-DD
title 软件开发甘特图
section 设计
需求 :done, des1, 2014-01-06,2014-01-08
原型 :active, des2, 2014-01-09, 3d
UI设计 : des3, after des2, 5d
未来任务 : des4, after des3, 5d
section 开发
学习准备理解需求 :crit, done, 2014-01-06,24h
设计框架 :crit, done, after des2, 2d
开发 :crit, active, 3d
未来任务 :crit, 5d
耍 :2d
section 测试
功能测试 :active, a1, after des3, 3d
压力测试 :after a1 , 20h
测试报告 : 48h
输出结果:(在线的编辑器不支持,下图由typora输出)
参考:
https://www.jianshu.com/p/ebe52d2d468f
https://blog.csdn.net/weixin_42546496/article/details/88115095
https://www.runoob.com/markdown/md-advance.html
上一篇: TensorFlow学习--VGGNet实现&图像识别
下一篇: Django学习笔记——第三天