我在一个文档中工作了很长时间,其中我使用带有以下参数的 biblatex
\usepackage[style=authoryear-comp,backend=biber,maxcitenames=\preamblemaxcitenames,giveninits=true,uniquename=init,%
maxbibnames=10,sorting=nyt,natbib=true,sortcites=no]{biblatex}
现在,我有两个命令,\citep
而且\parencite
——我忘了为什么会有这种混合。关键是乍一看我看不出有什么区别。
\citep{knuth2001things} \parencite{knuth2001things}
产生完全相同的结果:
这样使用的话,两者之间有什么根本区别吗?或者使用其中一种比另一种更有优势吗?(我不知道是否应该将所有\citep
改为\parencite
或\parencite
改为\citep
)
答案1
当您使用biblatex
兼容natbib
选项 ( natbib=true,
) 来简化biblatex
和natbib
(或反之亦然)之间的转换时,
\citep
\parencite
是和的兼容别名\citet
是 的别名\textcite
。- 此外,
\citealp
和\citealt
都是的别名\cite
。 natbib
此外,还对提供了一些基本支持\defcitealias
。- 最后,有
\citeauthor*
和\citeyearpar
。
\citep{knuth2001things}
因此,在您的示例中,和之间没有(并且不应该有任何)区别\parencite{knuth2001things}
。
然而,带星号的版本之间存在差异:
- 名称/产生具有本地设置的引用,
natbib
这意味着将显示所有作者。\citep*
\citet*
maxnames=999
- 该
biblatex
名称\parencite*
产生不带作者姓名的引用。
不过,兼容性natbib
选项会做得更多一些。如在将 natbib=true 与 biblatex 一起使用有什么缺点吗?它还将设定
\DeclareDelimFormat{nameyeardelim}{\addcomma\space}
我通常不喜欢加载natbib
兼容模式,biblatex
而更喜欢使用biblatex
名称,但肌肉记忆和旧习惯肯定意味着natbib
兼容模式对你有用。如果你预计在某个时候必须回到natbib
命令,那就更是如此了(没有多少期刊接受biblatex
投稿)。
只需记住natbib
上面提到的兼容模式的两个怪癖。带星号的版本的行为与标准版本不同biblatex
,它设置了nameyeardelim
。