I need to use math symbols from different fonts, exceeding the count of 16. What is the easiest way to adapt my setup to be able to use more math fonts?
I'm looking for either of the following:
- hacks that let me cheat around the restriction
- another setup that is likely to be most compatible with what I'm currently using, namely
pdflatex
I know that there are systems/engines such as LuaTeX and XeTeX (both allowing way more than 16 math fonts), but I'm really looking for something that is as conservative as possible an extension of LaTeX. The reason is that I'm using a lot of packages written for LaTeX, and switching over to something like XeTeX for my current project is likely to break things in subtle ways.
If the answer is "there is no way", that's also okay.
Here is a minimal example of uncompilable code:
\documentclass{article}
\usepackage{amsmath} % for the \mspace command and other things (necessity of this package not demonstrated in this minimal example)
\usepackage{dsfont} % for the \mathds command
\usepackage{txfonts} % for \coloneqq; also: if I omit this line, I get an error message saying that "Command \lhd not provided in base LaTeX2e" (I need \lhd)
\usepackage[only,llbracket,rrbracket,llparenthesis,rrparenthesis]{stmaryrd} % imports: [| |] (| |)
\usepackage[mathb]{mathabx} % for \sqbullet and \blackdiamond
% for \lcurvearrowdown:
\DeclareFontFamily{U}{MnSymbolA}{}
\DeclareFontShape{U}{MnSymbolA}{m}{n}{
<-6> MnSymbolA5
<6-7> MnSymbolA6
<7-8> MnSymbolA7
<8-9> MnSymbolA8
<9-10> MnSymbolA9
<10-12> MnSymbolA10
<12-> MnSymbolA12}{}
\DeclareFontShape{U}{MnSymbolA}{b}{n}{
<-6> MnSymbolA-Bold5
<6-7> MnSymbolA-Bold6
<7-8> MnSymbolA-Bold7
<8-9> MnSymbolA-Bold8
<9-10> MnSymbolA-Bold9
<10-12> MnSymbolA-Bold10
<12-> MnSymbolA-Bold12}{}
\DeclareSymbolFont{MnSyA}{U}{MnSymbolA}{m}{n}
\DeclareMathSymbol{\lcurvearrowdown}{\mathrel}{MnSyA}{187}
% for \sqsubseteq and \nsqsubseteq; I don't like the appearance of these symbols from txfonts, so I am using the respective MnSymbol ones, except I'm naming them \sqeq and \nsqeq
% THIS IS THE CODE BLOCK THAT FIRST MADE MY FILE UNCOMPILABLE WHEN I ADDED IT
\DeclareFontFamily{U}{MnSymbolD}{}
\DeclareFontShape{U}{MnSymbolD}{m}{n}{
<-6> MnSymbolD5
<6-7> MnSymbolD6
<7-8> MnSymbolD7
<8-9> MnSymbolD8
<9-10> MnSymbolD9
<10-12> MnSymbolD10
<12-> MnSymbolD12}{}
\DeclareFontShape{U}{MnSymbolD}{b}{n}{
<-6> MnSymbolD-Bold5
<6-7> MnSymbolD-Bold6
<7-8> MnSymbolD-Bold7
<8-9> MnSymbolD-Bold8
<9-10> MnSymbolD-Bold9
<10-12> MnSymbolD-Bold10
<12-> MnSymbolD-Bold12}{}
\DeclareSymbolFont{MnSyD}{U}{MnSymbolD}{m}{n}
\DeclareMathSymbol{\sqeq}{\mathrel}{MnSyD}{90}
\DeclareMathSymbol{\nsqeq}{\mathrel}{MnSyD}{210}
\begin{document}
\( \mathds{N} \) % WITHOUT THIS LINE, THE CODE COMPILES
\( \coloneqq \) % this line is not required to get a minimal example of uncompilable code, but I need this symbol
\( \llbracket,\rrbracket,\llparenthesis,\rrparenthesis \) % this line is not required to get a minimal example of uncompilable code, but I need these symbols
\( \sqbullet, \blackdiamond \) % this line is not required to get a minimal example of uncompilable code, but I need these symbols
\( \lcurvearrowdown \) % this line is not required to get a minimal example of uncompilable code, but I need this symbol
\( a \sqeq b \nsqeq c \) % this line is not required to get a minimal example of uncompilable code, but I need these symbols
\( \mathit{abc} \) % WITHOUT THIS LINE, THE CODE COMPILES
\( \mathsf{a} \) % WITHOUT THIS LINE, THE CODE COMPILES
\end{document}
(I know this is an arbitrary example, but I think it serves the purpose of illustrating the issue.)

\sqsubseteqand\nsqsubseteqsymbols from the MnSymbolD font, I get the errorToo many math alphabets used in version normal.– Lover of Structure Jul 20 '12 at 02:19\DeclareSymbolFont{MnSyA}{U}{MnSymbolA}{m}{n}and instead of\DeclareMathSymbol{\lcurvearrowdown}{\mathrel}{MnSyA}{187}say\newcommand{\lcurvedarrowdown}{\mathrel{\text{\usefont{U}{MnSymbolA}{m}{n}\symbol{187}}}}– egreg Jul 21 '12 at 09:47\lcurvedarrowdown->\lcurvearrowdown– Lover of Structure Jul 21 '12 at 09:56