Biblatex 书目在使用 UTF8 特殊字符时打印全部大写字母

Biblatex 书目在使用 UTF8 特殊字符时打印全部大写字母

我使用 biblatex 和 biber 后端以及\usepackage[utf8]{inputenc}软件包。出于某种原因,.bib 文件中含有特殊字符的参考文献在我的参考书目中以大写形式打印。

我尝试使用 MWE 复制该效果,但是我尝试的每个版本都以正确的方式打印了参考书目。有谁知道哪些软件包组合可能会导致此行为?

编辑:MWE 复制效果

\RequirePackage{filecontents}

\begin{filecontents*}{mybib.bib}
@book{test1,
    address = {City},
    title = {{Öffentlichkeit}},
    publisher = {Doe, Jane},
    author = {Doe, Jane},
    year = {1937}
}

\end{filecontents*}


\documentclass[
12pt
]{book} % The class file specifying the document structure

% Set the values for the bibliography
\usepackage[
style=apa,
backend=biber,
isbn=false,
url=true,
doi=true,
natbib=true,
eprint=false,
hyperref=true,
backref=false,
firstinits=false
]{biblatex}

\usepackage[utf8]{inputenc}
\usepackage[autostyle=true]{csquotes} % Required to generate language-dependent quotes in the bibliography
\usepackage{xpatch}

% Set language
\DeclareLanguageMapping{american}{american-apa}

\addbibresource{mybib.bib}



\addbibresource{mybib.bib}

\begin{document}

\textcite{test1} 


\printbibliography
\end{document}

答案1

使用 的当前版本运行 MWE 时不会出现此问题。但是,如果切换到 的旧追逐更改方法(这是 的旧版本 [<=v3.14] 中不可更改的默认方法),biblatex则可能会重现此问题。casechange=latex2e,biblatex

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[autostyle=true]{csquotes}
\usepackage[backend=biber, style=apa, casechanger=latex2e]{biblatex}

\begin{filecontents*}{\jobname.bib}
@book{test1,
  author    = {Doe, Jane},
  title     = {{Öffentlichkeit}},
  year      = {1937},
  publisher = {Pub \& Co.},
  address   = {City},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\textcite{test1} 

\printbibliography
\end{document}

Doe,J.(1937 年)。公共关系。酒吧与公司

它与在https://github.com/plk/biblatex/issues/459

一个解决方法是只用括号括住单词的首字母,而不是整个单词

@book{test1,
  author    = {Doe, Jane},
  title     = {{Ö}ffentlichkeit},
  year      = {1937},
  publisher = {Pub \& Co.},
  address   = {City},
}

对于德语标题,通常最好将其标记为德语,以避免完全改变大小写

@book{test1,
  author    = {Doe, Jane},
  title     = {Öffentlichkeit},
  year      = {1937},
  publisher = {Pub \& Co.},
  address   = {City},
  langid    = {ngerman},
}

从版本 3.15 (2020-08-16) 开始,biblatex使用expl3大小写转换函数(如果 LaTeX 内核足够现代并且文档采用 UTF-8 编码)。这些大小写转换函数通常更强大,不会出现此问题。如果可能,请更新您的 TeX 发行版。

相关内容