转:http://blog.sina.com.cn/s/blog_4b164557010143tl.html
导入
usepackage[option]{natbib}
具体的 option 有
- round: (default) 使用圆括号
- square: 使用方括号
- curly: 使用花括号
- angle: 使用尖括号
- colon: (default) 用引号分隔多个引用
- comma: 用逗号分隔多个引用
- authoryear: (default) 使用作者--年引用形式
- numbers: 使用编号引用形式
- super: 使用 Nature 那样的上标编号引用
- sort: 多个引用按照首字母排序
- sort&compress: 除排序外,多个引用可以合并 (如 3-6, 15)
- longnamesfirst: 多个作者的文献第一次被引用时列出所有作者,以后的引用可以缩写为 et al.
- sectionbib: 重定义了 hebibliography 使用 section* 而不是 chapter*。这样使用 chapterbib 宏包时,参考文献名称为 section 一级
- nonamebreak: 在一行排版所有作者名字,这可能引起 overfull hbox 警告但是消除了跨行的 hyperref 问题
citet{jon90} | Jones et al. (1990) |
citet[chap. 2]{jon90} | Jones et al. (1990, chap. 2) |
citep{jon90} | (Jones et al., 1990) |
citep[chap. 2]{jon90} | (Jones et al., 1990, chap. 2) |
citep[see][]{jon90} | (see Jones et al., 1990) |
citep[see][chap. 2]{jon90} | (see Jones et al., 1990, chap. 2) |
citet*{jon90} | Jones, Baker, and Williams (1990) |
citep*{jon90} | (Jones, Baker, and Williams, 1990) |
citealt{jon90} | Jones et al. 1990 |
citealt*{jon90} | Jones, Baker, and Williams 1990 |
citealp{jon90} | Jones et al., 1990 |
citealp*{jon90} | Jones, Baker, and Williams, 1990 |
citealp{jon90,jam91} | Jones et al., 1990; James et al., 1991 |
citealp[pg. 32]{jon90} | Jones et al., 1990, pg. 32 |
citeauthor{jon90} | Jones et al. |
citeauthor*{jon90} | Jones, Baker, and Williams |
citeyear{jon90} | 1990 |
citeyearpar{jon90} | (1990) |
citetext{priv. comm.} | (priv. comm.) |
如果采用编号形式引用,上述作者--年会被替换为相应的文献编号。
定制
标点
使用 ibpunct 可以定制引用所使用的标点符号。这个命令有六个变量
- 开头的括号,默认为 (
- 结束的括号,默认为 )
- 分隔多个引用的标点,默认为 ;
- n:编号;s:上标编号;其他字母为作者--年,默认也是作者--年
- 作者姓名和年之间的标点,默认无标点
- 同一作者多篇文献合并引用时,年代之间或者编号之间的标点,默认为 ,
例子
ibpunct{[}{]}{,}{a}{}{;}
产生
citep{jon90,jon91,jam92} --> | [Jones et al. 1990; 1991, James et al. 1992] |
其他
- ibsection 控制参考文献标题所使用的章节层次,一般是 section* 或者 chapter*
- ibpreamble 控制参考文献标题和列表之间的文字
- ibfont 控制文献列表的字体
- citenumfont 控制引用编号的字体,可以声明为 extit 之类
- ibnumfmt 控制文献列表编号格式,它带有一个变量,默认为 [#1]
- ibhang 控制文献列表中每一条目第一行第一行之后的缩进,使用 setlength 命令来改变
- ibsep 控制文献列表中条目之间的空白,使用setlength 命令来改变
Tips
chapterbib 宏包
与 natbib 兼容,用来产生分章节的文献列表。这个宏包本质上使用 include 命令来为每一章节添加文献列表。每一章节的参考文献都要单独声明 ibliographystyle 以及 ibliography 要导入的 bib 文件。
chapterbib 也有一个 sectionbib 的选项,但是会和 natbib 有冲突。要使其生效,只能对 natbib 使用 sectionbib 选项。
强制大写
如果作者名字的前置词为小写,如 della Robbia,当位于句首时,需要其首字母大写,这时候可以用上述命令的大写形式,以Citet 为例
citet{dRob98} | della Robbia (1998) |
Citet{dRob98} | Della Robbia (1998) |
Citep{dRob98} | (Della Robbia, 1998) |
Citealt{dRob98} | Della Robbia 1998 |
Citealp{dRob98} | Della Robbia, 1998 |
Citeauthor{dRob98} | Della Robbia |
citet*,citep,以及 citep* 也有相应的大写版本。
文献别名
有时候定义别名来引用文献比较方便。定义
defcitealias{jon90}{Paper I}
然后就可以使用
citetalias{jon90} --> | Paper I |
citepalias{jon90} --> | (Paper I) |