轉載自:http://hi.baidu.com/lukespring/blog/item/d982973028495390a8018e57.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: 重定義了 /thebibliography 使用 /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.) |
如果採用編號形式引用,上述作者--年會被替換為相應的文獻編號。
定製
標點
使用 /bibpunct 可以定製引用所使用的標點符號。這個命令有六個變數
- 開頭的括弧,預設為 (
- 結束的括弧,預設為 )
- 分隔多個引用的標點,預設為 ;
- n:編號;s:上標編號;其他字母為作者--年,預設也是作者--年
- 作者姓名和年之間的標點,預設無標點
- 同一作者多篇文獻合并引用時,年代之間或者編號之間的標點,預設為 ,
例子
/bibpunct{[}{]}{,}{a}{}{;}
產生
| /citep{jon90,jon91,jam92} --> |
[Jones et al. 1990; 1991, James et al. 1992] |
其他
- /bibsection 控制參考文獻標題所使用的章節層次,一般是 /section* 或者 /chapter*
- /bibpreamble 控制參考文獻標題和列表之間的文字
- /bibfont 控制文獻列表的字型
- /citenumfont 控制引用編號的字型,可以聲明為 /textit 之類
- /bibnumfmt 控制文獻列表編號格式,它帶有一個變數,預設為 [#1]
- /bibhang 控制文獻列表中每一條目第一行第一行之後的縮排,使用 /setlength 命令來改變
- /bibsep 控制文獻列表中條目之間的空白,使用/setlength 命令來改變
Tips
chapterbib 宏包
與 natbib 相容,用來產生分章節的文獻列表。這個宏包本質上使用 /include 命令來為每一章節添加文獻列表。每一章節的參考文獻都要單獨聲明 /bibliographystyle 以及 /bibliography 要匯入的 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) |