想象你要装修一栋论文别墅:你是业主,兜里揣着一套精心绘制的设计图纸(.tex 源文件)。图纸上每条线都标注清楚——哪里是承重墙(文档结构)、哪里摆书架(列表环境)、哪里挂奖状(定理环境)、哪里放精雕细琢的摆件(公式)。你请来的装修队(LaTeX 编译器)只认图纸不认人情,你说往左三厘米,它就精确到三厘米,绝不打折。你不需要天天蹲在工地盯着工人“这里再挪一毫米”,你要做的只是把图纸画对。这套“图纸式”的写作方式,正是 LaTeX 的灵魂:把脑力留给设计,把体力交给机器。
LaTeX 是学术界与技术写作圈的通用语言。你用 Word 写的论文,换个电脑打开可能就“塌了墙”;而 LaTeX 源码在任何机器上编译,产出的 PDF 都严格一致。这篇文章就带你走一遍“装修论文别墅”的完整流程:先选户型(文档类)、再分楼层(章节结构)、布置房间(常用环境)、雕琢摆件(公式排版)、引入中式风格(中文支持)、学会看监理报告(报错排查),最后配置工具箱(宏包扩展),让整栋房子既有格局又有细节。
对 AI 从业者而言,LaTeX 是论文、技术报告与开源项目文档的“通用语言”。掌握它,你与学术社区的协作成本会断崖式下降;配合 AI 生成源码的能力,你相当于同时拥有了设计师和施工队。这是与技术能力同等重要的写作基础设施。
可视化演示
动态演示LaTeX排版入门与技术写作的核心机制,通过概览/流程/对比/趋势四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
LaTeX排版入门与技术写作:LaTe LaTeX文档结构与导言区配置 常用排版环境与命令使用 核心机制可视化 LaTeX排版入门与技术写作整体架构与关键组件
文档结构组织
装修的第一步是选户型。你是住平层公寓(article)、独立别墅(book),还是办公楼(report)?LaTeX 的 \documentclass 就是那个选户型的决定——不同文档类预设了完全不同的“房间格局”:article 没有 \chapter 这一层(没有地下一层),book 自动生成左右页对称的页眉页脚(像别墅的东门西门对称设计),report 则适合长文档(带封面的公文楼)。选错户型,后面改起来伤筋动骨,所以动笔之前先想清楚用途。
选定户型后,源文件天然分成前后两半,对应建房的两个阶段。前半段是前言区(preamble)——你的设计图纸区,所有全局样式都在这里声明:纸张大小、正文字号、加载哪些宏包;后半段是正文区——真正的施工现场,从 \begin{document} 开始,到 \end{document} 结束。装修队只认一道开工令:\begin{document}。在这之前的一切,都只是贴在墙上的图纸,不会真的砌进墙里。
正文区的章节层级像整栋楼的骨架:\section 是一层楼,\subsection 是楼里的一个房间,\subsubsection 是房间里的隔断。每一层都自动编号(1、1.1、1.1.1),像楼层的门牌号系统。用 \tableofcontents 可以一键生成目录——相当于交房时物业给你的索引手册:哪户人家在哪层几号,翻目录就全清楚了,完全不用手写页码。
户型定了,图纸画了,楼层分了,这栋论文别墅的骨架就立起来了。下一步,往每个房间里添置功能设施——那就是 LaTeX 的环境。
- 命令名
\documentclass是文档类声明命令,告诉 LaTeX 按哪种户型图纸施工,必须放在源文件第一行。 - 可选参数
[11pt]指定全局正文字号,相当于设定房子的层高。常见选项还有10pt、12pt。 - 必选参数
{article}选择文档类为文章类,另外常见的是report(报告类)和book(书籍类)。
常用环境构建
如果说结构是骨架,那“环境”(environment)就是房间里的功能设施。玄关要放鞋架,客厅要挂奖状,储物间要能原封不动地堆杂物。LaTeX 的每一种环境,都像一个功能定制的房间隔间:itemize 是无序列表,像一排整齐的鞋架,每只鞋(条目)前面自动顶一个小圆点;enumerate 是有序列表,像货架编号,自动标出 1、2、3。你只管把东西放上去,架子的间距、编号、对齐,环境自己搞定。
定理环境 theorem 则是客厅里的奖状墙:重要的论断被装进一个醒目的框子里,还自动挂上“定理 1”“定理 2”的铭牌。写论文时,核心结论往 \begin{theorem} 里一放,立刻有了“此处重要”的视觉分量。而 verbatim 环境是储物间——里面堆什么,出来就是什么,所有字符原样保留、不做任何解释,空格和换行也一一照搬,是展示代码或配置文件的完美场所。
这些环境的共同语法,是成对出现的施工围挡:\begin{环境名} 圈出施工区起点,\end{环境名} 圈出终点。围挡之内的排版规则独立运作,围挡一撤,一切恢复如初。这种“开闭成对”的哲学贯穿 LaTeX 始终——记住它,你就掌握了理解一切环境的关键。
鞋架、奖状墙、储物间都安置好了,接下来该请出整栋别墅最精致的摆件——公式。
- 环境起点
\begin{itemize}打开一个无序列表施工区,之后的排版规则切换为“列表模式”。 - 条目命令
\item标记一个新条目的起点,列表会自动在每个条目前生成项目符号。 - 环境终点
\end{itemize}关闭列表施工区,排版规则恢复为列表之前的样式。
公式排版与编号
公式是论文别墅里的工艺品。工艺品的摆放有两种规格:小件的摆件随手放在桌面——用行内公式 $x^2$,它嵌在句子里,不打断阅读的动线;大件展品则要独占一个展示柜——用 equation 环境让公式独占一行居中摆放,这就是行间公式。展示柜可不是白放的,它自动给公式分配编号 (1)、(2)、(3),像博物馆给每件藏品贴的编号牌。这编号牌最大的好处是:你不需要亲手写“见右图第 2 个大摆件”这种含混的描述。
管理编号最优雅的方式是标签与引用联动。在公式里贴上 \label{eq:quadratic}(相当于给展品登记编号),文中任何地方用 \eqref{eq:quadratic} 一引用,LaTeX 就自动把正确的编号填进去,还贴心带上括号。你中途删掉前面的公式?后面所有编号和引用自动重排,一个洞都不会留。这就是图纸式施工的威力:你改图纸,装修队自动把整面墙重新砌好。
公式内部的数学语言也自成体系:\frac{分子}{分母} 输出分式、\sqrt{} 开根号、\sum_{i=1}^{n} 写求和,^ 和 _ 分别表示上标与下标。这些命令像乐高积木,拼出复杂的数学表达式。以一元二次方程的求根公式为例:
摆件都进了展柜,编号牌也挂好了。以后你在文中想提“前面那个漂亮的摆件”,只要报出编号,读者就能精准找到它。接下来,让屋子变成中式风格。
- 公式左端
x =表示未知数 x 等于右侧分式,等号两侧自动留出运算符间距。 - 分式结构
\frac是分式命令,接收两个参数:分子-b \pm \sqrt{b^2-4ac},分母2a,输出为上下结构的分数。 - 加减号与根号
\pm输出正负号"±",\sqrt{...}输出根号,b^2与4ac分别演示了上标和乘法。 - 自动编号把整个公式放入
equation环境后,LaTeX 自动分配编号并配合\label记录,供全文引用。
中文排版处理
LaTeX 诞生于西文排印,它的“母语”是英文。要让装修队干中式风格的活,得给他们请一位中式装修专员——ctex 宏包。没有它,你在源文件里写中文就像给只会说英语的工头递了一份中文图纸:工头看得一头雾水,要么直接罢工(编译报错),要么把中文输出成乱码。ctex 这位专员精通一切中式细节:该用哪套中文字体、标题用什么字重、标点如何避头尾、首行是否缩进两字符,全部自动安排妥当。
启用中式方案有两条路。经典路径是在导言区加载宏包:\usepackage[UTF8]{ctex},然后照常写正文;更省事的路是直接用 article 的中文变体文档类 ctexart——\documentclass{ctexart},相当于你不仅请了中式装修专员,还直接把户型图换成了中式设计院出的版本。两条路都要求源文件以 UTF-8 编码保存(图纸用国际通用标注),编译时使用 xelatex 引擎(这位施工队长能读懂 UTF-8 编码和系统字体)。
中文排版还有几个细节值得注意。西文段落默认顶格不缩进,而中文习惯首行缩进两字符——ctex 会自动处理好。行距上,中文汉字笔画密集,默认行距会显得拥挤,可以用 \linespread{1.2} 微调,像把楼层挑高从 2.6 米调到 3 米,让整面墙透透气。
装修队现在能独立完成中式风格了:首行缩进两字符、标点自动避头尾、中文标题黑体正文宋体——和学术期刊的中文规范严丝合缝。房子装得再好,也得验收。接下来是施工验收环节。
- 加载命令
\usepackage是宏包加载命令,从宏包仓库中申请一个工具包,必须写在导言区。 - 宏包名称
{ctex}指定加载中文支持宏包,它负责字体、标点、缩进等全套中式排版规则。 - 编译引擎使用
xelatex编译源文件,这个引擎能够正确识别 UTF-8 编码与系统安装的中文字体。
编译与报错排查
装修不能只看图纸好看,施工(编译)才见真章。LaTeX 的编译流程就像装修队进场施工:先把图纸输进系统(读源文件),再立骨架砌墙(排版处理),最后精细打磨(输出 PDF)。工程出问题并不可怕,可怕的是你看不懂监理报告(.log 日志文件)。LaTeX 的报错机制本质上是一份诚实的验收报告:它不会含糊地说“有点问题”,而是精确指出第几行、什么类型的错误。
编译一次,工程目录里会生成多个文件:.pdf 是成品、.aux 是辅助文件(记录交叉引用和目录信息)、.log 是完整的施工日志。报错时,第一件事就是打开 .log 找第一个 ! 开头的错误——那才是根源,后面的报错往往只是连锁反应,像一块砖没砌好,震落了一片灰。
新手最常见的三类错误:一是 File 'xxx.sty' not found,意思是某个宏包没安装或名字拼错,相当于工头要找的电钻不在工具箱里。二是 Missing $ inserted,多半是数学符号出现在文本模式中,像把展品摆件直接放在地上没有底座。三是 Undefined control sequence,命令拼写错误,比如把 \frac 写成 \farc——工头把这当成了你自创的暗号,可他没见过这个暗号。排查策略很简单:改一处、保存、重新编译,一次只动一处,像调试代码一样做二分定位。
读懂监理报告,装修才能顺利推进。别怕报错——LaTeX 的报错是在帮你把关,避免一栋带着隐患的房子草草交付。但有些活,光靠工具箱里那几把基础工具不够,得备一个能无限扩充的工具箱。
- 错误标志以
!开头的行表示致命错误,后面的内容是监理报告的核心结论。 - 错误内容
File 'ctex.sty' not found说明编译器在系统宏包目录里找不到ctex.sty文件,即宏包缺失或拼写错误。 - 修复动作确认宏包名拼写正确,必要时安装宏包后重新编译。
\usepackage中的名字必须与宏包文件名一致。
宏包扩展机制
LaTeX 自带的基础工具只能应付最普通的装修,真正的强大之处在于它有一个能无限扩充的工具箱——宏包(package)生态。\usepackage{graphicx} 相当于借来电钻,让你能插入图片并随意缩放旋转;\usepackage{hyperref} 是智能门锁,自动给 PDF 加超链接与书签;\usepackage{amsmath} 是精密测量仪,提供数百个额外的数学符号与排版功能。想要什么功能,先去 CTAN(宏包中央仓库)搜一搜,十有八九已经有人把工具做好了。
宏包与文档类的分工要拎清:文档类定户型(整体格局),宏包只是向房里添置的具体工具(局部功能)。加载宏包用 \usepackage[选项]{宏包名},方括号里的选项像工具的档位——graphicx 不需要档位,但 geometry 可以用 \usepackage[margin=2cm]{geometry} 直接设定页边距。把加载宏包的命令统一放在导言区,像把工具都挂在工具箱的一块洞洞板上,一目了然,方便日后的维护和同事接手。
宏包生态还有一个杀手锏——自定义命令。如果你论文里反复出现某个复杂记号或短语,可以用 \newcommand{\R}{\mathbb{R}} 把它固化为快捷键:以后每次写 \R,LaTeX 就自动展开成实数集符号 ℝ。这相当于给常用工具装上快拆接头,省去了每次组装的时间,也让源文件读起来更像“人话”而非天书。
工具箱备齐了,装修效率成倍提升。记住:宏包是 LaTeX 生态的灵魂,你用不到的宏包不必加载,用得上的宏包一个都不能少。房子硬件全就位了,最后一步,设计入住者的动线——技术写作的规范意识。
- 新命令声明
\newcommand是命令定义语句,注册一个新的快捷命令供全文使用。 - 命令名称
{\R}指定新命令的名字,注意大括号内必须包含反斜杠,且不能与已有命令重名。 - 命令展开
{\mathbb{R}}定义了这个命令的展开内容——输出黑板粗体 R,即实数集符号。
技术写作规范
房子装得再豪华,动线不合理也住得别扭。技术写作的规范,就是对读者阅读“动线”的设计:门牌(标题)要让人望文知义,路标(图表编号与引用)要让人随时定位,档案室(参考文献)要让人能顺藤摸瓜。LaTeX 最大的隐藏价值,就是它的自动编号、交叉引用与目录机制,天然引导你按规范写作——只要你按它的规则走,规范几乎是白送的。
标题是门牌。\section、\subsection 的标题应该像楼下大堂的指示牌一样简洁明确:直接告诉读者这一节在讲什么,“一种基于注意力机制的文本分类方法”就比“研究”两个字有价值得多。目录是楼层索引,LaTeX 的 \tableofcontents 会自动收集所有标题并标注页码,文档结构改动了,索引自动更新,不需要你手工改目录页码。
图表是路标。每张图的 \caption 和 \label,相当于给路标编了号;正文里用 \ref{fig:xxx} 一引用,读者就能循着编号找到图。参考文献是档案室。.bib 文件相当于一个文献数据库,每篇文献有一个唯一钥匙(key),正文里 \cite{knuth1984} 提到它,编译后自动变成规范的 [1] 并生成参考文献表——你只管引用,格式交给 LaTeX。写作流程也建议按“先骨架后血肉”推进:先列出各级标题提纲,再逐节填充,最后统一处理图表和引用细节。
图纸、施工、工具、动线全部就位,这栋论文别墅真正宜居了。从选户型到写规范,LaTeX 这条技能线你已完整走通。记住这个核心心法:源文件是图纸,编译是施工,你不是在打字,你是在设计。
- 引用命令
\cite在正文中插入一条文献引用,是连接正文与文献数据库的桥梁。 - 文献键值
{knuth1984}是.bib文件中某条文献记录的唯一钥匙,对应这条文献在数据库里的身份证号。 - 编译效果编译后正文中自动变为
[1]样式的引用标记,文末参考文献表自动收录该条文献。
AI 应用场景
AI 生成论文初稿
阶段:内容生成与格式转换
解决的问题:面对空白 .tex 文件,学术新手常常不知道如何下笔——文档类选什么、前言区写什么、章节怎么搭。传统方式是翻阅几十页模板文档,费时费力。AI 可以将自然语言描述直接转化为结构完整的 LaTeX 论文骨架,包括文档类声明、前言区宏包导入、章节组织、公式与图表框架。
具体案例:一位算法工程师想写一篇关于模型压缩的论文,他把核心思路用几句话描述给 AI,AI 便生成了一份完整的 LaTeX 源文件,包含 \documentclass{article}、amsmath 等宏包导入、摘要、引言、方法、实验、结论的标准章节结构,以及损失函数公式的 LaTeX 写法。他从骨架出发直接填充实验结果,当天就完成了初稿。
AI 诊断 LaTeX 编译报错
阶段:代码调试与优化
解决的问题:新手面对 .log 文件里密密麻麻的 error 和 warning 容易手足无措,分不清哪个是根因、哪些是连锁反应。传统方式是去论坛发帖等待回复,效率极低。AI 能快速定位报错行号,解释错误含义并给出修复代码。
具体案例:某 MLOps 工程师在用 LaTeX 写系统架构文档时,报错 Missing $ inserted。他把报错信息粘贴给 AI,AI 指出是他在文本模式中直接输入了数学符号 _,建议改为 \_ 或在前后加上 $ 包围,并给出了修改后的代码片段,一次编译通过。
AI 批量转换技术文档为 LaTeX
阶段:数据清洗与文档工程
解决的问题:团队积累了数十篇 Markdown 或 Word 技术文档,需要统一迁移到 LaTeX 发布,逐篇手工转换是灾难。AI 可以批量将结构化内容转换为符合规范的 LaTeX 源码,并自动处理代码块(verbatim/listings)、公式(equation)、图表(figure)等环境。
具体案例:某开源项目的 DevRel 工程师使用 AI 管道将 API 文档从 Markdown 批量转为 LaTeX,再编译生成便于发布的 PDF 版本。AI 不仅完成了语法转换,还自动为所有代码示例包裹了 verbatim 环境,为所有公式添加了标签,保证交叉引用完整。
Python 演示
#!/usr/bin/env python3# -*- coding: utf-8 -*-# 功能:扫描 LaTeX 源文件,检查常见结构性错误import reimport sysfrom collections import Counter def check_tex_file(path): with open(path, 'r', encoding='utf-8') as f: text = f.read() errors = [] # 1. 检查文档类声明是否存在 if not re.search(r'\\documentclass\[?.*\]?\{.*\}', text): errors.append('缺少 \\documentclass 文档类声明') # 2. 检查 begin/end 环境配对 envs = re.findall(r'\\begin\{(\w+)\}', text) ends = re.findall(r'\\end\{(\w+)\}', text) env_count = Counter(envs) end_count = Counter(ends) for env, cnt in env_count.items(): if end_count.get(env, 0) != cnt: errors.append('环境 %s 的 begin/end 数量不匹配' % env) # 3. 检测中文内容是否加载 ctex has_chinese = re.search(r'[\u4e00-\u9fff]', text) if has_chinese and 'ctex' not in text: errors.append('检测到中文,建议加载 ctex 宏包') # 4. 统计数学公式数量 formula_num = len(re.findall(r'\\\(|\\\[|\\begin\{equation\}', text)) # 5. 检查交叉引用完整性 labels = set(re.findall(r'\\label\{([^}]+)\}', text)) refs = set(re.findall(r'\\ref\{([^}]+)\}|\\eqref\{([^}]+)\}', text)) ref_names = {r[0] or r[1] for r in refs} missing = ref_names - labels if missing: errors.append('以下引用缺少 label: ' + ', '.join(sorted(missing))) return errors, formula_num def main(): path = sys.argv[1] if len(sys.argv) > 1 else 'main.tex' try: errors, formula_num = check_tex_file(path) except FileNotFoundError: print('文件不存在: ' + path) return print('==== LaTeX 文档健康报告 ====') print('公式数量: %d' % formula_num) if not errors: print('未发现明显问题,可以编译!') else: print('发现 %d 个潜在问题:' % len(errors)) for e in errors: print(' - ' + e) if __name__ == '__main__': main()
.tex 源文件的结构健康度,检查文档类声明、环境配对、中文宏包和交叉引用四大类常见问题,相当于给 LaTeX 文档做一个“开工前体检”。re.search(r'\\documentclass\[?.*\]?\{.*\}', text)用正则查找文档类声明,\[?.*\]?匹配可选的方括号参数。envs = re.findall(r'\\begin\{(\w+)\}', text)提取所有\begin{...}中的环境名,为后续配对打基础。for env, cnt in env_count.items()依次遍历每种环境,对比它的\begin次数与\end次数。has_chinese = re.search(r'[\u4e00-\u9fff]', text)用 Unicode 中文范围匹配检测源文件中是否存在汉字。if has_chinese and 'ctex' not in text有中文却没提到 ctex 时给出建议,因为中文排版绕不开它。labels = set(re.findall(r'\\label\{([^}]+)\}', text))收集所有标签,set天然去重。ref_names = {r[0] or r[1] for r in refs}把\ref和\eqref的两组捕获结果合并成引用名集合。missing = ref_names - labels集合差运算,算出“被引用了但没有定义”的标签,即悬空引用。errors.append('以下引用缺少 label: ' + ', '.join(sorted(missing)))把缺失标签按字母序拼成提示信息。
常见误区
误区LaTeX 应该像 Word 一样,打字立刻看到排版效果,为什么我改了代码要重新编译才看到结果?这也太麻烦了。
正解LaTeX 是“编译式”排版,源文件是纯文本图纸,必须经过编译器施工才能生成 PDF。这个“麻烦”恰恰是它最大的优点:排版过程完全可复现,同一份源码在任何机器上得到一模一样的 PDF。Word 的“即时显示”本质是边输入边排版,换个环境就可能错乱。装修队按同一张图纸施工,一百次都盖出同一栋楼。
为何常见:多数人接触文字处理都是从 Word 这类所见即所得工具开始的,把“打字立刻出效果”当成了默认体验。
误区网上教程说 LaTeX 支持中文要设置什么 `CJK` 宏包、手动指定仿宋黑体字体、还要调字体映射文件,感觉极其复杂。
正解现代方案只需一行 \usepackage{ctex} 配合 xelatex 编译,字体、缩进、标点避头尾全部自动处理。手动配置字体是老教程的历史遗留经验,今天用它纯粹是给自己挖坑。ctex 这位“中式装修专员”已经把所有细节封装好了。
为何常见:中文用户的搜索往往命中 2010 年代前后的老教程,那时 ctex 尚不成熟,手动配置是唯一方案,这些经验至今仍在流传。
误区编译时满屏 error,是不是我的源文件写得太烂,应该推倒重来?或者说明 LaTeX 根本不适合我?
正解绝大多数 LaTeX 报错只是一处小瑕疵引起的连锁反应。屏幕上 20 行 error 往往源于第一个 ! 后面那条真正的错误:一个没匹配的右花括号、一个漏掉的宏包、一个拼错的命令。策略是回到第一个错误修好它,重新编译,很多后续报错会自己消失。监理报告说“这面墙有裂缝”,你不需要把整栋楼拆了。
为何常见:新手面对满屏红色字母会产生“灾难化”联想,而编译器又确实把后续连锁错误都列了出来,加剧了恐吓效果。
误区写完公式手动在行尾敲 `(1)`、`(2)` 不行吗?自己维护编号更可控,反正没有几个公式。
正解手动编号在文档修改时会彻底失控:中间插入一个新公式,后面所有编号都要手动改一遍,正文中的引用更要同步改。LaTeX 的 equation 环境自动编号、\label/\eqref 自动引用,增删公式毫无心理负担。展品编号牌由博物馆统一发放,你只管登记标签,不用自己写牌号。
为何常见:Word 时代手动敲编号是唯一方式,这种肌肉记忆被带入 LaTeX,忽略了它有全自动的编号管理机制。
误区看到教程里推荐什么宏包就全部 `\usepackage` 一遍,囤上一堆,觉得加载得多就专业。
正解宏包是按需加载的工具。加载太多会拖慢编译速度,更糟糕的是宏包之间可能冲突——两个工具都想改造同一个命令,就会打架(编译报错或输出诡异)。正确做法是只加载当前文档真正需要的宏包,并在 \usepackage 旁写一行注释说明用途,保持工具箱清爽。
为何常见:新手缺乏“最小依赖”意识,看到别人代码里有的宏包就照抄,不想判读每个宏包的实际作用,最终埋下冲突隐患。
面试题
Q1. LaTeX 中 \documentclass{article} 命令的主要作用是什么?
- A.加载一个名为 article 的宏包
- B.声明文档的类型为文章类← 正确答案
- C.创建一个名为 article 的章节
- D.设置文档页边距的大小
答案:B。\documentclass 是文档类声明,决定整篇文档的“户型”,article 表示文章类。加载宏包用 \usepackage,创建章节用 \section,设置页边距用 geometry 宏包。本题对应正文“文档结构”一节的核心概念。
Q2. 在 LaTeX 中,\begin{document} 之前的部分通常被称为什么?
- A.正文区或施工现场
- B.前言区或设计图纸区← 正确答案
- C.参考文献区或档案室
- D.附录区或储物间
答案:B。\begin{document} 之前是前言区(preamble),负责声明文档类、加载宏包、设置全局样式,相当于开工前的设计图纸;之后是正文区。附录、参考文献都在正文区之后,属于正文结构的一部分。对应正文“前言区与正文区”的比喻。
Q3. \begin{equation} 与 $...$ 的主要区别是什么?
- A.前者支持图片,后者不支持
- B.前者自动编号,后者是行内公式不编号← 正确答案
- C.前者只能写一个字符,后者不限
- D.两者完全相同只是写法不同
答案:B。equation 环境产生独占一行的行间公式并自动编号,适合重要公式;$...$ 产生行内公式,嵌入句子中不编号。图片用 figure 环境处理,与公式环境无关。对应正文“公式排版与编号”一节。
Q4. 处理 LaTeX 中文排版时,最推荐的现代方案是什么?
- A.手动指定每个中文字体并配置映射
- B.加载 ctex 宏包并用 xelatex 编译← 正确答案
- C.把中文内容全部转成图片插入
- D.使用 pdflatex 直接编译中文源码
答案:B。ctex 宏包一键解决中文支持,配合 xelatex 引擎识别 UTF-8 编码,是最推荐的方案。手动配置字体是过时做法;转图片本末倒置;pdflatex 对中文支持不完整。对应正文“中文排版处理”一节。
Q5. 下列哪些属于 LaTeX 的常用宏包?
- A.amsmath 提供数学排版增强← 正确答案
- B.graphicx 支持插图功能← 正确答案
- C.hyperref 生成超链接书签← 正确答案
- D.chapter 帮助划分章节结构
答案:ABC。amsmath、graphicx、hyperref 都是高频宏包,分别对应数学、插图与超链接。chapter 不是宏包,而是 book 文档类中的章节命令。宏包的概念是“插拔式工具”,命令是“工具的具体用法”,二者不能混淆。
Q6. 在 LaTeX 中交叉引用公式编号,应该使用哪组命令配合完成?
- A.\label 与 \ref 或 \eqref← 正确答案
- B.\cite 与 \bibliography
- C.\include 与 \input
- D.\caption 与 \centering
答案:A。\label 给公式贴标签,\ref 或 \eqref 在正文中引用编号,二者配合实现自动交叉引用。\cite 用于参考文献,\include/\input 用于拆分文件,\caption 是图表标题命令。对应正文“标签引用自动联动”的展品编号比喻。
Q7. 编译 LaTeX 时报错 File 'xxx.sty' not found,可能的原因有哪些?
- A.对应的宏包尚未安装← 正确答案
- B.宏包文件名拼写错误← 正确答案
- C.在 usepackage 之前使用了宏包命令
- D.文档类名称书写不符合规范
答案:AB。File ... not found 直译是“文件不存在”,源于宏包未安装(A)或拼写错误(B)。C 场景会触发 Undefined control sequence 而不是文件缺失;D 场景会触发 Unknown document class。教训:先看报错关键词,再对症下药,对应正文“报错排查”的监理报告比喻。
Q8. LaTeX 的 verbatim 环境最突出的特征是什么?
- A.自动排版成漂亮的列表
- B.原样输出所有字符不改动← 正确答案
- C.生成自动编号的数学公式
- D.创建可以点击的超链接
答案:B。verbatim 环境原样保留所有字符,空格、换行、特殊符号都不做解释,是展示代码和配置文件的利器。列表、公式、超链接分别是 itemize、equation、hyperref 的职责。对应正文“代码块环境”的储物间比喻。
Q9. \newcommand{\R}{\mathbb{R}} 执行后的效果是什么?
- A.将文档中所有字母 R 加粗显示
- B.定义新命令 \R,使用时代号为 \mathbb{R}← 正确答案
- C.修改文档的全局字体为斜体
- D.创建一个名为 R 的新文档环境
答案:B。\newcommand 的第一参数是新命令名 \R,第二参数是展开内容 \mathbb{R}。此后文中写 \R 即输出黑板粗体 R(实数集)。它不改变已有文本,也不创建环境,只是定义了一个“语法糖”。对应正文“自定义命令”的快拆接头比喻。
Q10. 关于 LaTeX 的排版机制,下列说法正确的有哪些?
- A.源文件是纯文本,编译后生成 PDF← 正确答案
- B.同一个源文件在不同机器编译结果不同
- C.交叉引用需编译两次才能得到正确编号← 正确答案
- D.公式编号需要作者手动逐一填写
答案:AC。A 正确,LaTeX 是纯文本源码 + 编译器输出 PDF;B 错误,跨平台一致性正是 LaTeX 的核心优势;C 正确,首遍编译记录数据、二遍编译填充引用,这是 .aux 文件的职责;D 错误,equation 环境自动编号。对应全文“图纸式写作”的核心心法。