当我使用biblatex
带authoryear
样式时,所有内容都按我想要的方式显示。但是,当我添加时\usepackage[french]{babel}
,引用和参考文献都以小写字母书写。有没有办法删除小写字母?
MWE 如下:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[backend = biber, style = authoryear]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{biblio.bib}
@article{abel2018,
title = {Estimates of {{Global Bilateral Migration Flows}} by {{Gender}} between 1960 and 2015},
author = {Abel, Guy J.},
date = {2018-09},
journaltitle = {International Migration Review},
shortjournal = {International Migration Review},
volume = {52},
pages = {809--852},
doi = {10.1111/imre.12327},
url = {http://journals.sagepub.com/doi/10.1111/imre.12327},
urldate = {2019-12-14},
langid = {english},
number = {3}
}
\end{filecontents}
\addbibresource{biblio.bib}
\begin{document}
\cite{abel2018} and \parencite{abel2018}
\printbibliography
\end{document}
我拥有的:
我想要的是(“参考文献”重音):
答案1
正如所讨论的https://tex.stackexchange.com/a/301571/134144和在 biblatex 中保留小写阻止biblatex
法语模块以小写字母排版姓氏的正确解决方案是添加
\DefineBibliographyExtras{french}{\restorecommand\mkbibnamefamily}
biblatex
在加载后的序言中。
正如评论中所说,原作者使用的是 R markdown,它是biblatex
半自动加载的。将上面的行添加到序言中显然会产生以下形式的错误
! Undefined control sequence.
l.62 \DefineBibliographyExtras{french}{\restorecommand\mkbibnamefamily}
这表明该前导代码在biblatex
加载之前就已执行。
在这种情况下
\usepackage{etoolbox}
\AtEndPreamble{\DefineBibliographyExtras{french}{\restorecommand\mkbibnamefamily}}
可能会有帮助。这两行将执行推迟\DefineBibliographyExtras
到序言的末尾,此时 R markdown 应该已经加载,biblatex
以便命令可用。
这在 MWE 中有效
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{etoolbox}
\AtEndPreamble{\DefineBibliographyExtras{french}{\restorecommand\mkbibnamefamily}}
\usepackage[backend = biber, style = authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson} and \parencite{sigfridsson}
\printbibliography
\end{document}