我最近更新了我的 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.lbx
,biblatex
则不会加载,american.lbx
除非明确请求此模块。在上面的例子中,继承“strings”和“extras”将导致在应用 american-mla.lbx 中的修改之前biblatex
加载。american.lbx