之前用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. 【转载】JAVA中线程的两种实现方法-实现Runnable接口和继承Thread类

    转自: http://blog.csdn.net/sunguangran/article/details/6069317 非常感谢原作者,整理的这么详细. 在java中可有两种方式实现多线程,一种是继 ...

  2. PyCharm 的初始设置2 - 打开、新建项目

    03. 新建/打开一个 Python 项目 3.1 项目简介 开发 项目 就是开发一个 专门解决一个复杂业务功能的软件 通常每 一个项目 就具有一个 独立专属的目录,用于保存 所有和项目相关的文件 – ...

  3. SSIS的控制流之Foreach循环容器和序列容器

    上一篇介绍了For循环容器的使用.本篇将介绍Foreach循环容器和序列容器的使用. Foreach循环容器 Foreach循环容器定义包中的控制流.其循环的实现类似于编程语言中的Foreach循环结 ...

  4. TemplatedParent 与 TemplateBinding

    http://blog.csdn.net/idebian/article/details/8761388

  5. 解析Ceph: 恢复与数据一致性

    转自:https://www.ustack.com/blog/ceph-internal-recovery-and-consistency/ 作为一个面向大规模的分布式存储系统,故障处理是作为一个常态 ...

  6. 如何实现vue-cli搭建的前端项目的自动打包

    实现vue-cli + webpack +vue项目的自动打包: 后台java代码: public class OpenDirectory { public static void main(Stri ...

  7. CentOS7下Tomcat启动特别慢【有效解决】

    多次亲测! 很简单,记录保存一下: 编辑 $JAVA_HOME/jre/lib/security/java.security 文件, 找到 securerandom.source=file:/dev/ ...

  8. Elasticsearch使用积累

    常用插件 Head查看分片情况,操作简单api Bigdesk监控所在机器的CPU,IO,JVM等指标,简单分片概览 KOPF查看集群gc回收磁盘性能, 分片情况, 简单操作api, 感觉该插件较He ...

  9. JVM_总结_01_JDK的安装

    一.前言 本文主要简要介绍下JDK的安装 二.下载 1.JDK下载地址 前往官方网站下载JDK jdk8官网下载 2.JDK下载 如下图 下载完之后得到安装软件,如下图 三.安装 双击运行安装软件,即 ...

  10. wpf和winform的那点区别

    一提起winform和wpf有啥不同,可能大部分人都会想到wpf拥有漂亮的界面.wpf中也可以使用winform,大部分情况下,都没有任何问题,极少的情况下,可能会出现问题. 我们就来看一下: voi ...