LaTeX 中处理参考文献的三种方法总结
1.摘要
“好记性不如烂笔头。” 为了防止忘记再从头查找,本文总结了
LaTeX
\LaTeX{}
LATEX中处理参考文献常用的三种方法。着重总结了用Bib
LaTeX
\LaTeX{}
LATEX处理参考文献的方法。本文使用了超链接,鼠标在有颜色的部分如果变成手形,就表示此处是超链接,鼠标点击就可访问对应的资源。
本文链接:https://github.com/zalois/notes4references
2.关键词
参考文献,引用,BibLaTeX,BibTeX
3.处理参考文献常用的三种方法
LaTeX \LaTeX{} LATEX中处理参考文献常用如下三种方法:第三种方法最简单,但是修改起来也是最麻烦;第二种方法是传统方法,正慢慢被第一种方法替代;第一种方法出现时间稍晚些,资料不是特别多,国内研究比较深入的是胡振震,不但写了不少教程: 《Bib LaTeX \LaTeX LATEX style for gb/t7714-2015》,《 LaTeX \LaTeX LATEX文档中文参考文献的Bib LaTeX \LaTeX LATEX解决方案》,《Bib LaTeX \LaTeX LATEX宏包使用后端bibtex和biber的区别》,还根据国标gb7714-2015制作了格式文件《Bib LaTeX \LaTeX LATEX style for gb/t7714-2015》。
3.1 方法一:用BibLaTeX处理
笔者最推荐的方法,灵活,强大。
2006
2006
2006年Philipp Lehman编写了Bib
LaTeX
\LaTeX{}
LATEX包
C
o
p
y
r
i
g
h
t
©
2006
–
2012
P
h
i
l
i
p
p
L
e
h
m
a
n
,
2012
–
2017
P
h
i
l
i
p
K
i
m
e
,
A
u
d
r
e
y
B
o
r
u
v
k
a
,
J
o
s
e
p
h
W
r
i
g
h
t
,
2018
–
P
h
i
l
i
p
K
i
m
e
a
n
d
M
o
r
i
t
z
W
e
m
h
e
u
e
r
.
\textcolor{blue}{Copyright © 2006–2012 Philipp Lehman, 2012–2017 Philip Kime, Audrey Boruvka, Joseph Wright, 2018– Philip Kime and Moritz Wemheuer.}
Copyrightc◯2006–2012PhilippLehman,2012–2017PhilipKime,AudreyBoruvka,JosephWright,2018–PhilipKimeandMoritzWemheuer.,Bib
LaTeX
\LaTeX{}
LATEX包是一个更加灵活的文献处理方式,它不仅支持更多的entry type,而且支持多次加入bib文件,支持多种不同的bib内容书写格式,也支持从远程加入bib文件,支持在文档的任何位置显示参考文献的内容。比如,你可以在论文的每一章后面添加参考文献的显示,用脚注形式显示参考文献等等。从发展的眼光来看,Bib
LaTeX
\LaTeX{}
LATEX是一个比Bib
TeX
\TeX{}
TEX更加先进的技术,未来肯定会取代Bib
TeX
\TeX{}
TEX。
Bib
TeX
\TeX{}
TEX的格式控制文件有两种,一类是参考文献列表格式文件,扩展名为bbx;一类是引用格式文件,扩展名为cbx。这两种文件都是用
LaTeX
\LaTeX{}
LATEX编写的,一般也会有提供下载,也可以自己制作。Bib
LaTeX
\LaTeX{}
LATEX控制参考文献列表显示格式的方式比Bib
TeX
\TeX{}
TEX灵活的地方在于,它不仅用格式文件来控制显示格式,还可以通过宏包的参数来实现精细调整控制。
Bib
LaTeX
\LaTeX{}
LATEX有两份值得参考的文献:一份是Philip Kime等人编写的Bib
LaTeX
\LaTeX{}
LATEX手册《 The Bib
LaTeX
\LaTeX
LATEX Package》,另一份是胡振震编写的《
LaTeX
\LaTeX
LATEX文档中文参考文献的Bib
LaTeX
\LaTeX
LATEX解决方案》。Bib
LaTeX
\LaTeX{}
LATEX需与biber命令配合使用。
实现用Bib
LaTeX
\LaTeX{}
LATEX来处理参考文献,需要分成如下
四
\textcolor{blue}{四}
四步:
第
一
步
\textcolor{blue}{第一步}
第一步:制作生成bib文件;
第
二
步
\textcolor{blue}{第二步}
第二步:在导言区需要加入biblatex宏包:
\usepackage[格式控制参数]{biblatex}
bibstyle参数对应于bbx格式文件,citestyle参数对应于cbx文件。
style参数对应于两个同名文件,扩展名分别为bbx和cbx。
一个具体的用国标gb7714-2015文献引用格式,按姓名年份和标题升序,作者超过3个人时只显示前三个,具有超链接功能的实例如下:
例
1
\textcolor{blue}{例 1}
例1
\usepackage[%
%backend=biber,%用biber后端处理bib文件, 可选的有bibtex, bibtex8, biber, 默认为biber
%样式文件(参考文献样式文件--bbx文件,引用样式文件--cbx)使用latex编写
%一般可以下载提供的或标准的.bbx文件和.cbx文件,放在.tex同目录下进行引用
%支持根据本地化排版,如:
% biber -l zh_pinyin texfile 按拼音排序
% biber -l zh_stroke texfile 按笔画排序
%style= %引用格式和文献列表格式,有相对应的.bbx和.cbx文件
%style=nature,%方括号数值压缩形式引用,文献列表title无引号,article类无前缀"In:", "and" 用 "&" 代替
%style=science,%圆括号数值压缩形式引用,文献列表无and, title无引号, article类无前缀
%style=numeric,%方括号数值引用,article类前缀"In:", title有引号,默认格式
%style=numeric-comp,%方括号数值压缩形式引用,article类前缀"In:", title有引号
style=gb7714-2015,%国标文献引用格式2015版, 胡振震制作
%style=trad-abbrv,%方括号数值引用,作者名缩写
%style=trad-abbrv,
%bibstyle=numeric,%文献列表形式:数值格式
sorting=nyt,%文献列表排序:姓名(n),年(y),标题(t)升序,有nty, nyt, nyvt, anyt, anyvt, ynt, ydnt, none, debug, 自定义的<name>,其中ydnt是按年份降序,默认nty,
%citestyle=numeric-comp,%引用文献形式:数值压缩形式,同时开启sortcites=true
%sortcites=true,%引用时自动排序
%giveninits=true,%缩写作者名,默认为false
maxnames=3,%至多显示三个作者
minnames=3,%至少显示三个作者
%abbreviate=true,%缩写Editor之类,默认为true
date=year,%只显示年份
%url=true,%显示url,默认为true
%doi=true,%显示doi,默认为true
isbn=false,%不显示isbn/issn/isrn,默认为true
%eprint=true,%对于arxiv文章有用,默认为true
%subentry=false,%不再细分子列a,b之类,默认为false
%hyperref=true,%使用超链接,需要配合hyperref宏包才能起作用,默认为auto,取决于是否加载hyperref宏包
%不显示语言
%不显示冒号
%backref=true,%反向引用,参考文献中列出引用所在的页码,需要在第四次再编译源文件,默认为false
]{biblatex}%用biblatex处理参考文献
%\renewbibmacro{in:}{\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}%对于article类不显示"In:"
\usepackage[%
colorlinks,%彩色超链接
linkcolor=blue,%蓝色定理定义交叉引用等链接
citecolor=blue,%蓝色文献引用链接
urlcolor=OliveGreen,%橄榄绿色网址链接,颜色需要用到xcolor宏包,用dvipsnames参数
]{hyperref}%使用超链接
\usepackage[dvipsnames]{xcolor}%使用68种颜色
去掉注释,
例
1
\textcolor{blue}{例 1}
例1可简写为
例
2
\textcolor{blue}{例 2}
例2
\usepackage[style=gb7714-2015,sorting=nyt,maxnames=3,minnames=3,date=year,isbn=false]{biblatex}
\usepackage[colorlinks,linkcolor=blue,citecolor=blue,urlcolor=OliveGreen]{hyperref}
\usepackage[dvipsnames]{xcolor}
第
三
步
\textcolor{blue}{第三步}
第三步:和第二步一样,在
导
言
区
\textcolor{red}{导言区}
导言区指定第一步的bib文件,注意带上bib文件的扩展名。
例
3
\textcolor{blue}{例 3}
例3
\addbibresource{seu/bib/refers.bib}%须带参考文献库文件扩展名
第
四
步
\textcolor{blue}{第四步}
第四步:在文档中需要显示参考文献的位置,加入打印参考文献列表语句:
例
4
\textcolor{blue}{例 4}
例4
\printbibliography[heading=bibintoc,title=参考文献]%在目录列表中显示参考文献,title为自定义。
%可以不带任何参数,用默认设置
3.2 方法二:用BibTeX处理
1986
1986
1986年Oren Patashnik引入的参考文献管理程序Bib
TeX
\TeX{}
TEX,由于不太灵活,有些参考文献排版要求难以实现,正在慢慢被新的Bib
LaTeX
\LaTeX{}
LATEX处理方法替代。Bib
TeX
\TeX{}
TEX本身不需要加载任何宏包(package),但编译的时候需使用bibtex程序。
Bib
TeX
\TeX{}
TEX格式控制文件是扩展名为bst的文件,一般会有提供,也可以自己制作。由于笔者更倾向于用Bib
LaTeX
\LaTeX{}
LATEX处理参考文献的方法,这里不再叙述自定义bst文件的方法。更多Bib
TeX
\TeX{}
TEX资料可参考:胡伟《
LaTeX
\LaTeX
LATEX 2
ε
\varepsilon
ε 完全学习手册.第2版》, chikily_yongfeng 的《
LaTeX
\LaTeX
LATEX自定义参考文献格式(配置 bst)》, Frank Mittelbach 等的 《The
LaTeX
\LaTeX
LATEX companion》。
使用Bib
TeX
\TeX{}
TEX处理参考文献,类似的需要如下
三
\textcolor{blue}{三}
三步。
第
一
步
\textcolor{blue}{第一步}
第一步:制作生成bib文件;
第
二
步
\textcolor{blue}{第二步}
第二步:指定参考文献的格式,一般在文档末尾处加入
例
5
\textcolor{blue}{例 5}
例5
\bibliographystyle{spmpsci}
参考文献格式有abbrv,alpha,plain,unsrt几类标准格式可供选择。
本例用的spmpsci是Springer出版集团提供的数学、物理类文章参考文献常用的列表格式,对应于spmpsci.bst文件(可由Springer官网下载得到)。
第
三
步
\textcolor{blue}{第三步}
第三步:一般是在第二步的下一行,指定第一步的bib文件:
例
6
\textcolor{blue}{例 6}
例6
\bibliography{seu/bib/refers}%这里不需要加bib文件的扩展名
注
\textcolor{blue}{ 注}
注 关于bib文献库的制作生成,可用JabRef程序来完成,配合
TeX
\TeX{}
TEX编辑器,可以比较方便地在文档中实现参考文献的引用,可以参考笔者《Jabref和Zotero使用笔记》。
注
\textcolor{blue}{ 注}
注 不论用Bib
LaTeX
\LaTeX{}
LATEX或Bib
TeX
\TeX{}
TEX处理参考文献,都需要在文中引用bib文件中的条目,如果想把所有未引用的条目也显示出来,可以用如下语句:
\nocite{*}
注
\textcolor{blue}{ 注}
注 bib文件,最好是与文档的tex源文件放在同一目录下。如果bib文件放在其它位置,需要指定bib文件的路径,如
例
3
\textcolor{blue}{例 3}
例3和
例
6
\textcolor{blue}{例 6}
例6中所示。
注
\textcolor{blue}{ 注}
注 不论用Bib
LaTeX
\LaTeX{}
LATEX或Bib
TeX
\TeX{}
TEX处理参考文献,可以指定多个bib文件,文件之间需要用逗号(“,”)隔开,注意Bib
LaTeX
\LaTeX{}
LATEX方式中.bib扩展名不能省略。
3.3 方法三:用thebibliography环境直接处理
简单直接,参考文献条目很少时可以用这种方法。但不推荐这种处理参考文献的方法,因为调整起来比较麻烦,还容易出错。
\begin{lstlisting}
\begin{thebibliography}{编号样本}
\bibitem[记号]{引用标志}文献条目1
\bibitem[记号]{引用标志}文献条目2
……
\end{thebibliography}
\end{lstlisting}
4. 关于编译过程
4.1 使用BibLaTeX处理的编译过程
如果用Xe LaTeX \LaTeX{} LATEX编译,流程如下:
Xe
LaTeX
\LaTeX
LATEX
→
\to
→biber
→
\to
→Xe
LaTeX
\LaTeX
LATEX
如需要后向超链接(就是在参考文献列表中显示该参考文献在第几页被引用),则除了为biblatex宏包设置 backref选项外,还需第4遍Xe
LaTeX
\LaTeX{}
LATEX编译,编译流程如下:
Xe
LaTeX
\LaTeX
LATEX
→
\to
→biber
→
\to
→Xe
LaTeX
\LaTeX
LATEX
→
\to
→Xe
LaTeX
\LaTeX
LATEX
整个编译流程图如下,图的制作属于registor。
\includegraphics{BibLaTeX排版交叉引用+参考文献流程.png}
4.2 使用BibTeX处理的编译过程
如果用Xe
LaTeX
\LaTeX{}
LATEX编译,流程如下:
Xe
LaTeX
\LaTeX
LATEX
→
\to
→bibtex
→
\to
→Xe
LaTeX
\LaTeX
LATEX
→
\to
→Xe
LaTeX
\LaTeX
LATEX
整个编译流程图如下,图的制作属于registor。
\includegraphics{BibTeX排版交叉引用+参考文献流程.png}
4.3 使用系统提供的 LaTeX \LaTeX{} LATEXmk编译
为了简化目录、交叉引用、参考文献等编译过程的自动化操作, LaTeX \LaTeX{} LATEX发行版提供了舭“latexmk”命令,以实现一次性完成所有的编译过程,也就是用“latexmk”命令完成上述所有工作。
latexmk -xelatex jobname.tex
latexmk -xelatex jobname.tex -c %清除临时文件,保留.bbl文件; -C参数清除临时文件,包括pdf文件
以下图给出的是
LaTeX
\LaTeX{}
LATEX常见编译过程,图片来源于网络。
\nocite{*}%显示所有未引用文献
%正文结束
%
5. 利益无关声明
本文涉及到的程序,如 TeX \TeX TEX 系统,Jabref和Zotero文献管理器,Vim,Emacs, TeX \TeX TEXstudio等文本编辑器都是开源软件。本文也是以开源协议发布的,欢迎大家在开源协议下自由修改分享。本文链接:https://github.com/zalois/notes4references
6. 致谢
感谢创建
TeX
\TeX
TEX 的Donald Ervin Knuth先生,感谢Jabref和Zotero的贡献者们。
本文档套用的模板下载自https://github.com/ElegantLaTeX/ElegantNote,感谢模板作者邓东升。\footnote{插播一个小广告:本文档系统环境:
Slackware64-Current+TeX Live 2020+Vim8.2.1456
%参考文献开始
%当使用biblatex宏包时用
\printbibliography[heading=bibintoc,title=参考文献]
%在目录列表中显示参考文献
%\printbibliography[heading=bibintoc]
%
%参考文献结束
%
%生成索引页开始
%\cleardoublepage
%\phantomsection
%\addcontentsline{toc}{section}{Index}
%\printindex
%生成索引页结束
7. 参考文献
KIME, Philip, MORITZ WEMHEUER, y PHILIPP LEHMAN, . The Bib Package. 2019, http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf.
CHIKILY_YONGFENG. 自定义参考文献格式(配置 bst). 2019, https://blog.csdn.net/chikily_yongfeng/article/details/86553359.
CMP y BARTMAN, . How to customize the bib items with Bib?. 2020, https://latex.org/forum/viewtopic.php?f=50&t=33479.
COREJT. 论文排版 | (15) 中的参考文献Bib. 2019, https://blog.csdn.net/sdu_hao/article/details/101429993.
CSKYWIT. 【学习笔记14】中的参考文献Bib. 2019, https://blog.csdn.net/cskywit/article/details/86727860.
胡振震. Bib宏包使用后端bibtex和biber的区别. 2019, https://blog.csdn.net/xenonhu/article/details/87899868.
胡振震. Bib style for gb/t7714-2015. 2020, https://github.com/hushidong/biblatex-gb7714-2015.
胡振震. 文档中文参考文献的Bib解决方案. 2020, https://github.com/hushidong/biblatex-solution-to-latex-bibliography.
JULIOSUN. Guidelines for customizing Bib styles [转]. 2017, https://blog.csdn.net/colddie/article/details/78682754.
LaTeX \LaTeX LATEX工作室. 技巧853:符合GB/T7714-2015标准Bib参考文献样式文件. 2016, https://www.latexstudio.net/archives/6888.html.
MITTELBACH, Frank, GOOSSENS, Michel, BRAAMS, Johannes, CARLISLE, David y ROWLEY, Chris. The companion. 2 ed. Addison-Wesley Professional, 2004.
GUIDES, Overleaf. Bibliography management with Bib. 2020, https://www.overleaf.com/learn/latex/Bibliography_management_in_LaTeX.
REGISTOR. 目录、交叉引用、参考文献中的多次编译问题. 2019, https://wenda.latexstudio.net/article-5033.html.
REGISTOR y 青莲剑仙, . 和Bib的区别?. 2020, https://wenda.latexstudio.net/q-1629.html.
KHIREVICH, Siarhei. Bib customization. 2020, http://www.khirevich.com/latex/biblatex/.
USER2478 y KIT, . Suppress “In:” Bib. 2011, https://tex.stackexchange.com/questions/10682/suppress-in-biblatex.
VANABEL. Bib参考文献(Biber引擎)用法举例. 2015, https://lttt.vanabel.cn/2015/04/22/biblatex参考文献(biber引擎)用法举例.html.
ZALOIS@126.COM. Jabref和Zotero使用笔记. 2020, https://github.com/zalois/note4JabrefandZotero.
胡伟. 完全学习手册.第2版. 北京: 清华大学出版社, 2013.
阿智智. 一个简单的、基本的、完整的使用Bib包的例子. 2016, https://blog.csdn.net/RobertChenGuangzhi/article/details/50457038.