6 Markdown

6.1 简介

Markdown格式是John Gruber于2004年创造的, Markdown 的目标是实现“易读易写”。 Markdown定义了一种简单好用的文本文件格式, 作为单独的文本文件, 此格式没有什么多余的标签, 又可以转化为很多其它的格式。

Markdown 的语法全由一些符号所组成, 这些符号经过精挑细选,其作用一目了然。 比如:在文字两旁加上星号,看起来就像强调。 Markdown 的列表看起来就像我们平常在邮件中写一个列表的方法。 Markdown 的区块引用看起来就真的像是引用一段文字, 就像你曾在电子邮件中见过的那样。

需要时, 可以直接在markdown中写HTML标记内容。 markdown能实现的功能是HTML的一部分, 但是比HTML内容更干净, 没有掺杂过多的与要表达的意思无关的标签。 Markdown的理念是,能让文档更容易读、写和随意改。

6.2 行内格式

6.2.1 强调、上下标和行内代码

斜体:用星号或下划线包围的内容,如*斜体*_斜体_斜体格式。

粗体:一对双星号,如**粗体**粗体格式。 星号、下划线与要强调或加重的内容之间不要空开, 否则会当作普通星号或下划线解释, 在行首还会当作列表。 为了插入普通的星号或下划线,可以使用反斜杠保护, 或者写成段内代码格式。

上下标:一对~是下标,如HO~2~会变成HO2。一对^是上标,如Cu^2+^会变成Cu2+。但是,数学公式一般还是应该使用LaTeX数学公式形式。

标记文本为行内代码,请使用一对反引号,例如`code`会被渲染为code 。要包含n个反引号,请在外部至少使用n + 1个反引号,例如,可以使用四个反引号来保留内部的三个反引号:```` ```code``` ````会被渲染为 ```code```

6.2.2 超链接

(1) 原样显示的可点击的链接

只要把链接地址用小于号和大于号包在中间。 如果是网页,需要加http://, 如果是邮箱,需要加mailto:。 例如,如下代码:

刘卢路网页地址是: <https://www.liululu.net/>

显示为:刘卢路的网页地址是: https://www.liululu.net/

(2) 行内式

外部链接:

请参考[刘卢路的主页](https://www.liululu.net/)

显示为:请参考刘卢路的主页

内部链接

用于文内跳转

在各级标题行的末尾, 可以添加{#自定义标签}这样的内容, 其中“自定义标签”是自己写的一个标识符, 标识符仅使用英文字母、数字、下划线、减号, 用来区分不同的位置。

比如,本章第一节“简介”添加了markdown-intro为标签, 就可以用“[回到介绍](#markdown-intro)”产生链接回到介绍

(3) 引用式

使用引用式的链接, 有些像论文中把所有参考文献排列在文章末尾, 文中用到某一篇文献只要提及其序号。

[liululu]: http://liululu.net/ "刘卢路"

此时文章可以使用[刘卢路的网站][liululu]将链接变成刘卢路的网站

6.2.4 换行空格

为了排版诗、词之类的内容, 希望人为控制换行和引导空格, 可以使用|

| 枯藤老树昏鸦,
|   小桥流水人家,
|   古道西风瘦马。
| 夕阳西下,
|   断肠人在天涯。
枯藤老树昏鸦,
  小桥流水人家,
  古道西风瘦马。
夕阳西下,
  断肠人在天涯。

6.3 块级元素

6.3.1 代码块

普通代码块可以写在三个或更多的反引号```之后,你也可以将代码块缩进四个空格,例如:

```
x <- rnorm(100)
hist(x)
```
或者缩进四个空格:
    x <- rnorm(100)
    hist(x)

6.3.2 标题

标题写在井号#之后。

# 一级标题

## 二级标题

### 三级标题

如果不希望对某个标题进行编号,可以添加{-}{.unnumbered},例如。

# 不标号的二级标题 {-}

6.3.3 分割线

三个或三个以上连续的星号***组成的行, 可以转换成分隔线


6.3.4 块级元素引用(段落引用)

可以用类似Email的回复包含原始邮件内容的办法输入引用段落, 即,在段落的每行前面加一个大于号>

> 白日依山尽,黄河入海流。
> 欲穷千里目,更上一层楼。

注意引用也是段落模式,内容中的换行不起作用,空行导致分段。引用段落也可以仅在段落第一行写大于号, 其它行顶格写,例如下面的两段引用:

> 白日依山尽,黄河入海流。
>
> 欲穷千里目,更上一层楼。

白日依山尽,黄河入海流。

欲穷千里目,更上一层楼。

引用也可以嵌套,如:

> 张三说:李四这样说过
>
>> 不想当将军的木匠不是好厨子。
>

张三说:李四这样说过

不想当将军的木匠不是好厨子。

6.3.5 列表

(1) 无序列表

无序列表以*,-, 或+开始,还通过缩进子列表来嵌套列表。

- one item
- one item
- one item
    + one more item
    + one more item
    + one more item

显示为:

  • one item
  • one item
  • one item
    • one more item
    • one more item
    • one more item

(2) 有序列表

有序列表以数字开头(同样可以在列表中嵌套列表),例如。

1. the first item
2. the second item
3. the third item
    - one unordered item
    - one unordered item

显示为:

  1. the first item
  2. the second item
  3. the third item
    • one unordered item
    • one unordered item

6.4 行内块元素

6.4.1 图片

基础语法

![Alt text](图片链接 "optional title")

Alt text:图片的Alt标签,用来描述图片的关键词,可以不写。最初的本意是当图片因为某种原因不能被显示时而出现的替代文字,后来又被用于SEO,可以方便搜索引擎根据Alt text里面的关键词搜索到图片。

图片链接:可以是图片的本地地址或者是网址。

“optional title”:鼠标悬置于图片上会出现的标题文字,可以不写。

(1) 网页图片

![](http://www.baidu.com/img/baidu_jgylogo3.gif)

结果为

(2) 本地图片

只需要在基础语法的括号中填入图片的位置路径即可,支持绝对路径和相对路径。缺点是不灵活不好分享,本地图片的路径更改或丢失都会造成markdown文件调不出图。

![avatar](fig/4/04-02-01.jpg)
avatar
avatar

(3) 引用式插入

[baidu]: http://www.baidu.com/img/baidu_jgylogo3.gif

![百度][baidu]
百度
百度

6.5 数学公式

6.5.1 Markdown如何显示数学公式

原始的Markdown格式并不支持数学公式。 Pandoc扩展的markdown格式提供了对数学公式的支持, 可以在Markdown文件中插入LaTeX格式的数学公式。 虽然不能提供所有的LaTeX公式能力, 但是常用的数学公式还是能做得很好, 转换到HTML、docx都可以得到正常显示的公式。

用RStudio软件编译Markdown文件, 可以在其中插入LaTeX格式的数学公式, 数学公式可以在编辑器内部显示预览, 编译成HTML或者docx格式后都可以正常显示数学公式, HTML结果可以直接利用RStudio内部的浏览器预览, 在另外安装的LaTeX编译器的支持下也可以将.Rmd格式编译LaTeX格式然后再转换为PDF格式, 这种基于LaTeX的方法对数学公式的支持会更完善。

6.5.2 公式编号

利用\tag

$$
a^2+b^2=c^2 \tag{1.1}
$$

(1.1)a2+b2=c2

6.5.3 数学公式的类别

数学公式公式分为行内公式和独立公式。

行内使用LaTeX语法,写在两个美元符号$中间,或者\(\)之间。例如$f(x)=\frac{1}{2} \int_0^1 \sin^2 (t x) dt$会变成f(x)=1201sin2(tx)dt。开头和结尾的$后面不能在空格后面。

独立公式写在成对的美元符号中间,或者\[\]之间。 例如:

$$
  f(x) = \frac{1}{2} \sum_{j=1}^\infty \int_0^1 \sin^2(j t x) dt .
$$

f(x)=12j=101sin2(jtx)dt.

6.5.4 上横线

(1)overline

$$
\overline {X} 
$$

X¯

(2)bar

$$
\bar {X} 
$$

X¯

6.5.5 hat

$$
\overline {Y} 
$$

Y¯

6.5.6 换行对齐

\begin{aligned}\end{aligned}

$$
\begin{aligned}
L(\mu,\sigma)&=\prod_{i=1}^{n} f(x_i,\mu,\sigma) \\
&=\prod_{i=1}^{n} \frac{1}{\sqrt{2 \pi}\sigma} e ^{- \frac{(x-\mu)^{2}}{2\sigma^2}} \\
& = (\frac{1}{\sqrt{2 \pi} \sigma})^n - \sum_{i=1}^n \frac{(x_i-\mu)^2}{2\sigma^2}
\end{aligned}
$$

L(μ,σ)=i=1nf(xi,μ,σ)=i=1n12πσe(xμ)22σ2=(12πσ)ni=1n(xiμ)22σ2

6.5.7 分段函数

\begin{cases}\end{cases}

$$
f(x)=
\begin{cases}
\lambda e^{-\lambda x}, & x>0\\
0,  & x\le0  
\end{cases}
$$

f(x)={λeλx,x>00,x0