LaTeX中文论文排版:引擎、字体与宏包三大核心原理

发布时间:2026/10/15 19:55:38
LaTeX中文论文排版:引擎、字体与宏包三大核心原理
1. 为什么现在还要学 LaTeX 写中文论文——一个被低估的“生产力护城河”你是不是也经历过用 Word 写完一篇带公式、多图表、三栏排版的中文论文交稿前一晚突然发现参考文献格式错了一处全篇编号乱了或者导师说“把图3b的坐标轴字体调成10号宋体”你翻遍Word设置找了20分钟最后发现它根本不能单独控制子图字体又或者投稿系统要求 PDF 必须嵌入所有中文字体、矢量图不许转为位图、页眉页脚要严格对齐期刊模板——而你导出的 PDF 在编辑器里放大到300%线条开始发虚汉字边缘出现灰边。这些不是小问题是真实卡在科研写作咽喉上的鱼刺。而 LaTeX 就是那把专门打磨出来的、带倒钩的镊子。它不讨好鼠标但极度尊重逻辑它不提供所见即所得的幻觉却给你所想即所得的确定性。我带过不少某高校理工科研究生第一篇中文论文用 Word 写平均返修3.7次主要卡在格式第二篇改用 LaTeX返修降为1.2次其中0.8次是内容修改0.4次是期刊编辑手动微调页眉间距——因为LaTeX生成的PDF连页眉下划线的粗细都精确到0.1pt。核心关键词“LaTeX”“中文期刊论文”“前言篇”已经点明这不是一次工具教学而是一场排版思维的切换。它解决的从来不是“怎么打字”而是“如何让文字、公式、图表、引用、页眉页脚、章节编号这些元素在不同设备、不同系统、不同年份里永远保持完全一致的视觉结构和语义层级”。这正是中文科技期刊最看重的底层稳定性——你的研究可能被质疑但你的排版绝不会出错。所以这篇“前言篇”我们不急着敲\documentclass{}先拆解三个被90%新手忽略的前提中文支持不是开箱即用的“功能”而是需要主动构建的“环境”期刊模板不是拿来就套的“皮肤”而是必须理解其宏包依赖关系的“骨架”而“从零开始”真正的零是指你电脑里连一个 TeX 发行版都没有连xelatex命令输进去是报错还是闪退都不知道。我试过用 Windows 自带记事本写.tex文件也试过在 macOS 终端里手动编译失败后逐行查日志。踩过的最大坑是以为装了 MacTeX 就万事大吉结果编译中文时满屏! Package fontspec Error: The font SimSun cannot be found.——不是字体没装是你没告诉 XeLaTeX 去哪里找它。这个细节背后是 Unicode 字体映射、OpenType 特性支持、引擎与编译链的深度耦合。所以这篇前言我们要做的第一件事就是把“LaTeX 写中文”这件事从“听说很厉害”拉回到“它到底在操作系统底层干了什么”的物理层面。只有看清了这个层面你才能真正理解为什么有些模板编译5秒就出PDF有些却卡在fontspec加载上3分钟为什么同一份.tex文件在你电脑上正常在导师Windows电脑上编译报错以及为什么“前言篇”这三个字恰恰是最容易被跳过、却最决定后续成败的一环。2. 中文排版的三大隐形门槛引擎、字体、宏包缺一不可很多人以为“LaTeX 支持中文”是个开关打开就行。实际上它是一条由三段铁轨拼接而成的轨道引擎Engine是火车头字体Font是铁轨本身宏包Package是调度系统。少任何一段车都开不动更别说跑得稳。2.1 引擎选择XeLaTeX 是当前中文排版的唯一务实之选LaTeX 的编译引擎有三个主流选项pdfLaTeX、XeLaTeX 和 LuaLaTeX。它们的区别不是“哪个更快”而是“谁认识汉字”。pdfLaTeX这是最老的引擎诞生于1990年代。它只认“8-bit 编码”也就是最多256个字符。你要让它显示“中国”它看到的是两个独立的、毫无关联的字节D6 D0GB2312编码下的“中”和B9 FA“国”。它没有“Unicode”这个概念更不知道“中”和“国”组合起来是一个词。所以 pdfLaTeX 要显示中文必须靠ctex宏包做一层“翻译”把每个汉字映射到一个预先定义好的、带编号的“符号盒子”里。这个过程极其脆弱一旦你换了一个字体或者用了新版本的宏包映射表就可能失效轻则乱码重则整个编译中断。我见过某实验室用 pdfLaTeX 写的论文模板升级 ctex 到 v2.5 后所有\section{引言}都变成了\section{????}因为新版本默认关闭了旧式映射。XeLaTeX它的核心能力是“原生支持 Unicode”。你可以直接在.tex文件里输入中文两个字保存为 UTF-8 编码XeLaTeX 就能像读英文一样读出来。更重要的是它能直接调用你操作系统里安装的任何 TrueType 或 OpenType 字体比如 Windows 的SimSun宋体、Microsoft YaHei微软雅黑macOS 的STSong华文宋体、PingFang SC苹方-简甚至你自己下载的Noto Sans CJK SC思源黑体。它不关心字体文件叫什么名字只关心“这个字体文件里有没有‘中’这个字形”。这种“所见即所得”的底层能力让中文排版第一次摆脱了编码转换的噩梦。这也是为什么几乎所有现代中文期刊模板包括《中国科学》《物理学报》官方模板都强制要求使用 XeLaTeX 编译。LuaLaTeX技术上最先进支持更复杂的字体特性如可变字体、OpenType 数学排版但对中文用户来说它目前最大的问题是“生态成熟度”。很多常用的中文宏包如ctex的某些高级功能在 LuaLaTeX 下仍有兼容性问题错误提示也更晦涩。对于“从零开始写一篇期刊论文”这个明确目标XeLaTeX 是经过十年以上实战检验的、最稳的选择。就像造房子你不会为了未来可能加装智能家居而在地基阶段就强行预埋所有光纤——先确保房子立得住再谈装修。提示判断你当前使用的引擎只需看编译命令。在终端或命令行里输入xelatex main.tex就是在用 XeLaTeX输入pdflatex main.tex就是在用 pdfLaTeX。绝大多数现代 LaTeX 编辑器如 TeXstudio、Overleaf都会在界面右下角明确标出当前激活的引擎。2.2 字体配置不是“装了就行”而是“告诉引擎去哪找”装了微软雅黑不等于 XeLaTeX 就能自动找到它。这里有个关键认知XeLaTeX 本身不自带任何中文字体它只是一个“字体快递员”你必须给它一张准确的“送货地址单”。在 Windows 系统上中文字体通常存放在C:\Windows\Fonts\目录下文件名是simsun.ttc宋体、msyh.ttc微软雅黑。但 XeLaTeX 不会自己去这个目录翻箱倒柜。你需要通过fontspec宏包用\setmainfont{}这样的命令明确告诉它“主文字用微软雅黑去C:/Windows/Fonts/msyh.ttc这个路径找”。但问题来了如果你把.tex文件发给一位 macOS 用户他电脑里根本没有C:/Windows/Fonts/这个路径编译必然失败。所以专业做法是使用字体的“逻辑名称”而非“物理路径”。例如\usepackage{fontspec} \setmainfont{SimSun} % Windows 逻辑名 \setsansfont{Microsoft YaHei} % Windows 逻辑名 \setmonofont{Consolas} % Windows 逻辑名或者更跨平台的写法\usepackage{fontspec} \setmainfont{Noto Serif CJK SC} % 思源宋体开源Windows/macOS/Linux 都有 \setsansfont{Noto Sans CJK SC} % 思源黑体 \setmonofont{Noto Sans Mono CJK SC} % 思源等宽思源系列字体是 Adobe 和 Google 联合发布的开源中日韩字体完全免费且在三大系统上安装方式统一官网下载.zip解压后双击安装即可。我实测下来用思源字体配合 XeLaTeX编译成功率接近100%且输出的 PDF 在 Adobe Acrobat 和 macOS 预览里打开汉字渲染质量远超 Windows 自带字体——因为思源是专为屏幕阅读优化的 OpenType 字体支持更多的字重Light, Regular, Bold, Black和更精细的 hinting字体微调。注意不要试图用\setmainfont{simsum.ttf}这种写法。.ttf是文件扩展名不是字体名。XeLaTeX 查找的是字体内部的“PostScript Name”或“Full Name”你可以在字体管理软件如 Windows 的“字体设置”、macOS 的“字体册”里双击打开字体查看其详细信息。例如“微软雅黑”的 PostScript Name 是MicrosoftYaHei而不是msyh.ttc。2.3 宏包协同ctex 是中文排版的“操作系统内核”有了引擎和字体还只是有了“硬件”。要让论文有“标题”“摘要”“章节”“参考文献”这些语义结构你需要一个“操作系统”这就是ctex宏包。ctex不是一个单一的.sty文件而是一套完整的中文排版解决方案它内部整合了xeCJK处理中西文混排的断行、标点挤压、字距调整ctexcap提供中文的\chapter{}、\section{}等命令并自动编号、生成目录ctexpatch修复 LaTeX 原生命令在中文环境下的各种小毛病比如\today输出“2024年4月15日”而不是“April 15, 2024”ctexhook提供\ctexset{}这样的高级接口让你能一键修改所有章节标题的字体、颜色、间距。它的核心价值在于“约定优于配置”。你不需要自己写\renewcommand{\section}{...}去定义章节样式只需要加载ctex然后写\section{引言}它就会自动用黑体、小四号、加粗显示“引言”二字在“引言”前面加上“1”这个编号把这个标题加入自动生成的目录确保“引言”和后面的文字之间有标准的段前距12pt和段后距6pt。这背后是ctex对中国国家标准 GB/T 7714-2015《中华人民共和国国家标准参考文献著录规则》的深度适配。比如当你用\bibliographystyle{gbt7714}时ctex会自动识别并正确处理中文作者名的“张三李四王五”格式而不是错误地变成“Zhang S, Li S, Wang W”。我曾帮一位某高校材料学院的博士生调试他的论文模板。他坚持不用ctex自己用xeCJK 手动\renewcommand搞了一套“精简版”。结果在投稿时期刊系统自动检测到参考文献格式不符合 GB/T 7714直接拒收。后来换成ctex一行\bibliographystyle{gbt7714}就解决了所有问题。这不是偷懒而是站在巨人的肩膀上避免重复发明轮子。3. “前言篇”的真正任务搭建一个可验证、可迁移、可复现的本地环境很多教程一上来就教你写\documentclass{ctexrep}这就像教人开车第一课就让你挂五档踩油门。真正的“从零开始”第一步是确认你的“车”能点火、能挂挡、能识别路标。这一节我们就用最朴素的方式亲手搭起一个最小可行环境MVP并完成三次关键验证。3.1 发行版选择MacTeX、TeX Live、proTeXt哪个是你的“出厂系统”LaTeX 不是单个程序而是一整套工具链编译器xelatex、宏包管理器tlmgr、字体工具otfinfo、PDF 处理工具pdfcrop等等。它们被打包成“发行版”Distribution。对中文用户选择只有一个优先选 MacTeXmacOS或 TeX LiveWindows/Linux。MacTeX这是 macOS 平台上的“终极完整版”包含了 TeX Live 的全部内容外加 macOS 专属的 GUI 工具如 TeX Live Utility用于一键更新所有宏包。它体积巨大约5GB但好处是“一次安装十年无忧”。我用 MacTeX 2022 版本至今没遇到过因宏包缺失导致的编译失败。TeX Live这是跨平台的官方发行版Windows 和 Linux 用户都用它。安装时有一个关键选项务必勾选“Install missing packages on-the-fly”按需自动安装宏包。这个选项意味着当你第一次编译一个用到siunitx单位排版宏包的文档时TeX Live 会自动联网下载并安装它而不是报错退出。这是新手最友好的设置。proTeXt这是一个针对 Windows 用户的“傻瓜式”安装包它把 TeX Live 和 TeXstudio 编辑器打包在一起。优点是省事缺点是版本更新滞后且无法精细控制宏包安装策略。如果你是纯新手可以先用 proTeXt 入门但一旦开始写正式论文建议卸载 proTeXt重装官方 TeX Live以便获得最新、最稳定的环境。安装完成后最关键的验证不是打开编辑器而是打开终端macOS/Linux或命令提示符Windows输入xelatex --version如果返回类似XeTeX 3.14159265-2.6-0.999994 (TeX Live 2023)的信息说明引擎安装成功。如果提示xelatex is not recognized as an internal or external command说明你的系统 PATH 没有正确配置。这时不要慌TeX Live 安装程序通常会在桌面创建一个“TeX Live 2023”文件夹里面有一个install-tl-windows.batWindows或install-tl-unix.shmacOS/Linux的快捷方式双击运行它选择“Add TeX Live to system PATH”重新启动终端即可。3.2 创建第一个“Hello World”中文文档三行代码一次编译现在我们来写人生中第一个真正意义上的 LaTeX 中文文档。请打开任意文本编辑器推荐 VS Code LaTeX Workshop 插件或 TeXstudio新建一个文件命名为hello.tex输入以下三行\documentclass[UTF8]{ctexart} \begin{document} 你好世界 \end{document}注意这三行的每一个细节\documentclass[UTF8]{ctexart}[UTF8]是一个至关重要的选项它告诉ctex宏包“这个文档是 UTF-8 编码的请用 UTF-8 方式读取”。没有它即使你用 XeLaTeX 编译也会出现乱码。{ctexart}这是ctex提供的三种文档类之一。ctexart适用于短文、报告、课程作业ctexrep适用于长篇报告、学位论文ctexbook适用于书籍。我们从最简单的ctexart开始。你好世界这就是你的正文。它必须写在\begin{document}和\end{document}之间这是 LaTeX 的“文档主体”区域。保存文件然后在终端里进入该文件所在目录执行xelatex hello.tex如果一切顺利你会看到终端里快速滚动出一堆以[1]、[2]开头的行最后停在Output written on hello.pdf (1 page).。这意味着编译成功生成了hello.pdf。现在用 PDF 阅读器打开hello.pdf。你应该看到页面居中有一行“你好世界”字体是宋体或你系统默认的中文字体没有页眉页脚没有页码干净得像一张白纸。这看似简单但它完成了三项关键验证引擎验证XeLaTeX 能正常调用宏包验证ctex能被正确加载且UTF8选项生效字体验证XeLaTeX 能成功调用系统中文字体无需额外配置。实操心得我第一次编译失败是因为用记事本保存hello.tex时默认编码是 ANSI不是 UTF-8。结果你好世界在文件里存成了乱码字节XeLaTeX 读出来自然也是乱码。解决方法在记事本里点击“文件”→“另存为”在右下角“编码”下拉菜单里务必选择“UTF-8”再保存。VS Code 默认就是 UTF-8所以更推荐。3.3 进阶验证插入公式、插入图片、生成目录——一次过三关“Hello World”只是起点。真正的环境是否可靠要看它能否处理论文的核心要素。我们来加三行代码一次性验证公式、图片和目录。首先确保你的电脑里有一张图片比如figure1.png放在和hello.tex同一个文件夹下。然后修改hello.tex如下\documentclass[UTF8]{ctexart} \usepackage{graphicx} % 插入图片必需 \usepackage{amsmath} % 数学公式必需 \usepackage{hyperref} % 生成可点击的目录链接可选但强烈推荐 \begin{document} \tableofcontents % 生成目录 \newpage \section{引言} 这是引言部分。 \section{理论推导} 根据牛顿第二定律 \begin{equation} F ma \end{equation} 其中 $F$ 是力$m$ 是质量$a$ 是加速度。 \section{实验结果} 如图\ref{fig:1}所示我们的实验数据与理论预测高度吻合。 \begin{figure}[htbp] \centering \includegraphics[width0.6\textwidth]{figure1.png} \caption{实验数据拟合曲线} \label{fig:1} \end{figure} \end{document}这段代码引入了三个关键宏包graphicx提供\includegraphics{}命令用于插入图片amsmath提供\begin{equation}环境用于排版带编号的公式hyperref提供\tableofcontents和\ref{}命令让目录和交叉引用变成可点击的超链接。编译流程不再是xelatex hello.tex一次就够了。由于目录和引用需要“两次遍历”你必须连续执行三次命令xelatex hello.tex # 第一遍生成 .aux 辅助文件记录章节、图表、引用位置 xelatex hello.tex # 第二遍读取 .aux 文件生成正确的目录和交叉引用 xelatex hello.tex # 第三遍确保所有链接和页码最终稳定有时需要每次执行后检查hello.pdf第一遍后PDF 里只有文字和公式目录是空的图的引用显示为??第二遍后目录出现且有“引言”、“理论推导”、“实验结果”三个条目图的引用变成1第三遍后所有内容稳定无警告。如果第二遍后目录仍是空的或者图的引用一直是??最常见的原因是你没有在\begin{document}之后、\section{}之前就写了\tableofcontents。LaTeX 的目录是“顺向生成”的它只会收录\tableofcontents命令之后定义的章节。注意事项graphicx宏包的\includegraphics{}命令括号里的文件名不能带空格和中文。所以我的实验图.png是非法的必须改成exp_fig1.png。这是 LaTeX 的一个古老限制源于它对文件系统的原始调用方式。别试图用引号包裹它不认。4. 期刊模板的“解剖学”读懂.cls和.bst文件才是真·从零开始当你信心满满地准备套用《某某学报》的官方模板时往往会发现下载回来的 zip 包里除了sample.tex还有journal.cls、gbt7714.bst、template.pdf这些文件。它们是什么能删吗怎么改这是“前言篇”必须讲透的最后一环。4.1.cls文件期刊的“宪法”定义一切格式规则.cls是“Class File”文档类文件的缩写。它本质上是一个巨大的.tex文件里面全是\renewcommand{}和\newenvironment{}这样的底层定义。你可以把它理解为期刊的“宪法”——它规定了论文的页面尺寸A4 还是 B5页边距上3.5cm下2.5cm左2.5cm右2.5cm字体大小正文小四标题黑体图注五号章节编号格式“1 引言”还是“1. 引言”参考文献的悬挂缩进量0.5cm 还是 0.8cm甚至是否允许在图题caption里使用\textbf{}加粗。举个真实例子。某中文核心期刊的journal.cls文件里有这样一段% 设置参考文献悬挂缩进 \renewcommand{\biblabel}[1]{[#1]\hfill} \renewenvironment{thebibliography}[1] {\section*{\refname}% \small% \list{\biblabel{\arabic\cenumiv}}% {\settowidth\labelwidth{\biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \itemindent -\labelwidth % 关键负值实现悬挂 \parsep 0\p \plus\p \topsep 6\p \plus2\p \minus2\p \itemsep 3\p \plus2\p \minus2\p}}这段代码的itemindent -\labelwidth就是实现“悬挂缩进”的核心。它告诉 LaTeX“每个参考文献条目的第一行向左缩进一个标签宽度即[1]的宽度这样第二行就自然凸出来了”。如果你不懂这个原理只是盲目修改.cls文件很容易把整个参考文献格式搞崩。所以对待.cls文件的正确姿势是把它当作只读的“规范文档”而不是可随意涂改的“草稿纸”。你想改页边距不要去动journal.cls而是在sample.tex的\documentclass命令里用选项传入\documentclass[UTF8, a4paper, 12pt]{journal} % 这里可以加 paper size 和 font size或者更安全的做法是在导言区\begin{document}之前用\geometry{}命令覆盖\usepackage{geometry} \geometry{left2.5cm, right2.5cm, top3.5cm, bottom2.5cm}geometry宏包的优先级高于.cls文件里的原始设置且修改只影响当前文档不会污染模板本身。4.2.bst文件参考文献的“排版引擎”决定你导师怎么看你的学术素养.bst是“BibTeX Style”BibTeX 样式文件的缩写。它和.cls一样是一个纯文本文件但语法完全不同是一种叫 BibTeX 的专用脚本语言。它的唯一任务把你在.bib文件里写的原始文献数据作者、标题、期刊、年份按照特定期刊的格式要求组装成最终的参考文献条目。比如你在refs.bib里写了article{zhang2023, author {张三 and 李四}, title {一种新型钙钛矿太阳能电池的效率提升研究}, journal {中国科学物理学 力学 天文学}, year {2023}, volume {53}, number {4}, pages {044201} }那么gbt7714.bst会把它渲染成[1] 张三, 李四. 一种新型钙钛矿太阳能电池的效率提升研究[J]. 中国科学物理学 力学 天文学, 2023, 53(4): 044201.而plain.bstLaTeX 默认样式会渲染成[1] Zhang S, Li S. A novel perovskite solar cell efficiency enhancement study.Scientia Sinica Physica, Mechanica Astronomica, 2023, 53(4): 044201.区别一目了然gbt7714.bst严格遵循中文国标作者名用中文、期刊名用全称、标注[J]表示期刊文章、年份在前、卷期在后plain.bst则是西式风格作者名拼音、期刊名缩写、年份在后。所以.bst文件不是“美化工具”而是“学术规范翻译器”。你投中文期刊就必须用gbt7714.bst或期刊指定的.bst你投英文期刊就要用elsarticle-harv.bstElsevier或apsrev4-1.bstAPS。选错了.bst轻则被编辑部退回要求修改重则被质疑学术规范意识薄弱。实操心得.bst文件不能直接编辑。如果你想微调某个字段比如把[J]改成[期刊]正确的做法是用makebst工具TeX Live 自带交互式生成一个新的.bst文件。在终端输入latex makebst它会问你100多个问题最后生成一个定制化的myjournal.bst。这是我给某高校研究生培训时的标准操作比手动改.bst安全十倍。4.3sample.tex不是“样例”而是你的“作战地图”最后也是最重要的一点sample.tex这个文件它的真正价值不是让你“照着抄”而是让你“逆向工程”。它是一张详细的“作战地图”上面标出了所有必填字段\title{}、\author{}、\affil{}单位、\email{}、\keywords{}关键词所有可选模块\abstract{}摘要、\acknowledgement{}致谢、\appendix附录所有期刊特有命令\bio{}作者简介、\received{}收稿日期、\revised{}修回日期所有隐藏陷阱比如某期刊要求\section{}不能出现在\abstract{}之前否则编译报错或者\figure环境必须放在\section{}之后不能跨节。我处理过一份某EI期刊的模板sample.tex里有一段注释% IMPORTANT: Do NOT use \section{} before \maketitle. % The journal requires title and author block to be the very first content.这条注释救了我。因为当时我习惯先把\section{引言}写在最前面结果编译死活不通过报错信息是! LaTeX Error: Somethings wrong--perhaps a missing \item.完全看不出问题在哪。直到我逐行读sample.tex的注释才恍然大悟。所以“前言篇”的最后一项任务就是打开sample.tex用铅笔在旁边做三件事用红笔圈出所有\xxx{}命令旁边标注“必填”或“可选”用蓝笔划出所有注释行以%开头旁边写上“这是期刊硬性要求”用绿笔标出所有\usepackage{}旁边写上“这个宏包是用来干啥的”。做完这三件事你就不再是一个“套模板的人”而是一个“读懂规则的人”。这才是“从零开始”最坚实的第一步。5. 常见问题与排查技巧实录那些让我熬夜到凌晨三点的“幽灵错误”即使你严格按照上述步骤操作LaTeX 依然会给你制造一些“幽灵错误”——它们不报错但输出结果诡异或者报错但错误信息指向一个完全无关的行。这些是 LaTeX 的“哲学”它不告诉你哪里错了只告诉你“从这里开始世界崩塌了”。以下是我在过去五年里整理出的最常遇到、最易排查的五大类问题附带真实日志和秒解方案。5.1 错误类型一Undefined control sequence—— “不认识的命令”但你明明没写错典型场景你复制了一段网上的 LaTeX 代码里面有\textcircled{1}编译时报错! Undefined control sequence. l.15 \textcircled {1}真相\textcircled{}是 LaTeX 原生命令但它只支持 ASCII 字符字母、数字不支持中文。当你写\textcircled{一}它就崩溃了。这不是你的错是 LaTeX 的设计局限。秒解方案换用tikz宏包它能画任意字符的圆圈\usepackage{tikz} \newcommand{\circled}[1]{\tikz[baseline(char.base)]{ \node[shapecircle,draw,inner sep1pt] (char) {#1};}} % 然后就可以用 \circled{一}、\circled{1} 了排查技巧当遇到Undefined control sequence第一步不是查拼写而是查这个命令的“适用范围”。去 CTANComprehensive TeX Archive Network网站搜索该命令看它的文档里是否写着“Only for Latin letters”。5.2 错误类型二Overfull \hbox—— “文字溢出”但页面看起来很正常典型场景编译日志里刷出一堆Overfull \hbox (1.234pt too wide) in paragraph at lines 23--25真相这不是错误是 LaTeX 的“善意提醒”。它说“这一行文字比设定的行宽多了1.234pt约0.4mm我把它挤进去了但效果可能不好。” 对于中文这几乎每天都在发生因为汉字是方块字不像英文可以断词。只要溢出量小于2pt完全可以忽略。秒解方案在导言区加一行让它闭嘴\hbadness1000 % 把警告阈值提高到1000pt基本等于关闭或者更优雅的做法用microtype宏包它能微调字间距和字符伸缩把溢出降到0\usepackage{microtype} \microtypesetup{protrusiontrue, expansiontrue}实操心得microtype是中文排版的“隐形冠军”。它能让一行多塞进半个字让段落两端对齐更自然。我对比过开启microtype后一篇10页的论文总页数能减少0.3页且阅读舒适度显著提升。5.3 错误类型三File not found—— “找不到文件”但文件明明就在那里典型场景你写了\includegraphics{fig1.png}编译报错! LaTeX Error: File fig1.png not found.真相路径问题。LaTeX 默认只在当前.tex文件所在目录查找。如果你的图片放在./images/fig1.png就必须写\includegraphics{images/fig1.png}秒解方案用\graphicspath{}命令一次性声明所有图片路径\usepackage{graphicx} \graphicspath{{./images/}{./figures/}} % 可以设多个路径用 {} 包裹用 {} 分隔这样无论你写\includegraphics{fig1.png}