zoukankan      html  css  js  c++  java
  • 使用LaTeX按IEEE模板写论文时的参考文献管理方法(BibTeX使用小结)

    之前用LaTeX写论文时,参考文献都是手动添加管理的,真是让人很抓狂。所以这次趁着假期,简单看了一下怎么使用BibTeX对参考文献进行管理,这里以IEEE的最新模板为例。

    首先说明,我之前用的是MiKTeXTeXnicCenter,用这两个组合,按照网上教程搞了半天,发现TeXnicCenter中如果选择BibTeX编译就会报错:“bibtex.exe: GUI framework cannot be initialized.” 实在不知道怎么回事,就将LaTeX安装包换成TeX Live(需要将之前安装的MikTex卸载)。说实话TeX Live也实在不智能,其ISO文件可以在CTEX的Mirror下载到:http://ftp.ctex.org/mirrors/CTAN/systems/texlive/Images/,但是郁闷的是把iso下载下来运行时,会报“perl.exe 已停止工作”,最后还是按照这里:http://www.tug.org/texlive/acquire-netinstall.html的在线安装包安装好的(其间也是断断续续弄了好几遍)。按照微博上大家的推荐,这次改用了Texmaker这个工具,发现安装很简单,可以自动识别大部分TeX Live的组件。

    下面以IEEE的最新模板为例,说说怎么样生成符合其格式要求的参考文献:

    在这个页面:http://www.ieee.org/conferences_events/conferences/publishing/templates.html下载Windows版本的两个压缩包。(其实这些模板最官方的版本还是在CTAN上,但是前面这个页面是压缩包,下载起来更方便些)

    IEEEtranBST2.zip这个压缩包是和BibTeX相关的,具体我也不解释了,讲讲需要做的事情:将这个压缩包中的IEEEtran.bst和IEEEtranS.bst拷贝至下面的目录:

    %TeX Live安装目录% exmf-localibtexst (这里需要注意的是,TeX Live大部分文件都被推荐安装到如2012这样年份代表的目录下,但是texmf-local这个目录是一些和用户设置相关的内容,这样可以保证重装或完全升级TeX Live后保留所有的用户数据),第二个文件中的S表示参考文献按照作者名等排序(大部分情况不用,因为IEEE很多要求是无序参考文献,就是说按照参考文献在文中出现的顺序编号)

    其次,将上面压缩包中的IEEEabrv.bib和IEEEfull.bib拷贝至下面的目录:

    %TeX Live安装目录% exmf-localibtexib。

    我们以windows_latex_template.zip压缩包中的bare_conf.tex为例,在这个文件的end{document} 之前添加这两条语句:

    1
    2
    ibliographystyle{IEEEtran}
    ibliography{IEEEabrv,IEEEexample}

    这里其实就告诉编译器,我们将用到IEEEabrv.bib和IEEEexample.bib这两个文件。前者我们已经设置好了。后者就拷贝到和bare_conf.tex在同一文件夹中。那么我们在正文中加入:

    1
    cite{IEEEexample:articleetal}

    其实就表示在上面两个文件中查找ID为IEEEexample:articleetal的BibTeX记录,我们看看这个记录在IEEEexample.bib中长什么样子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @article{IEEEexample:articleetal,
      author        = "F. Delorme and others",
      title         = "Butt-jointed {DBR} Laser With 15 {nm} Tunability Grown
                       in Three {MOVPE} Steps",
      journal       = "Electron. Lett.",
      volume        = "31",
      number        = "15",
      year          = "1995",
      pages         = "1244-1245"
    }

    其实具体含义一看便知,接下来我们需要对上面的tex文件编译。首先在Texmaker中选择XeLaTeX,编译生成aux文件(此时一般会报错,不用管),再用BibTeX编译一遍,生成bbl文件,再重新用XeLaTeX编译两遍,两次生成dvi文件(因为它第一遍需要解决参考文献的问题)。然后我们再用PDF查看,就可以看到在文中生成正确的参考文献引用了。

    下面还有一个主要问题需要解决,如果同时引用好几篇,那么这是在文中是分开的,如[2], [3]这个样子,一种最简单的解决方式是在

    1
    documentclass[conference]{IEEEtran}

    的后面加入:

    1
    usepackage[numbers,sort&compress]{natbib}

    在引用时,需要把多篇引用写在同一个cite中,如:

    1
    cite{ZongweiGligor-335,WheeldonCounsell-331}

    这样就可以实现诸如[2, 3]这样的形式了。

    最后一个需要解决的问题,怎样整理正确的BibTeX应用,很多教程中提到了JabRef,但是我安装之后发现很郁闷,我点击其Search——web search时,这个软件没有一点反应。我又试了试NoteExpress,EndNote等软件,都存在一些问题:用NoteExpress(2.7.1版本)导出的bib文件有问题,EndNote(X4版本)不能在线搜索IEEE数据库。所以又对比了一下通过IEEEACM和Google Scholar以及CiteULike导出的BibTeX文件,严格意义上来说,生成的BibTeX文件都不符合要求。例如,在刚才IEEEexample.bib文件中给出的会议论文的booktitle字段应该长这个样子:

    1
    2
    booktitle     = "Proc. {IEEE} International Workshop on
                     Microelectromechanical Systems ({MEMS}'97)"

    但是所有的自动生成BibTeX记录都不是缩写的Proc而是如Proceedings of the 20XX IEEE Symposium on,或者干脆没有Proc或Proceedings of。个人认为,其实并不一定要完全符合要求,对比了很多TOP的会议,很多论文的参考文献格式也是大致符合,只要保证在一篇文章中风格一致即可。整体来说,IEEE和Google Scholar生成的文件比较准确。如果实在要求严格,可以在最后出版时再手动调整。

  • 相关阅读:
    JS高级-虚拟DOM
    JS高级-异步
    tomcat server.xml中文版
    java中的等于
    eclipse version
    angularjs中父,子,兄之间controller值得传递
    《那一天,那一月,那一年,那一世》-------仓央嘉措
    用jsonp格式的数据进行ajax post请求变成get
    git常用指令
    让div支持placeholder属性/模拟输入框的placeholder属性
  • 原文地址:https://www.cnblogs.com/zhaoyang10/p/4468581.html
Copyright © 2011-2022 走看看