我的参考书目中带有前缀的德语名称有问题。如果第一作者姓氏以小写字母开头,则该名称无论如何都会大写。对于第二作者等来说这不是问题... 可以在 .bib 文件中将名称括起来,但不幸的是,我的引文管理器像这样导出 .bib 文件。
有人知道该如何修复吗?我将不胜感激!
MWE 在这里:
\documentclass[british]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{filecontents}
\usepackage{csquotes}
\usepackage[style=chem-acs,maxbibnames=10,articletitle=true]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{Test1,
author = {von Kling, Alfred and von Klade, Otto},
booktitle = {This is just a test},
title = {{This is just a test}},
year = {2012}
}
@book{Test2,
author = {{von} Kling, Alfred and von Klade, Otto},
booktitle = {This is just a test2},
title = {{This is just a test2}},
year = {2012}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
% !BIB TS-program = biber
Doesn't work. \autocite{Test1,Test2}
\printbibliography
\end{document}
得出的结果为:
答案1
我猜想这个想法是,新 bib 条目的开头有点像句子的开头。即使是句子开头的“von”通常也是大写的,因此这里“von”自然也会大写。
如果您不希望出现这种行为,您可以通过发出来告诉biblatex
不要将参考书目条目的开头视为句子的开头。\midsentence
begentry
\documentclass[british]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=chem-acs, maxbibnames=10, articletitle=true]{biblatex}
\renewbibmacro*{begentry}{\midsentence}
\begin{filecontents}{\jobname.bib}
@book{Test1,
author = {von Kling, Alfred and von Klade, Otto},
booktitle = {This is just a test},
title = {This is just a test},
year = {2012}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Doesn't work. \autocite{Test1}
\printbibliography
\end{document}
或者你告诉biblatex
不要将句首的“von”大写。
\documentclass[british]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=chem-acs, maxbibnames=10, articletitle=true]{biblatex}
\renewbibmacro*{name:family}[4]{%
\ifuseprefix
{\usebibmacro{name:delim}{#3#1}%
\usebibmacro{name:hook}{#3#1}%
\mkbibcompletenamefamily{%
\ifdefvoid{#3}
{}
{\mkbibnameprefix{#3}\isdot
\ifprefchar{}{\bibnamedelimc}}%
\mkbibnamefamily{#1}\isdot}}
{\usebibmacro{name:delim}{#1}%
\usebibmacro{name:hook}{#1}%
\mkbibcompletenamefamily{%
\mkbibnamefamily{#1}\isdot}}}%
\renewbibmacro*{name:family-given}[4]{%
\ifuseprefix
{\usebibmacro{name:delim}{#3#1}%
\usebibmacro{name:hook}{#3#1}%
\mkbibcompletenamefamilygiven{%
\ifdefvoid{#3}
{}
{\mkbibnameprefix{#3}\isdot
\ifprefchar{}{\bibnamedelimc}}%
\mkbibnamefamily{#1}\isdot
\ifdefvoid{#4}
{}
{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
\ifdefvoid{#2}
{}
{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}}}
{\usebibmacro{name:delim}{#1}%
\usebibmacro{name:hook}{#1}%
\mkbibcompletenamefamilygiven{%
\mkbibnamefamily{#1}\isdot
\ifdefvoid{#4}
{}
{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
\ifboolexpe{%
test {\ifdefvoid{#2}}
and
test {\ifdefvoid{#3}}}
{}
{\revsdnamepunct}%
\ifdefvoid{#2}
{}
{\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
\ifdefvoid{#3}
{}
{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}}
\begin{filecontents}{\jobname.bib}
@book{Test1,
author = {von Kling, Alfred and von Klade, Otto},
booktitle = {This is just a test},
title = {This is just a test},
year = {2012}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Doesn't work. \autocite{Test1}
\printbibliography
\end{document}
这个 MWE 中的输出是相同的,但是如果你使用,比如\Textcite{Test1}
在句子开头,你会看到差异。