这个问题已经以许多不同的形式提出过,但不完全像我在这里问的那样,所以请不要认为这是重复的。
我使用biblatex
选项useprefix
。我希望有以下自动行为:
名称前缀被渲染前书目中的姓氏,但总是在小写。
名称前缀为被忽略为了对书目进行排序。
在运行文本中,名称前缀在句首以大写字母呈现,在其他地方则以小写字母呈现(可以使用
\Textcite
vs.\textcite
)。
为了实现这一点,我可以为每个相关条目设置三个作者字段,方案如下:
author = { {v}an Dijk, A.}
shortauthor = { van Dijk, A.}
sortname = {Dijk, A. van}
有没有简单的方法可以实现自动化?理想情况下,这种方法还可以轻松更改系统。
答案1
对于当前
biblatex
版本,我建议使用稍长但概念更清晰的解决方案参考文献和参考书目中作者姓名的前缀。这里的答案仍然有效(虽然有点古怪)。
为了使参考书目排序正确,我们必须useprefix=false
在加载时进行设置。例如
\usepackage[style=authoryear,sorting=nyt,backend=biber,useprefix=false]{biblatex}
然后我们打开\useprefix
实际文档 - 即引文和参考书目。
\makeatletter
\AtBeginDocument{\toggletrue{blx@useprefix}}
\makeatother
您\AtBeginBibliography{\toggletrue{blx@useprefix}}
可以单独控制参考书目。
由于我们希望前缀在参考书目中采用小写,因此我们发出
\renewbibmacro*{begentry}{\midsentence}
平均能量损失
\documentclass{scrartcl}
\usepackage[style=authoryear,sorting=nyt,backend=biber,useprefix=false]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{dijk,
author = {van Dijk, A.},
title = {Some Nice Title},
date = 2015,
publisher = {P. Ublisher},
location = {Place},
}
\end{filecontents*}
\bibliography{biblatex-examples.bib}
\bibliography{\jobname.bib}
\renewbibmacro*{begentry}{\midsentence}
\makeatletter
\AtBeginDocument{\toggletrue{blx@useprefix}}
\makeatother
\begin{document}
\cite{cicero,wassenberg,dijk,gillies}
\printbibliography
\end{document}