Overview
- bibtex和biber是可以处理
.bib文件并提供接口的程序;此外bibtex可以格式化引用 - BibLaTex和natbib是LaTex包,可以设置引用的格式。它们可以调用不同的
backend,比如natbib只能调用bibtex,BibLaTex可以调用bibtex和Biber
这里有一些使用natbib和biblatex的参考.
BibLaTex
1 | \usepackage[style=<somebiblatexstyle>,<other options>]{biblatex} |
- 控制作者人数
1
\usepackage[maxbibnames=99]{biblatex}
natbib
- 依赖bibtex,需要
.bst文件。修改style比较困难 - 一些引用格式无法设置后面控制文献内容和导入bst部分可以按照BibTex的写法。
1
\usepackage[<options>]{natbib}
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=numnames1
numnames #4 > {#4 'namesleft := } {numnames 'namesleft :=} if$
Biber
- UTF-8支持
- 更好的排序控制