I just got the error

Too many math alphabets used in version normal.

on a document I'm editing. What can I do to fix this, other than stop using an alphabet? All I've found online is instructions on what to do if you're using the bm.sty package, which I'm not calling (but maybe it's hidden in the AMS stuff?). I'll note, the thing that broke it was adding mathrsfs and using \mathscr.

Anyways, as you'll see in my preamble, I tried what they suggested anyways, and it didn't work.

My preamble:

\usepackage{amsmath, amssymb, amsthm, latexsym, amscd, enumerate, MnSymbol,bbm, etex,nicefrac,mathrsfs}

I'm using

\mathbbm %(for a lower case blackboard bold letter)

I recognize this is a lot of math fonts, but doesn't seem unreasonable.

EDIT: getting rid of MnSymbol fixed things...

  • got the same problem when I used \mathsf{} – Noix07 Jul 6 '15 at 20:07
  • 1
    Removing MnSymbol worked for me too. (see: OP's edit and the answers and discussion below) – BarkleyBG Jan 20 '17 at 18:27

I had the same problem and I discovered another solution here. So things worked for me when I added


in the preamble before including the font packages.

| improve this answer | |
  • Thanks, I'll give it a try if I encounter this issue again. – Ben Webster May 7 '15 at 13:49
  • 2
    Awesome! Works perfectly for me. – ಠ_ಠ Jan 30 '16 at 8:57
  • 11
    Why is this working? – gbernardi Feb 24 '16 at 8:28
  • 6
    @gbernadi: Seems the bm package uses a lot of alphabets and these commands tell bm to limit its use. tex.ac.uk/FAQ-manymathalph.html – jcai Feb 27 '16 at 23:00
  • 3
    I'm just getting an error message saying "\hmmax already defined". – Monstrous Moonshine Apr 3 '18 at 2:37

I recently encountered this error when compiling a proceedings volume. Each paper by itself could be typeset without throwing this error, but when all of them were included in the same LaTeX document, the math alphabet limit was exceeded.

We were able to solve the issue by declaring a separate math version for one of the more alphabet-hungry papers. Concretely, we put the command \DeclareMathVersion{normal2} at the end of the preamble, and the commands \mathversion{normal2} and \mathversion{normal} just before and after respectively the \include for the alphabet-hungry paper. This gave that paper an alphabet allocation (managed by the \c@mv@normal2 counter) that is separate from that of the others (managed by the \c@mv@normal counter), and this allowed both to stay below the limit. One thing this trick relies upon is that new math versions are created with all settings of the old one in place, so all declarations previously made for math version normal will be in place also in math version normal2 (and normal3, and so on, if one needs to repeat the trick).

| improve this answer | |

It looks like you've got some redundant packages in there which are using up math family slots (of which there are only 16 total). (Note that amsart also loads the amsfonts package which uses up several more for \mathfrak, \mathbb, etc.) For example, in the latexsym docs:

These fonts are not automatically included in the NFSS2/LATEX2ε since they take up important space and aren’t necessary if one makes use of the packages amsfonts or amssymb.

Furthermore, if you're using MnSymbol, doesn't that override much of the amssymb package? I could be wrong about that.

Finally, it looks the bbm family takes up five (or is it only three?) on its own—if you don't need that many you can copy out just the definitions you need, such as


Bearing all this in mind, here's a minimal example that at least compiles: (I've removed a couple of unrelated packages)

\usepackage{amsmath, amssymb, amscd, MnSymbol,mathrsfs}
\DeclareMathAlphabet{\mathbbm}{U}{bbm}{m}{n}% from bbm.sty
\mathbf A
\mathcal A
\mathfrak A
\mathscr A
\mathsf A
\mathbb A
\mathbbm a
| improve this answer | |
  • Honestly, I have no idea why MnSymbol was there; my coauthor added it at some point. – Ben Webster Oct 2 '10 at 7:51
  • 1
    Interestingly, I must have forgotten at least one math alphabet I was using, since your example compiles on my computer, but using your trick in the actual file doesn't. As I mentioned in the edit to the question, removing MnSymbol does, though. – Ben Webster Oct 2 '10 at 7:53
  • 14
    MnSymbol might be used for an obscure glyph you otherwise can't access. It would be nice, huh, if LaTeX provided better logging of where all the math alphabets got used up :) – Will Robertson Oct 2 '10 at 8:05
  • 1
    A question, since both XeTeX and LuaTeX can have 256 math families (right?), is this LaTeX error still relevant or can we get ride of it? – Khaled Hosny Oct 2 '10 at 9:54
  • 1
    Sure, I can understand that! Hopefully, math fonts will be more flexible, one day. – pluton Nov 24 '10 at 11:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.