使用 BibTeX 和 harvard/AGSM 样式,一些参考文献(来自每年发表多篇论文的作者)不会缩写为“et al.”,而是添加a
、b
、 等等。例如,使用下面附加的代码,我得到:
只有一篇论文缩写为 et al.,其他论文没有。知道为什么会这样吗?文内参考文献应为 Basu et al. (2008a) 和 Basu et al. (2008b),我认为 AGSM 应该自动这样做?
\documentclass[10pt,a4paper]{article}
\usepackage{natbib}
\begin{document}
\cite{basu2008a, basu2008b, beare2006}
\bibliographystyle{agsm}
\bibliography{references.bib}
\end{document}
使用 BibTeX 文件(references.bib
):
@string{jam="J. Appl. Meteor."}
@string{ag="Acta Geop."}
@string{blm="Bound.-Layer Meteor."}
@article{basu2008a,
author={Basu, S. and Vinuesa, J.-F. and Swift, A.},
title={Dynamic {LES} modeling of a diurnal cycle},
journal=jam,
year={2008},
volume={47},
number={4},
pages={1156-1174}
}
@article{basu2008b,
author={Basu, S. and Holtslag, A. A. M. and Wiel, B. J. H. and Moene, A. F. and Steeneveld, G. J.},
title={An inconvenient "truth" about using sensible heat flux as a surface boundary condition in models under stably stratified regimes},
year={2008},
journal=ag,
volume={56},
number={1},
pages={88-99}
}
@ARTICLE{beare2006,
author={Beare,R. J. and Macvean,M. K. and Holtslag,A. A. M. and Cuxart,J. and Esau,I. and Golaz,J. -. and Jimenez,M. A. and Khairoutdinov,M. and Kosovic,B. and Lewellen,D. and Lund,T. S. and Lundquist,J. K. and McCabe,A. and Moene,A. F. and Noh,Y. and Raasch,S. and Sullivan,P.},
title={An intercomparison of large-eddy simulations of the stable boundary layer},
journal=blm,
year={2006},
volume={118},
number={2},
pages={247-272}
}
答案1
您遇到了一个不寻常的——并且不可否认的是,记录得相当少的——agsm
书目样式的功能(不是错误……)。假设两个书目项目被标记,AA
并且BB
每个都有一个或多个作者。至关重要的是,假设总数作者不同——例如,假设 bibitemAA
有 3 位作者,而 bibitemBB
有 5 位作者——并进一步假设AA
和BB
共享同一个第一作者(比如说XYZ
)和同一出版年份(例如2000
)。
当发生这种情况时——就像你发布的例子一样——agsm
参考书目风格不是将引文标注分别设置为XYZ et al (2000a)
和XYZ et al. (2000b)
。相反,它列出了所有作者姓名针对两份出版物。
我认为这是一种万无一失的方法,可以避免对谁的出版物可能被引用产生任何混淆XYZ et al. (2000a)
。
FirstAuthor et al (year)
只有当 (a) 两份出版物的作者相同(因此引用量相同)时,你才能获得引用标注模式。数字作者)以及同一出版年份和(b) 书目中没有其他具有相同第一作者和出版年份的三位或三位以上作者的出版物。
再次强调,这种agsm
样式的特点既不常见(中立地说),又很不幸,相当晦涩难懂且记录不足。不过,我不会称其为错误。如果您真的无法忍受此功能,那么开始寻找替代的书目样式可能是一个好主意。
MWE 和屏幕截图:
\RequirePackage{filecontents}
\begin{filecontents}{testagsm.bib}
@article{1,
author = "XYZ", title = "x", journal= "y", year = 2000}
@article{2,
author = "XYZ and B", title = "x", journal= "y", year = 2000}
@article{3a,
author = "XYZ and B and C", title = "x1", journal = "y", year = 2000}
@article{3b,
author = "XYZ and B and C", title = "x2", journal = "y", year = 2000}
@article{4,
author = "XYZ and BB and CC and DD", title = "x", journal= "y", year = 2000}
@article{5,
author = "XYZ and BBB and CCC and DDD and EEE", title = "x", journal= "y", year = 2000}
@article{x1,
author = "A and B and C", title = "D1", journal = "E1",
year = 3001, volume = 1, number = 2, pages = "3-4"}
@article{x2,
author = "A and B and C", title = "D2", journal = "E2",
year = 3001, volume = 5, number = 6, pages = "7-8"}
\end{filecontents}
\documentclass{article}
\usepackage{natbib,har2nat}
\bibliographystyle{agsm}
\setlength\parindent{0pt} % just for this example
\begin{document}
\begingroup
\obeylines
\citet{1}
\citet{2}
\citet{3a}, \citet{3b}
\citet{4}
\citet{5}
\medskip
\citet{x1}, \citet{x2}
\endgroup
\bibliography{testagsm}
\end{document}
答案2
在我见过的任何科学文章中,这都不是一个有用的“功能”。我遇到的问题是,同一组作者在一年内发表了多部作品。我使用的解决方法是将文件year={}
中的字段更改reference.bib
为“2008a”、“2008b”等。使用上面的示例,它将如下所示:
@article{basu2008a,
author={Basu, S. and Vinuesa, J.-F. and Swift, A.},
title={Something},
journal=jam,
year={2008a},
volume={47},
number={4},
pages={1156-1174}
}
@article{basu2008b,
author={Basu, S. and Vinuesa, J.-F. and Swift, A.},
title={Something else},
year={2008b},
journal=ag,
volume={56},
number={1},
pages={88-99}
}
等等...然后运行 BibTeX 我得到了预期的“Basu (2008ab)”。
答案3
顺便说一句:我发现了一个有趣的现象。如果你在 .bib 文件中两次将作者写在括号中,它也会列出 \citep{} 中的所有作者。
例如:[...] 作者 = {[Sheng, Steve 和 Holbrook, Mandy 和 Kumaraguru, Ponnurangam 和 Cranor, Lorrie Faith 和 Downs, Julie}},[...]
对我来说,这导致在引文中列出所有作者的名字。