![ntheorem 的一些特殊组合导致的奇怪问题](https://linux22.com/image/401638/ntheorem%20%E7%9A%84%E4%B8%80%E4%BA%9B%E7%89%B9%E6%AE%8A%E7%BB%84%E5%90%88%E5%AF%BC%E8%87%B4%E7%9A%84%E5%A5%87%E6%80%AA%E9%97%AE%E9%A2%98.png)
以下问题出现在一个较大的文档中,我将其精简为以下 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-spanish
ntheorem
\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}