当想象力使未知事物有了形状

当诗人的笔让他们成形并给空中的虚无

一处居所 一个名号 —— 莎士比亚《仲夏夜之梦》

前言

为什么要写这么一篇文章呢,首先就是我把之前所有的博客都删完了准备重新来过,那么写博客第一件要了解的事情就是了解书写工具。本博客使用 Markdown 作为撰写文章的工具,记录一些常见的用法当做重新开始的记录。考虑到可能会涉及一些数学公式,所以顺便记录一下 LaTeX,也方便之后写毕业论文。

Markdown

Markdown 是什么?

Markdown 是一种轻量级标记语言。它允许人们使用易读易写的纯文本格式编写文档。

Markdown 至今没有中文译名,但从维基百科给出的定义上看,它主打的是轻量、简单、方便使用。Markdown 使用标记语言去给予文字不同的表现形式。

Markdown 的语法

标题

大家都是从使用 Word 过来的,传统的富文本编辑器一打开就有标题、文字的粗斜体等等,所以这里也从标题开始说起。Markdown 中标题的使用 # 的数量来表示标题的级数,比如一个 # 就表示一级标题。如果你恰好学过 HTML,那么你也可以使用 HTML 的标签 <h1></h1> 来使用一级标题,同样地,也可以应用使用不同的标签来使用不同级的标题。

1
2
3
<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>

文字样式

Word 最基本的功能就是完成对文字的处理,比如文字加粗、斜体等。在 Markdown 中,我们使用 **内容** 来进行加粗,使用*内容*展示斜体内容。同时,~~内容~~是用来展示删除线的形式。

段落样式

字是组成句子的基本形式,而句子是组成段落的重要元素。像文章的开头的引用,就可以使用 > 内容来实现,且引用支持嵌套。列表也是我们经常使用到的一个元素,在 Markdown 中有无序列表和有序列表两种。无序列表可以由-+*中的任何一个开头,而有序列表则由数字开头,同样地,列表也支持嵌套。Markdown 也可以实现非常简单的待办事项,只需要使用-[]-[x]分别来表示未完成和已完成的项目即可。要注意的一点是,>-+*等符号都需要时英文状态的输入,且后面要加一个空格才会被正常标记。

无序列表:

  • 无序列表 1
  • 无序列表 2

有序列表:

  1. 有序列表 1
  2. 有序列表 2

任务列表:

  • [ ] 任务 1
  • [x] 任务 2

超链接

Markdown 不仅仅能编辑文字,也可以把不同的元素放入文档中。最常见的就是通过 [内容](链接)来插入链接和![内容](图片链接)来插入图片。

分割线

有时候为了美观会采用分割线,使用分割线也很简单只需要加入---即可。


表格

表格语法不过多介绍,因为我自己也不记得,我认为这种比较复杂且现阶段工具内都有的功能可以直接使用快捷键。直接粘贴:

1
2
3
4
| A  |  D |
| -- | -- |
| B | E |
| C | F |
A D
B E
C F

代码

自己是程序员,毫不夸张地说,这也是我选择 Markdown 的原因,可以非常方便地展示代码。Markdown 中分行内代码和代码块。行内代码使用一个反引号(ESC键下面那个)包裹内容,而代码块则使用三个反引号。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

流程图、序列图、甘特图

Markdown 还可以用于一些图的制作,对于我个人来说,我还是会选择专业的软件去制作这些图,而且有些网站的 Markdown 编辑器可能并不能能支持这些图的标记。

LaTeX

LaTeX 是什么

最近一遍名为《1700页数学笔记火了!全程敲代码,速度飞快易搜索,硬核小哥教你上手LaTeX+Vim》让许多人第一次见到了 LaTeX 的神奇之处。LaTeX 本身是一种电子排版系统,主要目的是为了排版,在学术界的论文,尤其是数学、计算机科学等论文经常是用 LaTeX 写的,但是 LaTeX 入门门槛比较高,像 Vim 一样,用熟练了就能达到这篇文章中的效果。本文提到的 LaTeX 仅针对数学公式的表达进行一个记录。

LaTeX 数学公式

很多人都是因为能够展现漂亮的数学公式才接触的 LaTeX,可喜可贺的一点,上文提到的 Markdown 也支持 LaTeX 数学公式。

上下标

最常见的就是要表示上下标的,比如 a 的平方常常被打成 a2,现在有了 LaTeX 真是轻松加愉快。在 LaTeX 中使用 _{...}表示下标,使用^{…}表示上标。忘了提,在 Markdown 中使用 LaTeX 只需要使用 $LaTeX$即可。我们可以使用a_{2}来表示$a_{2}$,a^{2}来表示$a^{2}$。

分组

上下标默认只能作用于一个字符,如果想要表示更复杂的公式就可以对公式进行分组,使用{...}包裹内容。使用a^{3}_{ij}来表示 $a^{3}_{ij}$。

分数

分数是我们从小时候就开始学的,在论文中也不缺乏它的例子。在 LaTeX 中使用\frac{分子}{分母}来表示。举个例子,\frac{1}{2}可以得到$\frac{1}{2}$。

运算符

论文中经常看见积分运算符、求和运算符、乘积运算符,那么这些应该怎么表示呢?在 LaTeX 中使用 \int来使用积分运算符,例如使用\int_{0}^{\frac{\pi}{2}}来表示$\int_{0}^{\frac{\pi}{2}}$,求和、乘积分别由\sum\prod完成。

常用的数学符号

符号 表示方法 符号 表示方法
$\alpha$ \alpha $\leq a \le$ \leq a \le
$\beta$ \beta $\subset$ \subset
$\gamma$ \gamma $\Rightarrow$ \Rightarrow
$\theta$ \theta $\dots$ \dots
$\pi$ \pi $\omega$ \omega

Markdown 编辑工具

Markdown 一开始仅在程序员群体中流行,到现在许多作家都会把它作为第一选择。那么既然 Markdown 这么流行,像 Word 一样,既有微软的 Office 套件也有 WPS 可以使用。在这里我推荐一款我自己最喜欢的编辑器,Typora。首先它是开源的,不仅支持 macOS,同时也支持 Windows。它可以做到所见即所得。其他的编辑器通常都是左右双栏,左边源文件,右边是 Markdown 渲染的预览。在熟悉 Markdown 语法之后,Typora 真是异常的简洁、干净,让人舒服,主题也可以自行下载,现在可以在 Typora 官网免费下载。

公众号排版

Markdown排版利器,支持 “一键排版” 、自定义css、80多种代码高亮。
能让Markdown内容,无需作任何调整就能一键复制到微信公众号、博客园、掘金、知乎、CSDN、51CTO、WordPress、Hexo等平台。
支持把图片自动上传到云图床;
支持Latex数学公式在公众号等平台完美显示;
支持生成带样式的html文件;
甚至支持直接用原生的html,css排版。

公众号排版向来都是个令人头痛的问题,很多时候排版占用的时间甚至超过了写作,我觉得这是本末倒置的一件事情。像秀米这些公众号排版工具做出来的东西确实比较方便美观,但是我觉得移植性不佳,如果要把文章发到其他的平台可能需要重新进行排版。这里介绍一款工具,可以方便地对 Markdown 进行公众号排版,那就是 Md2All,而且很容易就能上手。

另外,如果需要在微信公众号中插入 Latex 公式,可以使用 Markdown Nice 这个网站,相比于其他排版直接把公式转换为图片,该工具可以直接插入公式。

参考资料

一份不太简短的LaTeX的介绍