转: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: 重定义了 \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 可以定制引用所使用的标点符号。这个命令有六个变量

  1. 开头的括号,默认为 (
  2. 结束的括号,默认为 )
  3. 分隔多个引用的标点,默认为 ;
  4. n:编号;s:上标编号;其他字母为作者--年,默认也是作者--年
  5. 作者姓名和年之间的标点,默认无标点
  6. 同一作者多篇文献合并引用时,年代之间或者编号之间的标点,默认为 ,

例子

\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)

Latex 参考文献引用的更多相关文章

  1. Latex: 参考文献双栏对齐

    参考: How to level columns in bibliography? Latex: 参考文献双栏对齐 需要实现的效果: 方法1: 在开头引用balance: \usepackage{ba ...

  2. LaTeX技巧472:定义一个LaTeX参考文献不带编号且有缩进的方法

    LaTeX_Fun的博客 LaTeX技巧381:参考文献项第二行缩进如何定义? \makeatletter\renewenvironment{thebibliography}[1]{\section* ...

  3. Latex—参考文献

    在写文章的最后最让我头疼的就是参考文献的问题了.网上的资料也有很多,这里整合了很多资料得出了一个用bib文件的方法. 1.  显示确定参考文献(一句没什么用的废话). 2.  利用谷歌学术(镜像),如 ...

  4. 中文latex参考文献格式

    中文latex参考文献格式 原来英文: \begin{thebibliography}{1} \bibitem{Ben-Shimon2015RecSys} D.~Ben-Shimon, A.~Tsik ...

  5. 在Word中如何自动生成参考文献引用

    来自:在Word中如何自动生成参考文献引用 在写毕业论文时,参考文献动辄就有四五十篇,在文中对照参考文献逐一引用是一件十分痛苦的事情,而且一旦参考文献的顺序发生变化,文中的引用也要逐个修改,那么,我们 ...

  6. LaTeX参考文献出现问号

    自己用LaTeX编辑,忘记在\end{document}前面放: \bibliographystyle{ieeetr}\bibliography{sample-bibliography} 导致这个现象 ...

  7. LaTeX 交叉引用系统简介

    目录 摘要 1. 简介 2. 指定标签或标记符 3. 标签的位置 4. 引用的生成和更新 5. 引用相关的警告信息 6. 扩展引用功能的宏包 6.1 varioref宏包 6.2 cleveref宏包 ...

  8. Latex里引用多个公式,如何将公式合并?

    如果是想要的效果:(1)-(3),怎么操作?类似于用\cite引用多个文献那样吗? 1. \eqref{lable 1, lable 2, label 3}? 得到的结果:3个问号 ??? 2.\eq ...

  9. latex参考文献删除[.s.l],[.s.n]

    用latex写毕业论文的插入会议参考论文的时候可能会遇到编译后的文档里面一堆[.s.l],[.s.n]的问题. 这是因为ref里面会议条目找不到地址信息,所以用[.s.l],[.s.n]替代,只需要更 ...

随机推荐

  1. 【随笔】Linux主机简单判断CC攻击的命令

    今天看到一个很有意思的命令tcpdump,在这里记录下. 如果想要看tcpdump的详细用法,可以点击这里. 什么是CC攻击? 关于CC攻击,这里引用百度的解释: CC攻击的原理就是攻击者控制某些主机 ...

  2. 使用js命名空间进行模块式开发

    在java中,为了防止命名冲突和模块式开发,会有个一个import 关键字来进行导包. 在js中为了达到同样的效果,我们也通过给其自定义一个“包”的概念. 直接上代码: 首先有个LC.js文件: // ...

  3. html中文乱码(解决办法)

    在head标签中加上以下代码即可: <head>     <meta http-equiv="Content-Type" content="text/h ...

  4. Winform取消用户按下键盘的事件

    1. 有时候针对某个控件,想取消它的所有键盘按下事件, 只需要为这个控件绑定keyDown事件即可,然后处理的代码如下: private void txtDeviceName_KeyDown(obje ...

  5. javah找不到类文件

    这样即可,在src目录下寻找类,类要写全,即包名.类名

  6. Java入门系列-17-多态

    这篇文章贯穿游戏中的一些功能带你掌握多态的使用 为什么要使用多态 在一款对战类游戏中(如有雷同纯属巧合),有两个不同的法师英雄:小乔.妲己. 两个法师英雄的都有攻击的方法,小乔的攻击伤害为10,消耗魔 ...

  7. [PY3]——heap模块 和 堆排序

    heapify( ) heapify()函数用于将一个序列转化为初始化堆 nums=[16,7,3,20,17,8,-1] print('nums:',nums) show_tree(nums) nu ...

  8. 使用webgl(three.js)搭建一个3D智慧园区、3D建筑,3D消防模拟,web版3D,bim管理系统——第四课

    序:这段时间忙于奔波,好久没有更新了,今天更新一下,继续上节课的完善讲解,算是对前段时间的一个总结吧.披星戴月的时光也算有点应用效果了. 对于webgl(three.js)性能这一块我在上节课< ...

  9. Kettle系列文章二(安装配置Kettle+SqlServer+简单的输入输出作业)

    一.下载 Kettle下载地址:https://community.hitachivantara.com/docs/DOC-1009855 下拉到DownLoad,点击红框中的链接进行下载.. 二.解 ...

  10. explode 把字符串打散为数组

    // 显示的字段列表 $smarty->assign('field_show', explode(',',$list_name)); explode(separator,string,limit ...