LaTeX 中的行间距

最近与 word 版论文打印后进行比较,发现 YSUthesis v0.3.0 的行间距有问题。学校规范中指定行间距为“最小值 22 磅”,而非老版本的“最小值 18 磅”。而之所以为“最小值”而不是“固定值”,可能是因为 word 对公式与文字的混排效果不是很理想。使用固定值最为行距会出现公式被“吃掉”一部分,显示不全面的情况。不过 0.3.0 版本的 YSUthesis 行间距肯定是需要修正的。

本以为简单的行间距就是beselineskip,使用

setlength{baselineskip}{30pt plus 0.25ex minus 0.25ex}

设置行间距,但是无论怎样修改数值,行间距就是不变。Google 了一下才发现,LaTeX 这类专业的排版软件对“行距”的定义不像 word 那么简单。

在 CTEX 论坛中,milksea 原文如下:

TeX 是排版系统,它与行距相关的参数是baselineskip —— 两行基线间的基本距离lineskiplimit —— 一个限制值,当前一行下边界与后一行上边界距离小于此限制时,beselineskip 失效,下面的 lineskip 起作用 lineskip —— 前一行下边界与后一行上边界距离。而在 LaTeX 格式中则加入了 baselinestretch 这个因子。它是加之于原来的 baselineskip(长度为 normalbaselineskip)上的一个倍数。在 LaTeX 中,用 linespread{倍数}命令就可以简单地设置 baselinestretch 的值,不需要用 renewcommand

而通常我们在 Word 等软件中见到的“行距”,即排版学中的术语 leading,原意谓两行活字之间的铅条宽度,也就是行与行之间的距离。它相当于当 lineskiplimit 为 0 时,lineskip 的值。行距一般用一个倍数表示,也就是平时说的 0.5 倍行距、单倍行距,这个倍数的基准距离是每种字体固有的值,不同的字体也有所不同。

因此,TeX 这个排版系统和常见的其他字处理在行距方面的机制是有区别的。用 baselinestretch 来达到几倍行距的效果,从本质上来说只是一种近似,而且会随不同的字体大小而有所不同。

有了版主的指导,剩下的就好说了。在 YSUthesis.cls 类文件中加入如下命令:

linespread{1.4}

就可以得到行间距大约是 word 中最小值 22 磅的效果。

YSUthesis v0.3.1 中已经修正了该问题。您可以在这里下载。