西班牙语 babel 与两栏回忆录和 \frontmatter 之间的冲突

西班牙语 babel 与两栏回忆录和 \frontmatter 之间的冲突

考虑用以下方法编译的简单代码xelatex

\documentclass[twocolumn]{memoir} % works without twocolumn
\usepackage[english]{babel} % works in english
\begin{document}
% \frontmatter % Error  "Incomplete \iffalse ...."
foo
% \frontmatter % Error  "Missing \endcsname inserted"
foo
\mainmatter
foo
\end{document}

在全新安装并更新 TeX Live 2021 的情况下,取消注释 \frontmatter第一个“foo”之前或之后的行会导致我的计算机出现两个不同的错误,但可以\frontmatter按预期工作(1)在一列中工作,或(2)删除 babel,或(3)使用english而不是spanish或(4)使用 TeX Live 2020。我尝试停用spanishbabel 选项的功能(es-noshorthands等),但没有结果。

我猜这应该是一个软件包错误,但是现在我对任何临时黑客或一些解决方法感兴趣,因为这阻止我在一个大型项目中切换到 2021。

答案1

memoir 的 twocolumn 选项会加载 mparhack 包,该包会尝试将页码写入辅助文件。但是 spanish 重新定义了 roman,因此在 frontmatter 中会出现错误。您可以使用以下命令避免重新定义es-ucroman

\documentclass[twocolumn]{memoir} % works without twocolumn
\usepackage[spanish,es-ucroman]{babel} % works in english

\begin{document}
\frontmatter foo
foo
\mainmatter
foo
\end{document}

相关内容