更新到最新的 MikTeX 后,我发现pdflatex
在此文档上运行:
\documentclass{article}
\usepackage[style=authoryear-luh-ipw]{biblatex}
\begin{document}
\end{document}
出现错误
... MiKTeX 2.9\tex\latex\biblatex\lbx\engli
sh.lbx")
! LaTeX Error: Missing \begin{document}.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
检查后... MiKTeX 2.9\tex\latex\biblatex-luh-ipw\lbx\english-luh-ipw.lbx
我发现
% english-luh-ipw.bbx, Oliver Heins ([email protected]) 2012--2013
\ProvidesFile{english-luh-ipw.lbx}[2013/11/18 v0.3 bibliography localization for use with biblatex 2.x]
\InheritBibliographyExtras{english}
\DeclareBibliographyExtras{%
\savecommand\mkbibvolume
\protected\def\mkbibvolume#1{\bibstring{jourvol}\adddot~#1}}
\UndeclareBibliographyExtras{%
\restorecommand\mkbibvolume}
\NewBibliographyString{issue}
\DeclareBibliographyStrings{%
inherit = {english},
issue = {issue}{iss\adddot}},
\endinput
我认为,
末尾的逗号DeclareBibliographyStrings
看起来不合适,因此我将它删除,并将文件保存到本地texmf
树中,确实似乎解决了问题。这是 中的错误吗biblatex-luh-ipw
?如果是,删除末尾的逗号是否是合适的修复方法?
答案1
文件.lbx
biblatex-luh-ipw
声明中包含语法错误\DeclareBibliographyStrings
。早期biblatex
版本会默默忍受,不会引发错误。v3.11biblatex
更加外向,会发出错误消息(不幸的是,该错误消息没有什么帮助)。正确的语法是
\DeclareBibliographyStrings{%
inherit = {<language>},
bibstring_1 = {{<short_1>}{<long_1>}},
bibstring_2 = {{<short_2>}{<long_2>}},
.
.
.
bibstring_n = {{<short_n>}{<long_n>}},
}
该键inherit
比较特殊,只接受括号中的一种语言。所有其他键都是预定义的参考书目字符串,接受一对括号,每个括号中包含翻译的长格式和短格式。
这意味着.lbx
文件应该看起来像这样。
german-luh-ipw.bbx
\DeclareBibliographyStrings{%
inherit = {german},
issue = {{Heft}{H\adddot}},
}
english-luh-ipw.lbx
\DeclareBibliographyStrings{%
inherit = {english},
issue = {{issue}{iss\adddot}},
}
你肯定应该将此事报告给软件包维护者,但考虑到该软件包四年半没有更新,我不确定他是否还活跃。