\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@article{c,
author = "Anne Author and Bert Buthor and Carla Cuthor",
title = "Final Thoughts",
journal = "Circularity Today",
year = 3009,
volume = 9,
number = 10,
pages = "11--12",
}
\end{filecontents}
\documentclass{article}
\usepackage[natbibapa]{apacite}
\begin{document}
\citet{c} says something.
\bibliographystyle{apacite}
\bibliography{mybib}
\end{document}
在我的论文中,我需要引用作者的姓名和年份,所以我使用 natbib。但是对于两位以上的作者,我希望只显示名字,然后显示 et.al。但是由于我使用 natbib,所以无法使用 \shortcite。还有其他方法可以解决这个问题吗?
答案1
该声明,
我需要引用作者的姓名和年份,所以我使用 [natbibapa 选项]
包含一个不合逻辑的推论:可以轻松创建作者年份样式的引文标注没有指定natbibapa
选项。只需使用\citeA
代替\citet
和\cite
代替 即可。有关更多信息,\citep
请参阅软件包用户指南的第 4.1 节“‘经典’ apacite 命令” 。apacite
通过此设置,使用\shortciteA
和\shortcite
生成带有截断作者列表的文本样式和括号样式的引用标注完全没有问题。
\documentclass{article}
\begin{filecontents}[overwrite]{mybib.bib}
@article{c,
author = "Anne Author and Bert Buthor and Carla Cuthor",
title = "Final Thoughts",
journal = "Circularity Today",
year = 3009,
volume = 9,
number = 10,
pages = "11--12",
}
\end{filecontents}
\usepackage{apacite}
\bibliographystyle{apacite}
\begin{document}
\shortciteA{c} says something.
\bibliography{mybib}
\end{document}
答案2
APA 格式(第 6 版,实施中)的一个特点是,apacite
第一次引用时完整列出三到五位作者,后续引用时仅列出第一作者 + “et al.”
对于一次性事件,apacite
定义命令来覆盖诸如\shortcite
。
如果您使用 ,apacite
则natbibapa
表示apacite
将部分引文命令的控制权移交给natbib
,这意味着apacite
通常定义的一些专业引文命令不再可用。其中之一就是\shortcite
。
这apacite
文档说(§4.2用于natbib
引用,第 15 页)
通过在命令后添加星号可获得完整作者列表,例如
\citet*{key}
。没有单独的命令用于简短作者列表,但可以使用构造 获得\shortcites{key}\citet{key}
。
因此,一个选择是说
\shortcites{c}\citet{c}
第一次引用时c
。后续引用将缩写为第一作者 + “et al.”无论如何。但这当然非常繁琐、容易出错,而且总体感觉不对。
apacite
但我们上面引用的手册部分包含更多信息
使用
natbibapa
选项 ,使用选项 和apacite
加载。natbib
longnamesfirst
sort
因此,natbibapa
由于有选项,我们在第一次引用时获得了较长的作者列表longnamesfirst
。如果我们可以关闭该选项,我们就可以重新开始工作了。
不幸的是,natbib
没有提供关闭此选项的界面。一旦natbib
加载,longnamesfirst
就没有选项可以将其关闭。所以我们必须求助于内部命令。该选项将一个内部布尔值设置NAT@longnames
为 true,因此我们将其设置为 false。
\documentclass{article}
\usepackage[natbibapa]{apacite}
\makeatletter
\NAT@longnamesfalse
\makeatother
\begin{filecontents}{\jobname.bib}
@article{c,
author = {Anne Author and Bert Buthor and Carla Cuthor},
title = {Final Thoughts},
journal = {Circularity Today},
year = 3009,
volume = 9,
number = 10,
pages = {11--12},
}
\end{filecontents}
\begin{document}
\citet{c} says something.
\citet{c} says something.
\bibliographystyle{apacite}
\bibliography{\jobname}
\end{document}
如果你正在寻找相同问题的答案,但没有选项natbibapa
(即使用apaciteclassic
),我能找到的最简单的答案就是说
\let\cite\shortcite
\let\citeA\shortciteA
\let\citeNP\shortciteNP
\let\citeauthor\shortciteauthor
\let\citeauthorNP\shortciteauthorNP
\let\maskcite\maskshortcite
\let\maskciteA\maskshortciteA
\let\maskciteNP\maskshortciteNP
\let\maskciteauthor\maskshortciteauthor
\let\maskciteauthorNP\maskshortciteauthorNP