“数学字母太多”错误

“数学字母太多”错误

我刚刚收到错误

Too many math alphabets used in version normal.

在我正在编辑的文档上。除了停止使用字母表,我还能做些什么来解决这个问题?我在网上找到的只是关于如果你使用 bm.sty 包该怎么做的说明,我没有调用它(但它可能隐藏在 AMS 内容中?)。我要指出,导致问题的原因在于添加了 mathrsfs 并使用\mathscr

无论如何,正如你在我的序言中看到的,我尝试了他们建议的方法,但没有效果。

我的序言:

\documentclass[11pt]{amsart}  
\newcommand{\bmmax}{0}  
\newcommand{\hmmax}{0}  
\usepackage{amsmath, amssymb, amsthm, latexsym, amscd, enumerate, MnSymbol,bbm, etex,nicefrac,mathrsfs}

我在用着

\mathbf
\mathcal
\mathfrak
\mathscr
\mathsf
\mathbb
\mathbbm %(for a lower case blackboard bold letter)

我知道这有很多数学字体,但似乎并不不合理。


编辑:摆脱 MnSymbol 修复问题......

答案1

我遇到了同样的问题,我发现了另一个解决方案这里。所以当我添加

\newcommand\hmmax{0}
\newcommand\bmmax{0}

在包含字体包之前的序言中。

答案2

我最近在编撰论文集时遇到了这个错误。每篇论文本身都可以排版而不会出现此错误,但当所有论文都包含在同一个 LaTeX 文档中时,就会超出数学字母表的限制。

我们能够通过为其中一份字母密集型论文声明一个单独的数学版本来解决这个问题。具体来说,我们将命令放在\DeclareMathVersion{normal2}序言的末尾,并将命令\mathversion{normal2}\mathversion{normal}分别放在\include字母密集型论文的之前和之后。这为该论文提供了一个字母分配(由计数器管理\c@mv@normal2),该分配与其他论文(由计数器管理\c@mv@normal)的字母分配不同,并且这允许两者都保持在限制以下。这个技巧依赖的一件事是,新数学版本是在旧版本的所有设置都到位的情况下创建的,因此之前为数学版本所做的所有声明normal也将在数学版本中到位normal2(和normal3,等等,如果需要重复这个技巧)。

答案3

看起来你那里有一些多余的包,它们占用了数学系列插槽(总共只有 16 个)。(请注意,amsart还会加载amsfonts占用更多空间的包\mathfrak\mathbb例如,在latexsym文档中:

这些字体不会自动包含在 NFSS2/LATEX2ε 中,因为它们占用了重要空间,而且如果使用 amsfonts 或 amssymb 包则不需要。

此外,如果你使用MnSymbol,那不是会覆盖大部分amssymb包吗?我可能错了。

最后,看起来这个bbm家族本身就占了五个(或者只有三个?)——如果你不需要那么多,你可以只复制你需要的定义,例如

\DeclareMathAlphabet{\mathbbm}{U}{bbm}{m}{n}

考虑到所有这些,这里有一个至少可以编译的最小示例:(我删除了几个不相关的包)

\documentclass[11pt]{amsart}
\usepackage{amsmath, amssymb, amscd, MnSymbol,mathrsfs}
\DeclareMathAlphabet{\mathbbm}{U}{bbm}{m}{n}% 来自 bbm.sty
\开始{文档}
\[
\mathbf 一个
\mathcal 一个
\mathfrak 一个
\mathscr A
\mathsf 一个
\mathbb 一个
\mathbbm 一个
\]
\结束{文档}

答案4

在我的例子中, 的使用\usepackage{stmaryrd}与其他包发生冲突。所以很可能你有一个这样的冲突包。

相关内容