以下代码运行良好:
\documentclass{scrbook}
\usepackage[british,ngerman]{babel}
\usepackage{blindtext}
\usepackage{titlepage}
\begin{document}
\begin{fullsizetitle}
\blindtext[13]
\end{fullsizetitle}
\end{document}
此代码也一样:
\documentclass{scrbook}
\usepackage[british,ngerman]{babel}
\usepackage{blindtext}
\usepackage{biblatex}
\begin{document}
\begin{fullsizetitle}
\blindtext[13]
\end{fullsizetitle}
\end{document}
但两者同时
\documentclass{scrbook}
\usepackage[british,ngerman]{babel}
\usepackage{blindtext}
\usepackage{titlepage}
\usepackage{biblatex}
\begin{document}
\begin{fullsizetitle}
\blindtext[13]
\end{fullsizetitle}
\end{document}
给出错误信息:
Undefined control sequence. \begin{document}
答案1
此错误已在 3.13 版本中修复。
请更新您的 TeX 系统以获取当前(和匹配)的
biblatex
Biber 版本。下面的答案仅用于历史兴趣和背景信息。
这是 中的一个非常难以捉摸的错误biblatex
。经过https://komascript.de/node/2242,KOMA-Script 开发人员已在https://github.com/plk/biblatex/issues/894并建议了一个可能的解决方案,并添加biblatex
到https://github.com/plk/biblatex/commit/26c2072829d78447a9bb1931bd22662b34a19e18。
该问题已在 v3.13 中解决biblatex
。
只有当 的biblatex
语言模块(.lbx
)以特定方式<language_1>
继承自并且未作为文档语言加载时,才会发生此错误。在这些情况下,会将未定义的宏添加到。由于未加载,因此通常不会使用此宏,因此这不会导致任何问题。但是使用挂钩 的方式,未定义的命令会导致问题。<language_0>
<language_0>
biblatex
\extras<language_0>
<language_0>
titlepage
\providecaptionname
\extras<language>
在特定情况下,MWEbritish
继承自english
,但未english
加载。仍然biblatex
写入未定义的命令\extrasenglish
并\providecaptionname
出错。
问题不会发生,因为和ngerman
之间的继承设置略有不同,这意味着在这种情况下最终未定义的宏实际上是在这里定义的。ngerman
german
british
在修复版本发布之前,我可以提供两种解决方法
只需加载
english
即可british
。(请确保加载顺序/主要语言正确。)将建议的修复合并到您的前言中。请注意,当发布新版本时,应从您的前言中删除该修复
biblatex
。因此,下面的代码块将在即将发布的版本中产生错误biblatex
。\makeatletter \@ifpackagelater{biblatex}{2019/05/28} {\blx@error {'\string\blx@maplang' fix no longer needed. Remove it} {Remove the redefinition of '\string\blx@maplang' from your preamble}} {\def\blx@maplang#1#2{% \csgappto{extras#1}{% \blx@resetpunct \csuse{abx@extras@#2}% \csuse{abx@strings@#2}}% \csgappto{noextras#1}{% \blx@resetpunct \csuse{abx@noextras@#2}}}} \makeatother