当你用LaTeX来写文档,在管理参考文献时,你可能会用到bibtex,

也许你会嫌麻烦,会选择用

\begin{thebibliography}{10}

\bibitem xxxx

\bibitem xxxx

\end{thebibliography}

的方式来处理参考文献,然后\cite{}来引用。



但我要说的是,如果你只是偶尔用下参考文献(一次管理,一次使用),那么就不需要去用bibtex来管理参考文献了,如果经常使用,还是选择用bibtex来管理你的参考文献比较多(一次管理,终身使用)



bibtex是什么,这些就不多介绍了,很多lnote之类的文档都介绍了,本文只介绍怎么用bibtex。

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

在使用时,一般会接触到两个文件,.bib 和.bst两个文件,.bib就是你的参考文献数据文件   .bst一般由期刊或者杂志提供, bst设定了参考文献出现在文末的方式,例如设置排序方式,设置作者名按缩写的方式还是不缩写,标题要不要大写,这些琐碎的事情,这些不用管太多。我们维
护bib文件即可。



先看下.bib文件是什么样子的:



@ARTICLE{dbhat,

author = {D. Bhat and S. Nayar},

title = {Ordinal measures for image correspondence},

journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence},

year = {1998},

volume = {20(4)},

pages = {415-423},

owner = {flyskymlf},

timestamp = {02}

}



@CONFERENCE{hampapur,

author = {Hampapur, A. and Bolle, R.},

title = {Comparison of sequence matching techniques for video copy detection},

booktitle = {In Conference on Storage and Retrieval for Media Databases},

year = {2002},

pages = {194-201},

owner = {flyskymlf},

timestamp = {15}

}



大概都是由这些一个个的这样的标签组成,每个表示一个文献,全部按照这样写即可。

@ARTICLE  @CONFERENCE  这些指定了文献的类型,article是期刊文章  ,conference是会议文章,可以从名称上分辨。类型有下面几种(来自http://amath.colorado.edu/documentation/LaTeX/reference/faq/bibstyles.html):

@article         
An article from a journal or magazine
@book            
A book with an explicit publisher
@booklet         
A work that is printed and bound, but without a named publisher or sponsoring institution

@conference      
The same as inproceedings
@inbook          
A part of a book, which may be a chapter (or section or whatever) and/or a range of pages
@incollection    
A part of a book having its own title
@inproceedings   
An article in a conference proceedings
@manual 
Technical documentation
@mastersthesis   
A Master's thesis
@misc            
Use this type when nothing else fits
@phdthesis       
A PhD thesis
@proceedings     
The proceedings of a conference
@techreport      
A report published by a school or other institution, usually numbered within a series
@unpublished     
A document having an author and title, but not formally published
@collection      
Not a standard entry type.
Use proceedings instead.
@patent          
Not a standard entry type.

不翻译了,很简单的文字。

----

紧跟在@ARTICLE{之后的文字就是 这个文献的标签id了,这个在一个bib文件中需要是唯一的,因为我们在tex中用\cite{}引用时需要用这个id来引用,当然需要唯一的值(也不用怕,如果写重复了,bibtex在编译时不会给你通过的,你可以再修改)。

再后面的标签的说明也很简单了,author就是作者阿,title就是标题阿,这个不说了,大家一看肯定就都明白了。



PS:有直观的GUI的界面可以去管理,推荐使用JabRef来管理,我就用的这个,很方便,很快捷。

jabref跨平台的,急于java开发的一个东东,而且是免费的。ubuntu下直接sudo apt-get install jabref 即可,其他版本linux的自行处理,我没用过,win下也有版本,安装下就行。



编写好这些之后,保存,然后在你的tex文档中加入下面两行:

\bibliographystyle{bst文件名,注意不要后缀}

\bibliography{bib文件名 }

加入位置就是文章的正文之后,\end{document}之前,

在正文中引用时,采用\cite{id}的方式来引用,id就是上文中所说的唯一的id。
PS:如果没有bst文件时,那么就需要自己来用默认提供的几个bst模板了:
---(来源:http://zzg34b.w3.c361.com/package/reference.htm)
plain,按字母的顺序排列,比较次序为作者、年度和标题
unsrt,样式同plain,只是按照引用的先后排序
alpha,用作者名首字母+年份后两位作标号,以字母顺序排序
abbrv,类似plain,将月份全拼改为缩写,更显紧凑
ieeetr,国际电气电子工程师协会期刊样式
acm,美国计算机学会期刊样式
siam,美国工业和应用数学学会期刊样式
apalike,美国心理学学会期刊样式
-----
还有很多,这里不列举了,这里有所有的类型。
一般简单的用plain或者alpha就行了,ieeetr这些是针对特定的会议来使用。
上面也说了,一些期刊之类的也会提供他们自己的bst文件的,去相关网站下载即可。


tex和bib都设置好之后,就可以来编译了,编译分4步:
1. latex xx.tex 编译tex文件,没错误的话会生成aux文件,aux文件包含了引用这些的信息。
2. bibtex xx.aux 根据aux文件中记录的信息来检测bib文件中的相关文献,此时也会检测bib中相关的书写有无错误。
有错会提示,上面说的修改错误的时候就在这个时候来检测。
没有错误的话会生成bbl文件,你可以打开bbl文件看下就明白了,
bbl里面其实就是本文最刚开头说的直接用
\begin{thebibliography}{10}
\bibitem xxxx
\bibitem xxxx
\end{thebibliography}
的这种形势。
3. latex xx.tex 再次编译,把参考文献编译进文档中。
4. latex xx.tex 三次编译,把交叉引用编译正确。

完毕,可以打开dvi看下效果了!~!~
如果嫌麻烦,可以写个脚本或者一次执行多个命令。
我一般就把所有的写成一行来用:
latex my.tex; bibtex my.aux; latex my.tex; latex my.tex; dvipdf; acroread my.pdf;
PS:shell脚本我用的还不熟,不献丑了^_^
如果在论文撰写中,一般直接先查看dvi就可以了(把dvipdf往后的去掉,换成xdvi my.dvi)最后再生成pdf
因为dvipdf需要一点时间(特别是使用中文时,比较慢,可能是字体嵌入的问题,不太清楚,因为dvipdf编译全英文的paper还是比较快的)。

Latex笔记(参考文献) 分类: LaTex 2014-11-08 17:41 239人阅读 评论(0) 收藏的更多相关文章

  1. iOS纯代码手动适配 分类: ios技术 2015-05-04 17:14 239人阅读 评论(0) 收藏

    首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPho ...

  2. strace使用详解(转) 分类: shell ubuntu 2014-11-27 17:48 134人阅读 评论(0) 收藏

    (一) strace 命令    用途:打印 STREAMS 跟踪消息. 语法:strace [ mid sid level ] ... 描述:没有参数的 strace 命令将所有的驱动程序和模块中的 ...

  3. C#多线程(下) 分类: C# 线程 2015-03-09 10:41 153人阅读 评论(0) 收藏

    四.多线程的自动管理(线程池) 在多线程的程序中,经常会出现两种情况: 一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应 这一般使用ThreadPool(线 ...

  4. iOS开发UITableView基本使用方法总结 分类: ios技术 2015-04-03 17:51 68人阅读 评论(0) 收藏

    本文为大家呈现了iOS开发中UITableView基本使用方法总结.首先,Controller需要实现两个delegate ,分别是UITableViewDelegate 和UITableViewDa ...

  5. Hdu 1429 胜利大逃亡(续) 分类: Brush Mode 2014-08-07 17:01 92人阅读 评论(0) 收藏

    胜利大逃亡(续) Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Subm ...

  6. SQL 分组 加列 加自编号 自编号限定 分类: SQL Server 2014-11-25 15:41 283人阅读 评论(0) 收藏

    说明: (1)日期以年月形式显示:convert(varchar(7),字段名,120) , (2)加一列 (3)自编号: row_number() over(order by 字段名 desc) a ...

  7. 树莓派安装mjpg-streamer视频监控 分类: Raspberry Pi 2015-04-12 23:41 144人阅读 评论(0) 收藏

    原来使用Motion在树莓派上跑1280x720分辨率的三颗摄像头.占用内存太严重,关闭诸多功能之后还是不行.故转战mjpg-streamer. 首先安装所需软件 sudo apt-get insta ...

  8. 深入N皇后问题的两个最高效算法的详解 分类: C/C++ 2014-11-08 17:22 117人阅读 评论(0) 收藏

    N皇后问题是一个经典的问题,在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行.同一列.同一斜线上的皇后都会自动攻击). 一. 求解N皇后问题是算法中回溯法应用的一个经典案例 回溯算 ...

  9. c++ 字符串流 sstream(常用于格式转换) 分类: C/C++ 2014-11-08 17:20 150人阅读 评论(0) 收藏

    使用stringstream对象简化类型转换 C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性.类型安全和可扩展性.在本文中 ...

随机推荐

  1. HTML 5结构

    进行总体布局时候,具体可以用的方法. 1.大纲:文档中各内容区块的结构编排. 内容区块可以使用标题元素来展示各级内容区块的标题. 关于内容区块的编排可以分为“显示编排”和“隐式编排”. 显示编排:明确 ...

  2. 自定义函数中的参数返回值 “-> (Int -> Int)”的问题

    func makeIncrementer() -> (Int -> Int) { func addOne(number: Int) -> Int { + number } retur ...

  3. Django国际化注意事项

    涉及两部分内容: py/html文件国际化.外部js文件国际化 步骤 1. settings.py 激活相应的配置 2. 针对py文件,需要注意被翻译代码的编写方式 3. 针对html文件,需要注意被 ...

  4. ajax请求遇到服务器重启或中断

    常会有不断轮询发送ajax请求,处理一些业务的场景. 要考虑到: 1. 服务器重启,中断,恢复后仍然能恢复正常业务处理. 服务器重启过程中,再次发送请求,请求状态将变为net::ERR_CONNECT ...

  5. iOS: 属性列表介绍 Introduction to Property Lists

    iOS: 属性列表介绍 Introduction to Property Lists 从本质上说, 属性列表就是苹果的对象数据序列化与反序列化方式 属性列表使用几种数据类型把数据组织为键值表和值表 P ...

  6. http server v0.1_http_server.c

    /**************************************************************** filename: http_server.c author: xx ...

  7. 通过使用CyclicBarrier来计算Matrix中最大的值

    import java.util.Random; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.Exec ...

  8. 【转】MFC界面更新实现方法

    原文网址:http://www.cnblogs.com/skywatcher/p/3572311.html 1.更新窗口 即采用UpdateWindow()函数立即发送WM_PAINT消息更新整个窗口 ...

  9. 综合(奇技淫巧):HDU 5118 GRE Words Once More!

    GRE Words Once More! Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/O ...

  10. Linux学习笔记13——使用curses函数库

    一 安装curses库 如果你的Linux系统中curses库,直接敲入命令sudo apt-get install libncurses5-dev,然后就会自动安装curses库,安装好之后敲入命令 ...