并非教程的 Markdown 排版指南

并非教程的 Markdown 排版指南

说明:本页面上原有 LaTeX 公式语法及排版规范,已分别移至「LaTeX 公式语法速成」和「Markdown 资料排版规范」。

1 关于 Markdown

Markdown 是一种文本标记语言,即在纯文本(txt 文件)的基础上引入了一些标记,使得其中的内容可以呈现出特殊属性——例如,产生标题、加粗字、列表与链接的分野。从这个意义上来说,可以将 Markdown 理解为一种「文档格式」,就像大家常用的 Word 文档一样。只不过,Markdown 一方面是文本文件,可以用任何文本编辑器(如记事本)打开、编辑,Word 文档(二进制文件)必须用专门的软件打开处理;另一方面,Markdown 能实现的「功能」比 Word 要少很多,但恰可满足 99% 文档的需要,同时极大地节省了编写、处理、储存与发布的时间,因此可谓为「最高效的文档格式」。

尽管 Markdown 文档本身不需要用专门软件打开,但要想让 Markdown 中的标题能「显示」为标题,需要用可视化的文本编辑器预览,或利用一些小工具将其转换为 PDF、HTML 等可以看见样式的文档格式。

这篇文章即是用 Markdown 撰写,读者可以感受到:Markdown 提供的功能,已经足够强大。

2 如何撰写 Markdown 文档

Markdown 的学习非常简单。如果将其视为一种「编程语言」,则可以毫不犹豫地说:Markdown 是世界上「最简单」的编程语言。

网络上 Markdown 的教程不计其数(但误导人的也不少),读者可以任选一篇阅读。这里,我们推荐以下的几份:

下面一份 Markdown 代码,基本上概括了所有 Markdown 的基本语法。

# 一级标题

## 二级标题

### 三级标题

这也是一级标题
------

及二级标题,你可以根据喜好选用
======

这是一段普通的文本,可以**加粗**,可以用*斜体*——但中文的「斜体」不推荐使用。

> 你也可以用这种方式,创建引用段落——它们不一定用来「引用」。

[超链接](https://qyxf.site/)![图片](https://qyxf.site/assets/images/favicon-16x16.png)
的写法是类似的,只不过后者外加一个感叹号而已。

---

上面的就是分割线(代码叫 `hr`),尽量在上下都留出空格(否则可能被认成一级标题或普通段落)。

- 这是一个列表项
+ 这也可以是一个列表项
    * 这则是一个子列表项
    - 这也是一个子列表项
- 但最好还是统一用一种符号


- 与上面相较

- 这个列表在生成时

- 会有更宽的行距


## 常见错误(用数字列表列出)

1. 引用、列表、分割线等特殊内容与上下文之间不留出空格,这样很可能生成出错。
2. 标题的 `#` 号与标题内容要留出一个空格,否则在很多编译器上会有问题。
3. 段落与段落之间要空一整行(更多也可),单纯换一行顶多是一个没有段距的强制换行。
4. 勿像 Word 中一样连续打几个空格:连续的空格会被转换成单个,因为你不需要那么多。段首空格会被忽略。

以下仅补充几个教程中很少涉及、强调的概念,提请读者注意:

2.1「样式与内容分离」

Markdown 是文本标记语言,仅指明一份文档中有标题、引言、脚注、强调文本等若干特殊格式的文本,但并没有告诉编译器或编辑器:标题应该多大?引言是否应用一个矩形包围起来、居中?强调文本可否用另一种颜色或另一种字体?事实上,「标题」、「引言」等这些说法,代表的是文档的「内容」或「内容格式」;而它们用多大的字、是否居中等,属于「样式」。Markdown 强调「内容与样式分离」,只指定了内容的格式,样式则完全交由编辑器、编译器等处理 Markdown 的程序来实现。因此,大家在撰写 Markdown 文档时,应注意这一原则,不要关心——更不要试图调整文档的样式。

如果你对文档最终的呈现样式有特殊要求,或对样式设计者的成果有所不满,请直接与他们取得联系、陈述你的要求,或使用自己设计的「样式表」(通常用 CSS 格式实现)。

2.2 关于 Markdown 方言

Markdown 刚出现时,由一份用 Perl 语言编写的脚本实现。其作者 John Gruber 为此撰写了一篇语法说明,不幸的是:这份说明既未涵盖可能出现歧义的特殊情况,甚至也和其脚本中的具体实现有所出入。此外,他本人秉持「自由」的哲学,拒绝对 Markdown 的语法与实现方式(即如何将 Markdown 文档无歧义地生成与编译)做具体规定,这导致此后各种「Markdown 方言」层出不穷,它们一方面各自支持许多拓展功能(如表格、自动链接、代码高亮),另一方面对具体的 Markdown 段落可能有不同的解释方法。尽管已经有像 CommonMark 这样试图实现「标准化」的行动,但 Markdown 方言四分五裂的格局已难以扭转。读者在使用不同的编辑、编译器时,应尽量查明其采用的 Markdown 语法细则(可查找他们提供的语法文档或 Markdown 教程);否则,应谨慎使用各种拓展特性,包括:

  • 表格语法(大多数编译器已支持)
  • 自动链接
  • 脚注(GitHub 等网站不支持)
  • 删除线(采用一对 ~~ 围成)
  • HTML 的标签(部分标签可能不支持)
  • LaTeX 公式(编写时可以采用,排版人员将最终实现它们,但请作者调好自己的编辑器以支持公式预览)

2.3 文档的撰写方式

采用了 Markdown 这样一种高效的方式,你就应当学会改掉一些在 Word 中养成的陋习,包括:

  • 不要在段落的开头用好几个空格实现「首行缩进」——首行缩进本来是一种样式,你不需要操心。在 Markdown 中,段首的空格会被忽略。
  • 不要用加粗、调样式代替标题:请多使用标题语法,并合理安排标题层级(从最高级开始连续布置,不要超过三级,或跳级使用)。各级标题是最终生成目录、书签、协调样式的唯一凭据。
  • 不要靠网上建议的 <br> 标签手动换行:习惯用段落组织文本,强制换行往往会破坏文章的连续性。
  • 不要在正文中任意用空格、Tab 键缩进:不当的缩进可能造成识别错误(例如,四格缩进将把文本转换成代码块)。Markdown 不是脚本、代码,不必用缩进来体现内容的层次——这是标题的任务。

3 Markdown 编辑工具

常用的通用编辑器——如最流行的 VS CodeAtomSublime Text 3——等,都可以通过插件很好的支持 Markdown,相关方法可在网上轻松找到。除此以外,更推荐初学者使用的是 Markdown 的专用编辑器,它们往往能带来更好的体验。包括:

  • Typora 界面清新优雅,功能强大,通用性强;各个桌面系统均支持(OS X 系统的版本最新),可设置界面为中文
  • Haroopad 界面简洁明快,功能异常强大,适合开发者使用;各个桌面系统均支持,可设置界面为中文
  • MarkPad 界面传统规整,通用性较强;仅支持 Windows 10 系统
  • iA Writer 界面极其简明,没有多余样式,专注于优雅、高效的写作,适合撰写文学作品、公众文章;支持 Windows、OS X、Android 和 iOS 系统。

由于 Markdown 本身十分容易,这些软件的上手并不困难。你可以在这些软件中精心调配各个部分的样式表,改变设定以提高写作速度与体验。

在本地编辑器之外,网页编辑器、笔记软件(支持同步)与博客网站也是可行的选择。常用的笔记软件中,印象笔记有道云笔记为知笔记等均已很好的支持 Markdown;网页端中,简书可能是国内比较流行的方式。在网络端撰写,可以很快的将内容公之于众,便于分享、传播。

参与讨论