zoukankan      html  css  js  c++  java
  • Latex笔记(参考文献) 分类: LaTex 2014-11-08 17:41 239人阅读 评论(0) 收藏

    当你用LaTeX来写文档,在管理参考文献时,你可能会用到bibtex,
    也许你会嫌麻烦,会选择用
    egin{thebibliography}{10}
    ibitem xxxx
    ibitem 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文档中加入下面两行:
    ibliographystyle{bst文件名,注意不要后缀}
    ibliography{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里面其实就是本文最刚开头说的直接用
    egin{thebibliography}{10}
    ibitem xxxx
    ibitem 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还是比较快的)。

  • 相关阅读:
    mac os programming
    Rejecting Good Engineers?
    Do Undergrads in MIT Struggle to Obtain Good Grades?
    Go to industry?
    LaTex Tricks
    Convert jupyter notebooks to python files
    How to get gradients with respect to the inputs in pytorch
    Uninstall cuda 9.1 and install cuda 8.0
    How to edit codes on the server which runs jupyter notebook using your pc's bwroser
    Leetcode No.94 Binary Tree Inorder Traversal二叉树中序遍历(c++实现)
  • 原文地址:https://www.cnblogs.com/paulweihan/p/4660129.html
Copyright © 2011-2022 走看看