GB/T 7714 Benchmark
GB/T 7714 格式参考文献引擎哪家强?
推荐性国家标准 GB/T 7714—2025《信息与文献 参考文献著录规则》(PDF:知网影印版/标网数字正版)已于2026年7月1日实施。
此项目利用 Zotero 中文 CSL 开发组的测试文献数据,测试了十种支持 GB/T 7714 的参考文献引擎。测试初步结果可在网站 gb7714.zhtyp.art 查看(加载可能比较慢):
/converge/——评估处理结果趋同程度/compare/——比较「数据源 · 引擎 · 样式」组合/entry/——逐条目浏览
历史结果可从 GitHub Releases 下载。更新记录见 CHANGELOG。
对于广大文章作者,希望此项目能帮助评估各引擎成熟程度与文献数据兼容性,选择省心组合舒服地写作;对于参考文献引擎与样式开发者,希望此项目能帮助查找各家程序缺陷,并提升跨引擎、跨文献数据格式的兼容性。
测试范围
此项目主要测试2025版国标;不过部分主流引擎同时测试了2015版国标,以与暂时只支持2015版国标的引擎相互比较。
此项目关注文末参考文献表中每篇文献著录的文本内容,不关注参考文献表的组织方式与排版样式,也不关注正文引注。
此项目当前主要关注各引擎实现的正确性,而不太关注性能。CI · Workflow runs 会输出每种「数据源 · 引擎 · 样式」组合处理文献所用时长,但只能用于调试,不能用于严谨评估性能1。
测试对象与方法
处理结果由数据源、引擎、样式三者共同决定。数据源提供文献信息,引擎实现文献著录,样式控制著录项目与格式。
数据源
数据源从 Zotero 导出,有GB-T_7714—2025.{builtin,better}.{bib,json}共 2×2 = 4 个版本。详情请移步 bib-csl-dev-data。
为方便对比,此项目还引用了GB-T_7714—2025.original.toml。该文件的内容提取自 Z-Library 上2025版国标数字版 PDF 中嵌入的文本,数据质量较差,请谨慎参考。详见文件开头的notes。
引擎
各引擎的测试脚本位于processors/,版本信息总结于网站/version/页。
-
Zotero 🔮
Zotero 采用 citeproc-js 处理文献。通过 Citation.js 调用 citeproc-js 的编程接口即可获得处理结果。
由于并非真正操作 Zotero 软件界面,这与 Zotero 导出结果会有一处微妙差异,是 citeproc-js 缺陷所致。详见 zotero-chinese/styles#696 与 citeproc-js#280。
-
- BibTeX: gbt7714-bibtex-style (CTAN: gbt7714)
- BibLaTeX: biblatex-gb7714-2025 (CTAN: biblatex-gb7714-2015)
- Lua: citeproc-lua 🔮 (CTAN: citation-style-language)
LaTeX 系列统一选用
ctexart文档类,采用latexmk --lualatex编译输出 PDF,然后从 PDF 提取文本作为文献处理结果。受 PDF 机制所限,即使页面宽度能保证参考文献表每项不会折行,从 PDF 提取出的文本也可能比较零碎,因此提取后还统一用脚本整合了碎片。不过脚本难免存在失误,结果可能多余或缺少空白字符。如果发现这类问题,可通过 GitHub issue 反馈。
-
- Typst 🔮(内置
bibliography元素) - NJU: typst-modern-nju-thesis 🔮 (Typst Universe)
- GB7714-bilingual: typst-gb7714-bilingual (Typst Universe)
- Citrus: typst-citrus 🔮 (Typst Universe,又名 citeproc-typst)
- Omni: typst-omni-gb7714 (GitHub,尚未发布于 Typst Universe)
其实 Typst 系列还有 Citext。不过其技术栈与 Zotero 基本相同,只是运行 JavaScript 的方式不同,所以估计其文献处理结果与 Zotero 完全一致,不必专门测试。
Typst 系列统一调用 typst-py 生成 HTML,然后从 HTML 提取文本作为文献处理结果。
HTML 不存在 PDF 那样的文本碎片问题;不过有些引擎对 HTML 支持不好,需要额外适配,具体请参考定制修补 Typst 包的脚本与各引擎的测试脚本。
- Typst 🔮(内置
-
Pandoc 🔮
Pandoc 有命令行接口,指定
--to plain即可按纯文本导出文献处理结果。Pandoc 支持多种文献处理方式。这里只测试
pandoc --citeproc调用 haskell citeproc 的方式,不测试它调用 LaTeX 的方式。
另外,有的引擎直接加载文献数据源会报错(主要是因为*.better.*的奇异字段),无法正常生成参考文献表;还有引擎不支持保持条目原始顺序,输出的参考文献表难以与其它引擎比较。针对这些情况,此项目对很多引擎做了适当修补,具体请参考各引擎测试脚本。
样式
以上标记 🔮 的引擎都是基于 Citation Style Language (CSL) 的通用引擎,通过*.csl文件支持任意样式。
对于这些引擎,此项目测试时忽略引擎内置 CSL 样式,而统一使用以下 CSL 样式。其中*.compliant严格符合 CSL 标准,大部分 CSL 引擎都支持;而*.extended使用了 CSL-M 扩展 与 Zotero 中文社区约定,各 CSL 引擎支持程度不一。
- 2015 CSL: gb-7714-2015-numeric.compliant
- 2025 CSL: gb-7714-2025-numeric.compliant
- 2025 CSL-M⁺: gb-7714-2025-numeric.extended
对于其它引擎,此项目测试各自默认选项。
复现
此项目支持在 Windows 和 Ubuntu 复现,具体步骤请参考ci.yaml。
Footnotes
-
每种组合都只运行了一次,而且并未控制缓存情况不变。 ↩