1. 为什么需要专门处理中文文献引用第一次用LaTeX写中文论文时我被文献引用折磨得够呛。明明按照英文文献的格式写了.bib文件编译后却出现一堆问号和乱码。后来才发现中文文献引用至少有三大特殊之处首先著录字段差异。中文文献常需要卷号期号的组合比如《计算机学报》2023年第45卷第8期而英文通常只需Volume。期刊名也需用全称《软件学报》不能简写为J. of Software。其次编码问题。多数中文文献数据库导出的BibTeX条目是GBK编码而现代LaTeX发行版默认UTF-8。我在编译时遇到的Invalid UTF-8 sequence错误八成都是编码惹的祸。最后标点规范。中文文献要求使用全角标点如代替.、代替:这在标准BibTeX样式里需要特殊处理。有次我投稿被退修审稿人专门指出参考文献标点不符合中文出版规范。2. 创建合规的中文.bib文件2.1 手工编写BibTeX条目用VS Code新建文件时务必先确认编码格式为UTF-8右下角状态栏可切换。这里给出几个典型示例article{王伟2023, author {王伟 and 张强 and 李娜}, title {基于深度学习的图像分割方法研究}, journal {计算机学报}, year {2023}, volume {45}, number {8}, pages {1689--1705}, language {zh} } book{刘洋2022, author {刘洋}, title {自然语言处理实战}, publisher {清华大学出版社}, year {2022}, address {北京}, edition {第2版} }关键细节作者名用and连接不要用逗号期刊名写全称不要缩写页码用--连接不是短横线-显式添加language {zh}字段有助于后续样式处理2.2 从知网/万方导出BibTeX实际操作中我推荐先用学术数据库导出再修改在知网勾选文献点击导出/参考文献选择BibTeX格式下载用文本编辑器打开检查以下字段删除不需要的url、abstract等字段确保journal字段是期刊全名将author {张某某}改为author {张某某}去掉等字注意数据库导出的文件可能是GBK编码用VS Code打开时选择Reopen with Encoding转为UTF-83. LaTeX文档配置技巧3.1 基础配置模板\documentclass[UTF8]{ctexart} \usepackage[backendbiber, stylegb7714-2015]{biblatex} % 中文标准样式 \addbibresource{ref.bib} % 你的.bib文件 \begin{document} 这是测试引用\cite{王伟2023}和\cite{刘洋2022}。 \printbibliography[title参考文献] % 输出参考文献列表 \end{document}为什么用biblatex原生支持中文文献样式如gb7714-2015对应国家标准自动处理标点转换中文文献用全角英文保持半角支持多文献类型如学位论文的【学位论文】标识3.2 编译流程详解遇到?引用标记试试这个四步编译法xelatex main.tex # 生成.aux引用记录 biber main.bcf # 处理参考文献数据 xelatex main.tex # 插入引用标记 xelatex main.tex # 最终排版在Overleaf上操作时菜单选择编译器为XeLaTeX点击Logs and output files查看biber错误信息常见错误是编码问题检查.bib文件是否UTF-84. 高频错误排查指南4.1 编码问题解决方案症状编译报错Invalid UTF-8 sequence或作者名显示乱码排查步骤用file命令检查编码file -i ref.bib # 应该显示 charsetutf-8转换编码Linux/Maciconv -f GBK -t UTF-8 ref.bib ref_utf8.bib在TeXstudio中Options → Configure → Build → Default Bibliography Tool设为Biber4.2 引用样式调整当需要将[1]改为上标¹时\usepackage[super]{natbib} % 在导言区添加 \citestyle{super} % 上标引用如果参考文献标题需要居中\printbibliography[title{\centering 参考文献}]5. 进阶自定义文献样式修改gb7714-2015样式的两种方法方法一局部覆盖推荐新手\DeclareFieldFormat[article]{title}{《#1》} % 给文章标题加书名号方法二创建自定义样式复制gb7714-2015.bbx文件重命名为mycn.bbx修改如下字段\DeclareBibliographyDriver{article}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \printfield[titlecase]{title}\addcomma% \printnames{author}\addcomma% \usebibmacro{journalissuetitle}% \newunit\newblock \usebibmacro{doieprinturl}% \usebibmacro{finentry}}保存到项目目录调用时\usepackage[stylemycn]{biblatex}6. 实用工具推荐JabRef图形化BibTeX管理工具支持自动从DOI/ISBN获取元数据批量清理字段如统一期刊名大小写检测重复条目Zotero Better BibTeX插件浏览器一键抓取网页文献自动同步到LaTeX项目支持动态引用键生成规则在线校验工具BibTeX Validator检查字段完整性Overleaf的实时错误提示编码问题最直观有次我赶论文 deadlineZotero 自动同步的引用键突然失效。后来发现是特殊字符如é导致现在统一设置生成规则为[auth:lower][year]再没出过问题。