字体、字号与行距
正文排版的观感由三个参数主导:字体、字号、行距。LaTeX 对这三者的控制方式与 Word 完全不同——它用「相对尺寸」与「全局声明」而非逐段刷格式。本文讲清字体切换命令、中文字号与磅数的换算、行距调节的正确姿势,以及字数统计等附带技巧,帮你把「看起来舒服」变成「参数可复现」。写作时把这三件事一次配好,之后全文自动统一,这是声明式排版的核心收益。
一、字体族与形状:声明式切换
LaTeX 预定义了三类字体族与四类形状,切换方式是声明式的:命令之后的内容全部生效,直到遇到下一个声明或分组结束。这与 Word「选中再点按钮」的交互截然相反,一开始会觉得别扭,但它保证了「全文同类内容字体必然一致」。
| 命令 | 效果 | 对应 Word 操作 |
|---|---|---|
| 罗马体命令 | 衬线正文体 | 字体框选 Times 类 |
| 无衬线体命令 | 黑体类字体 | 字体框选黑体类 |
| 打字机体命令 | 等宽字体 | 等宽字体 |
| 加粗命令 | 加粗 | 加粗按钮 |
| 斜体命令 | 斜体 | 斜体按钮 |
| 强调命令 | 语义强调(自动取反当前形状) | 斜体按钮 |
注意带参数的形式只影响括号内的内容,而声明式形式影响整个分组。强调书面表达推荐语义化的强调命令,它在嵌套时会自动从斜体改回正体,比直接写斜体更不容易出错。
想替换整套字体,西文用字体宏包提供的命令指定(需 xelatex 或 lualatex 引擎),中文用对应的 CJK 字体命令,具体写法见「中文支持」一章。切勿在正文里逐处定义字体别名却忘记分组。
一个新手常踩的坑:在导言区给某段文字定义了字体声明,然后发现声明之后的所有内容都变了——这就是声明式的作用域特性。补救办法是用花括号把声明和内容包成一个分组,让声明随分组结束而失效。理解了分组,LaTeX 的字体机制就掌握了一大半。另外强调命令在英文环境里默认是斜体,但在中文环境里用户常希望它变成加粗或楷体;中文宏集通常已处理好这点,若表现异常,查「中文支持」一章的字体设置段,以官方文档为准。
关于字体选择还有一条务实建议:正文衬线字体不要追新,用系统自带的稳定字体最省心。学术论文的读者关注内容,花哨字体只会分散注意力。真正值得花时间的是标题与题注的字号层级——把有限的精力投在层级清晰度上,比换一百款正文字体都有用。
二、字号:相对尺寸与中文换算
LaTeX 的字号是相对于基准字号的十个等级,基准由文档类的字号选项决定。理解这层关系后,「改一次基准、全部字号跟着变」就成为顺理成章的事。
| 命令 | 最大基准下约值 | 典型用途 |
|---|---|---|
| 最小号 | 约 6 磅 | 附注角标 |
| 脚注号 | 约 9 磅 | 脚注 |
| 小号 | 约 9 磅 | 题注、图表内文字 |
| 正常号 | 约 12 磅 | 正文 |
| 大号 | 约 14 磅 | 小节标题 |
| 超大号 | 约 25 磅 | 封面标题 |
中文宏集额外提供了按中文习惯直接指定字号的命令,符合国内院校格式要求,初学者按中文字号指定比换算相对尺寸更直观。两套体系可以混用,但全文要统一一种思路,避免行距漂移。
\documentclass[12pt, a4paper]{ctexart}
\begin{document}
正文开始,这段切换为小四字号。\zihao{-4} 这段是小四。
\end{document}
一个高频提醒:字号与行距联动,切换大字号时行距会自动变大;切换后若想保持原行距,需用行距命令重新指定,否则版面会出现忽紧忽松的段落。
中文字号命令的参数支持负数,表示比该号小一号,这个设计是为了匹配国内印刷习惯。实际使用中,正文用小四、题注用五号、脚注用小五是约定俗成的组合,先按这套来,除非学校文件另有规定。基准字号选项只有四个可选值,不属于其中任何一个的尺寸都要靠相对命令或中文字号命令实现——这也是中文宏集在中文文档里几乎必装的原因之一。
三、行距:三种设置方式
Word 里的「一点五倍行距」在 LaTeX 里没有完全等价的单一参数,因为行距是「基础行距乘以伸展因子」的组合。理解这一点能避免常见错误:直接改基础行距会进一步影响字号切换时的联动。
| 设置 | 效果 | 适用 |
|---|---|---|
| 全局行距倍数 | 全局基线伸展 | 简单场景 |
| 专用行距宏包 | 规范化的倍数行距 | 严格格式要求 |
| 局部行距环境 | 某段单独加倍 | 个别段落 |
| 段落间距 | 段间留白 | 取代首行缩进的风格 |
中文院校常要求「固定值若干磅」这类绝对行距,专用宏包提供接近该效果的命令;若追求精确可自行设置基础行距长度,但副作用明显,优先确认学校是否真要求绝对值。行距是主观参数:过宽读起来松散、过窄读起来累,建议先拿一页样张打印出来再定稿。
判断行距是否合适的土办法:在 PDF 里横放一把尺子,看五行文字的总高度是否接近规定的行距倍数。更实用的办法是找一份排版规范的样刊,把它的行距「感觉」记下来,再在自己的文档里逼近。注意一点:行距参数的视觉效果与字体本身的字面大小有关,同一个倍数在宋体和黑体上观感不同——换字体后记得重新评估行距,而不是沿用旧参数。
定稿前最后一道字体工序是「只看不做」的通读:不修改任何参数,从头到尾翻一遍 PDF,专找忽大忽小、忽紧忽松的位置。这类问题大多是局部命令漏了分组造成的,定位到源码后修掉即可。眼睛比参数表可靠,前提是你愿意花二十分钟认真翻一遍。
四、段落间距与水平间距
字号行距之外,段落间的垂直间距也影响版面节奏。默认行为是首行缩进、无段间距;中文文档沿用此习惯,英文报告则常取消缩进而加段间距。两种风格都合法,但混用会显得混乱。
\usepackage{indentfirst} % 每段首行缩进,含首段
\setlength{\parskip}{0.5ex} % 段间距
\noindent % 本段取消缩进
中文段首缩进两字宽用长度命令设置一次即可;水平微调在正文中用不可断开空格、字宽间隔命令。切记不要用连续空格对齐——源文件里多个空格被折叠成一个,对齐只能靠命令。相关结构排版见「段落与列表」一章;若要批量检查全文行距参数是否一致,用正则提取所有行距设置行是最快的办法,见本站正则表达式。
中英文混排时还有个细节:默认情况下中英文之间会自动插入少量间距,这是中文宏集的贴心设计,不需要手工敲空格。但若你从旧文档复制了手工空格,就会出现「双倍间距」的观感。批量去除这类冗余空格同样可以交给正则——一条替换规则就能扫完全文。这类细节单看微不足道,攒在定稿时就构成「这排版很干净」的整体印象。
五、统计与检查:定稿前的数字
定稿时常需要报告字数。命令行自带工具可统计各章节字数,同时忽略宏与注释,比把 PDF 复制进 Word 统计更准。
texcount -inc main.tex
把统计输出导出到文本文件,再用正则提取正文字数、章节数等字段,能快速生成统计报告交差。确认字数后,字体的最后一步是全文一致性检查:封面、页眉、题注的字号是否统一,行距是否漂移。
| 检查项 | 工具或方法 |
|---|---|
| 正文字数 | 命令行统计工具 |
| 行距一致性 | 源文件正则扫描 |
| 字号统一 | 编译后通读抽查 |
| 未使用命令 | 源文件搜索 |
六、字体配置的常见误区
把字体相关的坑集中列出,对照检查比逐个试错快:
| 误区 | 后果 | 正确做法 |
|---|---|---|
| 在正文用字体声明不忘分组 | 之后全部文字变体 | 用花括号限定作用域 |
| 混用相对字号与中文字号 | 行距联动混乱 | 全文统一一套体系 |
| 手敲连续空格对齐 | 空格被折叠,对齐失效 | 用长度命令或盒子 |
| 改基础行距追绝对行距 | 字号联动全部错位 | 用专用的行距宏包 |
| 逐处刷字体而非配宏包 | 全文无法统一修改 | 在导言区一次配好 |
字体配置是「一次麻烦、长期受益」的典型:导言区花半小时配好基线,之后所有新文档都能复用。若你用知识库管理写作模板,把基线配置连同本文的检查表存成一张卡片即可,具体做法见本站Obsidian 指南。
写长篇时,把字号行距的基线配置连同检查清单一起存进知识库(结构见本站Obsidian 指南),开新文档时直接复用。下一节进入更结构化的标题与目录。
