如题所述
没错,问题就出在 word 的基本行距不是字号长度的 1.2 倍。——而且甚至不是一个固定值,而是与字体相关的一个量。于是在 word 中当你切换字体时,即使是外表看起来很相近的字体,都可能出现行距大变样的情况。所以要让 LaTeX 的行距与 word 一样,只能根据具体字体设置去凑。\baselineskip 就是表示行距的 TeX 原始命令。要固定行距,直接设置 \baselineskip 原本是可以的。但是,在 LaTeX 中的字号命令生效时会同时设置行距,所以当出现任何字号变化时,你设置的 \baselineskip 就会被覆盖掉而失效。因此正确的产生固定行距的做法是修改字号命令,如直接修改标准字号 \normalsize 的定义,修改它的行距。\lineskip、\baselineskip 与 \lineskiplimit 的意义,可以看我的书。简言之,\baselineskip 是行距,即两行基线间距离;两行顶底之间距离小于 \lineskiplimit 时,要撑大行距,把这个顶底之间的距离加到 \lineskip 为止。\baselinestretch 是个展开为一个数值比例的宏,它由 \linespread 控制。\fontsize 的第一个参数是字号,第二个参数是基本行距,在 LaTeX 内部基本行距用变量 \normalbaselineskip 保存。在字号生效时,LaTeX 会设置行距 \baselineskip = \linespread 乘以 \normalbaselineskip。就这个意思。注:从概念上说,行距本来是段落的属性,而非字体属性。LaTeX 比较简单,直接用字号 1.2 倍。但在许多常用字体格式的度量信息(metrics)中,却有一些值可以用来帮助确定该字体特殊的默认行距。例如,在 FreeType 库中,FT_Face 的 height 域就是默认行距,这就是根据不同字体格式中的度量信息算出来的,如果你看源代码,就知道 PostScript Type1 字体,默认行距用的是 em 的 1.2 倍,但今天电脑上更常用的 TrueType、OpenType 则就是直接从字体中读出相应的数据了。