Skip to main content

如何做一个没有感情的排版机器

不久之前,我写了这样一份文档,来吐槽某些人的排版水平:

但是,我所遇到的第二种排版的数量远远多于第一种,包括但不限于:物理、化学练习册的某些页面;绝大多数同学写出来的论文;一些网上的资料。这促使我为各位科普一下排版的一些基础概念和原则。

一、为什么文章需要排版

有一个常见的误区:认为文章只需注重内容,而无需关注形式。这种观点非常片面。优秀的排版是优秀的文章中不可缺少的一部分——这至少有三个理由。

首先,从最实用主义的角度,排版的一大作用在于避免歧义,增加文章清晰度和准确度。以 Stack exchange 上的一篇回答为例:

K2[Fe(CN)6]K_2[Fe(CN)_6]

This is clearly a function(-al) KK (with index 22) of a variable FF and a function ee (index 66) of the variables CC and NN.

这显然是一个函数 KK (序号为 22),自变量为 FF 和一个函数 ee (序号为 66),而后者的自变量又是 CCNN

https://chemistry.meta.stackexchange.com/questions/551/should-we-use-italicized-chemical-formulas-or-non-italicized-chemical-formulas

而造成这种“函数”与“化学式”之间的歧义的原因,正是在于化学式没有使用正体而是用了斜体。有些人认为,这种错误在绝大多数时候能够通过上下文区分;但是总会有难以区别的时候。并且,与其让读者花费额外的时间处理信息,不如在传递信息时就使其尽可能地准确。

其次,好的排版能够使读者最大程度地关注内容,而不会被杂乱的版式干扰,提升了读者接受信息的效率。有这样一个论断:Good typography (like good organization) is something you do not notice. (Tantau, 52) 优秀的排版恰恰是使得人们不会注意到的排版。以某本 C++ 信竞参考书作为反面教材,以下是我从中复刻出的一页:

由于我在复刻时,标点用了半角,因此效果还要好于原书。这本书是第一本我看得懂每一行字,却看不下去的书。究其原因,正是因为它的排版太过混乱:一页中出现了程序代码、数学公式、列表、正文等多种环境,竟然全部使用“宋体正文”格式,导致可读性极差,大段的代码段需要一个个字符地读,而无法一眼抓住其内容。我们只需将其略作调整,就可以极大地增进其可读性:

最后一点,主观上,优秀的排版能增加读者对作者专业度的肯定。如果一篇文章的作者清楚地知道何处使用正体,何处使用斜体,并为文章配上最得当清晰的插图,那么这代表作者完全了解他所创作的内容,并且十分注意细节,可以极大地增加读者的好感度。

二、如何排出精致的版式

我个人是 LaTeX 的忠实用户。用 LaTeX,可以轻松地排出统一而精美的版式;但这不代表 MS Word 不能做到同样的效果——虽然可能会花费更多的时间。一个大概的比方:低级的 Word 使用者可以用 20%的时间排出 3 分的效果;平均水平的 LaTeX 使用者可以用 60%的时间排出 7 分的效果;而高级的 Word 使用者则可以用 100%的时间排出 10 分的效果。由于 LaTeX 对于绝大多数人来说太难以上手,本文所有的建议都可以在 MS Word 中实现,提供的插图也都是 Word 中的截图。

一、正文:字体、字号、各种间距

排版设计中,将字体分为三类:衬线体 (Serif)非衬线体 (Sans serif)等宽体 (Monospace)

它们之间的区别应该是比较显而易见的。一般的论文,往往用衬线体,这也是最安全的选择。非衬线体很少出现在学术文章的正文中,但可能用于标题;等宽体则大量用于代码中。一篇文章中每种字体不应使用超过两种,在同一个语境中,也不应切换字体。

字号、行距、段距等,首先要遵循文章接受者的要求;如果没有明文规定,则推荐用 12 号(小四)、1.5 倍行距、6 磅段前距。标题要适当增加字号、段前距,如一级标题可以增大到 18 磅字号,18 磅段前距,并加粗。

不同的标题层级要分清。可以用 Word 的标题功能辅助建立文本大纲。如果已经设为了标题后又更新了段落格式,再次点击标题按钮,则可以将这个格式应用于所有同级标题。

Word 的棘手之处之一就在于有时正文的格式会发生混乱。建议不要在第一遍创作时调整格式,而留至完成大概的创作后统一调整,这样可以防止漏过一些细节。如果还要做更精细的调整,可以了解一下 LaTeX👍

最后,在正文中要避免用粗体和不同的颜色。如果表示强调突出,可以用斜体。

二、数学公式:何时使用斜体

斜体和正体,应该是每一个对排版有追求的作者都曾经深入研究过的问题。对于正文中斜体的使用,APA 的指南是一个很有用的参考:

https://apastyle.apa.org/style-grammar-guidelines/italics-quotations/italics

但是,更令人恼火的是数学环境下斜体的使用。由于所有的公式编辑器——包括 Word 自己的——都用斜体作为默认字体,鲜有人能够记得在恰当的地方切换回正体。根据惯例以及规定 (IUPAC, 7),大致有以下几种情况需要使用正体(以化学的规定为例,其他学科大致相同):

  1. 数字(大多数编辑器本来就不会把数字变成斜体);
  2. 数学常量(特指 e\mathrm{e}, i\mathrm{i}, π\mathrm{\pi});
  3. 数学算符、算子;
  4. “可读的” 公式内容(所有完整的英语单词);
  5. 单位(包括单位的前缀);
  6. 表示状态的下标(但表示物理量的下标仍用斜体);
  7. 化学式、粒子符号。

这是一种非常粗浅的归纳,但足够应对绝大多数场景。更详细的说明,请参考 ISO 手册 (The ISO Standards Handbook, Quantities and Units) 和 IUPAC 手册。但是,有一个值得一提的特例:关于微分算子 d\mathrm{d}。请看下面两个公式:

选择左边还是右边?由于 d\mathrm{d} 在我的理解中是一种算子,因此符合规则 3,应该使用正体,也就是右边,而这也是大多数有追求的人的选择;但实际上,近年来的期刊,尤其是美国的一些期刊,开始偏向左边的写法。这种做法,应该是把 dxdx 看成了一个完整的实体参与运算。因此,两种公式写法都是可以接受的。

除此之外,一切物理量、物理常量、未知数等,都使用斜体。IUPAC 指南中提到,一个简单的判断是否应该用斜体的标准是问自己:“这个字母是否代表一个值?这个值能不能改变?”

三、数学公式:保持统一而整洁的版式

对比如下两段文字:

排版 1
排版 2

希望各位能够看出其中的区别。有三个区别:

  1. 就像上一节中说的,注意公式中正体和斜体的准确使用;
  2. 在所有表示数学内容的地方都使用公式模式,哪怕只是一个 f(x)f(x),一个 ll,都至少要用斜体以和正文区别;
  3. 公式字体要和正文字体统一。由于正文中使用了宋体 / Times New Roman 的组合,在排版公式时如果也能用 Times New Roman 而不是 Cambria Math,会显得更加统一。但在 Word 中,这种调整非常繁琐,还会导致一些空白处理得比较混乱,因此不推荐。

除此之外,还有一点需要格外注意。Word 的公式分为两类:行内模式展示模式。如果公式单独占据一行,会用展示模式;如果公式周围有其他文本,则会用行内模式。展示模式会强制居中,并且在巨算符上下标的处理上有区别。

请尽量使用展示模式来排版比较长的公式,尤其是带有求和、积分等巨算符的公式;而对于行内公式,请不要用分式等会使公式高度增长的结构,而用斜线 (solidus) 代替:

同样的原则也适用于展示模式的上下标中。由于上下标也会使用行内模式,如果在上下标中套分数,会显得整体不统一。因此,我们也推荐用斜线代替:

特别地,对于 ex\displaystyle\mathrm{e}^x 形式的函数,用 exp()\exp() 函数可能会更加优雅:

四、数学公式:输入技巧

许多人用 Word 输入公式时举步维艰,原因在于没有完全利用其支持 LaTeX 捷径的优势。在 Word 中,分数结构可以用斜线/ +空格调出;上标可以用乘方号^ + 空格调出;下标可以用下划线_ + 空格调出。

\sqrt + 空格可以调出一个根号;在这之后随便添一个字符,再按空格,便可以变成一个根式结构。

求和符号、积分符号等也可以用\sum, \int 等调出;但上下标的处理就会比较繁琐,因此不如使用工具栏选择对应的结构。

所有的符号都有对应的捷径,可以将光标悬停在符号列表中查看。

所以,我们就知道,如果输入\infty,再加一个空格,就可以打出 符号。所有希腊字母的捷径都是它们的英语名,首字母大写则为大写字母,比如\DeltaΔΔ\deltaδδ

最后,按一下空格,也可以进行很多格式更新,如输入sin后按空格,则自动变成算符:

或者括号高度的调整:

非常实用。

五、表格:我选择三线表

许多人的表格设计如下:

这已经可以称得上是一份非常精致的表格,尤其是在公式的处理上。但是,这类表格并不受科技类期刊的青睐。几乎所有的科学发行物都会使用三线表,也就是这样的表格:

三线表似乎没有成文的规定,不同的编辑也会有自己的格式偏好。下面给出我的习惯,这些也基本被绝大多数人接受:

  1. 三线表只有三根主线:一根顶线、一根底线、一根分割表头和内容。其他行间不增添线。顶线和底线是最粗的线,如 2¼ 磅;表头和内容间的线其次,可以用 1½ 磅;其余的辅助分割线用 ½ 磅。
  2. 避免出现竖线。如果表格的左右两边差距大到必须插一根双竖线,不妨把它拆成两张表格;
  3. 三线表是“向下增长”的,因此像第一张表中“双轴”的布局就不太合理,应该将“实验”挪至表头。这个需要有对表格内容有比较感性的认识。
  4. 每一列的内容都应该是互相独立的,“线性无关的”。所以,“吸热量”和“吸热量误差”应该合为一列,才能和其他两个物理量对应。可以在此之下再分成两个子列。
  5. 所有内容横向竖向居中。

六、图表:整洁最重要

浩如烟海的图表类型,详细规范足够写成一本书。事实上,还真有这样的书,比如 Edward R. Tufte 的 The Visual Display of Quantitative Information。限于篇幅,我们只讲指导原则。

仍然用两幅图作对比:

诚然,许多图表都是用外部工具,如 Mathematica, Logger Pro, Matplotlib 等生成的;但是,如果需要自己画图,或者对于生成的图表有一定操控自由,则应当尽量遵循下列原则:

  1. 突出恰当的内容。第一张图中,坐标轴用了灰色+细线以将其隐去,而突出图中的重点:曲面。
  2. 和正文统一的样式。此处的样式,包括箭头形状、字体、字号、主色调、线的粗细等。
  3. 绝对不要用渐变色和图案填充。它们除了增加视觉干扰,没有任何明显的效果。除非必要,否则也不要为坐标系添加网格。
  4. 尽量保持色调的统一,选择同一色系,不要用太多对比色;
  5. 不要用虚线的线型或线的粗细来区分不同的曲线。用不同的颜色。

我选择在 LaTeX 中自己实现所有的图,而不借助所见即所得的外部工具,也正是为了保证版面的统一。


本文从正文、公式、表格、图表四个方面介绍了一些排版规范。但是,排版的细节远不止于此。有这样一个原则:Every rule can be broken, as long as you are aware that you are breaking a rule. (Tantau, 46) 所有规则都可被打破,只要你明白自己在打破规则,并认为这样的好处大于坏处。如果遇到不清楚如何处理的地方,请勿自以为是,而多利用搜索引擎和论坛的优势,获得一个满意的答案。

参考资料.

IUPAC. Quantities, Units and Symbols in Physical Chemistry. 3rd Edition. RSC Publishing, 2007.

Tantau, Till. The TikZ and PGF Packages. 12 Jun, 2007. 20 Feb, 2020. http://mirrors.hit.edu.cn/CTAN/graphics/pgf/contrib/tikz-page/tikz-page.pdf