在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的搜索也挂了

    1. 不能自动生成“References” 的头像
      不能自动生成“References”

      请问能正常生成参考文献以及能正常引用,但是不能自动生成“References”这个标题怎么办,我自己用\section打了一个上去,但是这样做就会有很大的间距

    2. 小金鱼儿 的头像
      小金鱼儿

      可以试试距离为负数的vspace?

发表回复

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