
写论文被导师批“参考文献格式一塌糊涂”这件事几乎每个研究生都经历过。中文期刊和学位论文的参考文献要遵循 GB/T 7714这个国家标准对文献的著录格式、引用标注方式都有严格规定而在 Overleaf 里写 LaTeX 文档的人又越来越多偏偏 Overleaf 默认的参考文献样式是 plain、unsrt 这类英文习惯的格式跟国内要求完全不搭。于是很多人卡在这一步文献管理用 BibTeX 好好的一到生成参考文献表格式怎么调都不对。这篇文章我直接给你一条能立刻落地的路径用 Overleaf 原生支持的 LaTeX 生态把 GB/T 7714-2015 的参考文献格式跑通。核心思路是两条主流的自动化方案一条是 gbt7714.bst BibTeX另一条是 biblatex-gb7714-2015 Biber。我会把两种方案都讲透并给出我实测后更推荐的做法、完整可复制的代码、常见报错的排查方法以及一组会让格式瞬间被打回重写的细节坑。适合作者参考的人群很明确正在用 Overleaf 写中文论文、学位论文或期刊稿件且参考文献必须符合 GB/T 7714 规范的本科生、研究生和科研人员。1. 先把标准看明白GB/T 7714 到底要求什么很多人在配置的时候一脸懵根本原因不是不会 LaTeX而是没搞懂 GB/T 7714 本身。这个标准全称是《信息与文献 参考文献著录规则》目前使用的是 2015 版。它规定了两种著录方式顺序编码制和著者-出版年制。你在动手之前必须先确定自己的目标刊物或学位论文要求用哪一种因为这直接决定了后面用哪个 .bst 文件或 biblatex 选项。1.1 顺序编码制与著者-出版年制的区别顺序编码制是中文期刊里最常见的正文中引用处用上标或方括号标注文献序号比如 [1]、[2-3]文末参考文献表按引用先后顺序编号排列。这种方式的优点是读者浏览正文时能快速定位到文末对应条目缺点是修改正文后所有编号都可能变化手动维护极其痛苦。著者-出版年制则完全不同正文中引用处用“作者, 年份”标注比如张三, 2023或 (Li, 2023)文末参考文献表按作者姓氏字母或拼音顺序排列不编号。这种方式的优点是正文改动不影响文末排序但中文作者姓名在排序时涉及到拼音规则处理起来比英文复杂。GB/T 7714-2015 还规定同一篇文章中不允许混用这两种著录方式。所以你在导言区配置时第一步就是明确要哪种。gbt7714.bst 系列里gbt7714-numerical.bst 对应顺序编码制gbt7714-author-year.bst 对应著者-出版年制biblatex-gb7714-2015 宏包则通过 style 选项来切换。1.2 手动排版为什么必然翻车如果你现在是用 Word 或手动在 LaTeX 里敲参考文献列表那么你大概率已经遇到这几个问题第一文献顺序需要手动调整增删一条后所有编号全乱重新人肉排序既费时又容易漏改第二中英文文献混排时中文文献作者后面要加“等”英文文献作者后面要加“et al.”而且中文作者要用全名英文作者姓在前名缩写这些规则手动处理极容易前后不一致第三页码范围要求用一字线或短横线期刊名有些要求加书名号有些要求斜体这些细节在手动排版时很难全部统一。这不是个人细心不细心的问题是人的注意力根本不足以在几十上百条文献上保持完全一致的格式输出。用 LaTeX 的意义就是把这些格式决策交给程序去执行你只需要保证 .bib 里的数据完整准确。这也是我坚持让大家用自动化方案的原因。2. 两条技术路线BibTeX 与 biblatex 怎么选在 Overleaf 上实现 GB/T 7714主流的方案有两条。它们不是非此即彼的新旧之争而是各有适用场景。我先把原理讲清楚你再根据自己的项目选。2.1 BibTeX 路线gbt7714.bst natbibBibTeX 是历史悠久的参考文献处理工具。它的工作流程是LaTeX 编译时扫描正文中的 \cite 命令把引用标记写入 .aux 文件然后 BibTeX 程序读取 .aux、.bib文献数据库和 .bst样式文件生成一个 .bbl 文件最后 LaTeX 再把 .bbl 内容排版进文档。这套流程里.bst 就是格式的“规则引擎”。gbt7714.bst 是国内学者根据 GB/T 7714-2015 编写的样式文件现在已经发展成一套包含多个文件的宏包gbt7714-numerical.bst 和 gbt7714-author-year.bst 分别对应两种著录方式另外还有 gbt7714-plain.bst 这类变体。使用时在文档里加载 natbib 宏包再设置 \bibliographystyle{gbt7714-numerical}或 author-year就能自动生成符合国标的参考文献表。这条路线最大优点是稳定和兼容。BibTeX 是 Overleaf 默认支持的工具不需要额外设置编译器模板中的编译按钮一键就能跑通。对大多数写期刊论文、学位论文的人来说这是效率最高的方案。缺点则是 .bst 的定制能力有限如果目标期刊对 GB/T 7714 做了细微的个性化调整比如把 [J] 标识改成别的形式改 .bst 文件对普通用户来说门槛偏高。2.2 biblatex 路线biblatex-gb7714-2015 Biberbiblatex 是比 BibTeX 更年轻、更灵活的文献处理方案。它不再依赖 .bst 文件而是在宏包层用 LaTeX 代码定义格式配套的 Biber 程序负责读取 .bib 数据。biblatex-gb7714-2015 就是专门为 GB/T 7714-2015 编写的 biblatex 样式宏包。使用方式是在导言区写:\usepackage[backendbiber, stylegb7714-2015, citestylegb7714-2015]{biblatex} \addbibresource{refs.bib}正文中直接用 \parencite 或 \textcite 等 biblatex 命令引用文末用 \printbibliography 输出参考文献表。编译时需要把默认的 BibTeX 编译器切换为 Biber在 Overleaf 的菜单设置中完成。biblatex 路线的优点表现在灵活性上。比如你可以通过宏包选项控制参考文献的排序方式、是否显示 DOI、中文文献和英文文献的标题是否加粗等不需要动底层文件改选项即可。对于投多个期刊、需要频繁改格式的人来说非常友好。缺点是要多学一组命令如果模板里大量使用了 natbib 的旧语法迁移时还得改正文代码初学阶段容易觉得门槛高。2.3 我的推荐思路我个人给大多数人的建议是写论文、赶稿子选第一条 BibTeX gbt7714.bst 路线。原因很直接它最省事Overleaf 默认配置就跑得通出错率低网上的模板和教程也最多。而且 natbib 提供的 \citep、\citet 语法很多 LaTeX 模板里已经内置几乎不需要额外学习。只有当你反复要改参考文献格式、或者用的是专门基于 biblatex 编写的模板比如某些学位论文模板才需要切到第二条路线。总体上先跑通 BibTeX等有定制需求再升级到 biblatex是一条比较平滑的学习路径。下面我按这条推荐思路把实操步骤完整写出来。3. 保姆级实操在 Overleaf 用 gbt7714.bst 跑通 GB/T 7714这一节从零开始教你在 Overleaf 里搭建一个可以出“标准参考文献表”的最小项目。核心分四步准备文件、配置导言区、正文引用、编译查看。每一步我都会解释为什么这么做。3.1 准备文件main.tex、refs.bib 与 gbt7714.bst一个完整的 LaTeX 项目至少需要三个文件。第一个是主文档 main.tex里面写正文内容和各种格式设置第二个是文献数据库 refs.bib用 BibTeX 格式记录所有文献条目第三个就是样式文件 gbt7714-numerical.bst或 gbt7714-author-year.bst。在 Overleaf 里新建项目有两种方式一是直接上传本地写好的 .tex 和 .bib 文件二是先在 Overleaf 新建空白项目再通过左上角“上传文件”按钮把 .bst 文件传上去。上传时要注意 gbt7714.bst 必须和 main.tex 在同一层目录否则 BibTeX 找不到它。关于 gbt7714.bst 的获取CTAN 上可以下载到 gbt7714 宏包GitHub 上也有开源仓库发布最新版。下载后是一个压缩包里面包含 gbt7714-numerical.bst、gbt7714-author-year.bst、gbt7714-plain.bst 等文件你只需要把自己需要的那一个传到 Overleaf。提示如果嫌手动下载麻烦Overleaf 自带的模板库中搜索 gbt7714也有预置好的项目模板新建项目时直接选择连上传 .bst 都省了。但我仍然建议自己理解文件结构这样出了问题才知道去哪里排查。3.2 导言区配置加载 natbib 并设置样式把 main.tex 的导言区写成这样这是一个最简可用的配置\documentclass{article} \usepackage[UTF8]{ctex} \usepackage[round, sortcompress]{natbib} \bibliographystyle{gbt7714-numerical} \begin{document} ... \end{document}逐行解释每个设置的作用。\usepackage[UTF8]{ctex} 是中文支持的基础没有它中文会直接乱码。natbib 宏包提供了 \citep、\citet 这类灵活的引用命令其中 round 参数让引用标注使用圆括号形式比如 (张三, 2023)sortcompress 参数让顺序编码制下 [1, 2, 3, 5] 自动压缩成 [1-3,5]这也符合 GB/T 7714 的常见要求。\bibliographystyle{gbt7714-numerical} 指定参考文献表的排版样式。这里要用不用扩展名。选择 numerical 还是 author-year取决于 1.1 节里说的标准方式。默认情况下中文期刊多用顺序编码制所以我这里写的是 gbt7714-numerical。如果你用的是 Overleaf 自带的模板导言区里可能已经有 \usepackage{natbib} 或 \bibliographystyle{plain}直接把样式名改成 gbt7714-numerical 即可不用动其他代码。这是我实测最省时的做法。3.3 正文中引用文献和文末输出参考文献表正文里需要引用文献时用 natbib 提供的命令而不是 LaTeX 底层的 \cite。常用命令有两个\citep 用于括号引用生成的内容是 (张三, 2023) 或者 [1]适合放在句末\citet 用于文字引用生成的是 张三 (2023) 或者 张三 [1]适合强调作者姓名时放在句中。举例来说你的正文可以这样写图像识别技术近年在工业质检领域取得显著进展\citep{li2023}。 \citet{wang2022} 的研究表明迁移学习能有效降低标注数据需求。注意 \citep 和 \citet 的大括号里填的是 bib 条目的引用键不是文献序号。序号是 BibTeX 自动分配的你不需要也不要手动指定。文末参考文献表的位置一般放在结论之后、致谢之前。在正文结束位置写\bibliography{refs}这个命令告诉 LaTeX 去读取 refs.bib 文件并按指定样式生成参考文献列表。如果你的 bib 文件叫别的名字比如 references.bib那么这里就写 \bibliography{references}。需要注意的是不要在这里加扩展名也不要写路径。3.4 编译顺序与 Overleaf 的自动处理这是新手最容易踩坑的地方。BibTeX 的工作依赖编译产生的 .aux 文件所以需要严格按照“编译 → 运行 BibTeX → 再编译 → 再编译”的顺序执行。在本地用命令行操作时很多人会忘记中间这一步。但在 Overleaf 上点击“Recompile”按钮时系统会自动按顺序执行 pdfLaTeX、BibTeX、pdfLaTeX所以你通常不需要手动干预。不过有一个例外当你新增、删除或修改了 bib 文件里的条目后如果只点一次 Recompile有时生成的参考文献列表不会更新。这是因为增量编译模式下 Overleaf 没有重新运行 BibTeX。解决办法是在 Overleaf 菜单里选择“Recompile from scratch”或“清理并重新编译”强制全量编译一遍。还有一个细节如果你在正文中使用了 \citet、\citep 这样的 natbib 命令但导言区里忘了加载 natbib 宏包编译会报错 undefined control sequence。要么补上 \usepackage{natbib}要么把所有 \citep 改成 \cite。我建议一律用 natbib 语法因为它和 GB/T 7714 的匹配度最高。4. 把 .bib 条目写对格式细节决定成败很多人的参考文献表看起来“哪里都不对”根源在 .bib 文件本身的数据。BibTeX 的样式文件只会按规则排版你提供的数据如果你数据里字段缺失或格式不规范神仙也救不回来。这一节我列出实际论文中最常用的几种文献类型和我推荐的字段写法。4.1 期刊论文、会议论文与专著的字段规范一条标准的中文期刊论文在 refs.bib 里应该这样写article{li2023, author {李明 and 王强 and 张伟}, title {基于深度学习的小目标检测方法综述}, journal {计算机学报}, year {2023}, volume {46}, number {5}, pages {1001--1015}, }这里我要提醒几个关键点。第一author 字段中多个作者之间用 and 连接不要用中文顿号或英文逗号。第二页码范围之间用双连字符--输出时会根据样式自动渲染成合适的一字线或短横线。第三期刊名不需要加书名号gbt7714.bst 会自动处理。会议论文与专著分别对应 inproceedings 和 book 类型。会议论文要额外加上 booktitle、address、publisher 等字段专著则需要写清地址和出版社。inproceedings{wang2022, author {王强 and Li, Xiaoming}, title {基于注意力机制的遥感图像分类}, booktitle {第三届智能计算国际会议论文集}, year {2022}, address {北京}, publisher {电子工业出版社}, pages {45--52}, }book{zhou2021, author {周志华}, title {机器学习}, publisher {清华大学出版社}, address {北京}, year {2021}, }4.2 中英文文献混排与常见坑中文论文往往需要同时引用中英文文献。英文文献的 author 字段写法与中文略有不同英文人名通常写成“姓氏, 名字缩写”的格式比如article{lecun2015, author {LeCun, Y. and Bengio, Y. and Hinton, G.}, title {Deep learning}, journal {Nature}, year {2015}, volume {521}, number {7553}, pages {436--444}, }这里“LeCun, Y.”表示姓氏是 LeCun名字缩写为 Y.这和中文作者直接用全名的写法不同。如果你从 Google Scholar 或期刊官网直接导出 bib 条目这一般是自动生成的不需要自己改。常见的坑有三个。第一个是英文作者名格式写反了比如把 “LeCun, Y.” 写成 “Y. LeCun”会导致排序和缩写方式错乱。第二个是 and 前后多了空格或逗号BibTeX 的解析器对符号很敏感容易解析错。第三个是某些字段末尾多写了逗号最后一个字段后面不能有逗号。虽然有些情况下 BibTeX 能宽容处理但最好还是遵循严格格式。另外如果你的参考文献中有网页、报告等类型的条目对应的 bib 类型是 online 或 techreport字段略有不同。我在常见问题里会补充说明。4.3 顺序编码制下 bib 文件的顺序问题用 gbt7714-numerical.bst 时文末参考文献表的编号顺序不用你操心它是根据正文第一次出现的引用顺序自动生成的。这也是它叫“顺序编码制”的原因。因此你完全不需要在 .bib 文件里提前排序甚至打乱顺序也不影响最终结果。但有一点要特别提醒如果使用的文献从未在正文中被 \citep 或 \citet 引用它不会出现在参考文献表里。反过来如果正文引用了某个 key但 .bib 文件中没有该条目编译时会出现“Citation undefined”的警告生成的参考文献表里会显示一个问号。排查这个问题最直接的办法是看 Overleaf 的日志面板它会明确列出 undefined citations 对应的 key。5. 常见问题与排查技巧实录配置过程里有一批高频问题我把实际排查的方法整理出来方便你对照着解决。5.1 编译后没有任何参考文献这个问题基本都出在编译顺序或路径上。先确认三件事第一文末有没有 \bibliography{refs} 这行命令第二refs.bib 确实存在于项目根目录第三导言区里的 \bibliographystyle{gbt7714-numerical} 没有拼错。如果这些都检查过还是空表点击 Overleaf 左上角菜单键选择“Recompile from scratch”强制全量编译。在本地命令行操作时顺序必须是 pdfLaTeX → BibTeX → pdfLaTeX → pdfLaTeX少一步都可能导致参考文献不更新。在 Overleaf 里全量编译一次基本能解决。还有一个容易被忽略的问题bib 文件名过大写或含空格。建议统一用全小写单词如 refs.bib、myref.bib避免文件名大小写在 Overleaf 的文件系统上出兼容问题。5.2 中英文混排时“等”和“et al.”不对GB/T 7714 规定中文文献超过三个作者时用“等”英文文献用“et al.”。gbt7714.bst 能自动根据文献语言切换但前提是它能判断这条文献的语言。大多数情况下bib 条目中如果 title 字段含中文样式文件会识别为中文文献如果是英文则识别为英文文献。但偶尔会有特殊情况导致判断失误比如英文文献的标题里恰好没有英文单词、或中文文献标题里包含英文缩写。此时可以手动在 bib 条目里加上 language {zh} 或 language {en} 字段强制指定语言。这是我调试中英文混排时最常用的手段。5.3 序号显示成 [1, 2, 3] 而不是 [1-3]顺序编码制的常态是序号连续时压缩为区间比如 [1-3] 而不是 [1, 2, 3]。如果你看到的是后者大概率是 natbib 没有加载 sortcompress 选项。确认导言区写的是\usepackage[round, sortcompress]{natbib}而不是只有 \usepackage{natbib}。有人也会把选项顺序写反例如写成 [sortcompress, round]这其实不影响选项顺序无所谓。5.4 学位论文、网页文献的 bib 类型与字段学位论文在 GB/T 7714 中属于 [D] 类bib 类型用 phdthesis 或 mastersthesis。一个常用的写法是phdthesis{zhang2020, author {张伟}, title {基于深度学习的医学影像分割算法研究}, school {清华大学}, year {2020}, address {北京}, }网页文献在标准中属于 [EB/OL]使用 online 类型online{overleafManual, author {{Overleaf}}, title {Overleaf Documentation}, year {2024}, url {https://www.overleaf.com/learn}, urldate {2024-05-01}, }这里 author 字段中用了双层花括号 {{Overleaf}}作用是让 BibTeX 把整个字符串当作一个作者名不拆成姓和名。这是处理机构作者的标准写法值得记下来。5.5 从文献管理工具导出 bib 条目的注意事项Zotero、JabRef、EndNote 都支持导出 BibTeX 格式这比自己手写效率高得多。但导出的条目质量参差不齐常见问题有字段多余且格式不标准比如 pages 写成 p. 1001-1015、作者字段包含多余的引号、某些条目缺少 language 字段导致中英文判断错误。我通常会在导出后统一做一次检查重点关注 author、title、year、journal、volume、number、pages 这几个核心字段是否完整。还有导出条目偶尔会把 URL 和 DOI 放进同一条gbt7714.bst 对多余字段不报错但可能影响输出建议把与格式无关的字段删掉保持 bib 文件干净。6. 进阶技巧让参考文献格式再精细一点如果你已经能正常输出 GB/T 7714 的参考文献可以再掌握几个让格式更精细的小技巧。这些技巧算是锦上添花但能帮你省去不少手动微调的力气。6.1 上标引用样式怎么调中文期刊里常见一种引用样式序号以上标形式出现在正文中比如“……方法[1]”。natbib 和 biblatex 都提供简单的方式。在使用 natbib 时可以这样设置\renewcommand\citep[1]{$^{\textsuperscript{[#1]}}$}不过我更推荐的方法是直接使用 biblatex 中 gb7714-2015 样式的上标选项对于 natbib 用户也可以加载 superscript 选项的变体。实际操作中在很多期刊模板里已经预设了上标引用直接用就好不需要自己重定义。6.2 DOI 与 URL 的显示控制GB/T 7714-2015 并没有强迫要求每条文献都显示 DOI 或 URL但如果期刊要求你可以在 bib 条目中加上 doi 字段gbt7714.bst 会在输出时按照标准格式添加。例如article{lecun2015, ... doi {10.1038/nature14539}, }如果你的样式版本里默认不展示 DOI而期刊又要求展示可能需要明确配置 natbib 或切换到 biblatex 版本。6.3 利用 Overleaf 模板库快速起步除了手动创建项目Overleaf 的模板搜索栏里直接搜“GB/T 7714”或“gbt7714”会出现一批现成模板主要包括中文期刊投稿模板和学位论文模板。使用这些模板的最快路径是新建项目时选模板 → 替换正文 → 在 refs.bib 里更新文献条目 → 编译。模板已经把导言区、参考文献样式、标题页这些结构都搭好了非常节省时间。但使用模板也有代价模板作者可能使用了旧版的 gbt7714.bst或带了一些你用不到的宏包编译报警告。我的习惯是把模板里导言区与自己项目无关的内容先删除保留参考文献配置再逐步加入自己需要的功能。7. 最后再说几句实战体会这套配置我帮不少人搭过也踩过几次坑。根据我实际的经验给正在配置的读者三个建议。第一尽量让 bib 文件在前、编译测试在后。先花半小时把 .bib 里最常用的文献类型写对再上论文正文可以大幅减少后期格式调整的返工量。别等写完几万字再回来补参考文献那会非常痛苦。第二遇到格式问题先怀疑数据再怀疑样式。我见过太多人反复折腾 bst 文件最后发现只是 bib 里 author 字段的 and 写成了逗号。gbt7714.bst 本身非常成熟不是万不得已不用去改它。检查顺序应该是引用命令 → bib 条目字段 → natbib 选项 → bst 文件。第三Overleaf 的日志面板是你的朋友。任何编译错误和警告都会显示在那里特别是 undefined citation、empty bibtex 这类关键词直接对应到具体问题。花十分钟学会看日志比在网上盲目搜索报错信息高效得多。另外一个使用体验上的小技巧在 Overleaf 编辑 refs.bib 时记得经常手动“Recompile from scratch”而不是只点常规的 Recompile这样可以确保你看到的参考文献表永远是对应最新 bib 数据的。如果项目较大编译时间较长也可以用 Overleaf 的“快速模式”先看正文最后再全量编译出最终版。GB/T 7714 的参考文献格式本身不难难的是把它自动化地、稳定地集成到写作流程里。用 BibTeX gbt7714.bst基本能覆盖期刊论文、会议论文和学位论文的绝大多数场景。等跑通以后你会发现参考文献格式这件事再也配不上你为论文掉的头发了。