2011年9月20日星期二

TeX 系统中的行距

TeX 系统中的行距

TeX 中的行距与在其他字处理软件中常见的模式不同。在 TeX 中与行距相关的参数是:


TeX 系统中的行距参数
范畴 意义
TeX
\baselineskip(弹性长度) 两行间基线的距离
\lineskiplimit(长度) 一个限制值,当前一行下边界与后一行上边界距离小于此限制时,\baselineskip 失效,下面的 \lineskip 起作用
\lineskip(弹性长度) 前一行下边界与后一行上边界距离
LaTeX
\baselinestretch(宏,一个数字) 加之于 \baselineskip 的倍数,使用 \linespread 设置

在 LaTeX 中,用 \linespread{倍数} 命令就可以简单地设置 \baselinestretch 的值,不需要用 \renewcommand。但注意 \baselinestretch 的修改和 \linespread 命令都只在字体字号变更时生效。因此,对于全局设置应该把行距设置放在导言区,对于临时设置应该在行距命令后面加 \selectfont。例如 1.5 倍行距:

 \linespread{1.5}\selectfont

在 LaTeX 中的基本行距(\baselineskip)不直接修改,而是由字号命令 \fontsize 一并给出。其语法是:

 \fontsize{字号}{基本行距}

其中字号和基本行距两个参数是纯数字,单位是 pt。命令也在 \selectfont 后生效。

与其他软件中行距概念的对比

排版学中的术语 leading,原意谓两行活字之间的铅条宽度,也就是前一行底部与后一行顶部之间的距离。但在现代软件中一般分成多个软件术语,行距的概念也因之而变。最好按照具体意义设置上述参数,而非笼统以“行距”一词概括之。

经常需要的是与 MS Word 这类字处理软件进行对比。在 Word 中,段落设置的行距部分被分成三个种类:


Word 中的行距参数
参数 与 LaTeX 对应
N 倍行距(倍数) 大致对应于 \baselinestretch,但基准的单倍行距可能略有区别
最小值(长度) 对应于 \lineskip
固定值(长度) 对应于 \baselineskip,并设置 \baselinestretch 为 1

注意在 MS Word 中没有 \lineskiplimit 的对应物。

因此,如果一个基于 MS Word 的模板或写作规范要求使用两倍行距,就可以在 LaTeX 中实现为:

 \linespread{2}\selectfont

由于行距一般是在文档导言区中全局设置的,所以在导言区可以省略 \selectfont

setspace 宏包

setspace 宏包提供了在论文草稿中经常被要求的 N 倍行距的一种实现。宏包会在修改正文行距的同时保持浮动体和脚注的行距,并使用一个 \displayskipstretch 命令来作为数学公式中的行距因子等,是 LaTeX 标准的 \linespread 命令机制的修改版本。



setspace 宏包的主要行距命令

功能 命令形式 环境形式开头 实际行距因子(\baselinestretch)
单倍行距 \singlespacing \begin{singlespace} 1
1.5 倍行距 \onehalfspacing \begin{onehalfspace} 1.25
双倍行距 \doublespacing \begin{doublespace} 1.667
N 倍行距 \setstretch{N} \begin{spacing}{N} N

需要注意的是,setspace 宏包的 1.5 倍和双倍行距与其他软件中的定义不同,这或许是为了美观,但并不合理。
如果论文的格式规范需要的是真正的 1.5 倍行距或双倍行距,则应该使用 \setstretch 或 spacing 环境直接设置倍数。
在不必要的时候,也不要用这个宏包,严肃的排版不使用这种 N 倍行距概念。

注:“双倍行距”的概念起源于活字排版和打字机的时代,意谓两行文字的基线距离加倍,相当于在两行文字中间空了一行。双倍行距的文档印出来通常并不美观,但方便用笔进行审校修改,因而许多论文要求使用这种行距。



http://wiki.ctex.org/index.php

没有评论:

发表评论