使用 BIBTeX 处理参考文献

使用 BIBTeX 排版参考文献

  1. 准备一份 BIBTeX 数据库,假设数据库文件名为 books.bib,和 LaTeX 源代码一般位于同一个目录下。
  2. 在源代码中添加必要的命令。假设源代码名为 demo.tex
    1. 首先需要使用命令 \bibliographystyle 设定参考文献的格式。
    2. 其次,在正文中引用参考文献。BIBTeX 程序在生成参考文献列表的时候,通常只列出用了 \cite 命令引用的那些。如果需要列出未被引用的文献,则需要 \nocite{ ⟨ citation ⟩ } 命令;而 \nocite{*} 则让所有未被引用的文献都列出。
    3. 再次,在需要列出参考文献的位置,使用 \bibliography 命令代替 thebibliography 环境:\bibliography{ ⟨ bib-name ⟩ },其中 ⟨ bib-name ⟩ 是 BIBTeX 数据库的文件名,不要带 .bib 扩展名。
    4. 注意:\bibliographystyle\bibliography 这两个命令缺一不可,否则使用 BIBTeX 生成参考文献列表的时候会报错
  3. 开始编译
    1. 使用 xelatex 或 pdflatex 编译源代码 demo.tex
    2. 使用 bibtex 命令(处理一些 aux、bbl 文件,不需要我们管)
    3. 在使用 xelatex 或 pdflatex 编译两遍(读入参考文献并正确,生成引用。)

整个过程使用的命令如下(可以略去扩展名):

1
2
3
4
xelatex demo
bibtex demo
xelatex demo
xelatex demo

关于 bibliographystyle

参考文献的写法在不同文献里千差万别,包括作者、标题、年份等各项的顺序和字体样式、文献在列表中的排序规则等。BIBTeX 用样式(style)来管理参考文献的写法。BIBTeX 提供了几个预定义的样式,如 plain, unsrt, alpha 等。如果使用期刊模板的话,可能会提供自用的样式。样式文件以 .bst 为扩展名。
使用样式文件的方法是在源代码内(一般在导言区)使用 \bibliographystyle 命令:

1
\bibliographystyle{⟨ bst-name ⟩}

这里 ⟨ bst-name ⟩ 为 .bst 样式文件的名称,不要带 .bst 扩展名。

比如说如下的 plain 样式和 GB/T 7714—2015 样式

  • plain

[1] Alice Axford, Bob Birkin, Charlie Copper, and Danny Dannford. Demostration of bibliography items. Journal of TeXperts, 36(7):114–120, Mar 2013.

  • gbt7714-numerical

[1] 陈登原。国史旧闻:第 1 卷 [M]. 北京:中华书局,2000:29.

案例分析

1
2
3
4
5
6
7
8
9
\documentclass{ctexart}
% 指定参考文献的样式
\bibliographystyle{plain}
\begin{document}
登斯楼也,则有去国怀乡,忧谗畏讥\cite{rentoumis2016implementation},满目萧然,感极而悲者矣\cite{孟炎2021交变温度场对光伏组件性能的影响研究}。

%使用\bibliography命令替代原先的thebibliography环境
\bibliography{mybib} %引入自己的bib库,不要带bib扩展名
\end{document}

比如使用 plain 样式的 bibliographystyle,然后随机插入两条文献,编译结果如下图所示:

02-使用plain样式生成的参考文献.png

从上图可看出,对于多个作者:“等”、“.et.al” 还需要进行相应的设置。其原因在于 bibliographystyle 使用的是 plain 样式。plain 的中文翻译点击此可查看:海词词典,大致意思是 “朴素的,纯的”,也就是说参考文献样式按照 “正文文本” 一样处理,而不会对齐进行一些额外的操作。

而如过我们使用的是 gbt7714-numerical 样式,注:使用 gbt7714-numerical 样式需要使用 gbt7714 宏包

1
2
3
4
%...在导言区添加如下两行内容
\usepackage[sort&compress]{gbt7714}
\bibliographystyle{gbt7714-numerical}
%\begin{document}

输出结果如下,已经对参考文献的样式进行了符合 gbt-7714 标准形式的输出

04-使用gb7714输出参考文献.png

完整案例如下

1
2
3
4
5
6
7
8
9
10
\documentclass{ctexart}
% 指定参考文献的样式
\usepackage[sort&compress]{gbt7714}
\bibliographystyle{gbt7714-numerical}
\begin{document}
登斯楼也,则有去国怀乡,忧谗畏讥\cite{rentoumis2016implementation},满目萧然,感极而悲者矣\cite{孟炎2021交变温度场对光伏组件性能的影响研究}。

%使用\bibliography命令替代原先的thebibliography环境
\bibliography{mybib} %引入自己的bib库,不要带bib扩展名
\end{document}

拓展

更多添加参考文献的方案

除了使用 BIBTeX 添加参考文献之外,实际上 Latex 还有其他几种添加参考文献的方案,以下为三种插入参考文献方式比较:

03-三种插入参考文献方式比较.png

如何选择

  • 有现成的样式文件可以用就用
  • BIBTeX 和 biber 都可以用,选自己熟悉的或者编译速度快的,我还是喜欢使用 BIBTeX
  • 假设投稿中遇到以下情景
情景 选择
无样式文件提供 自己开发样式文件难度大,只能用 thebibliography 环境
提供 BIBTeX 或 biber 样式之一 有工具可以用就用
BIBTeX 或 biber 两者均提供了 两者都行,我倾向于编译速度较快的 BIBTeX

通过下载 BibTeX 样式文件输出符号 GBT7714-2005 标准的 BibTeX Style

可参考如下两链接中的任意一种

参考资料

  • LaTeX 官方入门手册:一份(不太)简短的 LaTeX2ε 介绍
  • LaTeX 工作室:LaTeX 中参考文献的处理.pdf