\citename
我在删除姓名冠词时遇到问题,例如在以下示例中打印“Foerster”而不是“Von Foerster”:
\documentclass{article}
\usepackage{biblatex}
\usepackage{filecontents}
\DeclareNameFormat{idem}{%
\usebibmacro{name:last}{#1}{#3}{#5}{#7}%
\usebibmacro{name:andothers}}
\newcommand*{\person}[2]{%
\citename{#1}[#2]{author}%
}
\begin{filecontents}{\jobname.bib}
@incollection{foerster1979cybernetics,
AUTHOR = "von Foerster, Heinz"
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\person{foerster1979cybernetics}{idem} described this as a shift from...
\end{document}
我怎样才能改变它以正确打印“Von Foerster 将此描述为从...的转变”(它应该自动将“v”大写,因为宏出现在句子的开头)。
答案1
您需要biblatex
使用选项设置useprefix=true
(或简单地useprefix
)加载。这将 (1) 在引用中打印任何姓氏前缀,并且 (2) 在排序中包含前缀。Marco 展示了如何在这个帖子。
要将前缀大写,可以使用以下变体\person
:
\newcommand*{\Person}[2]{\bibsentence\citename{#1}[#2]{author}}