LaTeX 参考文献管理:BibTeX 与 biblatex 实操教程

帮助EasyLaTeX发布于

参考文献的“数据”和“显示样式”应分开管理。先遵循学校或期刊模板,再选择手写条目、经典 BibTeX 或 biblatex。本教程的示例条目都与正文中的引用键对应,不使用虚构 DOI。

三种方式怎么选

方式适合场景主要配置
thebibliography少量、无需复用的条目\bibitem 和 \cite
BibTeX模板指定 .bst\bibliographystyle 和 \bibliography
biblatex没有特殊模板限制,需灵活样式\addbibresource 和 \printbibliography

手写条目的完整例子如下。它不用 .bib,但参照编号仍由平台管理所需的编译轮次:

\documentclass[UTF8,a4paper,11pt]{ctexart}

\begin{document}
For typesetting background, see~\cite{knuth1984}.
\begin{thebibliography}{9}
\bibitem{knuth1984} Donald E. Knuth. \emph{The TeXbook}. Addison-Wesley, 1984.
\end{thebibliography}
\end{document}

创建可复用的 refs.bib

在文件树中新建 refs.bib,放入以下两条实际出版物。条目键分别为 knuth1984 和 lamport1994:

@book{knuth1984,
  author = {Donald E. Knuth},
  title = {The TeXbook},
  publisher = {Addison-Wesley},
  year = {1984}
}
@book{lamport1994,
  author = {Leslie Lamport},
  title = {LaTeX: A Document Preparation System},
  edition = {2},
  publisher = {Addison-Wesley},
  year = {1994}
}

文献数据可跨项目复用。迁移引用方式时,也要检查所用字段与样式是否兼容,不能假设所有特殊字段都通用。

使用 biblatex 与 Biber

在项目根目录保存上述 refs.bib,主文件使用:

\documentclass[UTF8,a4paper,11pt]{ctexart}
\usepackage[backend=biber,style=authoryear,maxcitenames=2]{biblatex}
\addbibresource{refs.bib}
\usepackage{hyperref}
\begin{document}
Background on typesetting is given in~\parencite{knuth1984}.
\textcite{lamport1994} describes document preparation with LaTeX.
\printbibliography
\end{document}
  • backend=biber 指定文献处理后端。
  • style=authoryear 使用作者—年份形式。
  • maxcitenames=2 控制正文显示的作者数量。
  • \addbibresource{refs.bib} 写完整的 .bib 文件名。
  • \parencite 是括号引用,\textcite 把作者放入句子,\printbibliography 输出列表。

在编辑器设置中选择 XeLaTeX,点击编译并等待整个任务结束。平台会处理 LaTeX 与 Biber 的依赖轮次;有 [?] 时检查本次日志、引用键和文件路径。

模板提供 .bst 时使用 BibTeX

下面以 plainnat 为例;如果模板提供自己的 .bst,使用其不含后缀的名字,并保留模板要求的宏包:

\documentclass[UTF8,a4paper,11pt]{ctexart}
\usepackage{natbib}
\begin{document}
For typesetting background, see~\citep{knuth1984}.
\bibliographystyle{plainnat}
\bibliography{refs}
\end{document}

\bibliography{refs} 使用传统 BibTeX 的数据库名写法。不要将这套命令与 biblatex 的输出命令混在同一份配置里。

如何调整样式

以下是两种互斥的示例,选择一行替换原来的 biblatex 加载行,不能两行一起加载:

\usepackage[backend=biber,style=numeric]{biblatex}
\usepackage[backend=biber,style=authoryear]{biblatex}

学校或期刊要求 GB/T 7714 时,可根据模板采用相应样式。顺序编码与著者—年份同样二选一:

\usepackage[backend=biber,style=gb7714-2015]{biblatex}
\usepackage[backend=biber,style=gb7714-2015ay]{biblatex}

样式决定显示方式,字段决定可显示的信息。更换样式后仍应核对引用顺序、作者、日期、卷期、页码和 DOI,而不是只看能否编译。

常见问题

现象检查位置处理
[?] 或引用键未解析当前任务与文献日志等待完整处理,核对文献配置和键
Citation 'xxx' undefined正文与 .bib保持键的拼写和大小写一致
列表为空引用命令与输出命令确认引用了条目,且输出在 \end{document} 前
文件找不到文件树与路径核对 refs.bib 或模板 .bst 的位置

常见操作

少量条目可以继续手写;能正常工作的期刊模板不必只为换工具而迁移。用 \printbibliography[type=book] 可按类型过滤,按章节组织可研究 refsection,但应先完成一个最小可工作的项目。

需要检查引用完整性时,参阅正文与文献库双向核对。