LaTeX中的参考文献BibLaTeX
这一讲主要讲解使用BibLaTeX工具在LaTeX中排版参考文献的方法,其基本思想仍然是“一次管理,多次使用”。
一、介绍
biblatex宏包和biber工具是一种新的TEX参考文献排版引擎,其样式文件编写比较简单,有参考文献样式文件bbx文件、引用样式文件cbx文件,这些文件都是由LATEX代码编写的。
编写和维护相对比较简单。
biber工具 还支持根据本地化排序排版。
例如,可以按参数指定按拼音排序,也可以用参数指定按笔画排序。
二、配置
为了能够在TexStudio中使用biber排序引擎,需要对TexStudio进行相应的设置。
(1)打开设置
(2)将“构建”操作中“默认文献工具”设置为Biber
三、参考文献数据库文件
准备参考文献数据库文件bib文件。
参考文件数据库文件包含了参考文献的基本信息。
参考文献代码:
@book{mittelbach2004,
title = {The {{\LaTeX}} Companion},
publisher = {Addison-Wesley},
year = {2004},
author = {Frank Mittelbach and Michel Goossens},
series = {Tools and Techniques for Computer Typesetting},
address = {Boston},
edition={Second}
}
@article{patashnik1984bibtex,
title={BIBTEX 101},
author={Patashnik, Oren},
year={1984}
}
@article{__nodate,
title = {基于相变储热技术的电池热管理系统研究进展},
issn = {1000-6613},
url = {https://kns.cnki.net/kns8/Detail?sfield=fn&QueryID=1&CurRec=5&recid=&FileName=HGJZ20220105002&DbName=CAPJLAST&DbCode=CAPJ&yx=Y&pr=&URLID=11.1954.TQ.20220106.1135.001},
abstract = {动力电池的最佳工作温度范围为20~50℃,因此热管理系统是其运行过程中不可分割的一部分。相变储热材料在发生相变时可以吸收或释放大量的热量并且温度基本保持不变,在电池热管理中得到广泛应用。本文综述了国内外基于相变储热技术的电池热管理系统的研究进展,主要介绍了基于相变材料的被动式热管理系统、主动式热管理系统以及主动式和被动相结合的耦合式热管理系统。综合来看,复合相变材料具有形状稳定性好、热导率高,可以有效的降低电池组的温度,提高电池组的温度均匀性。导电复合相变材料的电热转换特性还可用于低温下快速加热电池,实现加热-冷却一体化。然而在相变材料被动式热管理系统中,相变材料吸收的热量无法及时释放出去,热...},
language = {中文},
urldate = {2022-02-09},
journal = {化工进展},
author = {罗, 明昀 and 凌, 子夜 and 方, 晓明 and 张, 正国},
pages = {1--21},
}
@article{__2022,
title = {新能源汽车动力电池及其应用分析},
issn = {1672-9668},
url = {https://kns.cnki.net/kns8/Detail?sfield=fn&QueryID=1&CurRec=6&recid=&FileName=SDQE202202050&DbName=CJFDLAST2022&DbCode=CJFD&yx=&pr=&URLID=},
abstract = {随着经济的快速发展,环境污染问题日渐凸显,燃油车尾气排放也是造成环境污染的重要原因之一。大量使用新能源汽车,减少排放是解决排放污染的重要途径。动力电池是新能源型汽车的技术核心之一,对新能源汽车的发展,起到了很好的推动作用。人工智能、大数据以及新能源汽车一跃成为当前发展的主要方向和趋势。因此,本文首先提出需要探究的主要内容和背景,之后结合不同的新能源汽车动力电池,针对性的探究合理的应用路径。},
language = {中文;},
number = {02},
urldate = {2022-02-09},
journal = {时代汽车},
author = {周, 斌},
year = {2022},
pages = {114--115},
}
@article{__2022-1,
title = {新能源汽车动力电池产业发展特点与趋势分析},
issn = {1671-6329},
url = {https://kns.cnki.net/kns8/Detail?sfield=fn&QueryID=1&CurRec=7&recid=&FileName=QCWZ202201001&DbName=CJFDLAST2022&DbCode=CJFD&yx=&pr=&URLID=},
abstract = {随着新能源汽车产业的不断发展,相应带动动力电池行业不断进步。经过2020年疫情的影响,2021年动力电池产业呈现出4大特点:(1)国家宏观支持政策持续发力;(2)新能源汽车销量提升带动动力电池需求持续增长,磷酸铁锂电池市场占有率持续提升;(3)上游锂、钴、镍等为代表的资源将成为稀缺资源,企业实施纵向一体化成为趋势;(4)动力电池企业竞争已经白热化,企业在产能布局和合资合作方面持续发力。},
language = {中文;},
number = {01},
urldate = {2022-02-09},
journal = {汽车文摘},
author = {左, 培文 and 朱, 培培 and 邵, 丽青},
year = {2022},
pages = {1--7},
}
@online{6-1,
title = {PACS-L: the public-access computer systems forum},
type = {EB/OL},
location = {Houston,Tex},
publisher = {University of Houston Libraries},
year = {1989},
url = {https://info.lib.uh.edu/pacsl.html},
urldate = {1995-05-17},
language = {english},
}
将需要用的参考文献保存在与tex文件同一个目录下,后缀名是bib
。
四、引用文献
1、导入宏包
在tex文件中,我们可以用usepackage
命令引入biblatex宏包。
并指定必要的参数。
例如,指定样式(style)为numeric,后端程序(backend)为biber。
2、添加参考文献数据库
在导言区,使用addbibresource
命令添加参考文献数据库。
注意,不可以省略文件后缀名bib!
3、不同方式引用参考文献
在正文区,使用相应的cite
命令可以实现无格式化引用、带方括号的引用、上标引用等不同方式的参考文献的引用。
注意花括号里面写的是需要引用参考文献的引用标志。
比如:
然后就这样引用:
同样,我们可以用不同方式引用参考文献:
4、输出参考文献列表
在需要的地方,使用printbibliography
命令输出参考文献列表。
5、编译执行
我们写完上面的操作之后,编译执行。
注意查看编译过程。
(1)首先是xelatex的编译,生成aux辅助文件。
aux辅助文件:
(2)然后使用biber后端程序对该辅助文件进行编译,生成bbl文件。
生成bbl文件:
在文件夹里面也会有:
(3)最后再次用xelatex进行编译。
(4)最终结果
查看编译执行最终结果:
6、修改标题
注意,编译结果中的参考文献的标题,是英文“References”。
这可以通过在printbibliography
命令的参数中使用title
参数进行修改。
例如,修改为中文“参考文献”。
注意要再次编译的时候,需要先清理辅助文件。
点击“OK”。
在文件夹里面,只需要有这两个文件就可以了。
然后我们再次编译,查看结果:
可以看到,标题被修改为我们设定的“参考文献”了。
7、列出没有引用的参考文献
用nocite
命令列出没有引用的参考文献。
参数*
表示未引用的所有文献。
也可以用引用标志列出指定的未引用文献,由于需要重新编译参考文献数据库,因此需要先清理上次编译生成的辅助文件。
编译查看结果:
8、更多样式
若需要更多的样式,需要编写相应的样式文件,给大家介绍一个由CasperVector编写的符合国标7714标准的样式文件。
注:TexLive2016以上的版本直接在引用biblatex时令style=gb7714-2015即可,不需要下载CasperVector。
打开其主页。
下载样式文件压缩包。
保存至相应路径(自己可以设置),然后解压,打开tex文件夹。
找到参考文献样式文件bbx文件和引用样式文件cbx文件。
将这些文件拷贝到当前工作目录(即tex文件目录下)。
可以在TexStudio中打开这些bbx和cbx样式文件。
进行查看编辑和修改。
然后在导言区将biblatex宏包的style
参数改为caspervector,并指定编码格式为utf8格式。
查看结果:
发现结果中的中英文文献是混排的,为了解决这个问题,需要对biber工具指定排序参数。
我们需要对TexStudio进行相关的设置。
在原命令设置中,找到Biber命令,为该BIber命令添加相应的参数。
比如添加这个。
我们将它复制过去。-l zh__pinyin
然后点击确认即可。
再次编译运行,发现结果并没有改变。
为了能够正确实现参考文献的排序,需要为biblatex
宏包指定sorting
参数。
在此,指定排序参数为centy。(c表示中文,e表示英文,n表示作者姓名,t表示文献标题,y表示出版年份)
也就是按language字段先中文,后英文,并根据姓名标题和出版年份字段进行排序。
编译执行查看结果,报错:
在网上看到一个j貌似解决方法:
如果我们将其设为none,同样没有发生什么变化。
将其改为nty,试一试:
具体上面centy为什么不支持,我也不清楚,暂时就按照这样(nty)来写吧。
有关caspervector
样式的详细说明,请使用texdoc命令查阅其使用手册。
五、bat批处理
除了可以在TexStudio中使用biblatex
和biber
引擎外,还可以使用bat批处理文件执行对应的编译操作。
打开当前工作路径,确保存在LaTeX源文件(tex为后缀名),参考文献数据库文件(bib为后缀名),和参考文件样式文件(bbx和cbx为后缀名)。
其他文件可以删除。
在当前文件夹,右键新建“文本文档”。
将后缀名改为bat(表示是一个批处理文件),并起个名字,比如bulid.bat。
生成批处理文件:
右键“编辑”该文件。
然后输入以下内容:
xelatex Test0210
biber -l zh__pinyin Test0210
xelatex Test0210
xelatex Test0210
del *.aux *.bbl *.bcf *.blg *.log *.xml
讲解:
(1)首先使用xelatex编译(写上tex文件名--自己起的,我这就是Test0210),生成aux辅助文件。
(2)然后使用biber引擎,携带拼音排序参数(-l zh__pinyin),对aux辅助文件进行编译,生成bbl辅助文件。
(3)(4)再使用xelatex进行编译两次。生成最终结果。
(5)最后使用del命令删除不需要的文件。
然后保存。
双击执行该批处理文件。
处理中:
结束之后,查看生成的pdf文件。
查看最终排版结果。
当编译过程比较复杂时,可以考虑采用类似的bat文件进行编译。
六、tex文件代码
tex文件代码:
%导言区
\documentclass{ctexart}
%\usepackage{ctex}
%biblatex / biber
%新的TEX参考文献排版引擎
%样式文件(参考文献样式文件--bbx文件,引用样式文件--cbx)使用LATEX编写
%支持根据本地化排版,如:
% biber -l zh__pinyin texfile,用于指定按拼音排序
% biber -l zh__stroke texfile,用于按笔画排序
\usepackage[style=caspervector,backend=biber,utf8,sorting=nty]{biblatex}
\addbibresource{test.bib}
%正文区(文稿区)
\begin{document}
%一次管理,多次应用
无格式化引用 \cite{mittelbach2004}
带方括号的引用 \parencite{__nodate}
上标引用 \supercite{6-1}
\nocite{*}
\printbibliography[title={参考文献}]
\end{document}