![作者的全名及文中引用(citet{} 指令)](https://linux22.com/image/287622/%E4%BD%9C%E8%80%85%E7%9A%84%E5%85%A8%E5%90%8D%E5%8F%8A%E6%96%87%E4%B8%AD%E5%BC%95%E7%94%A8%EF%BC%88citet%7B%7D%20%E6%8C%87%E4%BB%A4%EF%BC%89.png)
是否有一些指令变体或选项\citet{}
可以给我作者的全名?但仅在我需要时才提供?
在类似的问题中,人们建议编辑.bib
文件中的作者字段,但这带来的问题多于帮助。我们想要:
@book{smith13,
Author = {Waldo Smith},
Title = {Real Given Names},
Publisher = {Foobar Press},
Address = {Erewhon},
Year = {2013}
}
并在本\bibliography{}
节中:
Smith, W. 1993. \emph{Real Given Names}. Erewhon: Foobar Press.
\citet{}
但是正文中会产生一些变体(或某些东西):
沃尔多·史密斯(Waldo Smith)(1993)确凿地证明,使用 BibTex 生成全名是可能的。
目前我正在输入,Waldo \citet{smith13}
但如果能让 BibTeX 来做这件事就更好了。
请注意,我们只在第一次提及 Waldo Smith 时这样做;之后(即使引用不同),“Smith (1999)”就可以了。而且,当我们有多个作者时,我们总是只使用姓氏(“另一方面,Brown 和 Miller (2013) 表明……”)。因此,任何修改文件的粗暴行为.bib
都不会是答案。
答案1
Bibtex 与 natbib 结合可以达到目的。
\usepackage[natbibapa]{apacite}
% or you can also use
% \usepackage{natbib}
\citet*{smith13} demonstrated conclusively that it is possible to generate full names using BibTex.
上面的例子的结果是:
Waldo Smith (1993) demonstrated conclusively that it is possible to generate full names using BibTex.
答案2
如果您想在少数情况下执行此操作,则更简单的解决方案是定义别名并使用\citealias
。
举个例子,在序言中定义:
\defcitealias{smith13}{Waldo Smith (2013)}
并在文中使用:
\citetalias{smith13}
结果将是文本中的 Waldo Smith (2013),参考文献的添加方式与其他参考文献相同。如果使用\citet{smith13}
,则会返回通常的 Smith (2013)。
该命令\citetalias
可从 natbib 包获取。因此,您必须将其包含\usepackage{natbib}
在序言中。
注意:这个问题与Natbib:在文中引用名字或首字母