什么是markdown?

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本 内容具有一定的格式。Markdown的语法简洁明了、学习容易,而且功能比纯文本更强,因此有很多人 用它写博客。

markdown的优点:

  1. 用编程的方式控制文档的格式和排版,使得格式和排版变得更加容易
  2. 一键生成目录
  3. 兼容html
  4. 支持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. 化学

效果如下:

  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/)

效果如下: 百度

Luogu

6. 插入图片

使用感叹号、中括号和小括号:![]() 其中[]里为图片说明,()中为图片地址

![图片下方文字](图片相对路径或绝对路径)

![NOI](https://cdn.luogu.com.cn/upload/image_hosting/opgitc8q.png)

效果如下:

NOI

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)$ 显示为 xsin(y)x \cdot \sin(y)

行间公式(即独立成行的公式)两侧分别使用 $$ $$(每侧两个美元符号)定界,Markdown 代码可以跨行写,例如:

$$ H_n = \sum_{i = 1}^{n} \frac{1}{i} $$

显示为

Hn=i=1n1iH_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} 1x\frac{1}{x}
\displaystyle \frac{1}{x} 1x\displaystyle \frac{1}{x}
\int_0^x f(t) \mathop{}\!\mathrm{d} t 0xf(t) ⁣dt\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 显示为 sinx\sin x\Omega \omega 显示为 Ωω\Omega \omega\color{red} x 显示为 x\color{red} x\mathbb{Q} 显示为 Q\mathbb{Q}\sqrt[5]{x} 显示为 x5\sqrt[5]{x}

LaTeX 环境的概念

环境的格式为 \begin{环境名} 环境内部 \end{环境名},即 \begin\end 以及它们中间的部分。

环境有比控制序列更加灵活的用法,例如:

\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}

显示为

[1234]\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 代码: \hspace{.4em} x = y \hspace{.4em} x > y \hspace{.4em} x < y \hspace{.4em} x \ge y \hspace{.4em} x \le y
显示效果: x=yx = y x>yx > y x<yx < y xyx \ge y xyx \le y
LaTeX 代码: x \perp y x \parallel y x \mid y x \nparallel y x \nmid y
显示效果: xyx \perp y xyx \parallel y xyx \mid y xyx \nparallel y xyx \nmid y
LaTeX 代码: x \approx y x \in y x \ni y x \ne y x \sim y
显示效果: xyx \approx y xyx \in y xyx \ni y xyx \ne y xyx \sim y

二元运算符:

LaTeX 代码: \hspace{.4em} x + y \hspace{.4em} x - y \hspace{.4em} x \times y \hspace{.4em} x \div y \hspace{.4em} x \cdot y \hspace{.4em} x \bmod y
显示效果: x+yx + y xyx - y x×yx \times y x÷yx \div y xyx \cdot y xmodyx \bmod y
LaTeX 代码: x \circ y x * y x \ast y x / y x \oplus y x \otimes y
显示效果: xyx \circ y xyx * y xyx\ast y x/yx / y xyx \oplus y xyx \otimes y
LaTeX 代码: x \cup y x \cap y x \land y x \lor y x \pm y x \mp y
显示效果: xyx \cup y xyx \cap y xyx \land y xyx \lor y x±yx \pm y xyx \mp y

上标与下标

上标命令是 ^{角标},下标命令是 _{角标}。当角标是单个字符时可以不用花括号(在 LaTeX 中,花括号是用于分组,即花括号内部文本为一组)。

例:x_1x^2x_1^2x^2_1x_{22}^{(n)}{}^*\!x^* 的显示效果分别为:

LaTeX 代码: $$ x_1 $$ x^2 $$ x_1^2 $$ x^2_1 $$ x_{22}^{(n)} $$ {}^*\!x^*
显示效果: x_1x\_1 x2x^2 x_12x\_1^2? x2_1x^2\_1? x_22(n)x\_{22}^{(n)} x22(n)x_{22}^{(n)}

分式

输入较短的分式时,最简单的方法是使用斜线,譬如输入 $(x + y) / 2$,可得到 (x+y)/2(x + y) / 2

要输入带有水平分数线的公式,可用命令:\frac{分子}{分母}

LaTeX 代码 显示效果
\frac{x + y}{2} x+y2\frac{x + y}{2}
\frac{1}{1 + \frac{1}{2}} 11+12\frac{1}{1 + \frac{1}{2}}

根式

排版根式的命令是:开平方:\sqrt{表达式};开 nn 次方:\sqrt[n]{表达式}

LaTeX 代码 $$ 显示效果
\sqrt{2} < \sqrt[3]{3} 2<33\sqrt{2} < \sqrt[3]{3}
\sqrt{1 + \sqrt[p]{1 + a^2}} 1+1+a2p\sqrt{1 + \sqrt[p]{1 + a^2}}

求和与积分

排版求和符号与积分符号的命令分别为 \sum\int,它们通常都有上下限,在排版上就是上标和下标。

LaTeX 代码 显示效果
\sum_{k = 1}^{n} \frac{1}{k} k=1n1k\sum_{k = 1}^{n} \frac{1}{k}?
\sum_{k = 1}^n \frac{1}{k} k=1n1k\sum_{k = 1}^n \frac{1}{k}
\int_a^b f(x) d x abf(x)dx\int_a^b f(x) d x
\int_a^b f(x) \mathop{} \! \mathrm{d} x abf(x) ⁣dx\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{。}

显示为

对任意的 x>0,有 f(x)>0\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 支持的有:

  1. 族(family):有罗马(roman)、无衬线(sans-serif)、打字机(teletype)三族,改变字体的基本外观。
  2. 形状(shape):有直立(upright)、意大利(italic)两种形状。
  3. 重量(weight):有中等(medium)、粗体(boldface)两种重量。

在某些时候,KaTeX 允许这些层级叠加使用:

直立中等 意大利中等 直立粗体 意大利粗体
\textup{\textmd \textit{\textmd \textup{\textbf \textit{\textbf
罗马 \textrm Butterfly96\textup{\textmd{\textrm{Butterfly96}}} Butterfly96\textit{\textmd{\textrm{Butterfly96}}} Butterfly96\textup{\textbf{\textrm{Butterfly96}}} Butterfly96\textit{\textbf{\textrm{Butterfly96}}}
无衬线 \textsf Butterfly96\textup{\textmd{\textsf{Butterfly96}}} Butterfly96\textit{\textmd{\textsf{Butterfly96}}} Butterfly96\textup{\textbf{\textsf{Butterfly96}}} 不可用
打字机 \texttt Butterfly96\textup{\textmd{\texttt{Butterfly96}}} Butterfly96\textit{\textmd{\texttt{Butterfly96}}} 不可用

在文本模式下(即 \text 内部),默认情况下,族使用罗马、形状使用直立、重量使用中等。

在数学模式下(即 KaTeX 的默认),默认情况下,族使用罗马、形状使用意大利、重量使用中等。

特别地,在数学模式下,提供了 \mathbb\mathcal\mathscr\mathfrak 以供特殊数学字体使用:

\mathbbABCDEFGHIJKLMNOPQRSTUVWXYZ\mathbb{ABCDEFGHIJKLMNOPQRSTUVWXYZ}k\mathbb{k}

\mathcalABCDEFGHIJKLMNOPQRSTUVWXYZ\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}0123456789\mathcal{0123456789}

\mathscrABCDEFGHIJKLMNOPQRSTUVWXYZ\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}

\mathfrak:$\begin{aligned} & \mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \ & \mathfrak{abcdefghijklmnopqrstuvwxyz \ 0123456789} \end{aligned}$。

前文的改变字体的命令对这些特殊字体无效。

对于中文,我们有:

直立中等 意大利中等 直立粗体 意大利粗体
\textup{\textmd \textit{\textmd \textup{\textbf \textit{\textbf
默认 你好,世界!\textup{\textmd{你好,世界!}} 你好,世界!\textit{\textmd{你好,世界!}} 你好,世界!\textup{\textbf{你好,世界!}} 你好,世界!\textit{\textbf{你好,世界!}}
罗马 \textrm 你好,世界!\textup{\textmd{\textrm{你好,世界!}}} 你好,世界!\textit{\textmd{\textrm{你好,世界!}}} 你好,世界!\textup{\textbf{\textrm{你好,世界!}}} 你好,世界!\textit{\textbf{\textrm{你好,世界!}}}

对于中文,族设置为无衬线或打字机时,要么不可用,要么与设置为罗马时无区别。 可以看出,族默认时是宋体,族为罗马时是黑体。

字号

LaTeX 内置了从大到小的下列字号:

\Huge _i=1n1i\Huge \sum\_{i = 1}^{n} \frac{1}{i} \normalsize _i=1n1i\normalsize \sum\_{i = 1}^{n} \frac{1}{i}
\huge _i=1n1i\huge \sum\_{i = 1}^{n} \frac{1}{i} \small \small \sum_{i = 1}^{n} \frac{1}{i}$
\LARGE _i=1n1i\LARGE \sum\_{i = 1}^{n} \frac{1}{i} \footnotesize \footnotesize \sum_{i = 1}^{n} \frac{1}{i}$
\Large _i=1n1i\Large \sum\_{i = 1}^{n} \frac{1}{i} \scriptsize \scriptsize \sum_{i = 1}^{n} \frac{1}{i}$
\large _i=1n1i\large \sum\_{i = 1}^{n} \frac{1}{i} \tiny \tiny \sum_{i = 1}^{n} \frac{1}{i}$

颜色

可以通过 {\color{颜色} 文字或公式}\textcolor{颜色}{文字或公式} 改变字体颜色。例如:

a + {\color{red} a + {}} a 显示为 a+a+a + {\color{red} a + {}}a + \textcolor{red}{a + {}} a 显示为 a+a+a + \textcolor{red}{a + {}}a + {\color{#22AB22} a + {}} a 显示为 a+a+a + {\color{#22AB22} a + {}}a + \textcolor{#22AB22}{a + {}} a 显示为 a+a+aa + \textcolor{#22AB22}{a + {}} a

0 条评论

目前还没有评论...