在用sublime+LatexTools一段时间之后,发现用它来写Latex真的是非常方便,配置好TexLive之后直接CTRL+B就可以直接编译运行了,so cool!但是最近写课程论文的时候,我在引用参考文献时碰到了一些麻烦。不怕大家笑话,本来我写参考文献都是直接手动标注[1],[2]…然后手动写参考文献的。一旦参考文献多起来,这简直要命。所以我这次终于决定换一种方式,看看有没有什么好办法可以自动导出参考文献的。一找,办法果然还是很多的。这里简单记录我使用的一种办法。
首先,你需要维护一个.bib文件,里面是特定格式的你的参考文献。一般是如下的形式:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22@article{simonyan2015very,
title="Very Deep Convolutional Networks for Large-Scale Image Recognition",
author="Karen {Simonyan} and Andrew {Zisserman}",
journal="international conference on learning representations",
year="2015"
}
@inproceedings{krizhevsky2012imagenet,
title="ImageNet Classification with Deep Convolutional Neural Networks",
author="Alex {Krizhevsky} and Ilya {Sutskever} and Geoffrey E. {Hinton}",
booktitle="Advances in Neural Information Processing Systems 25",
pages="1097--1105",
year="2012"
}
@inproceedings{he2016deep,
title="Deep Residual Learning for Image Recognition",
author="Kaiming {He} and Xiangyu {Zhang} and Shaoqing {Ren} and Jian {Sun}",
booktitle="2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)",
pages="770--778",
year="2016"
}
article
,inproceedings
等表示的是文献类型,simonyan2015very
,he2016deep
表示的参考文献的id,这个id必须必须是独一无二的,后面会使用\cite{simonyan2015very}
这种形式来引用参考文献。你可能会问,上面.bib文件难道需要手动填写吗?当然不会啦,有一种最简便的方法可以自动生成.bib文件,那就是去google scholar(可能需要翻墙)或者bing scholar(推荐),搜索你引用的文献,它会自动生成.bib文件。以bing scholar为例,如图1所示:
导出.bib文件之后,我们需要在latex文件最后添加如下的几行命令:
1 | \renewcommand\refname{参考文献} |
默认生成的参考文献名字是Reference
,如果你的论文是用中文书写的话,第一行命令可以以参考文献
命名;第二行是设置参考文献的格式;第三行mybibtex
是你的.bib文件的名字(这里是mybibtex.bib
,注意不需要.bib后缀)。如果你需要在文中的某个地方引用某篇参考文献的话,使用\cite{}
命令会自动弹出所有的参考文献列表框,然后你选择相应的文献就可以自动引用了。引用是采用\cite{simonyan2015very}
的形式,其中simonyan2015very
是文献的id标识。我在实际操作的过程中遇到了bib files not found
的问题。找了半天终于找到了问题,只需要在latex文件的首行加上% !TEX root = xxx.tex
的命令即可,其中xxx.tex
是你的latex源文件的名字。
上面的步骤都完成之后,就可以编译latex文件了。这里如果使用普通的latex编译方式xelatex *.tex
是没有办法成功生成参考文献的。需要依次执行如下的四个命令:1
2
3
4xelatex *.tex
bibtex *.aux
xelatex *.tex
xelatex *.tex
才可以成功编译。
最后,你也可以参考知乎的这个回答:如何在LaTeX写作中管理参考文献?