\ifx \tmp:bx\:UnDef \csname newbox\endcsname \tmp:bx \fi
\def\find:set:mgroup#1#2#3{\bgroup
\def\use@mathgroup##1##2##3{\relax
\tmp:cnt=##2%
\xdef\:temp####1{\noexpand\Configure{MathClass}{#2}%
{}{}{}{\mathchar"0\the\tmp:cnt ####1}}%
}%
\setbox\tmp:bx=\hbox{$#1$}\setbox\tmp:bx=\hbox{}%
\set:mgroup#3{}{}%
\egroup
}
\def\set:mgroup#1#2{\if :#1#2:\else
\:temp{#1#2}\expandafter\set:mgroup \fi}
-_-_-
\ifx \mathbbMathClass\:UnDef
\NewMathClass\mathbbMathClass
\fi
\Configure{MathClass}{\mathbbMathClass}{*}
{<\a:mathml mi mathvariant="double-struck">}{</\a:mathml mi>}{}
-_-_-
\find:set:mgroup{\mathbb{A}}{\mathbbMathClass}%
{414244454647494A4B4C4D4F535455565758597C} A--Z (not CHNPQRZ),k
-_-_-
The characters CHNPQRZ bet a <mi mathvariant="double-struck">
decoration.
Mathfrak might be conditionally loaded by latex, upon encountering the mathfrak
command. Hence, the indirect setting of math classes.
\expandafter\ifx \csname sv:@mathfrak:\endcsname\relax
\let\sv:@mathfrak:=\n:@mathfrak:
\fi
\def\n:@mathfrak:{\global\let\n:@mathfrak:=\sv:@mathfrak:
\global\let\sv:@mathfrak:=\:UnDef
<.set fraktur symbols.>%
}
\n:@mathfrak: -_-_-
In version 1.4b <mi mathvariant="fraktur">𝔏</mi> is needed. The
representations <mi>𝔏</mi> and <mi mathvariant="fraktur">L</mi> don’t
work.
\ifx \mathfrakMathClass\:UnDef
\NewMathClass\mathfrakMathClass
\fi
\Configure{MathClass}{\mathfrakMathClass}{*}
{<\a:mathml mi\Hnewline
mathvariant="fraktur">}{</\a:mathml mi>}{}
-_-_-
\find:set:mgroup{\mathfrak{A}}{\mathfrakMathClass}%
{4142434445464748494A4B4C4D4E4F505152535455565758595A% A--Z
6162636465666768696A6B6C6D6E6F707172737475767778797A% a--z
30313233343536373839}% 0--9
-_-_-
\ifx \mathboldfrakMathClass\:UnDef
\NewMathClass\mathboldfrakMathClass
\fi
\Configure{MathClass}{\mathboldfrakMathClass}{*}
{<\a:mathml mi\Hnewline
mathvariant="bold-fraktur">}{</\a:mathml mi>}{}
-_-_-
\expandafter\ifx\csname mv@bold\endcsname\relax \else
\bgroup
\mathversion{bold}%
\find:set:mgroup{\mathfrak{A}}{\mathboldfrakMathClass}%
{4142434445464748494A4B4C4D4E4F505152535455565758595A% A--Z
6162636465666768696A6B6C6D6E6F707172737475767778797A% a--z
}%
\egroup
\fi
-_-_-
\ifx \mathscrMathClass\:UnDef
\NewMathClass\mathscrMathClass
\fi
\Configure{MathClass}{\mathscrMathClass}{*}
{<\a:mathml mi\Hnewline
mathvariant="script">}{</\a:mathml mi>}{}
-_-_-
\find:set:mgroup{\mathscr{A}}{\mathscrMathClass}%
{4142434445464748494A4B4C4D4E4F505152535455565758595A} A--Z
-_-_-
\ifx \mathboldscrMathClass\:UnDef
\NewMathClass\mathboldscrMathClass
\fi
\Configure{MathClass}{\mathboldscrMathClass}{*}
{<\a:mathml mi\Hnewline
mathvariant="bold-script">}{</\a:mathml mi>}{}
-_-_-
\expandafter\ifx\csname mv@bold\endcsname\relax \else
\bgroup
\mathversion{bold}%
\find:set:mgroup{\mathscr{A}}{\mathboldscrMathClass}%
{4142434445464748494A4B4C4D4E4F505152535455565758595A} A--Z
\egroup
\fi
-_-_-
\ifx \mathcalMathClass\:UnDef
\NewMathClass\mathcalMathClass
\fi
\Configure{MathClass}{\mathcalMathClass}{*}
{<\a:mathml mi\Hnewline
mathvariant="script">}{</\a:mathml mi>}{}
-_-_-
\find:set:mgroup{\mathcal{A}}{\mathcalMathClass}%
{4142434445464748494A4B4C4D4E4F505152535455565758595A} A--Z
-_-_-
\ifx \mathboldcalMathClass\:UnDef
\NewMathClass\mathboldcalMathClass
\fi
\Configure{MathClass}{\mathboldcalMathClass}{*}
{<\a:mathml mi\Hnewline
mathvariant="bold-script">}{</\a:mathml mi>}{}
-_-_-
\expandafter\ifx\csname mv@bold\endcsname\relax \else
\bgroup
\mathversion{bold}%
\find:set:mgroup{\mathcal{A}}{\mathboldcalMathClass}%
{4142434445464748494A4B4C4D4E4F505152535455565758595A} A--Z
\egroup
\fi
-_-_-
\ifx \boldmathsfMathClass\:UnDef
\NewMathClass\boldmathsfMathClass
\fi
\Configure{MathClass}{\boldmathsfMathClass}{*}
{<\a:mathml mi mathvariant="bold-sans-serif">}{</\a:mathml mi>}{}
-_-_-
\find:set:mgroup{{\boldmath\mathsf{A}}}{\boldmathsfMathClass}%
{4142434445464748494A4B4C4D4E4F505152535455565758595A% A--Z
6162636465666768696A6B6C6D6E6F707172737475767778797A% a--z
}%
-_-_-
\ifx \boldmathsfDigitMathClass\:UnDef
\NewMathClass\boldmathsfDigitMathClass
\fi
\Configure{MathClass}{\boldmathsfDigitMathClass}{*}
{<\a:mathml mn mathvariant="bold-sans-serif">}{</\a:mathml mn>}{}
-_-_-
\find:set:mgroup{{\boldmath\mathsf{A}}}{\boldmathsfDigitMathClass}%
{30313233343536373839}% 0--9
-_-_-
BROKEN: The above, for instance, fail for the prima math code:
\documentclass{article}
\tracingmacros=2
\begin{document}
prima {\boldmath $\mathrm{{\csname HCode\endcsname{}}^{14}C}$}
seconda {\boldmath $\mathsf{{\csname HCode\endcsname{}}^{15}C}$}
terza {\boldmath $\mathrm{{\csname HCode\endcsname{}}^{16}C}$}
quarta {\boldmath $\mathsf{{\csname HCode\endcsname{}}^{17}C}$}
quinta {$\mathtt{{\csname HCode\endcsname{}}^{18}C}$}
\end{document}
Double strike:
\ifx \mathdsMathClass\:UnDef
\NewMathClass\mathdsMathClass
\fi
\Configure{MathClass}{\mathdsMathClass}{*}
{<\a:mathml mi mathvariant="double-struck">}{</\a:mathml mi>}{}
\find:set:mgroup{\mathds{A}}{\mathdsMathClass}% 1,A--Z,A,h,k
{314142434445464748494A4B4C4D4E4F505152535455565758595A61686B}
-_-_-
\ifx \mathReImMathClass\:UnDef
\NewMathClass\mathboldReImMathClass
\fi
\Configure{MathClass}{\mathboldReImMathClass}{*}
{<\a:mathml mi\Hnewline
fontweight="bold">}{</\a:mathml mi>}{}
-_-_-
\expandafter\ifx\csname mv@bold\endcsname\relax \else
\bgroup
\mathversion{bold}%
\find:set:mgroup{\mathcal{A}}{\mathboldReImMathClass}%
{3C3D}
\egroup
\fi
-_-_-