更新后 biblatex' \DeclareLanguageMapping 出现问题

更新后 biblatex' \DeclareLanguageMapping 出现问题

我最近更新了我的 MiKTeX(包括biblatex(v3.11),现在使用自定义语言文件时我得到了奇怪的结果,例如以下示例: Package biblatex Warning: Bibliography string 'volume' untranslated

结果如下

在此处输入图片描述

\DeclareLanguageMapping{ngerman}{ngerman-myveryown}这在之前就已经运行得很好了,并且在从文件中删除该行时仍然有效bbx

我不知道biblatex导致此行为的内部变化。因此我寻求您的专业知识。

\begin{filecontents}{myveryown.bbx}
\ProvidesFile{myveryown.bbx}[2018/04/24 v1.0 biblatex bibliography style]
\RequireBibliographyStyle{authortitle}
\DeclareLanguageMapping{ngerman}{ngerman-myveryown}
\end{filecontents}
\begin{filecontents}{ngerman-myveryown.lbx}
\ProvidesFile{ngerman-myveryown.lbx}[2018/04/24 v1.0 biblatex localization]
\InheritBibliographyExtras{ngerman}
\DeclareBibliographyStrings{%
   byeditor = {{herausgegeben von}{hgg\adddotspace v\adddot}},
}
\end{filecontents}
\begin{filecontents}{abibfile.bib}
@book{akey,
address = {Zürich and Wiesbaden},
edition = {My very own edition},
title = {A very long title},
volume = {1},
publisher = {My publisher},
author = {Author, An},
year = {1999},
}
\end{filecontents}
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[bibstyle=myveryown]{biblatex}
\addbibresource{abibfile.bib}
\begin{document}
Test\nocite{*}
\printbibliography
\end{document}

答案1

.lbx应该它inherit的字符串ngerman

\ProvidesFile{ngerman-myveryown.lbx}[2018/04/24 v1.0 biblatex localization]
\InheritBibliographyExtras{ngerman}
\DeclareBibliographyStrings{%
   inherit  = {ngerman},
   byeditor = {{herausgegeben von}{hgg\adddotspace v\adddot}},
}

文件的加载和内部处理.lbx在 3.11 版中进行了彻底的改进(参见Wiki 中的发行说明变化.md在 GitHub 上实现此功能的拉取请求)。您看到的似乎是这些更改的副作用。就记录的行为而言,没有的版本inherit = {ngerman},本来就不应该起作用,我很惊讶它确实起作用了。特别是 §4.11.8自定义本地化模块,第 249 页文档biblatex状态

替代lbx文件必须确保本地化模块完整。它们应该通过从相应的标准模块继承数据来实现这一点。如果语言american映射到american-mla.lbxbiblatex则不会加载,american.lbx除非明确请求此模块。在上面的例子中,继承“strings”和“extras”将导致在应用 american-mla.lbx 中的修改之前biblatex加载。american.lbx

相关内容