在 LaTeX 中管理参考文献 简化版


发布于

|

分类

最近在学 LaTeX,有些地方需要用到参考文献。一直对这个东西比较晕,从 IEEETrans 里面抄来一份后就没管过。

现在需要在 Beamer 里面加入几个参考文献,所以就把过程列出来了。

BibTeX 是一个参考文献格式化工具。这个定义,给 BibTeX 的用处做了良好的界定:BibTeX 不是用来排版参考文献的,更不是个排版工具,它只是根据需要,按照(bst 文件规定的)某种格式,将(bib 文件中包含的)参考文献信息,格式化 为 LaTeX 能够使用的列表信息。

也就是说,这货是个单独的工具,用它的时候不需要在 tex 文件中写任何东西。

在这里我不会去解释什么是 bst、什么是 bib……我只会说明如何去暴力使用它。

写 bib 文件

bib 文件是我们的 “参考文献数据库”,里面存放了所有用到的文献的信息,可以手工编辑,也可以使用软件进行管理。

每一个参考文献在 bib 文件中都是一条记录,大致长这个样子:

@InProceedings{girshickICCV15fastrcnn,
  Title      = {Fast R-CNN},
  Author     = {Ross Girshick},
  Booktitle  = {International Conference on Computer Vision ({ICCV})},
  Year       = {2015}
}

里面包含了标题、作者、年份等等一大堆信息。如果手工编辑不方便的话,可以使用 JabRef 进行管理。

用 JabRef 的话,可以点击 “新增”,然后随便选一个,最后在下面的面板中把我们已经得到的信息贴进去。

生成参考文献列表

先把这个提前说。

一般在文章末尾或者 Beamer 末尾,我们向插入一个参考文献列表。那么我们可以这样做:

\bibliographystyle{样式}
\bibliography{bib 文件路径或文件名}

样式可以写你的模板中给定的(例如 IEEEtranSN),或者是内置的(例如 unsrt)。

bib 文件路径,可以是相对路径或绝对路径,写不写扩展名都可以。

这样一个参考文献列表就出来了。

默认情况下,参考文献列表中只会出现你用到的文献。那些没有\cite 的文献是不会出现的。

如何让没有用到的文献也显示出来呢?下面是一个例子:

\bibliographystyle{IEEEtran}
\nocite{某个文献的 label}
\nocite{另一个文献的 label}
\bibliography{bib 文件路径或文件名}

好了,这两个文献就能显示出来了。

那么,如果有很多很多文献都要列出来,怎么办?

\bibliographystyle{IEEEtran}
\nocite{*}
\bibliography{bib 文件路径或文件名}

嗯就是那个*就好了。所有在 bib 里面的文献就都列出来了。撑引用专用神器。

引用

上面说了,BibTex 是负责格式转化的,不需要使用包。

然而,如果想在正文里面引用东西、插入 [1][2][3]这样的东西,是需要包的。常用的有 natbibbiblatex 等。

这个比较复杂,例如是否排序、是否合并……不过,记住一个\cite{key}就好了~如果需要一个地方引用多个,那么就\cite{key1,key2,key3},不用重复写成\cite{key1}, \cite{key2}

如果想变成 Author et.al. [X]这样的格式,使用 natbib 包,再使用好相应的样式,然后使用\citet{key}即可。为什么把样式给画了重点了呢?因为如果样式不支持的话,例如使用 IEEEtran,只会显示出 [?]。但如果使用 IEEEtranN 就可以正常显示。

其他的用到再查。

总结一下

大致是这个套路:

首先,把能搜集到的 bib 条目全都放在一个文件里面,比如命名为 references.bib。我们可以用「jabref」、「zotero」等专业工具来进行管理。

然后,写 LaTeX 的时候

...
\usepackage{cite}
\usepackage[numbers]{natbib}
...

我们需要在正文中\cite{some-key}

一下子引用多个的话\cite{key1, key2, key3}

或者希望显示作者的话可以使用\citet{some-key}

...
\bibliographystyle{IEEEtran}
\nocite{*}
\bibliography{bib 文件路径或文件名}

参考资料


评论

  1. Long 的头像
    Long

    还有更高阶的 JabRef,BibTex 的工具,但最近用得很不顺手,自动生成的信息一直有问题,IEEE 的搜索也挂了

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注