我在用LaTeX排版本科学位毕业论文时遇到了行距的问题。学校严格要求正文行距是1.2倍(而且是以word为标准的)。我的LaTeX文稿使用 \linespread{因子} 的方法调整行距,文章结构大致如下,但是其编译后得到的行距明显比同学用word排版出来的行距更窄,并且因为这样我的论文被火眼金睛的格式审查老师打回,并要求重改。
%-*- coding: UTF-8 -*- \documentclass[a4paper, oneside]{ctexbook} \usepackage{setspace} % ... \begin{document} \zihao{-4} \linespread{1.2} \selectfont % 或者使用\begin{spacing}{1.2} ... \end{spacing} % 正文 。。。 \end{document}后来经过打印、人工一行一行地对比行距发现,设置因子为1.3(即\linespread{1.3})才让最终打印出来的纸质文件的行距与word打印出来的一样。 刘海洋老师的《LaTeX 入门》的2.1.4节提到,
基本行距为文字大小的1.2倍……行距=因子×基本行距…… (脚注)Word中的段落设置n倍行距的概念与标准LaTeX的\linespread是一样的,也是加之于基本行距的因子。因此请问,Word中的基本行距也是1.2倍吗?LaTeX中的行距与Word的换算关系是什么?这个换算关系是否与文档类(即ctexart或者article)有关?(根据这次的经验感觉像是:(Word)因子1.2×基本行距1.3 = (LaTeX)因子1.3×基本行距1.2) 另外,如果想固定行距为20磅,应该如何调整?是否可以直接用:
\setlength{\baselineskip}{20pt}\lineskip, \baselineskip 和 \baselinestretch 的关系是什么? 答疑:刘海洋: 没错,问题就出在 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 则就是直接从字体中读出相应的数据了。 选自:https://www.zhihu.com/question/62327906/answer/197899935
发表评论 取消回复