BibTex


Overview

参考

  • bibtex和biber是可以处理.bib文件并提供接口的程序;此外bibtex可以格式化引用
  • BibLaTex和natbib是LaTex包,可以设置引用的格式。它们可以调用不同的backend,比如natbib只能调用bibtex,BibLaTex可以调用bibtex和Biber
    这里有一些使用natbib和biblatex的参考.

BibLaTex

文档

1
2
3
\usepackage[style=<somebiblatexstyle>,<other options>]{biblatex}
\addbibresource[<options for bib resources>]{<mybibfile>.bib}
\printbibliography[<options for printing>]
  • 控制作者人数
    1
    \usepackage[maxbibnames=99]{biblatex}

natbib

文档

  • 依赖bibtex,需要.bst文件。修改style比较困难
  • 一些引用格式无法设置
    1
    \usepackage[<options>]{natbib}
    后面控制文献内容和导入bst部分可以按照BibTex的写法。

BibTex

  • 稳定
  • 格式语言很难便携
  • 对非ASCII语言支持不好
  • 可以用来处理引用格式。通常建议不要使用,应采用BibLaTex进行格式操作

编译流程

  • LaTeX编译源文件.tex,将\cite中的引用写入.aux文件
  • BibTex读入.aux.bib,文献格式.bst,生成.bbl文件
  • LaTex编译,将.bbl中内容对应的文献标号写入.aux
  • \cite中内容改为.aux中存储的标号
    源文件内容如下
    1
    2
    \bibliographystyle{文献格式}
    \bibliography{文献数据.bib}

bst文件编写

文档第4章细致的描述了bst的语法

  • BibTex语法遵循逆波兰表达式,操作和值按照栈压入,并不断弹出计算,写法如1 3 5 + 2 3 * -就是(2*3)-(3+5),栈中最后还保留了1和2
  • 数字前必须加#,比如#2
  • s num.names$ 字符串s中名字个数,根据字符串中and个数判断
  • 下面示例判断numnames>4是将namesleft=4否则namesleft=numnames
    1
    numnames #4 > {#4 'namesleft := } {numnames 'namesleft :=} if$

Biber

  • UTF-8支持
  • 更好的排序控制

文章作者: greatofdream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 greatofdream !
  目录