Chapter 1 Markdown

首先从Markdown的基础语法开始.

1.1 Markdown语法

markdown语法一般是使用符号转变为特殊格式.这样,看起来markdown文件都是plain text(纯文本),但是渲染之后,就可以得到特殊格式的文件了.

很多语法没有必要记住,只需要记住大概常用的几个就好,遇到不会的,直接google就可以.

1.2 标题 (Header)

Markdown一共支持六级标题.

语法:

1.3 图片 (Image)

注意#和文字之间一定要空格.

插入图片的基本语法:

比如使用下面语句:

这种插入图片的办法,不能设置图片的大小,如果想要设置图片大小,可以使用HTML语法(img标签)插入,markdown是支持HTML语法的.

shenxiaotao

HTML img标签还有很多的其他功能,比如对齐等.

常用的一些参数:

属性 描述
alt 图像替代文本
src 图片链接或者本地地址
height 图片高度,单位可以是%或者pixel
weight 图片宽度,单位可以是%或者pixel
weight 图片宽度,单位可以是%或者pixel
align 图片位置,只支持left或者right

图片默认是靠左对齐.如果想要居中,很奇怪不能使用<img>标签,需要使用<p>标签.也就是段落.

shenxiaotao

1.5 强调 (Emphasize)

强调包括斜体,高亮,加粗等等.

  • 斜体

语法如下:

这是斜体

这也是斜体

  • 加粗

语法如下:

这是粗体

这也是粗体

  • 加粗和斜体

语法如下:

这是粗体也是斜体

这是粗体也是斜体

  • 删除线

语法如下:

删除这句话

  • 其他可以使用HTML语法实现的强调

Markdown只有以上几种强调的用法,使用HTML可以实现一些其他的内容.比如字体颜色等.

字体颜色可以使用<font>标签实现.

比如我们想用红色字体.

这段话使用红色字体.

<font>标签常用属性:

属性 描述
color 颜色
face 字体
size 字体大小

1.6 引用(Blockquotes)

语法:

这是一句引用

语法:

这是一段引用
这是一段引用

1.7 代码块 (Code chunks)

  • 单独代码

语法:

最后渲染结果为:

如果是使用Rmarkdown,还可以直接让代码运行出现结果.

语法:

Rmarkdown中代码块中有很多内容可以设置.

  • 行内代码

比如:

行内代码可以用来强调某个部分.

当然,在rmakdown中,代码块是可以运行的,所以行内代码也可以运行得到结果.

比如:

There were 50 cars studied

1.8 水平线 (Horizontal rule)

语法:

这是一条水平线.


这也是一条水平线.


1.9 列表 (List)

  • 有序列表 (Ordered list)

直接使用数字即可

语法:

  1. Item 1

  2. Item 2

  3. Item 3

  • 无序列表 (Unordered list)

无需列表可以使用*或者-来创建.

语法:

  • Item 1
  • Item 2
    • Item 2.1
    • Item 2.2
  • Item 3

语法:

  • Item 1
  • Item 2
    • Item 2.1
    • Item 2.2
  • Item 3

  • 任务列表 (Task list)

有的markdown编辑器是支持任务列表的,比如github,但是有些也不支持.比如rmakdown就是不支持的(本书就是用rmakrdown写的).

语法:

  • [x] Write the press release
  • [ ] Update the website
  • [ ] Contact the media

1.10 表格 (Tables)

原生态的markdown表格语法非常简单.

语法:

First name Last name Sex
Xiaotao Shen Male
Chuchu Wang Female

Rmarkdown可以使用函数来插入表格.

  • DT

语法:

  • knitr

语法:

Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
4.6 3.1 1.5 0.2 setosa
5.0 3.6 1.4 0.2 setosa
5.4 3.9 1.7 0.4 setosa

1.11 段落

markdown中对于段落的控制比较少,如果需要对段落进行修饰,比如对齐,段间距等等,需要使用HTML<p>标签进行设置.

  • 对齐

对齐是<p>标签中的align属性.

  1. 左对齐

Markdown is a lightweight markup language with plain-text-formatting syntax. Its design allows it to be converted to many output formats, but the original tool by the same name only supports HTML.[9] Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor.

  1. 右对齐

Markdown is a lightweight markup language with plain-text-formatting syntax. Its design allows it to be converted to many output formats, but the original tool by the same name only supports HTML.[9] Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor.

  1. 居中对齐

Markdown is a lightweight markup language with plain-text-formatting syntax. Its design allows it to be converted to many output formats, but the original tool by the same name only supports HTML.[9] Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor.

  1. 两端对齐

Markdown is a lightweight markup language with plain-text-formatting syntax. Its design allows it to be converted to many output formats, but the original tool by the same name only supports HTML.[9] Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor.

  • 行间距

使用<p>标签的style属性进行设置.

line-height设置为300%相当于是三倍行距.

Markdown is a lightweight markup language with plain-text-formatting syntax. Its design allows it to be converted to many output formats, but the original tool by the same name only supports HTML.[9] Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor.

1.12 插入icon

可以插入符号工具包Font Awesome.一般的markdown编辑器都已经支持直接使用HTML插入icon.

比如插入微信图标:

如果不支持,可以在markdown的最底端插入下面的代码:

当然也可以使用HTML的<a>标签让icon绑定一个超链接.

1.13 数学公式 (Equations)

Markdown可以方便插入数学公式.

1.13.1 行内和行外

如果是将公式插入到行内,使用$公式$.

如果是将公式单独出来,使用$$公式$$.

1.13.2 上标和下标

  1. 上标^

比如:$x^4$:\(x^4\).

比如:$x^{42}$:\(x^{42}\).

  1. 下标_

比如:$x_2$:\(x_2\)

1.13.3 占位符

  1. 空格

单个空格:\quad.

比如:$x\quady$: \(x \quad y\)

两个个空格:\qquad.

比如:$x\qquady$: \(x \qquad y\)

  1. 大空格

符号:\

比如:$x\y$:\(x\ y\).

  1. 中空格

符号:\:

比如:$x\:y$:\(x\: y\).

  1. 小空格

符号:\,

比如:$x\,y$:\(x\, y\).

  1. 紧贴

符号:\!

比如:$x\!y$:\(x\! y\).

1.13.4 四则运算

  1. 平均数运算

符号:\overline{算式},如:$\overline{xyz}$:\(\overline{xyz}\)

  1. 开二次方运算,符号:\sqrt,如:$\sqrt x$:\(\sqrt x\)

  2. 开方运算,符号:\sqrt[开方数]{被开方数},如:$\sqrt[3]{x+y}$:\(\sqrt[3]{x+y}\)

  3. 对数运算,符号:\log,如:$\log(x)$:\(\log(x)\).

  4. 极限运算,符号:\lim,如:$\lim^{x \to \infty}_{y \to 0}{\frac{x}{y}}$:\(\lim^{x \to \infty}_{y \to 0}{\frac{x}{y}}\)

  5. 极限运算,符号:\displaystyle \lim,如:$\displaystyle \lim^{x \to \infty}_{y \to 0}{\frac{x}{y}}$:\(\displaystyle \lim^{x \to \infty}_{y \to 0}{\frac{x}{y}}\)

  6. 求和运算,符号:\sum,如:$\sum^{x \to \infty}_{y \to 0}{\frac{x}{y}}$:\(\sum^{x \to \infty}_{y \to 0}{\frac{x}{y}}\)

  7. 求和运算,符号:\displaystyle \sum,如:$\displaystyle \sum^{x \to \infty}_{y \to 0}{\frac{x}{y}}$:\(\displaystyle \sum^{x \to \infty}_{y \to 0}{\frac{x}{y}}\)

  8. 积分运算,符号:\int,如:$\int^{\infty}_{0}{xdx}$:\(\int^{\infty}_{0}{xdx}\)

  9. 积分运算,符号:\displaystyle \int,如:$\displaystyle \int^{\infty}_{0}{xdx}$:\(\displaystyle \int^{\infty}_{0}{xdx}\)

  10. 微分运算,符号:\partial,如:$\frac{\partial x}{\partial y}$:\(\frac{\partial x}{\partial y}\)

  11. 矩阵表示,符号:\begin{matrix} \end{matrix},如:$\left[ \begin{matrix} 1 &2 &\cdots &4\5 &6 &\cdots &8\\vdots &\vdots &\ddots &\vdots\13 &14 &\cdots &16\end{matrix} \right]$\(\left[ \begin{matrix} 1 &2 &\cdots &4\5 &6 &\cdots &8\\vdots &\vdots &\ddots &\vdots\13 &14 &\cdots &16\end{matrix} \right]\)

1.13.5 集合运算

  1. 属于运算,符号:\in,如:$x \in y$\(x \in y\)

  2. 不属于运算,符号:\notin,如:$x \notin y$:\(x \notin y\)

  3. 不属于运算,符号:\not\in,如:$x \not\in y$\(x \not\in y\)

  4. 子集运算,符号:\subset,如:$x \subset y$\(x \subset y\)

  5. 子集运算,符号:\supset,如:$x \supset y$\(x \supset y\)

  6. 真子集运算,符号:\subseteq,如:$x \subseteq y$\(x \subseteq y\)

  7. 非真子集运算,符号:\subsetneq,如:$x \subsetneq y$\(x \subsetneq y\)

  8. 真子集运算,符号:\supseteq,如:$x \supseteq y$\(x \supseteq y\)

  9. 非真子集运算,符号:\supsetneq,如:$x \supsetneq y$\(x \supsetneq y\)

  10. 非子集运算,符号:\not\subset,如:$x \not\subset y$\(x \not\subset y\)

  11. 非子集运算,符号:\not\supset,如:$x \not\supset y$\(x \not\supset y\)

  12. 并集运算,符号:\cup,如:$x \cup y$\(x \cup y\)

  13. 交集运算,符号:\cap,如:$x \cap y$\(x \cap y\)

  14. 差集运算,符号:\setminus,如:$x \setminus y$\(x \setminus y\)

  15. 同或运算,符号:\bigodot,如:$x \bigodot y$\(x \bigodot y\)

  16. 同与运算,符号:\bigotimes,如:$x \bigotimes y$\(x \bigotimes y\)

  17. 实数集合,符号:\mathbb{R},如:$\mathbb{R}$ \(\mathbb{R}\)

  18. 自然数集合,符号:\mathbb{Z},如:$\mathbb{Z}$ \(\mathbb{Z}\)

  19. 空集,符号:\emptyset,如:$\emptyset$\(\emptyset\)

1.13.6 数学符号

  1. 无穷,符号:\infty,如:$\infty$\(\infty\)

  2. 虚数,符号:\imath,如:$\imath$\(\imath\)

  3. 虚数,符号:\jmath,如:$\jmath$\(\jmath\)

  4. 数学符号,符号\hat{a},如:$\hat{a}$\(\hat{a}\)

  5. 数学符号,符号\check{a},如:$\check{a}$\(\check{a}\)

  6. 数学符号,符号\breve{a},如:$\breve{a}$\(\breve{a}\)

  7. 数学符号,符号\tilde{a},如:$\tilde{a}$\(\tilde{a}\)

  8. 数学符号,符号\bar{a},如:$\bar{a}$\(\bar{a}\)

  9. 矢量符号,符号\vec{a},如:$\vec{a}$\(\vec{a}\)

  10. 数学符号,符号\acute{a},如:$\acute{a}$\(\acute{a}\)

  11. 数学符号,符号\grave{a},如:$\grave{a}$\(\grave{a}\)

  12. 数学符号,符号\mathring{a},如:$\mathring{a}$\(\mathring{a}\)

  13. 一阶导数符号,符号\dot{a},如:$\dot{a}$\(\dot{a}\)

  14. 二阶导数符号,符号\ddot{a},如:$\ddot{a}$\(\ddot{a}\)

  15. 上箭头,符号:\uparrow,如:$\uparrow$\(\uparrow\)

  16. 上箭头,符号:\Uparrow,如:$\Uparrow$\(\Uparrow\)

  17. 下箭头,符号:\downarrow,如:$\downarrow$\(\downarrow\)

  18. 下箭头,符号:\Downarrow,如:$\Downarrow$\(\Downarrow\)

  19. 左箭头,符号:\leftarrow,如:$\leftarrow$\(\leftarrow\)

  20. 左箭头,符号:\Leftarrow,如:$\Leftarrow$\(\Leftarrow\)

  21. 右箭头,符号:\rightarrow,如:$\rightarrow$\(\rightarrow\)

  22. 右箭头,符号:\Rightarrow,如:$\Rightarrow$\(\Rightarrow\)

  23. 底端对齐的省略号,符号:\ldots,如:$1,2,\ldots,n$\(1,2,\ldots,n\)

  24. 中线对齐的省略号,符号:\cdots,如:$x_1^2 + x_2^2 + \cdots + x_n^2$\(x_1^2 + x_2^2 + \cdots + x_n^2\)

  25. 竖直对齐的省略号,符号:\vdots,如:$\vdots$\(\vdots\)

  26. 斜对齐的省略号,符号:\ddots,如:$\ddots$\(\ddots\)

1.13.7 希腊字母

字母 符合 字母 符号
\(A\) $A$ \(\alpha\) $\alpha$
\(B\) $B$ \(\beta\) $\beta$
\(\Gamma\) $\Gamma$ \(\gamma\) $\gamma$
\(\Delta\) $\Delta$ \(\delta\) $\delta$
\(E\) $E$ \(\epsilon\) $\epsilon$
\(Z\) $Z$ \(\zeta\) $\zeta$
\(H\) $H$ \(\eta\) $\eta$
\(\Theta\) $Theta$ \(\theta\) $\theta$
\(I\) $I$ \(\iota\) $\iota$
\(K\) $K$ \(\kappa\) $\kappa$
\(\Lambda\) $\Lambda$ \(\lambda\) $\lambda$
\(M\) $M$ \(\mu\) $\mu$
\(N\) $N$ \(\nu\) $\nu$
\(\Xi\) $\Xi$ \(\xi\) $\xi$
\(O\) $O$ \(\omicron\) $\omicron$
\(\Pi\) $\Pi$ \(\pi\) $\pi$
\(P\) $P$ \(\rho\) $\rho$
\(\Sigma\) $\Sigma$ \(\sigma\) $\sigma$
\(T\) $T$ \(\tau\) $\tua$
\(\Upsilon\) $\Upsilon$ \(\upsilon\) $\upsilon$
\(\Phi\) $\Phi$ \(\phi\) $\phi$
\(X\) $X$ \(\chi\) $\chi$
\(\Psi\) $\Psi$ \(\psi\) $\psi$
\(\Omega\) $\Omega$ \(\omega\) $\omega$

1.14 视频 (Video)和音乐 (music)

原生markdown并不支持视频插入,需要使用HTML语法.一般需要视频网站支持.比如插入youtube视频,需要到youtube视频下方,点击分享按钮,然后点击Embed,会给出内嵌的HTML代码.复制到markdown即可.

同理,对于音乐,也需要音乐来源网站支持.比如我们插入网易音乐:

1.15 Markdown编辑器

很多编辑器都支持markdown语法, 还有一些专门用于markdown的编辑器.

  1. Typora

官网如下:

https://typora.io/

感觉是现在最佳的markdown编辑器.实时渲染.

另外还可以导出为PDF等其他格式,非常全能.

  1. 网易云笔记

网易云笔记也支持markdown文件.并且能够在右侧实时显示渲染结果.也非常不错.

  1. Atom

是github官方出的文本编辑器,并不推荐使用.

  1. Rstudio

配合Rmarkdown使用非常好.

  1. Jupyter notebook

Python数据分析的非常好的编辑器.跟typora一样,实时渲染,格式并不是markdown的,但是可以导出为markdown格式.