我正在尝试使用 natbib 进行引用。每当我尝试使用两个以上的作者进行引用而不是使用“et. al.”时,引用就会变成数字格式,而不是作者年份引用。
我正在使用它作为
\usepackage[longnamesfirst, authoryear]{natbib}
和
\bibliographystyle{plainnat}
答案1
该plainnat
样式应该会按预期工作。以下是示例:
\documentclass{article}
\begin{filecontents}{\jobname.bib}
@article{Sag1985,
Author = {Ivan A Sag and G Gazdar and T Wasow and S Weisler},
Journal = {Natural Language \& Linguistic Theory},
Pages = {117-171},
Title = {Coordination and How to Distinguish Categories},
Volume = {3},
Year = {1985}}
\end{filecontents}
\usepackage[longnamesfirst, authoryear]{natbib}
\bibliographystyle{plainnat}
\begin{document}
First mention \cite{Sag1985}. Second mention \cite{Sag1985}
\bibliography{\jobname}
\end{document}
答案2
你使用的引用方案告诉 LaTeX 在第一次引用时打印完整的作者列表,并在第一次引用时打印缩写的作者列表(带有等)为下一个。所以
\documentclass{article}
\usepackage[longnamesfirst, authoryear]{natbib}
\begin{document}
A citation \citep{a}
Another \citep{a}
A citation \citep{b}
Another \citep{b}
\bibliographystyle{plainnat}
\bibliography{mybib}
\end{document}
使用以下(假)数据库mybib.bib
@article{a,
author={Alpher, A. and Bethe, B. and Gamow, G.},
title={A nice title},
journal={J. Niceties},
year=2013,
pages={1234-5678},
}
@article{b,
author={Alpher, A. and Bethe, B. and Gamow, G. and Delta, D.},
title={A nice title},
journal={J. Niceties},
year=2013,
pages={1234-5678},
}
将打印
引文 [Alpher、Bethe 和 Gamow,2013a]
另一篇 [Alpher et al.,2013a]
引文 [Alpher、Bethe、Gamow 和 Delta,2013b]
另一篇 [Alpher et al.,2013b]
如果你使用\citep*
,则会获得完整列表:
引文 [Alpher、Bethe 和 Gamow,2013a]
另一篇 [Alpher、Bethe 和 Gamow,2013a]
引文 [Alpher、Bethe、Gamow 和 Delta,2013b]
另一篇 [Alpher、Bethe、Gamow 和 Delta,2013b]
还有\citet*
,用于“文本引用”。
答案3
据我所知有三种方法可以帮助您。
第一种方法,最简单,但我认为最不令人满意,就是修改 .bib 文件的引用,只保留第一作者的名字,后面跟着“and others”。plainnat 会自动将“and others”更改为“et al.”
第二种方法是使用另一种已经包含此“中继”功能的书目样式。
第三个涉及更改您的 plainnat.bst 文件。我将向您推荐另一个答案在这个 stackexchange 上。