考虑用以下方法编译的简单代码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。我尝试停用spanish
babel 选项的功能(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}