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

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

%TeX Live安装目录%\texmf-local\bibtex\bib。

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

1
2
\bibliographystyle{IEEEtran}
\bibliography{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生成的文件比较准确。如果实在要求严格,可以在最后出版时再手动调整。

使用LaTeX按IEEE模板写论文时的参考文献管理方法(BibTeX使用小结)的更多相关文章

  1. 用户Word写毕业论文时的文献引用方法

    经过网上搜索和自己实践,找到了一种不用第三方工具的文献管理方法 通过将文献定义的成书签的形式,插入到文献中,当文献编号发生变化时,只需进行更新域操作,就可实现文献编号的理新,下面介绍具体方法: 1.首 ...

  2. 写论文时,使用word的一些技巧

    目录 怎么设置文章里所有英文的字体.所有中文的字体样式 删除文章中的所有或者部分超链接 设置忽略英文的拼写检查 怎么设置文章里所有英文字体.所有中文字体样式 用鼠标选中需要更改的文章内容,如果是全文, ...

  3. 写论文与PPT汇报时matlab图片的背景透明处理

    不少同学在使用Word写论文时,将matlab生成的图保存为jpg格式,然后粘贴到文档中.word背景为纯白色,jpg图的缺点没有显示,实际上会存在很大白边,以及放大后不清晰的问题,很影响PPT展示和 ...

  4. LaTeX IEEE模板

    因为课程作业的要求需要完成一篇IEEE格式的论文,所以选择入门LaTeX.但是期间遇到了各种各样莫名其妙的坑.前前后后挣扎了两个多星期终于完成了IEEE模板的设置.下面详细记录一下让我深恶痛绝的心路历 ...

  5. 2019-2-13-Latex-论文elsevier,手把手如何用Latex写论文

    title author date CreateTime categories Latex 论文elsevier,手把手如何用Latex写论文 lindexi 2019-02-13 10:38:20 ...

  6. Latex 论文elsevier,手把手如何用Latex写论文

    这几天在开始写论文,准备发的是elsevier,这个网站的instruction有问题,下载的东西基本上好多的错误,所以我就写博客记录. 首先看下:https://www.elsevier.com/a ...

  7. Latex: 添加IEEE论文keywords

    参考: How to use \IEEEkeywords Latex: 添加IEEE论文keywords 方法: \begin{IEEEkeywords} keyword1, keyword2. \e ...

  8. Latex: 添加IEEE会议论文作者信息

    参考: Multiple Authors with common affiliations in IEEEtran conference template Latex: 添加IEEE会议论文作者信息 ...

  9. 使用latex撰写博士,硕士学位论文(浙大博士经验分享)

    使用latex撰写博士,硕士学位论文(浙大博士经验分享) 浙大博士:  个人感觉,还是要用latex来写.因为之前发过几篇word排版的中文论文,在参考文献的引用.文字格式调整上,实在是难受.如果坚持 ...

随机推荐

  1. css3表格样式

    <caption>  关于表格存储内容的描述或总结. 1.border-spacing:0;border-spacing 属性设置相邻单元格的边框间的距离(仅用于“边框分离”模式). 2. ...

  2. dp3--codevs2598 编辑距离问题

    dp3--codevs2598 编辑距离问题 一.心得 1.字符串相关问题dp的时候从0开始是个陷阱 二.题目 2598 编辑距离问题  时间限制: 1 s  空间限制: 128000 KB  题目等 ...

  3. selenium对富文本框的处理

    一般输入框有以下几种形式 第一种:短的input框 如百度首页的输入框,<input type="text" class="s_ipt" name=&qu ...

  4. 一道问题引出的python中可变数据类型与不可变数据类型

    一. 问题的提出 我们先来看两个对比 第一道题,当对象为整数时,最终结果:b = 2, a = 1,b的变化没有引起a的变化 a = 1 b = a b += 1 print(a) print(b) ...

  5. file.seek()方法引出的文本文件和二进制文件问题

    问题的起因 菜鸟教程上有一段关于file.seek()方法的讲解,先简短描述一下seek()方法: seek(offset, whence)方法用于移动文件读取指针到指定位置 参数offset--开始 ...

  6. Mysql进程管理

    mysql> show processlist;+----+------+-----------+------+---------+------+-------+---------------- ...

  7. 20 Python 常用模块

    collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict. ...

  8. hibernate - 一级缓存和三种状态解析

    转载自:http://www.cnblogs.com/whgk/p/6103038.html 一.一级缓存和快照 什么是一级缓存呢? 很简单,每次hibernate跟数据库打交道时,都是通过sessi ...

  9. Two Cakes

    It's New Year's Eve soon, so Ivan decided it's high time he started setting the table. Ivan has boug ...

  10. openfl更新2.0后,android输入法又不能输中文了

    今天手贱更新了一下openfl,fd里面又各种报错.最伤心的是,之前修改MainView.java输入中文的方法现在居然失效了.还好这段时间研究c2dx,总算是能读能懂修改的那段代码,捣鼓了一下午,算 ...