我正在使用 biblatex/biber 创建书目,目前有以下选项:
\usepackage[style=authoryear,
backend=biber,
giveninits=true
]{biblatex}
我的 bib 文件中有以下示例条目(先有姓氏,然后有名字)
@article{2018-MN,
author = {HOOLEN, JASON and THOMPSON, RAY},
title = {Exemplary Title},
journal = {The Journal of Bibtex-Examples},
volume = {1001},
number = {1000},
pages = {1-2}
}
我的问题是:如何自动修复参考书目中的大写字母?我希望名称如下:“Hoolen, Jason and Thompson, Ray”,而不是“HOOLEN, JASON and THOMPSON, RAY”。不要担心逗号/精确格式,这个问题只是为了弄清楚如何修复大写字母。除了手动覆盖名称之外,还有其他解决方案吗?
答案1
这绝对是应该在文件方面修复.bib
的事情(一次!)(理想情况下甚至是手动修复,以确保您不会意外发现不需要更正的事情)。
但是既然您已使用biblatex
Biber 标记了您的问题,这里有一个源映射解决方案,可将名称字段中的所有大写字母转换为标题大小写。这应该对大多数人的名字都适用,但对于公司作者或复杂的名称可能会失败。(这就是为什么最好手动浏览文件.bib
并更正名称的原因。)
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, maxnames=999, backend=biber]{biblatex}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map[foreach=setnames]{
\step[fieldsource=\regexp{$MAPLOOP},
match=\regexp{(\p{Lu})(\p{Lu}+)},
replace=\regexp{$1\L$2}]
}
}
}
\begin{filecontents}{\jobname.bib}
@article{2018-MN,
author = {HOOLEN, JASON and THOMPSON, RAY},
title = {Exemplary Title},
journal = {The Journal of Bibtex-Examples},
volume = {1001},
number = {1000},
pages = {1-2}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson,2018-MN}
\printbibliography
\end{document}