☰
IEEE模板参考文献下划线问题排查与修复方案
2026/10/26 21:44:40 网站建设 项目流程

写论文那阵子,我用IEEE的会议模板排版,正文都调得差不多了,编译出来一看,参考文献那一块每条下面都拖着一条细下划线,像被人用铅笔划了重点。一开始我以为是PDF阅读器的锅,换了两个阅读器还是一样;又怀疑是模板版本太老,跑去更新了模板,下划线纹丝不动。折腾了小半天才定位到真正的原因——不是模板坏了,也不是编译器抽风,而是IEEE模板里对参考文献条目用了\underline相关的样式处理,配合某些宏包或字段写法就会把整条文献“划”出来。这个问题在排版圈里问的人不少,但答案往往零散,所以我把自己完整的排查链路和几种修复方案整理出来,给同样卡在这一步的人省点时间。

这篇内容适合正在用IEEEtran系列模板写期刊或会议论文的人,尤其是第一次接触LaTeX参考文献排版、看到下划线不知道从哪下手的新手;也适合已经能跑通模板、但被这类“样式细节”绊住的老手。下面我会先讲清楚这条下划线到底从哪来,再给出几种从根上解决和临时绕过的办法,最后聊聊我在实际排版中踩过的几个相关坑,尽量让你看完就能直接动手改。

1. 先搞清楚这条下划线是谁画上去的

很多人第一反应是“模板有bug”,其实IEEEtran模板本身是相当成熟的,它不会无缘无故给参考文献加下划线。这条线的出现,通常是几个因素叠加的结果,得先分清是哪一种,才能对症下药。

1.1 参考文献样式与\underline的关联

IEEEtran的参考文献排版依赖IEEEtran.bst这个样式文件,它负责把.bib里的条目格式化成列表。在默认配置下,条目里的某些字段(尤其是URL、DOI、以及部分标题处理)会走特定的排版分支。如果你用的.bst版本和模板主文件版本不匹配,或者你在导言区手动改过参考文献相关的命令,就可能触发把整条文献包进下划线样式的行为。

一个很典型的场景是:你从别处拷来一段“美化参考文献”的代码,里面可能包含类似重定义\bibitem或者给条目加装饰的命令。这类代码在别的模板里可能没事,但和IEEEtran的默认样式一撞,下划线就冒出来了。所以第一步永远是回看你的导言区,确认有没有你自己或前人加进去的、和参考文献样式相关的自定义命令。

1.2 宏包冲突:ulem、soul这类“下划线专业户”

LaTeX里处理下划线的宏包不少,ulem和soul是最常见的两个。它们本身没问题,但如果模板或你引用的其他宏包在内部调用了它们,并且对参考文献区域做了强调处理,就会出现整条文献被划线的现象。特别是ulem的\uline命令,如果被错误地应用到了thebibliography环境里,效果就是每条文献下面一条线。

判断方法很简单:在导言区临时注释掉可疑宏包,重新编译看下划线是否消失。如果消失了,基本可以锁定是这个宏包在起作用。注意不要一次性注释一大堆,那样即使问题解决了你也不知道是哪个,逐个来。

1.3 字段里的特殊字符与转义问题

还有一种容易被忽略的情况:.bib条目里某些字段含有特殊字符或未转义的符号,导致.bst在解析时进入了异常分支,把整条内容当成了需要强调的文本。比如URL字段里带了不规范的字符、标题里用了某些命令却没加花括号保护,都可能引发排版异常。这类问题的特点是:只有特定几条文献有下划线,而不是全部。如果你发现下划线是“选择性出现”的,优先去查那几条文献的字段写法。

2. 定位问题的三步排查法

上面讲了三种可能,实际动手时不能靠猜,得有一套能复现的排查顺序。我习惯用下面这三步,基本能在十分钟内锁定原因。

2.1 第一步:最小化复现,砍掉一切非必要内容

新建一个干净的.tex文件,只保留文档类声明、\bibliographystyle、\bibliography和最少的正文引用,编译看下划线是否还在。这一步的目的是排除你正文里其他宏包和自定义命令的干扰。如果最小化之后下划线消失了,说明问题出在你原来的导言区;如果还在,说明问题在模板或.bst本身。这个“二分法”思路在LaTeX排错里屡试不爽,先缩小范围再深挖。

2.2 第二步:检查.blg和.log里的警告

编译参考文献时生成的.blg文件记录了.bst处理每一条文献的过程,.log文件则记录了宏包加载和命令执行的情况。打开这两个文件,搜索Warning和Underfull、Overfull相关的提示,尤其注意有没有“missing field”“undefined command”之类的信息。很多时候下划线只是表象,真正的错误在日志里写得明明白白。我遇到过一条文献因为author字段格式不对,.bst解析失败后走了兜底分支,结果整条被加了装饰线,日志里其实早有提示。

2.3 第三步:逐条注释文献,锁定“肇事条目”

如果怀疑是某几条文献的字段问题,就把.bib里的条目一条条注释掉,每次编译观察下划线是否减少。定位到具体条目后,再逐个字段检查:先把URL、DOI这类容易出问题的字段删掉试试,再检查标题里有没有未保护的命令。这个方法笨但极其有效,尤其适合文献数量不多的情况。

3. 四种修复方案,按场景选

定位到原因之后,修复就有针对性了。下面四种方案覆盖了绝大多数情况,你可以根据自己的场景挑一个用。

3.1 方案一:清理导言区的自定义参考文献命令

如果是你自己或前人加的自定义命令导致的,最干净的做法就是删掉它们,回归模板默认样式。具体操作是:在导言区搜索\bibitem、\thebibliography、\underline、\uline这些关键词,把和参考文献样式相关的重定义整段注释掉,重新编译。如果下划线消失且参考文献格式仍然符合IEEE要求,那就说明这些自定义本来就是多余的。改之前记得备份,万一删错了还能回退。

3.2 方案二:处理宏包冲突,隔离ulem/soul

如果确认是ulem或soul引起的,有两种处理方式。一是直接不加载这个宏包——如果你的正文根本没用它的下划线功能,那它大概率是别的宏包顺带引入的,可以在导言区用\usepackage的顺序调整,或者干脆去掉。二是如果正文确实需要它,就用作用域隔离,把参考文献部分包在一个分组里,在组内临时取消相关命令的影响。具体写法因宏包而异,核心思路是“让下划线命令在参考文献环境里失效”,而不是全局禁用。

3.3 方案三:修正.bib字段写法

针对字段问题,重点是规范写法:标题里如果含有命令,用花括号把整个标题包起来保护;URL字段确保字符规范,必要时用\url{}包裹;作者字段严格按照Last, First的格式写,多人用and连接。改完记得删掉.bbl和.aux重新编译,否则旧的格式化结果还会被复用,你会以为没生效。

3.4 方案四:临时绕过——重定义参考文献条目的显示

如果时间紧、只想先让PDF看起来正常,可以在导言区对参考文献条目的显示做一层“清洗”,把可能带下划线的样式重置掉。这种做法属于治标,但胜在快。要注意的是,这类重定义可能影响条目间距或缩进,改完务必整体检查一遍参考文献的排版是否还符合模板要求,别为了去掉一条线把格式搞乱了。

4. 几个容易连带踩到的坑

解决下划线的过程中,我还碰到几个相关的问题,顺手记下来,免得你修完这个又卡在那个。

4.1 改了.bib不重新编译,等于没改

LaTeX的参考文献是“两遍编译”甚至“四遍编译”的机制:先跑一遍生成.aux,再跑bibtex生成.bbl,然后再编译两遍把引用编号对上。很多人改完.bib直接点一次编译,看到没变化就以为方法无效,其实是.bbl还是旧的。标准流程是:改.bib→ 删.bbl和.aux(或跑bibtex)→ 编译 → 再编译。养成这个习惯能省掉大量“为什么没生效”的困惑。

4.2 模板版本与.bst版本要配套

IEEEtran的模板主文件和.bst样式文件是配套发布的,混用不同版本的组合可能引发各种奇怪的排版问题,下划线只是其中之一。建议从同一来源获取整套模板,不要东拼西凑。如果你从会议官网下模板,就整套用;如果从别处拷了.bst,确认它和你的模板版本对得上。

4.3 在线编辑器与本地环境的差异

同一个项目,在本地编译正常,传到在线编辑器上却冒出下划线,这种情况我也遇到过。原因通常是两边加载的宏包版本或TeX发行版不同。排查时以本地为准,同时确认在线平台用的模板是不是你上传的那一份,别让平台自带的模板覆盖了你的设置。

4.4 下划线去掉了,但参考文献格式跑偏了

有时候下划线是没了,但条目缩进、编号对齐也跟着变了,说明你的修复动作影响到了整体样式。这时候要回头检查你改的地方是不是“管得太宽”,尽量把修改限制在最小范围,比如只针对条目内容而不动环境本身的间距设置。改完对照模板的官方示例PDF看一眼,确认格式没跑偏再收工。

5. 我个人的一点排版习惯

折腾完这一轮,我后来养成了一个习惯:每次拿到新模板,先编译一个“裸”版本,看看默认输出长什么样,把官方示例PDF存一份在旁边对照。这样一旦后面加了宏包或自定义命令导致样式变化,我能立刻判断是“我改出来的”还是“模板本来就这样”。另外,导言区里凡是和参考文献相关的自定义,我都加注释写明来源和用途,方便以后自己或合作者排查。参考文献的下划线问题说到底是个“样式来源追踪”问题,只要养成“改动有记录、编译有顺序、对照有基准”的习惯,这类坑会越来越少。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询