我使用 natbib 兼容代码和 biblatex,它应该产生大写字母,但事实并非如此。我甚至尝试了另一种名称表示,但情况变得更糟:货车被删除了。biblatex 已定义命令,\newrobustcmd*{\Citet}{\bibsentence\citet}
但不知何故\bibsentence
似乎被破坏了。有什么方法可以修复此问题并恢复功能吗?
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{vanTrijp2013a,
Author = {Remi {van Trijp}},
Year = {2013}
}
@article{vanTrijp2015a,
Author = {van Trijp, Remi},
Year = {2015}
}
\end{filecontents*}
\usepackage[backend=biber,natbib=true,
citestyle=authoryear-comp]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\Citet{vanTrijp2013a} should come out as Van Trijp (2013).
\Citet{vanTrijp2015a} drops the \emph{van} alltogether.
\printbibliography
\end{document}
答案1
如果你给它起一个名字
author = {van Trijp, Remi},
在.bib
文件中,Biber 将此名字分解为三个部分。
- 姓:
Trijp
- 给定的名称:
Remi
- 名称前缀:
van
带有“前缀”部分的名称的输出由选项控制useprefix
。
- 在
useperfix=false
(默认)情况下,“前缀”基本上被视为名字。按家庭顺序排列时,前缀为“Trijp, Remi van”,按家庭顺序排列时,前缀为“Remi van Trijp”。姓名按字母顺序排列在“T”下。因此,R van Trijp 先生自然只会被称为“Trijp”。 - 前缀
useprefix=true
本质上被视为姓氏的一部分。按家庭顺序排列的姓氏为“van Trijp, Remi”,按家庭顺序排列的姓氏为(再次)“Remi van Trijp”。姓氏按字母顺序排列在“V”下,引用为“van Trijp”。
如果你将名字写为
author = {van Trijp, Remi},
在您的.bib
文件中并添加useprefix=true
到biblatex
的选项中,您就会得到您想要的。
为什么不起作用author = {{van Trijp}, Remi}
?这被解析为
- 姓氏:(
{van Trijp}
注意括号!) - 给定的名称:
Remi
由于我们在输出中看不到括号,因此就大多数意图和目的而言,这会产生与 相同的author = {van Trijp, Remi},
结果useprefix = true
。
不过,您发现了一个区别,如果在检测到句子开头的上下文中打印姓名(就像 的情况一样\bibsentence
),则只有姓名前缀大写,其他所有姓名部分都保持原样。这意味着姓氏{van Trijp}
不大写,而是以小写字母“v”开头的“van Trijp”。您可能会问为什么biblatex
不自动将姓氏也大写。我不知道为什么,但我猜可以安全地假设通常姓氏都是以大写字母开头的,所以这将是一个浪费的宏调用。自动大写真的很难,只有在绝对必要时才应该使用。
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{vanTrijp2015a,
Author = {van Trijp, Remi},
Year = {2015}
}
\end{filecontents*}
\usepackage[backend=biber, natbib=true, useprefix=true,
citestyle=authoryear-comp]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\Citet{vanTrijp2015a} vs \citet{vanTrijp2015a}
\printbibliography
\end{document}