- 题解
Markdown
- 2023-4-3 13:54:01 @
什么是markdown?
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本 内容具有一定的格式。Markdown的语法简洁明了、学习容易,而且功能比纯文本更强,因此有很多人 用它写博客。
markdown的优点:
- 用编程的方式控制文档的格式和排版,使得格式和排版变得更加容易
- 一键生成目录
- 兼容html
- 支持Latex语法,可以快速的写数学公式
用什么软件编写markdown文件
有很多软件都支持markdown,常用的软件有vscode和typora。
vscode
是微软开发的轻量级的编辑器,可扩展性强,通过安装插件,可以支持各种各样的语言,比如支持C++,C#,python等等.
现在的信息竞赛的noi_linux系统也支持vscode了。
typora
typora是一款轻量化的专门编写markdown的工具,它界面简洁,功能强大,可以实时显示markdown 语言的效果,目前使用非常广泛。
markdown的语法
1. 控制字号
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
效果如下:
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
注意:#后面要带空格。
2. 控制文字样式
* 我是斜体*
** 我是粗体**
~~ 我有删除线~~
<u>我有下划线</u>
==我自带底色,高亮显示==
我是斜体
** 我是粗体**
~~ 我有删除线~~
我有下划线
我自带底色,高亮显示
3. 无序列表和有序列表
- +、-、*均可以表示无序列表,后面需要带一个空格。
+ AKIOI!
效果如下:
- AKIOI!
可以将+号替换成-、*。
- 数字加点号,表示有序列表,点号后面也需要空格
1. 语文
2. 英语
3. 数学
4. 物理
5. 化学
效果如下:
- 语文
- 英语
- 数学
- 物理
- 化学
4. 复选框
- [ ] javascript
- [x] C++
- [ ] python
- [ ] C#
- [x] Java
- [ ] Mysql
效果如下:
- [ ] javascript
- [x] C++
- [ ] python
- [ ] C#
- [x] Java
- [ ] Mysql
5.超链接
[百度](https://www.baidu.com)
[Luogu](https://www.luogu.com.cn/)
效果如下: 百度
6. 插入图片
使用感叹号、中括号和小括号:![]() 其中[]里为图片说明,()中为图片地址
![图片下方文字](图片相对路径或绝对路径)
![NOI](https://cdn.luogu.com.cn/upload/image_hosting/opgitc8q.png)
效果如下:
7. emoji
使用一对冒号,中间加上若干单词,可以表示emoji。 比如冒号中间是smile,表示一个笑脸,冒号中间为computer,表示一台电脑。
:computer:
:man_teacher:
:woman_teacher:
:angry:
:smile:
:laughing:
效果如下:
:computer: :man_teacher: :woman_teacher: :angry: :smile: :laughing:
8. 插入表格
日期 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 周日 |
---|---|---|---|---|---|---|---|
学习 | 编程 | 运动 | 上班 | 健身 | 旅游 | 读书 | 亲子 |
| 我是居中 | 我是左对齐 | 我是右对齐 |
| :----: | :---- | ----: |
|居中|左对齐|右对齐|
效果如下所示:
我是居中 | 我是左对齐 | 我是右对齐 |
---|---|---|
居中 | 左对齐 | 右对齐 |
注意:第一列居中对齐,第二列左对齐,第三列右对齐。默认为左对齐。
9. 插入代码
使用三个斜单引号```
加语言名称,可以插入代码模块,并使代码模块高亮。
```cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
}
```
效果如下所示:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
}
数学公式的编辑
这是重头戏,markdown支持LaTeX,这是有高德纳发明的排版语言,功能非常强大。
LATE**?X 是一种基于 \TeXTE**?X 的排版系统,能够很方便的生成数学公式。
基础知识
行内公式与行间公式
行内公式(即穿插在文本中的公式)两侧分别使用一个美元 $ $
符号定界。
例如 $x \cdot \sin(y)$
显示为
行间公式(即独立成行的公式)两侧分别使用 $$ $$
(每侧两个美元符号)定界,Markdown 代码可以跨行写,例如:
$$ H_n = \sum_{i = 1}^{n} \frac{1}{i} $$
显示为
再例如:
$$
\begin{pmatrix}
1 & 8 & 4 \\
7 & 9 & 2 \\
\end{pmatrix}
$$
显示为
$$\begin{pmatrix} 1 & 8 & 4 \\ 7 & 9 & 2 \\ \end{pmatrix} $$行内公式的 “大小”(例如分数的大小、巨运算符上下标的位置)会比行间公式小,可以通过 \displaystyle
和 \textstyle
来切换两类模式:
对于行内公式,使用 \displaystyle
的效果:
LaTeX 代码 | 显示效果 | |
---|---|---|
\frac{1}{x} |
||
\displaystyle \frac{1}{x} |
||
\int_0^x f(t) \mathop{}\!\mathrm{d} t |
||
\displaystyle \int_0^x f(t) \mathop{}\!\mathrm{d} t |
$\displaystyle \int_0^x f(t) \mathop{}\!\mathrm{d} t$ |
对于行间公式,使用 \textstyle
的效果:
$$ \textstyle \int \frac{\mathop{}\!\mathrm{d} x}{x} = \ln(x) + C $$
显示为
$$\textstyle \int \frac{\mathop{}\!\mathrm{d} x}{x} = \ln(x) + C $$LaTeX 控制序列的概念(类似于函数)
控制序列可以视作为命令:以 \
开头,参数:必需参数 {}
和可选参数 []
。
控制序列可以实现特定功能,例如 \sin x
显示为 、\Omega \omega
显示为 、\color{red} x
显示为 、\mathbb{Q}
显示为 、\sqrt[5]{x}
显示为 。
LaTeX 环境的概念
环境的格式为 \begin{环境名} 环境内部 \end{环境名}
,即 \begin
和 \end
以及它们中间的部分。
环境有比控制序列更加灵活的用法,例如:
\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}
显示为
而
f(x) = \begin{cases}
2 & x \in \mathbb Q \\
1 & x \notin \mathbb Q \land x \in \mathbb A \\
0 & x \notin \mathbb A
\end{cases}
显示为
$$f(x) = \begin{cases} 2 & x \in \mathbb Q \\ 1 & x \notin \mathbb Q \land x \in \mathbb A \\ 0 & x \notin \mathbb A \end{cases} $$基本语法
二元关系 / 运算符
二元关系符:
LaTeX 代码: | x = y |
x > y |
x < y |
x \ge y |
x \le y |
|||||
---|---|---|---|---|---|---|---|---|---|---|
显示效果: | ||||||||||
LaTeX 代码: | x \perp y |
x \parallel y |
x \mid y |
x \nparallel y |
x \nmid y |
|||||
显示效果: | ||||||||||
LaTeX 代码: | x \approx y |
x \in y |
x \ni y |
x \ne y |
x \sim y |
|||||
显示效果: |
二元运算符:
LaTeX 代码: | x + y |
x - y |
x \times y |
x \div y |
x \cdot y |
x \bmod y |
||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
显示效果: | ||||||||||||
LaTeX 代码: | x \circ y |
x * y |
x \ast y |
x / y |
x \oplus y |
x \otimes y |
||||||
显示效果: | ||||||||||||
LaTeX 代码: | x \cup y |
x \cap y |
x \land y |
x \lor y |
x \pm y |
x \mp y |
||||||
显示效果: |
上标与下标
上标命令是 ^{角标}
,下标命令是 _{角标}
。当角标是单个字符时可以不用花括号(在 LaTeX 中,花括号是用于分组,即花括号内部文本为一组)。
例:x_1
、x^2
、x_1^2
、x^2_1
、x_{22}^{(n)}
、{}^*\!x^*
的显示效果分别为:
LaTeX 代码: | $$ | x_1 |
$$ | x^2 |
$$ | x_1^2 |
$$ | x^2_1 |
$$ | x_{22}^{(n)} |
$$ | {}^*\!x^* |
---|---|---|---|---|---|---|---|---|---|---|---|---|
显示效果: | ? | ? |
分式
输入较短的分式时,最简单的方法是使用斜线,譬如输入 $(x + y) / 2$
,可得到 。
要输入带有水平分数线的公式,可用命令:\frac{分子}{分母}
。
LaTeX 代码 | 显示效果 | |
---|---|---|
\frac{x + y}{2} |
||
\frac{1}{1 + \frac{1}{2}} |
根式
排版根式的命令是:开平方:\sqrt{表达式}
;开 nn 次方:\sqrt[n]{表达式}
。
LaTeX 代码 | $$ | 显示效果 |
---|---|---|
\sqrt{2} < \sqrt[3]{3} |
||
\sqrt{1 + \sqrt[p]{1 + a^2}} |
求和与积分
排版求和符号与积分符号的命令分别为 \sum
和 \int
,它们通常都有上下限,在排版上就是上标和下标。
LaTeX 代码 | 显示效果 | |
---|---|---|
\sum_{k = 1}^{n} \frac{1}{k} |
? | |
\sum_{k = 1}^n \frac{1}{k} |
||
\int_a^b f(x) d x |
||
\int_a^b f(x) \mathop{} \! \mathrm{d} x |
公式中的空格
LaTeX 能够自动处理公式中的大多数字符之间的空格,但是有时候需要自己手动进行控制。除了常见的几个空格命令外,可以通过 \hspace{长度}
自定义空格长度。
LaTeX 代码 | 显示效果 | |
---|---|---|
\Box \! \Box |
\Box \! \Box**□**□ | |
\Box \Box |
\Box \Box**□**□ | |
\Box \, \Box |
\Box \, \Box**□**□ | |
\Box \: \Box |
\Box \: \Box**□**□ | |
\Box \; \Box |
\Box \; \Box**□**□ | |
\Box \ \Box |
\Box \ \Box**□** □ | |
\Box \quad \Box |
\Box \quad \Box**□**□ | |
\Box \qquad \Box |
\Box \qquad \Box**□**□ | |
\Box \hspace{1cm} \Box |
\Box \hspace{1cm} \Box**□**□ | |
\Box \hspace{1.5cm} \Box |
\Box \hspace{1.5cm} \Box**□**□ | |
\Box \hspace{2cm} \Box |
\Box \hspace{2cm} \Box**□**□ | |
\Box \Box |
\Box \Box**□**□ | |
\Box \hspace{-.1cm} \Box |
\Box \hspace{-0.1cm} \Box**□**□ | |
\Box \hspace{-.2cm} \Box |
\Box \hspace{-0.2cm} \Box**□**□ | |
\Box \hspace{-.3cm} \Box |
\Box \hspace{-0.3cm} \Box**□**□ | |
\Box \hspace{-.4cm} \Box |
\Box \hspace{-0.4cm} \Box**□**□ |
插入文本
在公式中插入文本可以通过 \text{文字}
在公式中添加文字,比如:
\text{对任意的 } x > 0 \text{,有 } f(x) > 0 \text{。}
显示为
。
多行的数学公式
使用 aligned
环境对齐多行公式。
\begin{aligned}
\cos(2 \theta) &= \cos^2(\theta) - \sin^2(\theta) \\
&= 2 \cos^2(\theta) - 1
\end{aligned}
显示为
$\begin{aligned} \cos(2 \theta) &= \cos^2(\theta) - \sin^2(\theta) \ &= 2 \cos^2(\theta) - 1 \end{aligned}$
字体、字号与颜色
字体
对于英文的字体,LaTeX 给出了三个层级,其中 KaTeX 支持的有:
- 族(family):有罗马(roman)、无衬线(sans-serif)、打字机(teletype)三族,改变字体的基本外观。
- 形状(shape):有直立(upright)、意大利(italic)两种形状。
- 重量(weight):有中等(medium)、粗体(boldface)两种重量。
在某些时候,KaTeX 允许这些层级叠加使用:
直立中等 | 意大利中等 | 直立粗体 | 意大利粗体 | ||||||
---|---|---|---|---|---|---|---|---|---|
\textup{\textmd |
\textit{\textmd |
\textup{\textbf |
\textit{\textbf |
||||||
罗马 | \textrm |
||||||||
无衬线 | \textsf |
不可用 | |||||||
打字机 | \texttt |
不可用 |
在文本模式下(即 \text
内部),默认情况下,族使用罗马、形状使用直立、重量使用中等。
在数学模式下(即 KaTeX 的默认),默认情况下,族使用罗马、形状使用意大利、重量使用中等。
特别地,在数学模式下,提供了 \mathbb
、\mathcal
、\mathscr
和 \mathfrak
以供特殊数学字体使用:
\mathbb
: 和 。
\mathcal
:和 。
\mathscr
:。
\mathfrak
:$\begin{aligned} & \mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \ & \mathfrak{abcdefghijklmnopqrstuvwxyz \ 0123456789} \end{aligned}$。
前文的改变字体的命令对这些特殊字体无效。
对于中文,我们有:
直立中等 | 意大利中等 | 直立粗体 | 意大利粗体 | ||||||
---|---|---|---|---|---|---|---|---|---|
\textup{\textmd |
\textit{\textmd |
\textup{\textbf |
\textit{\textbf |
||||||
默认 | 无 | ||||||||
罗马 | \textrm |
对于中文,族设置为无衬线或打字机时,要么不可用,要么与设置为罗马时无区别。 可以看出,族默认时是宋体,族为罗马时是黑体。
字号
LaTeX 内置了从大到小的下列字号:
\Huge |
\normalsize |
||
---|---|---|---|
\huge |
\small |
\small \sum_{i = 1}^{n} \frac{1}{i}$ | |
\LARGE |
\footnotesize |
\footnotesize \sum_{i = 1}^{n} \frac{1}{i}$ | |
\Large |
\scriptsize |
\scriptsize \sum_{i = 1}^{n} \frac{1}{i}$ | |
\large |
\tiny |
\tiny \sum_{i = 1}^{n} \frac{1}{i}$ |
颜色
可以通过 {\color{颜色} 文字或公式}
或 \textcolor{颜色}{文字或公式}
改变字体颜色。例如:
a + {\color{red} a + {}} a
显示为 。
a + \textcolor{red}{a + {}} a
显示为 。
a + {\color{#22AB22} a + {}} a
显示为 。
a + \textcolor{#22AB22}{a + {}} a
显示为 。