LaTeX 入门 · 第5篇 中文字体与页面
1. 字体属性
LaTeX 描述字体用三个维度:字体族(family)、字体系列(series)、字形(shape)。每个维度都有一组命令,分为「声明式」(改变后续所有文字)和「参数式」(只改变花括号内的文字)两种形式。
1.1 字体族
| 字体族 | 声明式 | 参数式 | 效果 |
|---|---|---|---|
| 罗马(衬线) | \rmfamily | \textrm{...} | 默认正文字体 |
| 无衬线 | \sffamily | \textsf{...} | 类似黑体 |
| 打字机 | \ttfamily | \texttt{...} | 等宽字体 |
1.2 字体系列
| 系列 | 声明式 | 参数式 |
|---|---|---|
| 中等 | \mdseries | \textmd{...} |
| 粗体 | \bfseries | \textbf{...} |
1.3 字形
| 字形 | 声明式 | 参数式 |
|---|---|---|
| 直立 | \upshape | \textup{...} |
| 意大利斜体 | \itshape | \textit{...} |
| 倾斜体 | \slshape | \textsl{...} |
| 小型大写 | \scshape | \textsc{...} |
声明式用花括号限定作用域:{\bfseries 加粗的文字}。参数式自带作用域:\textbf{加粗的文字}。强调用 \emph{...},它在直立文字里变斜体,在斜体文字里变直立。
\section{字体族、字体系列与字形}字体族:\textrm{罗马体}、\textsf{无衬线体}、\texttt{打字机体}。字体系列:\textmd{中等粗细}、\textbf{粗体}。字形:\textup{直立}、\textit{意大利斜体}、\textsl{倾斜体}、\textsc{小型大写}。强调:\emph{被强调的文字}。渲染效果:

1.4 字号
LaTeX 提供一组相对字号命令,基于文档类声明的基础字号(10pt / 11pt / 12pt)缩放:
| 命令 | 大小(10pt 基础) |
|---|---|
\tiny | 极小 |
\scriptsize | 上标大小 |
\footnotesize | 脚注大小 |
\small | 小 |
\normalsize | 正文(默认) |
\large | 大 |
\Large | 更大 |
\LARGE | 大写大 |
\huge | 巨大 |
\Huge | 最大 |
同样用花括号限定作用域:{\Large 大字号文字}。
2. 中文处理:ctex 宏包
本系列前面一直用 ctexart 文档类。它来自 ctex 宏包,是中文 LaTeX 排版的标准方案。
2.1 ctex 的作用
ctex 自动处理中文排版的几个关键问题:
- 中文断行:按汉字断行,而非按空格;
- 标点压缩:中文标点(,。;:)溢出页边距时自动调整;
- 字体配置:自动调用系统或包内提供的中文字体;
- 中英文字号对应:提供「小四」「五号」等中文习惯字号命令。
使用方式有两种:
\documentclass{ctexart} % 直接用 ctex 文档类(推荐)\documentclass{article}\usepackage{ctex} % 在标准文档类上加载 ctex 宏包两者效果基本相同,ctexart / ctexrep / ctexbook 分别对应 article / report / book 的中文版本。
2.2 字体集选项:fontset
中文文档最容易遇到的报错是字体找不到。ctex 用 fontset 选项指定使用哪套中文字体:
\documentclass[fontset=windows]{ctexart}fontset 值 | 字体来源 | 适用系统 |
|---|---|---|
windows | Windows 系统字体(宋体、黑体、楷体、仿宋) | Windows |
macnew | macOS 系统字体(宋体、黑体) | macOS |
fandol | 开源 Fandol 字体(随 TeX Live 发行) | 跨平台,推荐用于投稿 |
ubuntu | Ubuntu 系统字体 | Linux |
fontset不指定时,ctex 会尝试自动检测系统。如果字体报错,显式指定fontset通常能解决。投稿到期刊或 arXiv 时,建议用fontset=fandol,因为审稿人的系统不一定有 Windows 字体。
\documentclass[fontset=windows]{ctexart}\begin{document}\section{ctex 的中文处理}中英文混排:LaTeX 是一个排版系统。中文标点:,。;:?!「」『』()——……\end{document}渲染效果:

3. 页面设置:geometry 宏包
LaTeX 默认页面布局偏向美式 letter 纸张。国内常用 A4 纸张和特定页边距,用 geometry 宏包调整:
\usepackage[ a4paper, left=2.5cm, right=2.5cm, top=3cm, bottom=3cm]{geometry}常用选项:
| 选项 | 含义 |
|---|---|
a4paper / letterpaper | 纸张大小 |
left, right, top, bottom | 四个页边距 |
margin | 同时设置四个边距 |
landscape | 横向 |
twoside | 双面排版(奇偶页镜像边距) |
headheight, headsep, footskip | 页眉页脚相关间距 |
geometry 还提供了更直观的命名边距(textwidth、textheight、marginparwidth 等),可以按正文区域大小而非页边距来设置。
\usepackage[a4paper, margin=2.5cm]{geometry}这条最简洁,四边统一 2.5cm。A4 纸张设置后的页面效果:

4. 页眉页脚:fancyhdr 宏包
LaTeX 默认的页眉页脚比较朴素(页脚居中页码)。fancyhdr 宏包可以自定义页眉页脚的任意内容。
4.1 基本用法
\usepackage{fancyhdr}\pagestyle{fancy} % 切换到 fancy 页面风格\fancyhf{} % 清空所有页眉页脚\fancyhead[L]{LaTeX 教程} % 页眉左\fancyhead[R]{\leftmark} % 页眉右(当前节标题)\fancyfoot[C]{\thepage} % 页脚中(页码)\renewcommand{\headrulewidth}{0.4pt} % 页眉横线粗细完整示例:
\documentclass{ctexart}\usepackage[a4paper, margin=2.5cm, headheight=14pt]{geometry}\usepackage{fancyhdr}
\pagestyle{fancy}\fancyhf{}\fancyhead[L]{LaTeX 教程}\fancyhead[R]{\leftmark}\fancyfoot[C]{\thepage}\renewcommand{\headrulewidth}{0.4pt}
\begin{document}\section{fancyhdr 页眉页脚}fancyhdr 宏包用于自定义页眉页脚。\end{document}渲染效果:

4.2 位置参数
\fancyhead 和 \fancyfoot 的位置参数:
| 代码 | 位置 |
|---|---|
L | 左 |
C | 中 |
R | 右 |
LE / LO | 偶数页左 / 奇数页左(双面排版用) |
RE / RO | 偶数页右 / 奇数页右 |
4.3 常用的页眉页脚变量
| 命令 | 含义 |
|---|---|
\thepage | 当前页码 |
\leftmark | 当前章/节标题(大写) |
\rightmark | 当前小节标题 |
\chaptername | 章名(如「Chapter」) |
\thesection | 当前节编号 |
加载 fancyhdr 后要在导言区设置
headheight(页眉区高度),否则可能有警告。geometry里加headheight=14pt即可。
5. 间距控制
排版中经常需要手动调整间距。LaTeX 区分水平间距和垂直间距。
5.1 水平间距
| 命令 | 含义 |
|---|---|
\quad | 1em 宽度的空格 |
\qquad | 2em 宽度的空格 |
\hspace{长度} | 指定宽度的水平空白 |
\, \: \; | 数学模式中的窄间距 |
\dotfill | 用点填充空白 |
\hfill | 用弹性空白填充 |
5.2 垂直间距
| 命令 | 含义 |
|---|---|
\vspace{长度} | 指定高度的垂直空白 |
\smallskip | 小间距 |
\medskip | 中间距 |
\bigskip | 大间距 |
\vfill | 用弹性空白填充到页面底部 |
5.3 段落间距与缩进
| 命令 | 含义 |
|---|---|
\setlength{\parindent}{长度} | 段首缩进 |
\setlength{\parskip}{长度} | 段间距 |
\noindent | 当段不缩进 |
\setlength{\parindent}{2em} % 段首缩进 2 字符\setlength{\parskip}{0.5ex} % 段间距 0.5ex6. 小结
这一篇覆盖了中文排版和页面美化的主要内容:
- 字体属性:字体族(
\rmfamily/\sffamily/\ttfamily)、系列(\bfseries)、字形(\itshape)、字号(\large等); - 中文处理:ctex 宏包 / ctexart 文档类、
fontset字体集选项; - 页面设置:geometry 宏包的纸张和页边距;
- 页眉页脚:fancyhdr 宏包的自定义页眉页脚;
- 间距控制:
\quad/\hspace/\vspace、段落缩进与段间距。
下一篇进入参考文献和超链接——管理文献数据库、生成引用、给 PDF 加书签和链接。
本系列基于《一份(不太)简短的 LaTeX2e 介绍》(lshort-zh-cn)整理,辅以实战讲解和渲染示例。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!













