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=numnames
1
numnames #4 > {#4 'namesleft := } {numnames 'namesleft :=} if$
Biber
- UTF-8支持
- 更好的排序控制