基于LaTeX_工作室的2020年8月开始的直播内容,该系列文章将用图文的模式记录下其中的重要内容,方便查阅与学习。

编译环境: $\textrm{Tex Live}$

编辑环境: $\textrm{vscode}$

相关视频:LaTeX 直播之四 – LaTeX 参考文献自动化处理

本次视频的内容包括

  1. $\textrm{thebibliography}$环境
  2. $\textrm{bib}$文件
  3. 使用$\textrm{BIBTEX}$
    • $\textrm{BIBTEX}$简介
    • 用上$\textrm{bib}$文件
    • 使用$\textrm{gbt7714}$宏包
  4. 使用$\textrm{biber}$
    • $\textrm{biber}$简介
    • $\textrm{biblatex}$宏包的使用
  5. 三者的对比与选择

$\textrm{thebibliography}$简介

首先给出一段包含注释的$\textrm{LaTeX}$的代码来说明$\textrm{thebibliography}$环境的基本用法

%注:因为需要文献在引用下方,因此需要编译两次
\documentclass{ctexart} %ctexart = article+ctex

\begin{document}
    %正文区

    %调用了参考文献部分的名为"liuhaiyang2013latex"的文献
    \LaTeX{}的入门书籍可以看《\LaTeX{}入门》\cite{liuhaiyang2013latex}。

%参考文献
\begin{thebibliography}{9} %thebibliography环境,宽度为9
    %\bibitem[item number]{citation}
    %item number:该条目的序号
    %citation: \cite命令使用的标签
    \bibitem[1]{liuhaiyang2013latex}
    刘海洋.
    \newblock \LaTeX {}入门\allowbreak[J].
    \newblock 电子工业出版社,北京,2013.
    \bibitem[2]{citation}
    LaTeX Part4参考文献自动化处理。
\end{thebibliography}
\end{document}

$\textrm{bib}$文件作用

  • 由一条条参考文献组成
  • 可有$\textrm{BIBTEX}$和$\textrm{biber}$分别编译生成$\textrm{.bbl}$文件
  • 每个条目包含
    • 作者
    • 标题
    • 发表年份
@article{
	liuhaiyang2013LaTeX,
	title={LaTeX},
	author={Kuroko,Shirai},
	journal={Kuroko.info},
	volume={98},number={13},pages={130404},
	year={2021}
}
  • $\textrm{article}$:参考文献资料的类型,还有$\textrm{book,incollection}$等
  • $\textrm{liuhaiyang2013LaTeX}$,$\textrm{bibkey}$,相当于上文中$\textrm{\cite{label}}$中的$\textrm{label}$
    • 需要确保唯一性
    • 推荐使用纯英文和数字的组合
  • $\textrm{title}$:参考文献的标题
  • $\textrm{author}$:参考文献的作者
  • $\textrm{year}$:参考文献的发表年份

参考文献条目获取

  1. 必应学术
  2. 谷歌学术

必应学术获取步骤

  1. 进入必应学术网站
  2. 在搜索框中搜索需要的文章
  3. 文章的左下角会有一个$\textrm{Cite}$按钮
  4. 点击之后选择ImportLinks中的BibTex
  5. 打开页面,复制其中的内容
  6. 新建一个.bib文件,粘贴刚刚复制的内容
  7. 重复步骤,收集所有的文献

必应学术有批量引用功能,使用更为方便

注意:导出的bib条目可能会有错误,使用者需要进行检查

点击图中的引用
选择BibTeX
复制内容

使用$\textrm{BIBTEX}$

$\textrm{BIBTEX}$是目前处理参考文献最方便的工具之一,其仅需要维护以$\textrm{.bib}$为后缀的文件,而且可以生成不同风格的参考文献。

还是使用一个例子来说明用法,假设在文件夹中有文件$\textrm{test.tex}$和$\textrm{Kuroko.bib}$两个文件

%test.tex
\documentclass{ctexart} %ctexart = article+ctex

%导言区
\bibliographystyle{plain} %指定样式为plain

%正文区
\begin{document}
    %表明了引用的名为"wilczek2012quantum"的对象
    一个引用\cite{wilczek2012quantum}。 
\bibliography{Kuroko} %使用Kuroko.bib的文件,不需要添加.bib后缀

\end{document}
@article{
    wilczek2012quantum,
    title={Quantum time crystals.},
    author={Wilczek, Frank},
    journal={Physical Review Letters},
    volume={109},
    number={16},
    pages={160401},
    year={2012}
}

编译方法有两种

  • 普通的编译
    1. $\textrm{xelatex test}$
    2. $\textrm{bibtex test}$
    3. $\textrm{xelatex test}$
    4. $\textrm{xelatex test}$
  • 或者使用$\textrm{latexmk}$一个指令完成
    • $\textrm{latexmk -pdfxe test}$

编译完成的效果如下:

要注意以下几点:

  1. 即使$\textrm{Kuroko.bib}$文件中有多条文献记录,但也只会展示被$\textrm{\cite}$引用的部分,这也是参考文献的规范:有引用的才进行列举
  2. 编号顺序取决于引用顺序,而非在$\textrm{bib}$文件中的存储顺序
  3. 对于不同的参考文献样式,不需要修改$\textrm{bib}$文件内部的内容,只需要在导言区修改$\textrm{\bibliographystyle{plain}}$的内容
  4. 使用$\textrm{\bibliography{Kuroko}}$导入库时,不需要添加$\textrm{.bib}$后缀

符合国标$\textrm{7714-2015}$的参考文献样式

$\textrm{gbt7714}$宏包

  • 符合$\textrm{GB/T 7714-2015}$的推荐标准
  • 需要$\textrm{BIBTEX}$编译

使用实例

\documentclass{ctexart} %ctexart = article+ctex

%导言区
\usepackage{gbt7714} %导入gbt7714宏包
\bibliographystyle{gbt7714-numerical} %还有一种样式名为gbt7711-author-year

%正文区
\begin{document}
    %表明了引用的名为"wilczek2012quantum"的对象
    一个引用\cite{wilczek2012quantum}
    选择gbt7714-author-year样式还可以使用\citep{wilczek2012quantum}
    \citet{wilczek2012quantum}

\bibliography{Kuroko} %使用Kuroko.bib的文件

\end{document}

效果如下

使用$\textrm{biber}$

  • $\textrm{biber}$的使用和$\textrm{BIBTEX}$大同小异
    • 同:一样需要维护$\textrm{.bib}$文件
    • 异:编译步骤
  • 二者的简单对比
    • $\textrm{biber}$速度上一般比$\textrm{BIBTEX}$慢
    • 对于开发者而言,$\textrm{biber}$更易于编写样式文件
  • 由$\textrm{.cbx}$文件和$\textrm{.bbx}$文件共同决定样式,$\textrm{biber}$对参考文献条目进行排序并提供所有相关信息给$\textrm{biblatex}$宏包

首先介绍一下编译步骤,同样有两种方式

  • 普通的编译
    1. $\textrm{xelatex test}$
    2. $\textrm{biber test}$
    3. $\textrm{xelatex test}$
    4. $\textrm{xelatex test}$
  • 使用$\textrm{latexmk}$编译
    • $\textrm{latexmk -xelatex main}$

然后将上文中$\textrm{BIBTEX}$的样例该用$\textrm{biber}$方式重写

\documentclass{ctexart} %ctexart = article+ctex

%导言区
\usepackage[backend=biber,style=gb7714-2015]{biblatex} %导入biblatex宏包
\addbibresource[location=local]{Kuroko.bib} %需要bib后缀
%对于未被发行版收录的样式,可以把MyStyle.cbx和MyStyle.bbx添加到当前目录中,然后使用\usepackage[backend=biber,style=MyStyle]{biblatex}来进行样式修改

%正文区
\begin{document}
    %表明了引用的名为"wilczek2012quantum"的对象
    一个引用\cite{wilczek2012quantum}
    \printbibliography[title=参考文献]
\end{document}

三者的简要对比

处理方式编译难度代码可维护性编译速度是否需要维护$\textrm{.bib}$文件
手动处理极差最快
自动处理稍高
自动处理稍高最慢

对于个性化的文献格式要求,又没有现成的文件和样式,那么使用$\textrm{thebibligraphy}$环境自行撰写;若存在样式或$\textrm{.bib}$文件,那么个人建议使用速度更快的$\textrm{BIBTEX}$来进行编译。

$\textrm{Author}$@$\href{http://kuroko.info}{\textrm{Kuroko}}$

$\textrm{GitHub}$@$\href{https://github.com/SuperKuroko}{\textrm{SuperKuroko}}$

$\textrm{LeetCode}$@$\href{https://leetcode-cn.com/u/kuroko177/}{\textrm{kuroko177}}$

$\textrm{Last Modified: 2021-01-27 16:40}$