一篇关于Latex的参考文献的好文章!基本问题都能解答~

文章来源:http://www.cnblogs.com/longdouhzt/archive/2012/06/21/2557965.html

ps:copy

LaTeX 对参考文献的处理有这么一些优点:

1. 可以维护一个 bib 文件,在你的整个研究生涯可以只维护这样一个文件,就象一个数
据库,每个参考文献是一个记录,由一个唯一的 ID (例如下面的 MartinDSP00)描述。
比如我的 myreference.bib 文件里一条典型的文献是这样的:

@article{MartinDSP00,
     author = "A. Martin and M. Przybocki", 
     title = "The {NIST} 1999 speaker recognition evaluation --- an overview",

journal = "Digital Signal Processing", 
     volume = "10", 
     pages = "1--18", 
     year = "2000",}
    
    其中 {NIST} 中的大括号不会被显示,它的作用是保证将来的生成的参考文献中 NIST
四个字保持原样,不会被小写。

2. 需要引用文献的时候,在正文里加入:

\bibliographystyle{ieeetr}
\bibliography{myreference}

就可以用 \cite{} 来引用文献库中的论文了,如 \cite{MartinDSP00}。上面第一行是
控制文献显示格式的,这个后面再讲。此时,myreference.bib 文件在正文 tex 文件的同
一目录下,以保证 LaTeX 可以找到该 bib 文件。

3. 编译正文之后,生成 aux 文件,然后用 bibtex 在当前目录生成 bbl 文件,再编译正
文两次,完整的 dvi 就生成了。这样,LaTeX 保证了所有用 \cite 引用到的文献都已被
列出,并且自动编号。同时,如果没有用 \nocite 命令,LaTeX 还保证所有列出的参考文
献都在正文中得到了引用。

4. 关于 bib 文件
    前面提到 bib 文件的维护问题。我一般不对里面的文献排序,如果文献比较多,需要
查找的话,可以通过查询关键字来实现。bib 文件把 @ 所定义的 entry 之外的所有东西
看作是注释。比如在上面 @article 的例子里,如果我在大括号之外写些东西的话,bibt
ex 是不会关心的,就当它不存在。所以我就把文献的关键字写在这里,将来通过搜索关键
字来查找某些文献。其实也可以搞一个临时的 LaTeX 文件,使用 \nocite{*} 命令,然后
编译成 dvi,这样就得到了一个 bib 文件中所有参考文献的列表,当然是可以按照作者名
字排序的。
    另外,很多 journal(学术期刊)或者 booktitle(国际会议)都是重复的,为了规范
化,可以定义缩写,如

@string(ICASSP = "Proc. of the International Conference on Acoustics, Speech, 
and Signal Processing (ICASSP)")

然后
   
    @conference{QL.ICA98,
     author = "Qi Li and Biing-Hwang Juang",
     title   = "Speaker Verification Using Verbal Information Verification for A
utomatic Enrollment",
     booktitle = ICASSP,
     year = "1998",}

这样在执行 bibtex 之后,ICASSP 会被替换成它的全称。

5. bib 中的中文文献
    中文文献和英文的格式不同,并且使用全角的标点符号,有一点难办。我的解决办法是
这样的:

@misc{Xie.1995,
     note = "谢锦辉,《隐 {Markov} 模型及其在语音处理中的应用》,华中理工大学出
版社,1995年4月",
     key = "Xie",}

唯一的缺陷是参考文献中最后是以英文的 "." 而不是 "。" 结束的。还好我的中文文
献不多,无伤大雅,否则就手工修改一下 bbl 文件吧。

6. 关于参考文献的显示格式、排序,及其他
    前面提到参考文献的排序问题,以及引用序号是 LaTeX 提供的 ID 还是数字的问题。
其实不止这些,参考文献的显示格式也是可以定制的。参考文献以正文中引用顺序排序,
还是以文献第一作者的 last name 排序,是通过一些 bst 文件来控制的。而使用哪种 b
st 格式,可通过 bibliographystyle 命令控制。LaTeX 默认提供了这么几种格式,如:
plain、alpha、unsrt等。具体意义见相关文档,这些 bst 在 texmf\bibtex\bst\base 可
被找到。
    bst 控制的格式非常细致,除了上面讲过的排序方式等,还有:作者名字是否用缩写,
作者名字放在文献的起始还是结束,文章 title 要不要大小写(即 "Speaker Verificat
ion Using ..." 还是 "Speaker verification using "),title 用什么区分(用不用引
号括起来,用不用斜体等),刊物名字的格式(要不要全部大写,要不要粗体,要不要斜
体,要不要括起来),等等等等。打开 bst 文件看一下就知道,绝对是想要什么形式,就
可以得到什么形式。最关键的是,在文章定稿之后,完全可以用几个命令重新定义参考文
献的格式!
   
    给个例子:采用 IEEE 给出的 bst 格式(即 ieeetr.bst),声明:

  \bibliographystyle{ieeetr}

就可以使用了。最终格式是这样的(按正文引用顺序排序):
    [4] D. A. Reynolds, "Comparison of background normalization 
        methods for text-independent speaker verication," in 
        EUROSPEECH, 1997.
       
7. 如何定制参考文献的显示格式
    其实 bst 文件有很多,总能找到自己需要的。如果这些还不能满足,可以通过生成自
己的 bst 文件来定制。这有两个方法,第一是手写(反正我是写不出来),第二是通过工
具。custom-bib 是一个定制 bst 文件的包,解压缩后用 LaTeX 编译其中的主 tex 文件
,便会进行交互式的 bst 定制过程,具体过程我就不讲了。把生成的自定义的 bst 放到
LaTeX 相应目录下,刷新文件名数据库就可以使用了。

---------------------------------------

BibTeX 是一种格式和一个程序, 用于协调LaTeX的参考文献处理.

BibTeX 使用数据库的的方式来管理参考文献. BibTeX 文件的后缀名为 .bib . 先来看一个例子

@article{name1, 
author = {作者, 多个作者用 and 连接}, 
title = {标题}, 
journal = {期刊名}, 
volume = {卷20}, 
number = {页码}, 
year = {年份}, 
abstract = {摘要, 这个主要是引用的时候自己参考的, 这一行不是必须的} 
}

@book{name2, 
author ="作者", 
year="年份2008", 
title="书名", 
publisher ="出版社名称" 
}

说明:

1. 第一行@article 告诉 BibTeX 这是一个文章类型的参考文献. 还有其它格式, 例如 article, book, booklet, conference, inbook, incollection, inproceedings, manual, misc, mastersthesis, phdthesis, proceedings, techreport, unpublished 等等. 
2. 接下来的"name1", 就是你在正文中应用这个条目的名称. 
3. 其它就是参考文献里面的具体内容啦.

在LaTeX中使用BibTeX 
为了在LaTeX中使用BibTeX 数据库, 你必须先做下面三件事情:

1) 设置参考文献的类型 (bibliography style). 标准的为 plain:

\bibliographystyle{plain}

将上面的命令放在 LaTeX 文档的 \begin{document}后边. 其它的类型包括

* unsrt – 基本上跟 plain 类型一样, 除了参考文献的条目的编号是按照引用的顺序, 而不是按照作者的字母顺序. 
* alpha – 类似于 plain 类型, 当参考文献的条目的编号基于作者名字和出版年份的顺序. 
* abbrv – 缩写格式 .

2) 标记引用 (Make citations). 当你在文档中想使用引用时, 插入 LaTeX 命令

\cite{引用文章名称}

"引用文章名称" 就是前边定义@article后面的名称.

3) 告诉LaTeX生成参考文献列表 . 在 LaTeX 的结束前输入

\bibliography{bibfile}

这里bibfile 就是你的 BibTeX 数据库文件 bibfile.bib .

运行 BibTeX 
分为下面四步

* 用LaTeX编译你的 .tex 文件 , 这是生成一个 .aux 的文件, 这告诉 BibTeX 将使用那些应用.
* 用BibTeX 编译 .bib 文件. 
* 再次用LaTeX 编译你的 .tex 文件, 这个时候在文档中已经包含了参考文献, 但此时引用的编号可能不正确. 
* 最后用 LaTeX 编译你的 .tex 文件, 如果一切顺利的话, 这是所有东西都已正常了.

例子: 将上面的 BibTeX 的的例子保存为 bibtex-example.bib .

\documentclass{article} 
\usepackage{CJK} 
\begin{document} 
\begin{CJK*}{GBK}{song} 
text\cite{name1}\cite{name2} 
中文 
把Latex中的 Reference 写成中文的"参考文献" 
%如果文档类是article之类的, 用\renewcommand\refname{参考文献} 
%如果文档类是book之类的, 用\renewcommand\bibname{参考文献} 
\renewcommand\refname{参考文献} 
\bibliographystyle{plain} 
\bibliography{ bibtex-example.bib} 
\end{CJK*} 
\end{document}

将上面的内容保存为bibtex-example.tex .

latex编译一次, bibtex 编译一次, 再用 latex编译两次就大功告成了!

-----------------------

Google Scholar显示“Import into BibTeX”的方法:

1、打开http://scholar.google.com
2、点击右上角的Scholar Preferences。
3、在“Bibliography Manager”那一项,勾上“Show links to import citations into BibTeX”。
4、随便搜索,比如“Laibson”。
5、在第一项Golden Eggs and Hyperbolic Discounting的下面,就有“Import into BibTeX”,点击。
6、出来的那堆东西直接扔到一个“XXXX.bib”文件里就好了,保存,和论文文档放在同一个目录下。
7、想要Cite或者reference就轻松了。

另外,Google Scholar导出的文献条目还很聪明,特殊字符都帮忙处理好了。比如搜索Bénabou,如果他的文章刊出时,名字里的e头上有变音符,那生成的文献条目里的作者那一项就会变成:author={B{\'e}nabou}。

但也有一点不聪明的,比如参考文献里引了NBER的工作论文,结果在Google Scholar里导出的BibTeX模板是“misc”,可是“misc”的可选域里出版那一项默认是“howpublished”,但Google Scholar却给成“publisher”,结果编译了几十次都没出现NBER。搞不清楚为什么是“publisher”。

---------------

  • @article
期刊杂志的论文

  • 必要域: author, title, journal, year.
  • 可选域: volume, number, pages, month, note.
  • @book
公开出版的图书

  • 必要域: author/editor, title, publisher, year.
  • 可选域: volume/number, series, address, edition, month, note.
  • @booklet
无出版商或作者的图书

  • 必要域: title.
  • 可选域: author, howpublished, address, month, year, note.
  • @conference
等价于 inproceedings

  • 必要域: author, title, booktitle, year.
  • 可选域: editor, volume/number, series, pages, address, month, organization, publisher, note.
  • @inbook
书籍的一部分章节

  • 必要域: author/editor, title, chapter and/or pages, publisher, year.
  • 可选域: volume/number, series, type, address, edition, month, note.
  • @incollection
书籍中带独立标题的章节

  • 必要域: author, title, booktitle, publisher, year.
  • 可选域: editor, volume/number, series, type, chapter, pages, address, edition, month, note.
  • @inproceedings
会议论文集中的一篇

  • 必要域: author, title, booktitle, year.
  • 可选域: editor, volume/number, series, pages, address, month, organization, publisher, note.
  • @manual
技术文档

  • 必要域: title.
  • 可选域: author, organization, address, edition, month, year, note.
  • @mastersthesis
硕士论文

  • 必要域: author, title, school, year.
  • 可选域: type, address, month, note.
  • @misc
其他

  • 必要域: none
  • 可选域: author, title, howpublished, month, year, note.
  • @phdthesis
博士论文

  • 必要域: author, title, year, school.
  • 可选域: address, month, keywords, note.
  • @proceedings
会议论文集

  • 必要域: title, year.
  • 可选域: editor, volume/number, series, address, month, organization, publisher, note.
  • @techreport
教育,商业机构的技术报告

  • 必要域: author, title, institution, year.
  • 可选域: type, number, address, month, note.
  • @unpublished
未出版的论文,图书

  • 必要域: author, title, note.
  • 可选域: month, year.

--------------------------------------------------------

\begin{thebibliography}{}
\bibitem{} M. J. Beeson, {\it Foundations of Constructive
Mathematics} (Springer, Berlin, ). \bibitem{} K. L. Clark, Negations as failure, in {\it Logic and Data
Bases}, eds. H. Gallaire and J. Winker (Plenum Press, New York,
), pp.~--. \end{thebibliography}

BIBTeX制作参考文献的更多相关文章

  1. LaTeX技巧23:BIBTeX制作参考文献

    23BibTeX 是一种格式和一个程序,用于协调LaTeX的参考文献处理.BibTeX 使用数据库的的方式来管理参考文献. BibTeX 文件的后缀名为 .bib . 先来看一个例子 @article ...

  2. paper 48: Latex中如何制作参考文献

    文章写到现在,最后一步就要大功告成了!reference,let's go! 一.用Google来做Latex的bib文件 1. 打开scholar.google.com 2. 定制   Schola ...

  3. LaTeX中用BibTex管理参考文献

    BibTeX 是一种用来规范参考文献列表的一种文献管理软件,定义了一种比较通用的管理文献的格式, 用于协调LaTeX的参考文献处理. BibTeX 使用数据库的的方式来管理参考文献. BibTeX 文 ...

  4. Latex初学者入门(三)-- 用BibTeX生成参考文献

    昨boss要往期Elsevier 刊投文章,距上次排版貌似过了好久,生疏了不少,翻出以前的写的一些笔记再复习复习. 不过这次好多了,仅仅是改个格式,原始的文章已经用latex编写过了(个人感觉最头疼的 ...

  5. LaTeX技巧472:定义一个LaTeX参考文献不带编号且有缩进的方法

    LaTeX_Fun的博客 LaTeX技巧381:参考文献项第二行缩进如何定义? \makeatletter\renewenvironment{thebibliography}[1]{\section* ...

  6. 制作BibTex文件

    上一篇日志中讲到了在LaTeX中使用BibTex管理参考文献,这篇日志具体总结下如何制作BibTex文件. 制作BibTex文件,主要有以下几种方法: 手工制作: 直接从期刊数据库中下载: 借助Goo ...

  7. 使用LaTeX按IEEE模板写论文时的参考文献管理方法(BibTeX使用小结)

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

  8. Latex:入门教程

    http://blog.csdn.net/pipisorry/article/details/54571521 总的来说,LaTex是一套排版系统,与word那种所见即所得对排版方式不太,用LaTex ...

  9. Setting up Latex-vim (or Latex-suite) plugin within macVim under Mac OSX Yosemite 2015-1-20 by congliu

    1. Overview: Vim是命令行下的文本编辑程序,gVim是Vim的Linux下的图形化版本,macVim是Mac下的图形化版本 Latex-vim是vim写Latex文件时的插件 Skim是 ...

随机推荐

  1. Netscaler的超高端口复用助力应对公网地址紧张

    Netscaler的超高端口复用助力应对公网地址紧张 http://blog.51cto.com/caojin/1898351 经常会有人问一个IP只有65535(姑且不考虑预留端口),从Big-ip ...

  2. BZOJ4568 [Scoi2016]幸运数字 【点分治 + 线性基】

    题目链接 BZOJ4568 题解 选任意个数异或和最大,使用线性基 线性基插入\(O(logn)\),合并\(O(log^2n)\) 我们要求树上两点间异或和最大值,由于合并是\(O(log^2n)\ ...

  3. bzoj 3456 城市规划 多项式求逆+分治FFT

    城市规划 Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 1091  Solved: 629[Submit][Status][Discuss] Desc ...

  4. bzoj 4555 [Tjoi2016&Heoi2016]求和 NTT 第二类斯特林数 等比数列求和优化

    [Tjoi2016&Heoi2016]求和 Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 679  Solved: 534[Submit][S ...

  5. 生产服务器环境最小化安装后Centos 6.5优化配置备忘

    生产服务器环境最小化安装后 Centos 6.5优化配置备忘 本文 centos 6.5 优化 的项有18处,列表如下: 1.centos6.5最小化安装后启动网卡 2.ifconfig查询IP进行S ...

  6. 前端部署: nginx配置

    前提:nginx 已安装 简介:nginx(engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ram ...

  7. centos yum 安装 mysql

      centos7下使用yum安装mysql 时间:2015-03-07 21:26:20      阅读:87445      评论:0      收藏:1      [点我收藏+] 标签: Cen ...

  8. Visual Studio Code 配置C/C++环境

    0. 前言 VS Code 是微软发布一款跨平台的源代码编辑器,其拥有强大的功能和丰富的扩展,使之能适合编写许多语言. 本文面向初学者(但不是纯小白),分享一点我配置C/C++的经验. 本文所有内容均 ...

  9. Bzoj1917 [Ctsc2010]星际旅行

    Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 185  Solved: 118 Description 公元3000年,地球联盟已经攻占了银河系内的N ...

  10. 使用MapReduce将HDFS数据导入到HBase(三)

    使用MapReduce生成HFile文件,通过BulkLoader方式(跳过WAL验证)批量加载到HBase表中 package com.mengyao.bigdata.hbase; import j ...