我正在尝试使用natbib
包和哈佛风格引用来获取以下类型的引用和参考\bibliographystyle{agsm}
。
对于单一作者:引用
(James, 2011)
我正在使用的\citep{james}
对于两位作者:为了获得输出
(Jones and Baker, 2011)
我正在使用\citep{jones}
仅当我使用 时,我才能正确获取它们\usepackage[comma]{natbib}
,但如果我使用[comma]
选项,natbib
我会在有两位以上作者的参考文献中得到额外的逗号,如下所示,在 et al.: 之后,(Duzdevich et al., 2014)
这是我不想要的。我只想要引用文本为(Duzdevich et al. 2014)
。此外,当我尝试在一个地方引用两位以上作者的文本时,我遇到了这个问题。我得到的引用如下,(Duzdevich et al., 2014, Thiruganam et al., 2010)
而我想要的是这样的(Duzdevich et al. 2014, Thiruganam et al. 2010)
(Smith, 2013; 2005; 2001)
类似地,如果论文是由同一作者在不同年份撰写的,我试图生成这样的引用,但通过使用\citep{three bib entries separated by comma}
,我得到的是输出(Smith, 2013, 2005, 2001)
。如果我在中使用分号,\usepackage[semicolon]{natbib}
我得到的是分号而不是逗号。
如何获得这些东西?有什么解决方法吗?我很困惑,因为如果我使用逗号,我就得不到分号,反之亦然。请帮忙。
答案1
一些评论和意见:
正如 @moewe 在评论中指出的那样,字符串“et al.”中的句号(又称“句号”)不是句末句号。相反,它表示缩写(通常是“et alii”的缩写)。如果您想隐藏“Duzdevich et al.”和“2014”之间的逗号,为了符号的一致性您还应该希望隐藏“James”和“2011”以及“Jones and Baker”和“2011”之间的逗号。这可以通过设置包选项来实现
aysep={}
。请注意,如果您加载了
harvard
引文管理包而不是natbib
包(毕竟,agsm
bib 样式是名为“harvard”的包的一部分),那么您将不会any
在“James”和“2011”、“Jones and Baker”和“2011”或“Duzdevich et al.”和“2014”之间看到逗号。信息很简单:在作者块和年份块之间要么不使用逗号,要么到处都使用逗号。不要让此上下文中的逗号使用取决于字符串“et al.”是否是作者块的一部分。如果您希望连续年份之间的分隔符是
;
而不是,
,只需设置选项yysep={;}
。该选项
comma
是默认选择的;不需要明确设置它。对于
\citep
多个参数,我认为保留参数之间的默认分隔符是个好主意,即;
。但是,如果你只是必须具有,
这种类型的分隔符,我建议使用两个单独的\citealt
指令,如下例所示。
\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@misc{james,author="James",year=2011}
@misc{jones,author="Jones and Baker",year=2011}
@misc{dude,author="Duzdevich and E and F",year=2014}
@misc{thiru,author="Thiruganam and U and V",year=2010}
@misc{sm:01,author="Smith",year=2001}
@misc{sm:05,author="Smith",year=2005}
@misc{sm:13,author="Smith",year=2013}
\end{filecontents}
\documentclass{article}
\usepackage{natbib}
\setcitestyle{aysep={},yysep={;}}
\usepackage{har2nat}
\bibliographystyle{agsm}
\begin{document}
\obeylines % just for this example
\citep{james}
\citep{jones}
\citep{dude}
\citep{dude,thiru}
(\citealt{dude}, \citealt{thiru})
\citep{sm:13,sm:05,sm:01}
\bibliography{mybib}
\end{document}