DocBook 向HTML转换中的琐碎细节
使用 xmllint + schema 校验 xml 文档

使用 bibtex 管理参考文献

lyanry posted @ 2007年7月23日 16:55 in 文档标记语言 with tags bibtex , 24239 阅读

之所以使用 BibTeX 的理由很简单:

  • 不用在参考文献的格式上殚精竭虑
  • 你为某一篇论文所建立的参考文献,也可直接用于其它论文
  • 非常高效,使用简单

BibTeX 的使用可分为以下步骤:

  1. 创建参考文献数据库:不要害怕,这里的数据库实际上就是一个扩展名为 .bib 的文本文件,在其中记录文献信息;
  2. 在 LaTeX 文稿中指定参考文献位置与样式;
  3. 使用 LaTeX 与 BibTeX 编译文稿。

下面是一份参考文献数据库 “蜀国文献.bib”,不过里面只有 3 篇文献:

  1. @book{诸葛亮:Book,
  2. author          ="诸葛亮",
  3. year            ="2006",
  4. title           ="木牛流马制造工艺指南 [M]",
  5. publisher       ="蜀国科技出版社"
  6. };
  7.  
  8. @article{诸葛亮:Article,
  9. author  ="诸葛亮",
  10. title   ="论六出祁山的必要性与可行性 [J]",
  11. jounal  ="蜀国军事期刊",
  12. volume ="13",
  13. number ="110"
  14. year    ="2007"
  15. };
  16.  
  17. @article{刘备:摔小孩,
  18. author  ="刘备",
  19. title   ="论怎样教育小孩子 [J]",
  20. jounal  ="蜀国生活期刊",
  21. volume ="18",
  22. number ="120"
  23. year    ="2007"
  24. };

参考文献数据库中,可以存储许多种文献类别,比如:article, book, booklet, conference, inbook, incollection, inproceedings, manual, misc, mastersthesis, phdthesis, proceedings, techreport, unpublished 等等。每种参考文献类别由多个域组成,有些是必须写得,没写会给出警告,而有些是可选。譬如 book 类别中,不可省略的域有 author, title, journal, year,可省略的域有 volume, number, pages, month, note。推荐做法是在参考文献数据库中尽可能提供文献的详细信息。

在 LaTeX 文稿中引用参考文献数据库中的文献条目很简单,对于上面的参考文献数据库示例,在 LaTeX 文稿 test.tex 中按下述方法引用:

\bibliographystyle 指令是用来指定参考文献排版样式的,LaTeX 已经预定了许多种参考文献排版样式,plain 是其中的一种。\bibliography 是用来引入参考文献数据库的,它会按照正文中所引用的参考文献,按次序排版于正文之后。这里要注意一个问题:即便你的参考文献数据库中有上千条文献,但正文中只引用了两篇,那么 \bibliographystyle 指令只会导入你所引用的文献,未引用的文献不会出现在论文中的。这种机制为我们提供了参考文献数据复用的功能。

正文中引用一篇参考文献,只需要指定参考文献数据库中相应参考文献条目的标识即可,譬如 \cite{诸葛亮:Book},通过标识 “诸葛亮:Book” 引用诸葛亮同学的专著《木牛流马制造工艺指南》。

对包含参考文献的 LaTeX 文稿采用如下方式编译:

  1. $ xelatex  test
  2. $ bibtex   test
  3. $ xelatex  test
  4. $ xelatex  test

至于为啥要重复使用 xelatex 对文稿进行编译,请看以下流程图:

 

本节示例最终排版效果,如下图所示。

Avatar_small
galeki 说:
2007年7月27日 00:22

让我想起了我写论文时候,改几十个参考文献的格式错误问题……

Avatar_small
菜鸟 说:
2007年8月17日 00:03

为什么,我做完以后,文献没有列出来,在引用文献的地方显示一个[?]

Avatar_small
lyanry 说:
2007年8月17日 00:48

你用的是 xelatex 吗?

latex+CJK 或者 pdflatex+CJK,都不能处理中文的引用。

Avatar_small
海阔天空 说:
2007年8月28日 20:36 想不到xelatex是可以用中文引用的。我已经装了texlive2007了,看来是应该把文档转到xelatex中来了。
Avatar_small
lyanry 说:
2007年8月28日 23:24

使用 xelatex 也是比较累的。我现在又改回 pdflatex + cjk 了。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter