我有一个关于引用多位作者但只打印其中一篇论文的完整作者列表的问题。我遇到过一种情况,我想在同一组括号中引用两篇论文,但我只想扩展其中一篇论文的作者集。我正在使用 Natbib 和 Bibtex 包。设置如下:
论文 1:4 位作者;论文 2:3 位作者(我所在领域的标准是在第一次引用时扩展 3 位作者的论文)
\citep*[see][for review]{paper1,paper2}
我遇到的问题是,此命令将两个作者列表都扩展为长引文。我知道我可以在 natbib 包声明中使用选项 [longnamefirst],但我只想在第一个引文中扩展 3 位作者论文,而不是所有论文。
有什么建议吗?提前感谢您的帮助!
答案1
我认为你不能使用 natbib 来实现这一点。你可能需要构建自己的引用命令,例如,
\newcommand{\citefirstfull}[2]{
(\citealt*{#1}; \citealt{#2})
}
调用
\citefirstfull{paper1}{paper2}
但这并不是一个很好的解决方案,因为你不能交换论文的顺序(你需要一个具有相反顺序的命令)。
你看过 apacite.sty 吗?它会自行确定你第一次引用论文的时间以及论文需要扩展的时间。不过,它符合 APA(美国心理学会)的要求,但也许它们与你的领域足够相似,所以很有用?
如果没有什么帮助(在花两周时间调整这个问题之前),我通常会将论文插入参考书目中
\nocite{paper1,paper2}
并“手写”出文中的参考文献......
答案2
您可以使用 natbib 中的 \citealp* 和 \citealp 函数并手动分配括号。这可以用于任意数量的引用。
例如如果您想要 paper2 和 paper3 的完整作者列表,但不想获得其他论文的完整作者列表,那么您可以使用:
(\citealp(paper1); \citealp*(paper2, paper3); \citealp(paper4))