最近在学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]
这样的东西,是需要包的。常用的有natbib
、biblatex
等。
这个比较复杂,例如是否排序、是否合并……不过,记住一个\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文件路径或文件名}
发表回复