ntheorem 的一些特殊组合导致的奇怪问题

ntheorem 的一些特殊组合导致的奇怪问题

以下问题出现在一个较大的文档中,我将其精简为以下 MWE。我要强调的是,它确实是一个 MWE – 更改任何一行都可以使其工作。不幸的是,我想以这种方式使用所有这些包。

\documentclass{scrbook}
\usepackage[spanish]{babel}
\usepackage{cfr-lm}
\usepackage{ntheorem}
\newtheorem{thm}{Teorema}
\usepackage[spanish]{cleveref}

\begin{document}
\frontmatter
\begin{thm}\label{label}
  Text
\end{thm}
\end{document}

当我编译这个时,我在打开定理的那一行中得到了一个未定义的控制序列错误

\scshape  ...pe \relax \def \tempu {u}\def \tempo 
                                                  {ol}\ifx \f@shape \tempu \...l.16 \begin{thm}\label{label}

这看起来一点也不熟悉(这些行不包含在 aux 文件中或我能找到的任何其他地方)。

有人有想法吗?

答案1

当罗马数字用小写字母表示时,问题取决于cfr-lm和之间的相互作用。该包不涉及,所以我从下面的示例代码中删除了它。babel-spanishntheorem

\tempo您可以通过为和提供受保护的默认值来解决该问题\tempu

\documentclass{scrbook}
\usepackage[spanish]{babel}
\usepackage{cfr-lm}

\newtheorem{thm}{Teorema}

\protected\def\tempu{}
\protected\def\tempo{}

\begin{document}
\frontmatter
\begin{thm}\label{label}
  Text
\end{thm}
\end{document}

相关内容