我怎么能够两个都引用并排序前缀为小写字母的作者?下面 MWE 中的所有内容都是正确的,只是我希望Van Helten
参考书目中的首字母显示为(注意,我仍然希望它按 MWE 的方式van Helten
排序)。Helten
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\usepackage[style=authoryear]{biblatex}
\AtBeginDocument{\toggletrue{blx@useprefix}}
\begin{filecontents}{\jobname.bib}
@ARTICLE{vanhelten1891,
AUTHOR = "W. van Helten",
TITLE = "Grammatisches",
JOURNALTITLE = "Beiträge zur Geschichte der deutschen Sprache und Literatur",
YEAR = "1891",
PAGES = "455--488",
VOLUME = "15"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{vanhelten1891}
\printbibliography
\end{document}
答案1
您可能想\renewbibmacro*{begentry}{\midsentence}
在序言中添加内容。这样可以biblatex
认为它实际上不应该开始一个新句子,因此应该将名称大写。如果打印的第一个字段应该自动大写,您可能会注意到这种方法的不利影响biblatex
。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\usepackage[style=authoryear]{biblatex}
\renewbibmacro*{begentry}{\midsentence}
\AtBeginDocument{\toggletrue{blx@useprefix}}
\begin{filecontents}{\jobname.bib}
@ARTICLE{vanhelten1891,
AUTHOR = "W. van Helten",
TITLE = "Grammatisches",
JOURNALTITLE = "Beiträge zur Geschichte der deutschen Sprache und Literatur",
YEAR = "1891",
PAGES = "455--488",
VOLUME = "15"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{vanhelten1891}
\printbibliography
\end{document}
还有一个解决方案,即重新定义名称宏,不将名称前缀大写。这可能看起来更可怕,但可能是为了稳定性而采取的更好方法。
\renewbibmacro*{name:last-first}[4]{%
\ifuseprefix
{\usebibmacro{name:delim}{#3#1}%
\usebibmacro{name:hook}{#3#1}%
\ifblank{#3}{}{%
%\ifcapital% comment out
% {\mkbibnameprefix{\MakeCapital{#3}}\isdot}% and get rid of this
{\mkbibnameprefix{#3}\isdot}%
\ifpunctmark{'}{}{\bibnamedelimc}}%
\mkbibnamelast{#1}\isdot
\ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
\ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamefirst{#2}\isdot}}
{\usebibmacro{name:delim}{#1}%
\usebibmacro{name:hook}{#1}%
\mkbibnamelast{#1}\isdot
\ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
\ifblank{#2#3}{}{\revsdnamepunct}%
\ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}%
\ifblank{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}
\renewbibmacro*{name:last}[4]{%
\ifuseprefix
{\usebibmacro{name:delim}{#3#1}%
\usebibmacro{name:hook}{#3#1}%
\ifblank{#3}
{}
{%\ifcapital%<-- commented this out
% {\mkbibnameprefix{\MakeCapital{#3}}\isdot}% and this
{\mkbibnameprefix{#3}\isdot}%
\ifpunctmark{'}{}{\bibnamedelimc}}}
{\usebibmacro{name:delim}{#1}%
\usebibmacro{name:hook}{#1}}%
\mkbibnamelast{#1}\isdot}%