summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-12-04 21:08:16 +0000
committerKarl Berry <karl@freefriends.org>2022-12-04 21:08:16 +0000
commit6d53282addaa0e6a411285edc4175f9114b50b01 (patch)
treee8474dd76be82cb59c4a7ea1e85d393ed176e0e2 /Master/texmf-dist/tex
parentfc934166e6db327e06b3e089fc1f64aeb8692260 (diff)
mathfont (4dec22)
git-svn-id: svn://tug.org/texlive/trunk@65193 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/mathfont/mathfont.sty1339
1 files changed, 665 insertions, 674 deletions
diff --git a/Master/texmf-dist/tex/latex/mathfont/mathfont.sty b/Master/texmf-dist/tex/latex/mathfont/mathfont.sty
index 314ac40b93b..028bc72670f 100644
--- a/Master/texmf-dist/tex/latex/mathfont/mathfont.sty
+++ b/Master/texmf-dist/tex/latex/mathfont/mathfont.sty
@@ -6,16 +6,16 @@
%%
%% mathfont_code.dtx (with options: `package')
%%
-%% This file is from version 2.0 of the free and open-source
+%% This file is from version 2.2 of the free and open-source
%% LaTeX package "mathfont," to be used with the XeTeX or
%% LuaTeX engines. (As of version 2.0, LuaTeX is recommended.)
%%
-%% Copyright 2018-2021 by Conrad Kosowsky
+%% Copyright 2018-2022 by Conrad Kosowsky
%%
-%% This file may be distributed and modified under the terms
-%% of the LaTeX Public Project License, version 1.3c or any
-%% later version. The most recent version of this license is
-%% available online at
+%% This Work may be used, distributed, and modified under the
+%% terms of the LaTeX Public Project License, version 1.3c or
+%% any later version. The most recent version of this license
+%% is available online at
%%
%% https://www.latex-project.org/lppl/.
%%
@@ -23,34 +23,43 @@
%% maintainer is the package author, Conrad Kosowsky. He can
%% be reached at kosowsky.latex@gmail.com.
%%
-%% THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS
-%% OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES
-%% OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-%% IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE
-%% COST FOR ANY REPAIR OR CORRECTION.
+%% PLEASE KNOW THAT THIS FREE SOFTWARE IS PROVIDED WITHOUT
+%% ANY WARRANTY. SPECIFICALLY, THE "NO WARRANTY" SECTION OF
+%% THE LATEX PROJECT PUBLIC LICENSE STATES THE FOLLOWING:
%%
-%% BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE
-%% TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR
-%% DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU
-%% AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER
-%% APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS
-%% BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+%% THERE IS NO WARRANTY FOR THE WORK. EXCEPT WHEN OTHERWISE
+%% STATED IN WRITING, THE COPYRIGHT HOLDER PROVIDES THE WORK
+%% `AS IS’, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+%% OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+%% WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+%% PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
+%% OF THE WORK IS WITH YOU. SHOULD THE WORK PROVE DEFECTIVE,
+%% YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR
+%% CORRECTION.
%%
-%% See also the "No Warranty" section of the LaTeX Project
-%% Public License. In releasing the package author from
-%% liability, you also release from liability any third
-%% parties who distribute the software under the terms
-%% of the LaTeX Project Public License. Derivative works
-%% based on this package may come with their own license or
-%% terms of use, and the package author is not responsible
-%% for any third-party software.
+%% IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED
+%% TO IN WRITING WILL THE COPYRIGHT HOLDER, OR ANY AUTHOR
+%% NAMED IN THE COMPONENTS OF THE WORK, OR ANY OTHER PARTY
+%% WHO MAY DISTRIBUTE AND/OR MODIFY THE WORK AS PERMITTED
+%% ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+%% SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT
+%% OF ANY USE OF THE WORK OR OUT OF INABILITY TO USE THE WORK
+%% (INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA, DATA BEING
+%% RENDERED INACCURATE, OR LOSSES SUSTAINED BY ANYONE AS A
+%% RESULT OF ANY FAILURE OF THE WORK TO OPERATE WITH ANY
+%% OTHER PROGRAMS), EVEN IF THE COPYRIGHT HOLDER OR SAID
+%% AUTHOR OR SAID OTHER PARTY HAS BEEN ADVISED OF THE
+%% POSSIBILITY OF SUCH DAMAGES.
%%
-%% For more information, see the mathfont_code.dtx.
+%% For more information, see the LaTeX Project Public License.
+%% Derivative works based on this package may come with their
+%% own license or terms of use, and the package author is not
+%% responsible for any third-party software.
%%
-%% Happy TeXing!
+%% For more information, see mathfont_code.dtx. Happy TeXing!
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{mathfont}[2021/12/28 v. 2.0 Package mathfont]
+\ProvidesPackage{mathfont}[2022/12/04 v. 2.2 Package mathfont]
\newif\ifM@XeTeXLuaTeX % is engine one of xetex or luatex?
\newif\ifM@Noluaotfload % cannot find luaotfload.sty?
\newif\ifM@adjust@font % should adjust fonts with lua script?
@@ -63,25 +72,33 @@
{Your command was ignored. I couldn't\MessageBreak
load mathfont, so I never defined this\MessageBreak
control sequence.}}
-\def\mathfont{\M@NoMathfontError\mathfont
+\protected\def\mathfont{\M@NoMathfontError\mathfont
\@ifnextchar[\@gobbletwo@brackets\@gobble}
-\def\mathconstantsfont{\M@NoMathfontError\mathconstantsfont\@gobble}
-\def\setfont{\M@NoMathfontError\setfont\@gobble}
-\def\newmathrm{\M@NoMathfontError\newmathrm\@gobbletwo}
-\def\newmathit{\M@NoMathfontError\newmathit\@gobbletwo}
-\def\newmathbf{\M@NoMathfontError\newmathbf\@gobbletwo}
-\def\newmathbfit{\M@NoMathfontError\newmathbf\@gobbletwo}
-\def\newmathsc{\M@NoMathfontError\newmathsc\@gobbletwo}
-\def\newmathscit{\M@NoMathfontError\newmathscit\@gobbletwo}
-\def\newmathbfsc{\M@NoMathfontError\newmathbfsc\@gobbletwo}
-\def\newmathbfscit{\M@NoMathfontError\newmathbfscit\@gobbletwo}
-\def\newmathfontcommand{\M@NoMathfontError\newmathfontcommand\@gobblefour}
-\def\RuleThicknessFactor{\M@NoMathfontError\RuleThicknessFactor\@gobble}
-\def\IntegralItalicFactor{\M@NoMathfontError\IntegralItalicFactor\@gobble}
-\def\SurdVerticalFactor{\M@NoMathfontError\SurdVerticalFactor\@gobble}
-\def\SurdHorizontalFactor{\M@NoMathfontError\SurdHorizontalFactor\@gobble}
-\def\CharmLine{\M@NoMathfontError\CharmLine\@gobble}
-\def\CharmFile{\M@NoMathfontError\CharmFile\@gobble}
+\protected\def\setfont{\M@NoMathfontError\setfont\@gobble}
+\protected\def\mathconstantsfont{\M@NoMathfontError\mathconstantsfont
+ \@ifnextchar[\@gobbletwo@brackets\@gobble}
+\protected\def\newmathrm{\M@NoMathfontError\newmathrm\@gobbletwo}
+\protected\def\newmathit{\M@NoMathfontError\newmathit\@gobbletwo}
+\protected\def\newmathbf{\M@NoMathfontError\newmathbf\@gobbletwo}
+\protected\def\newmathbfit{\M@NoMathfontError\newmathbf\@gobbletwo}
+\protected\def\newmathbold{\M@NoMathfontError\newmathbold\@gobbletwo}
+\protected\def\newmathboldit{\M@NoMathfontError\newmathbold\@gobbletwo}
+\protected\def\newmathsc{\M@NoMathfontError\newmathsc\@gobbletwo}
+\protected\def\newmathscit{\M@NoMathfontError\newmathscit\@gobbletwo}
+\protected\def\newmathbfsc{\M@NoMathfontError\newmathbfsc\@gobbletwo}
+\protected\def\newmathbfscit{\M@NoMathfontError\newmathbfscit\@gobbletwo}
+\protected\def\newmathfontcommand{%
+ \M@NoMathfontError\newmathfontcommand\@gobblefour}
+\protected\def\RuleThicknessFactor{%
+ \M@NoMathfontError\RuleThicknessFactor\@gobble}
+\protected\def\IntegralItalicFactor{%
+ \M@NoMathfontError\IntegralItalicFactor\@gobble}
+\protected\def\SurdVerticalFactor{%
+ \M@NoMathfontError\SurdVerticalFactor\@gobble}
+\protected\def\SurdHorizontalFactor{%
+ \M@NoMathfontError\SurdHorizontalFactor\@gobble}
+\protected\def\CharmLine{\M@NoMathfontError\CharmLine\@gobble}
+\protected\def\CharmFile{\M@NoMathfontError\CharmFile\@gobble}
\ifdefined\directlua
\M@XeTeXLuaTeXtrue
\fi
@@ -116,7 +133,7 @@
with one of those two engines.^^J}}
\M@XeTeXLuaTeXError
\endgroup
- \AtEndOfPackage{\typeout{Package mathfont failed to load\on@line.}}
+ \AtEndOfPackage{\typeout{:: mathfont :: Failed to load\on@line.}}
\expandafter\endinput % we should \endinput with a balanced conditional
\fi
\ifdefined\directlua
@@ -162,7 +179,7 @@
XeLaTeX.^^J}}
\M@NoluaotfloadError
\endgroup
- \AtEndOfPackage{\typeout{Package mathfont failed to load\on@line.}}
+ \AtEndOfPackage{\typeout{:: mathfont :: Failed to load\on@line.}}
\expandafter\endinput % we should \endinput with a balanced conditional
\fi
\def\M@Optiondeprecated#1#2{\PackageError{mathfont}
@@ -171,9 +188,6 @@
use #2\MessageBreak
instead. For more information,\MessageBreak
see the mathfont documentation.}}
-\IfFileExists{atveryend.sty}
- {\RequirePackage{atveryend}\let\E@sterEggHook\AtVeryVeryEnd}
- {\let\E@sterEggHook\AtEndDocument}
\DeclareOption{packages}{%
\M@Optiondeprecated{packages}
{the macro \string\restoremathinternals}}
@@ -187,25 +201,36 @@
\ifE@sterEggDecl@red\else
\E@sterEggDecl@redtrue
\def\EasterEggUpdate{\show\E@sterEggUpd@te}
- \def\E@sterEggUpd@te{Okay, opening your Easter egg}
- \EasterEggUpdate
- \def\E@sterEggUpd@te{..}
+ \def\E@sterEggUpd@te{Easter Egg Status:^^J^^J%
+ Okay, opening your Easter egg.^^J^^J}
\EasterEggUpdate
+ \def\E@sterEggUpd@te{Easter Egg Status:^^J^^J%
+ Uh oh. It looks like^^J%
+ your Easter egg flew^^J%
+ out the window. I don't^^J%
+ suppose you know the^^J%
+ best kind of bait to^^J%
+ lure an egg?^^J^^J}
\EasterEggUpdate
- \typeout{^^JHm, I think it flew out the^^J%
- window. Check back here when^^J%
- everything's done compiling^^J}
- \def\E@sterEggUpd@te{Uh oh}
+ \def\E@sterEggUpd@te{Easter Egg Status:^^J^^J%
+ Still wrangling. Try back later.^^J^^J}
+ \AtBeginDocument{\bgroup
+ \def\E@sterEggUpd@te{Easter Egg Status:^^J^^J:%
+ If we have zero eggs^^J%
+ and zero bunnies, how^^J%
+ many gnats does it take^^J%
+ to change a lightbulb??^^J^^J}
\EasterEggUpdate
- \def\E@sterEggUpd@te{Still wrangling. Try back later}
- \AtBeginDocument\EasterEggUpdate
- \E@sterEggHook{%
- \typeout{^^JHappy, happy day! Happy,^^J%
- happy day! Clap your hands,^^J%
- and be glad your hovercraft^^J%
- isn't full of eels!^^J}
- \def\E@sterEggUpd@te{Got it :) }
- \EasterEggUpdate}
+ \egroup}
+ \AtEndDocument{%
+ \def\E@sterEggUpd@te{Easter Egg Status:^^J^^J%
+ Happy, happy day! Happy,^^J%
+ happy day! Clap your hands,^^J%
+ and be glad your hovercraft^^J%
+ isn't full of eels!^^J^^J}
+ \EasterEggUpdate
+ \let\E@sterEggUpd@te\relax
+ \let\EasterEggUpdate\relax}
\fi}% my easter egg :)
\DeclareOption{adjust}{\M@adjust@fonttrue}
\DeclareOption{no-adjust}{\M@adjust@fontfalse}
@@ -233,40 +258,22 @@
\M@adjust@fontfalse
\fi
\fi
-\def\M@FontChangeInfo#1#2#3#4#5{\wlog{Package mathfont Info:
- Setting #1 chars to #2!^^J%
- NFSS Family Name: #3^^J%
- Series/Shape Info: #4^^J%
- Symbol Font Name: #5^^J}}
-\def\M@CommandInitializeInfo#1{\wlog{Package mathfont Info: Initializing
- \noexpand#1 font-change command on line \the\inputlineno.}}
-\def\M@NewFontCommandInfo#1#2#3#4#5{\wlog{Package mathfont Info: Creating
- math-alphabet command^^J%
- \string#1 using #2 on line \the\inputlineno!^^J%
- NFSS Family Name: #3^^J%
+\def\M@SymbolFontInfo#1#2#3#4{\wlog{^^JPackage mathfont Info:
+ Declaring new symbol font from #1!^^J%
+ NFSS Family Name: \space#2^^J%
+ Series/Shape Info: #3^^J%
+ Symbol Font Name: \space#4^^J}}
+\def\M@FontChangeInfo#1#2{\wlog{Package mathfont Info:
+ Setting #1 chars to #2!}}
+\def\M@NewFontCommandInfo#1#2#3#4#5{\wlog{^^JPackage mathfont Info:
+ Creating \string#1 using #2!^^J%
+ NFSS Family Name: \space#3^^J%
Series/Shape Info: #4/#5^^J}}
\def\M@CharsSetWarning#1{\PackageWarning{mathfont}
{I already set the font for\MessageBreak
#1 chars, so I'm ignoring\MessageBreak
this option for \string\mathfont\space
on line \the\inputlineno\@gobble}}
-\def\M@DoubleArgWarning#1#2{\PackageWarning{mathfont}
- {I'm ignoring the multiple characters\MessageBreak
- "#2" that are grouped together in\MessageBreak
- the argument of your \string#1\space command\MessageBreak}}
-\def\M@NestedArgWarning#1#2{\PackageWarning{mathfont}
- {I'm ignoring the nested argument\MessageBreak
- "#2" from your \string#1\MessageBreak
- command}}
-\def\M@CSArgWarning#1#2{\PackageWarning{mathfont}
- {I'm ignoring the unexpandable control\MessageBreak
- sequence \string#2\space that appears in the\MessageBreak
- argument of your \string#1\space command\MessageBreak}}
-\def\M@CharacterArgWarning#1#2{\PackageWarning{mathfont}
- {I'm ignoring the "#2" in the\MessageBreak
- argument of your \string#1\MessageBreak
- command because it isn't a\MessageBreak
- letter or digit}}
\def\M@DeprecatedWarning#1#2{\PackageWarning{mathfont}
{Your \string#1\space command on\MessageBreak
line \the\inputlineno\space is deprecated, and I\MessageBreak
@@ -333,6 +340,23 @@
haven't loaded fontspec, so some things are about\MessageBreak
to get messed up. To resolve this error, load\MessageBreak
fontspec before calling \string\mathfont.^^J}}
+\def\M@BadMathConstantsFontError#1{\PackageError{mathfont}
+ {Invalid\MessageBreak font specifier for
+ \string\mathconstantsfont:\MessageBreak"#1"}
+ {Your command was ignored--I can't parse your argument.\MessageBreak
+ Please make sure to use text that you have previously\MessageBreak
+ fed to \string\mathfont\space for the argument of
+ \string\mathconstantsfont.^^J}}
+\def\M@BadMathConstantsFontTypeError#1{\PackageError{mathfont}
+ {Invalid\MessageBreak font specifier for
+ \string\mathconstantsfont:\MessageBreak"#1"}
+ {The optional argument of \string\mathconstantsfont\MessageBreak
+ should be "upright" or "italic." Right now,\MessageBreak
+ it's "#1."^^J}}
+\def\M@LuaTeXOnlyWarning{\PackageWarning{mathfont}
+ {Your \string\mathconstantsfont\space
+ on line \the\inputlineno\space is\MessageBreak
+ for LuaTeX only, and I'm ignoring it\@gobble}}
\def\M@MissingControlSequenceError#1#2{\PackageError{mathfont}
{Missing control sequence\MessageBreak
for\string#1\MessageBreak on input line \the\inputlineno}
@@ -349,13 +373,12 @@
a single character instead.^^J}}
\def\M@HModeError#1{\PackageError{mathfont}
{Missing \string$ inserted\MessageBreak
- inserted\on@line. Command\MessageBreak
- \string#1\space is for math mode only\MessageBreak}
+ on input line line \the\inputlineno}
{I generated an error because
you used \string#1\space outside of\MessageBreak
- math mode. I've inserted a \string$
- just before your \string#1, so\MessageBreak
- we should be all good now.^^J}}
+ math mode. I inserted a \string$
+ before your \string#1, so we\MessageBreak
+ should be all good now.^^J}}
\def\M@ForbiddenCharmLine#1{\PackageError{mathfont}
{Forbidden charm info contains #1}
{The argument of your \string\CharmLine\space
@@ -389,9 +412,15 @@
is a nonnegative integer. Right now it's\MessageBreak
"#2".^^J}}
\@ifpackageloaded{fontspec}
- {\csname bool_set_false:N\expandafter\endcsname
+ {\wlog{Package mathfont Info: Package fontspec detected.}
+ \wlog{Package mathfont Info: Setting \string\g__fontspec_math_bool
+ to false.}
+ \csname bool_set_false:N\expandafter\endcsname
\csname g__fontspec_math_bool\endcsname}
- {\PassOptionsToPackage{no-math}{fontspec}}
+ {\wlog{Package mathfont Info: Package fontspec not detected.}
+ \wlog{Package mathfont Info: Will pass no-math option to fontspec
+ if it gets loaded.}
+ \PassOptionsToPackage{no-math}{fontspec}}
\let\@@set@mathchar\set@mathchar
\let\@@set@mathsymbol\set@mathsymbol
\let\@@set@mathaccent\set@mathaccent
@@ -418,12 +447,17 @@
\advance\count\z@\count\tw@
\protected\xdef#2{%
\Umathaccent\mathchar@type#3+\number#1+\the\count\z@\relax}}
+\ifx\DeclareSymbolFont@m@dropped\@undefined
+ \edef\@tempa{\expandafter\strip@prefix\meaning\DeclareSymbolFont}
+ \def\@tempb{\def\DeclareSymbolFont##1##2##3##4##5}
+\else
+ \edef\@tempa{\expandafter\strip@prefix\meaning\DeclareSymbolFont@m@dropped}
+ \def\@tempb{\def\DeclareSymbolFont@m@dropped##1##2##3##4##5}
+\fi
\def\M@p@tch@decl@re#1<15#2\@nil{#1<\e@mathgroup@top#2}
-\edef\M@DecSymDef{\expandafter\expandafter\expandafter
- \M@p@tch@decl@re\expandafter\strip@prefix\meaning\DeclareSymbolFont\@nil}
-\def\@tempa{\def\DeclareSymbolFont##1##2##3##4##5}
+\edef\M@DecSymDef{\expandafter\M@p@tch@decl@re\@tempa\@nil}
\ifdefined\directlua
- \expandafter\@tempa\expandafter{\scantextokens\expandafter{\M@DecSymDef}}
+ \expandafter\@tempb\expandafter{\scantextokens\expandafter{\M@DecSymDef}}
\else
\begingroup
\everyeof{\noexpand}
@@ -431,12 +465,10 @@
\edef\M@retokenize{\noexpand\scantokens{\noexpand\unexpanded{\M@DecSymDef}}}
\edef\M@retokenize{\M@retokenize}
\expandafter\endgroup
- \expandafter\@tempa\expandafter{\M@retokenize}
+ \expandafter\@tempb\expandafter{\M@retokenize}
\fi
-\@onlypreamble\@@DeclareSymbolFont
\newbox\surdbox
\newcount\M@count
-\newcount\M@errcode
\newcount\M@rule@thickness@factor
\newcount\M@integral@italic@factor
\newcount\M@surd@vertical@factor
@@ -478,6 +510,7 @@
\newif\if@suboptionpresent
\newif\ifM@arg@good
\newif\ifM@Decl@reF@mily
+\newif\ifM@Decl@reF@milyB@se
\newif\ifM@fromCharmFile
\def\M@uppershape{italic} % latin upper
\def\M@lowershape{italic} % latin lower
@@ -503,39 +536,143 @@
\def\M@frakshape{upright} % fraktur
\def\M@bcalshape{upright} % bold caligraphic
\def\M@bfrakshape{upright} % bold fraktur
+\def\M@keys{upper,lower,diacritics,greekupper,%
+ greeklower,agreekupper,agreeklower,cyrillicupper,%
+ cyrilliclower,hebrew,digits,operator,delimiters,%
+ radical,bigops,extbigops,symbols,extsymbols,arrows,%
+ bb,cal,frak,bcal,bfrak}
\def\M@defaultkeys{upper,lower,diacritics,greekupper,%
greeklower,digits,operator,symbols}
\ifM@adjust@font
\edef\M@defaultkeys{\M@defaultkeys,delimiters,radical,bigops}
\fi
-\def\M@normalkeys{upper,lower,diacritics,greekupper,%
- greeklower,agreekupper,agreeklower,cyrillicupper,%
- cyrilliclower,hebrew,digits,operator,delimiters,%
- radical,bigops,extbigops,symbols,extsymbols,arrows}
-\def\M@letterlikekeys{bb,cal,frak,bcal,bfrak}
-\def\M@default@otf@features{script=latin;language=DFLT;%
+\def\M@otf@features{script=latin;language=DFLT;%
tlig=true;liga=true;smcp=false;lnum=true}
-\def\M@default@otf@features@sc{script=latin;language=DFLT;%
+\def\M@otf@features@sc{script=latin;language=DFLT;%
tlig=true;liga=true;smcp=true;lnum=true}
-\ifdefined\directlua
- \edef\M@default@otf@features{mode=base;\M@default@otf@features}
- \edef\M@default@otf@features@sc{mode=base;\M@default@otf@features@sc}
-\fi
+\def\M@split@colon#1:#2\@nil{%
+ \def\@tempbase{#1}
+ \def\@tempfeatures{#2}}
+\def\M@strip@colon#1:{#1}
+\def\M@fill@nfss@shapes#1#2{%
+ \ifcsname TU/#1/\mddefault/\shapedefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\mddefault}{\shapedefault}
+ {<->"\@tempbase:\M@otf@features;#2"}{}
+ \fi
+ \ifcsname TU/#1/\mddefault/\itdefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\mddefault}{\itdefault}
+ {<->"\@tempbase/I:\M@otf@features;#2"}{}
+ \fi
+ \ifcsname TU/#1/\bfdefault/\shapedefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\bfdefault}{\shapedefault}
+ {<->"\@tempbase/B:\M@otf@features;#2"}{}
+ \fi
+ \ifcsname TU/#1/\bfdefault/\itdefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\bfdefault}{\itdefault}
+ {<->"\@tempbase/BI:\M@otf@features;#2"}{}
+ \fi
+ \ifcsname TU/#1/\mddefault/\scdefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\mddefault}{\scdefault}
+ {<->"\@tempbase:\M@otf@features@sc;#2"}{}
+ \fi
+ \ifcsname TU/#1/\mddefault/\scdefault\itdefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\mddefault}{\scdefault\itdefault}
+ {<->"\@tempbase/I:\M@otf@features@sc;#2"}{}
+ \fi
+ \ifcsname TU/#1/\bfdefault/\scdefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\bfdefault}{\scdefault}
+ {<->"\@tempbase/B:\M@otf@features@sc;#2"}{}
+ \fi
+ \ifcsname TU/#1/\bfdefault/\scdefault\itdefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\bfdefault}{\scdefault\itdefault}
+ {<->"\@tempbase/BI:\M@otf@features@sc;#2"}{}
+ \fi}
+\def\M@newfont#1{%
+ \edef\@tempa{#1}
+ \expandafter\M@split@colon\@tempa:\@nil
+ \def\@tempb{fontspec}
+ \ifx\@tempa\@tempb
+ \@ifpackageloaded{fontspec}{%
+ \expandafter\ifx\csname l_fontspec_family_tl\endcsname\@empty
+ \M@NoFontspecFamilyError
+ \else
+ \expandafter
+ \let\expandafter\M@f@ntn@me\csname l_fontspec_family_tl\encsname
+ \def\@tempbase{\M@f@ntn@me\space(from fontspec)}
+ \let\M@f@ntn@meb@se\M@f@ntn@me % no separate font in base mode
+ \fi}{\M@NoFontspecError}
+ \else
+ \@ifpackageloaded{fontspec}
+ {\csname fontspec_set_family:Nnn\endcsname\M@f@ntn@me{}{\@tempa}
+ % no separate font in base mode
+ \let\M@f@ntn@meb@se\M@f@ntn@me}
+ {\M@Decl@reF@milytrue
+ \M@Decl@reF@milyB@setrue
+ \ifx\@tempfeatures\@empty
+ \ifdefined\directlua
+ \edef\@basefeatures{mode=base}
+ \else
+ \let\@basefeatures\@tempfeatures
+ \fi
+ \else
+ \edef\@tempfeatures{\expandafter\M@strip@colon\@tempfeatures}
+ \ifdefined\directlua
+ \edef\@basefeatures{\@tempfeatures;mode=base}
+ \else
+ \let\@basefeatures\@tempfeatures
+ \fi
+ \fi
+ \edef@nospace\@tempa{\@tempa}
+ \edef@nospace\@tempb{\@tempbase}
+ \M@Decl@reF@milytrue
+ \@tfor\@i:=\@tempa\@tempb\@tempbase\do{%
+ \ifcsname TU+\@i\endcsname
+ \expandafter\let\expandafter\M@f@ntn@me\@i
+ \M@Decl@reF@milyfalse
+ \M@fill@nfss@shapes\M@f@ntn@me\@tempfeatures
+ \@break@tfor
+ \fi}
+ \ifM@Decl@reF@mily
+ \let\M@f@ntn@me\@tempa
+ \wlog{Package mathfont Info: Adding \M@f@ntn@me\space to the nfss!}
+ \DeclareFontFamily{TU}{\M@f@ntn@me}{}
+ \M@fill@nfss@shapes\M@f@ntn@me\@tempfeatures
+ \fi
+ \ifdefined\directlua
+ \edef\M@f@ntn@meb@se{\M@f@ntn@me-base}
+ \else
+ \let\M@f@ntn@meb@se\M@f@ntn@me
+ \fi
+ \ifcsname TU+\M@f@ntn@meb@se\endcsname\else
+ \wlog{Package mathfont Info: Adding \M@f@ntn@meb@se\space
+ to the nfss!}
+ \DeclareFontFamily{TU}{\M@f@ntn@meb@se}{}
+ \fi
+ \M@fill@nfss@shapes\M@f@ntn@meb@se\@basefeatures}
+ \fi}
+\@onlypreamble\M@fill@nfss@shapes
+\@onlypreamble\M@newfont
\def\M@check@option@valid#1{%
\let\@temperror\M@InvalidOptionError % error by default
- \@for\@j:=\M@normalkeys\do{%
+ \@for\@j:=\M@keys\do{%
\ifx\@j#1
\let\@temperror\@gobble % eliminate error
\@optionpresenttrue % set switch to true
\fi}
- \@for\@j:=\M@letterlikekeys\do{%
- \ifx\@j#1
- \expandafter\M@CommandInitializeInfo\csname math#1\endcsname
- \csname define@#1\endcsname % initialize command
- \let\@temperror\@gobble % eliminate error
- \@optionpresenttrue % set switch to true
- \fi}
- \@temperror{#1}}
+ \def\@j{empty} % if option is "empty," we do nothing
+ \ifx\@j#1
+ \let\@temperror\@gobble
+ \@optionpresentfalse
+ \fi
+ \@temperror{#1}}
\def\M@check@suboption@valid#1{%
\let\@temperror\M@InvalidSuboptionError % error by default
\@for\@j:=roman,upright,italic\do{%
@@ -577,106 +714,7 @@
\long\def\edef@nospace#1#2{%
\edef#1{#2}%
\edef#1{\expandafter\zap@space#1 \@empty}}
-\def\M@split@colon#1:#2\@nil{%
- \def\@tempbase{#1}
- \def\@tempfeatures{#2}}
-\def\M@strip@colon#1:{#1}
-\def\M@check@in@nfss#1{%
- \ifcsname TU+#1\endcsname
- \let\M@f@ntn@me#1
- \ifcsname TU/#1/\mddefault/\shapedefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\mddefault}{\shapedefault}
- {<->"\@tempbase:\M@default@otf@features;\@tempfeatures"}{}
- \fi
- \ifcsname TU/#1/\mddefault/\itdefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\mddefault}{\itdefault}
- {<->"\@tempbase/I:\M@default@otf@features;\@tempfeatures"}{}
- \fi
- \ifcsname TU/#1/\bfdefault/\shapedefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\bfdefault}{\shapedefault}
- {<->"\@tempbase/B:\M@default@otf@features;\@tempfeatures"}{}
- \fi
- \ifcsname TU/#1/\bfdefault/\itdefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\bfdefault}{\itdefault}
- {<->"\@tempbase/BI:\M@default@otf@features;\@tempfeatures"}{}
- \fi
- \ifcsname TU/#1/\mddefault/\scdefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\mddefault}{\scdefault}
- {<->"\@tempbase:\M@default@otf@features@sc;\@tempfeatures"}{}
- \fi
- \ifcsname TU/#1/\mddefault/\scdefault\itdefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\mddefault}{\scdefault\itdefault}
- {<->"\@tempbase/I:\M@default@otf@features@sc;\@tempfeatures"}{}
- \fi
- \ifcsname TU/#1/\bfdefault/\scdefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\bfdefault}{\scdefault}
- {<->"\@tempbase/B:\M@default@otf@features@sc;\@tempfeatures"}{}
- \fi
- \ifcsname TU/#1/\bfdefault/\scdefault\itdefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\bfdefault}{\scdefault\itdefault}
- {<->"\@tempbase/BI:\M@default@otf@features@sc;\@tempfeatures"}{}
- \fi
- \M@Decl@reF@milyfalse
- \@break@tfor
- \fi}
-\def\M@newfont#1{%
- \edef\@tempa{#1}
- \expandafter\M@split@colon\@tempa:\@nil
- \def\@tempb{fontspec}
- \ifx\@tempa\@tempb
- \@ifpackageloaded{fontspec}{%
- \expandafter\ifx\csname l_fontspec_family_tl\endcsname\@empty
- \M@NoFontspecFamilyError
- \else
- \expandafter
- \let\expandafter\M@f@ntn@me\csname l_fontspec_family_tl\encsname
- \def\@tempbase{\M@f@ntn@me\space(from fontspec)}
- \fi}{\M@NoFontspecError}
- \else
- \@ifpackageloaded{fontspec}
- {\csname fontspec_set_family:Nnn\endcsname\M@f@ntn@me{}{\@tempa}}
- {\M@Decl@reF@milytrue
- \ifx\@tempfeatures\@empty\else
- \edef\@tempfeatures{\expandafter\M@strip@colon\@tempfeatures}
- \fi
- \edef@nospace\@tempa{\@tempa}
- \edef@nospace\@tempb{\@tempbase}
- \@tfor\@i:=\@tempa\@tempb\@tempbase\do{\expandafter\M@check@in@nfss\@i}
- \ifM@Decl@reF@mily
- \wlog{^^JPackage mathfont Info:
- Adding the font family \@tempa\space to the nfss.}
- \DeclareFontFamily{TU}{\@tempa}{}
- \let\M@f@ntn@me\@tempa
- \DeclareFontShape{TU}{\@tempa}{\mddefault}{\shapedefault}
- {<->"\@tempbase:\M@default@otf@features;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\mddefault}{\itdefault}
- {<->"\@tempbase/I:\M@default@otf@features;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\bfdefault}{\shapedefault}
- {<->"\@tempbase/B:\M@default@otf@features;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\bfdefault}{\itdefault}
- {<->"\@tempbase/BI:\M@default@otf@features;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\mddefault}{\scdefault}
- {<->"\@tempbase:\M@default@otf@features@sc;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\mddefault}{\scdefault\itdefault}
- {<->"\@tempbase/I:\M@default@otf@features@sc;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\bfdefault}{\scdefault}
- {<->"\@tempbase/B:\M@default@otf@features@sc;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\bfdefault}{\scdefault\itdefault}
- {<->"\@tempbase/BI:\M@default@otf@features@sc;\@tempfeatures"}{}
- \fi}
- \fi}
-\@onlypreamble\M@check@in@nfss
-\@onlypreamble\M@newfont
-\protected\def\mathfont{\@ifnextchar[{\m@thf@nt}{\@mathfont[\M@defaultkeys]}}
-\def\m@thf@nt[#1]{\@mathfont[#1]}
+\protected\def\mathfont{\@ifnextchar[{\@mathfont}{\@mathfont[\M@defaultkeys]}}
\def\@mathfont[#1]#2{%
\ifx\set@mathchar\@@set@mathchar
\M@InternalsRestoredError
@@ -684,8 +722,11 @@
\M@toks{}
\M@newfont{#2}
\expandafter\edef\csname M@fontfamily@#2\endcsname{\M@f@ntn@me}
+ \expandafter\edef\csname M@fontfamily@base@#2\endcsname{\M@f@ntn@meb@se}
\ifcsname M@fontid@\M@f@ntn@me\endcsname\else % need new \M@count value?
\expandafter\edef\csname M@fontid@\M@f@ntn@me\endcsname{\the\M@count}
+ \expandafter\let\csname M@fontid@\M@f@ntn@meb@se\expandafter\endcsname
+ \csname M@fontid@\M@f@ntn@me\endcsname
\advance\M@count\@ne
\fi
\edef\@tempa{\csname M@fontid@\M@f@ntn@me\endcsname}
@@ -712,13 +753,14 @@
\let\@tempb\itdefault
\fi
\ifcsname symM\@tempc\@tempa\endcsname\else
+ \M@SymbolFontInfo{\@tempbase}{\M@f@ntn@meb@se}
+ {\mddefault/\@tempb}{M\@tempc\@tempa}
\DeclareSymbolFont
- {M\@tempc\@tempa}{TU}{\M@f@ntn@me}{\mddefault}{\@tempb}
+ {M\@tempc\@tempa}{TU}{\M@f@ntn@meb@se}{\mddefault}{\@tempb}
\fi
\expandafter
\edef\csname M@\@temp@opt @fontinfo\endcsname{\@tempbase}
- \M@FontChangeInfo{\@temp@opt}{\@tempbase}{\M@f@ntn@me}
- {\mddefault/\@tempb}{M\@tempc\@tempa}
+ \M@FontChangeInfo{\@temp@opt}{\@tempbase}
\csname M@\@temp@opt @set\endcsname % set default font
\csname M@\@temp@opt true\endcsname % set switch to true
\fi
@@ -728,9 +770,10 @@
\wlog{The \string\mathfont\space command on line \the\inputlineno\space
did not change the font for any characters!}
\else
+ \wlog{}
\typeout{:: mathfont :: Using font \@tempbase\space
on line \the\inputlineno.}
- \wlog{Character classes changed:\the\M@toks^^J}
+ \wlog{Character classes changed:\the\M@toks}
\fi
\fi}
\@onlypreamble\mathfont
@@ -742,130 +785,60 @@
\setmathfontcommands{#1}
\let\rmdefault\M@f@ntn@me}
\@onlypreamble\setfont
-\ifM@adjust@font
- \protected\def\mathconstantsfont#1{%
- \edef\@tempa{\csname M@fontfamily@#1\endcsname}
- \ifx\@tempa\relax
- \PackageError{mathfont}{Invalid font specifier}
- {Your command was ignored--I can't parse your argument.\MessageBreak
- Please make sure to use text that you have previously\MessageBreak
- fed to \string\mathfont\space for the argument of
- \string\mathconstantsfont.^^J}
- \else
- \ifx\M@SetMathConstants\relax
- \protected\def\M@SetMathConstants{%
- \begingroup
- \escapechar\m@ne
- \expandafter\getanddefine@fonts
- \csname symMupright\csname M@fontid@\m@th@const@nts@font\endcsname
- \expandafter\endcsname % expands to \symMupright<id>
- \csname TU/\m@th@const@nts@font/\seriesdefault/\shapedefault
- \endcsname % expands to \TU/<nfss family name>/m/n
- \globaldefs\@ne
- \expandafter\@gobbletwo\math@fonts % gobble to avoid infinite loop
- \endgroup}
- \fi
- \let\m@th@const@nts@font\@tempa
- \fi}
+\ifdefined\directlua
\let\M@SetMathConstants\relax
- \def\math@fonts{\aftergroup\M@SetMathConstants}
- \@onlypreamble\mathconstantsfont
-\fi
-\def\M@check@mode#1{%
- \let\@tempa#1%
- \ifmmode
- \expandafter\@tempa
- \else
- \bgroup
- \escapechar\m@ne
- \expandafter
- \egroup
- \expandafter\M@HModeError\csname\expandafter\@gobble\string#1\endcsname
- \expandafter$\expandafter\@tempa
- \fi}
-\def\M@process@tokens#1#2{%
- \edef\@tempa{#1}%
- \expandafter\@tfor\expandafter\@k\expandafter:\expandafter=\@tempa\do{%
- \expandafter\M@check@token\expandafter{\@k}%
- \ifcase\M@errcode
- \csname M@#2@\@k\endcsname
- \or\expandafter\M@NestedArgWarning\csname math#2\endcsname{\@k}%
- \or\expandafter\M@CSArgWarning\csname math#2\endcsname{\@k}%
- \or\expandafter\M@CharacterArgWarning\csname math#2\endcsname{\@k}%
- \or\expandafter\M@DoubleArgWarning\csname math#2\endcsname{\@k}%
- \fi}}
-\def\M@check@token#1{%
- \M@errcode\z@
- \expandafter\ifx\expandafter\@nnil\@gobble#1\@nnil% good
- \expandafter\@gobble\expandafter{\ifcat\bgroup#1% bad
- \M@errcode\@ne
- \else}%
- \ifcat\relax\noexpand#1% bad
- \M@errcode\tw@
+ \protected\def\mathconstantsfont{\@ifnextchar[{\@mathconstantsfont}
+ {\@mathconstantsfont[upright]}}
+ \def\@mathconstantsfont[#1]#2{%
+ \edef\@tempa{\csname M@fontfamily@base@#2\endcsname}
+ \expandafter\ifx\@tempa\relax
+ \M@BadMathConstantsFontError{#2}
+ \else
+ \def\@tempb{#1}
+ \def\@tempc{upright}
+ \ifx\@tempb\@tempc
+ \let\@tempc\shapedefault
\else
- \ifnum\catcode`#1=11\relax% good
+ \def\@tempc{italic}
+ \ifx\@tempb\@tempc
+ \let\@tempc\itdefault
\else
- \if 0#1% good
- \else
- \if 1#1% good
- \else
- \if 2#1% good
- \else
- \if 3#1% good
- \else
- \if 4#1% good
- \else
- \if 5#1% good
- \else
- \if 6#1% good
- \else
- \if 7#1% good
- \else
- \if 8#1% good
- \else
- \if 9#1% good
- \else
- \M@errcode\thr@@
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
+ \M@BadMathConstantsFontTypeError{#1}
\fi
\fi
- \fi
- \else% matches the original \ifx\@nnil, etc.
- \M@errcode=4\relax
- \fi}
-\def\define@bb{%
- \protected\def\mathbb{\M@check@mode\@mathbb}%
- \def\@mathbb##1{\M@process@tokens{##1}{bb}}}
-\def\define@cal{%
- \protected\def\mathcal{\M@check@mode\@mathcal}%
- \def\@mathcal##1{\M@process@tokens{##1}{cal}}}
-\def\define@frak{%
- \protected\def\mathfrak{\M@check@mode\@mathfrak}%
- \def\@mathfrak##1{\M@process@tokens{##1}{frak}}}
-\def\define@bcal{%
- \protected\def\mathbcal{\M@check@mode\@mathbcal}%
- \def\@mathbcal##1{\M@process@tokens{##1}{bcal}}}
-\def\define@bfrak{%
- \protected\def\mathbfrak{\M@check@mode\@mathbfrak}%
- \def\@mathbfrak##1{\M@process@tokens{##1}{bfrak}}}
+ \ifcsname symM#1\csname M@fontid@\@tempa\endcsname\endcsname\else
+ \DeclareSymbolFont{M#1\csname M@fontid@\@tempa\endcsname}
+ {TU}{\@tempa}{\mddefault}{\@tempc}
+ \fi
+ \let\m@th@const@nts@font\@tempa
+ \protected\def\M@SetMathConstants{%
+ \begingroup
+ \escapechar\m@ne
+ \expandafter\getanddefine@fonts
+ \csname symM#1\csname M@fontid@\m@th@const@nts@font\endcsname
+ \expandafter
+ \endcsname % expands to \symMupright<id>
+ \csname TU/\m@th@const@nts@font/\seriesdefault/\@tempc
+ \endcsname % expands to \TU/<nfss family name>/m/<shape>
+ \globaldefs\@ne
+ \expandafter\@gobbletwo\math@fonts % gobble to avoid infinite loop
+ \endgroup}
+ \fi}
+ \def\math@fonts{\aftergroup\M@SetMathConstants}
+\else
+ \protected\def\mathconstantsfont{\M@LuaTeXOnlyWarning
+ \@ifnextchar[\@gobbletwo@brackets\@gobble}
+\fi
+\@onlypreamble\mathconstantsfont
\def\M@check@csarg#1#2{%
- \expandafter\ifx\expandafter\@nnil\@gobble#2\@nnil% good
- \ifcat\relax\noexpand#2% good
+ \expandafter\ifx\expandafter\@nnil\@gobble#2\@nnil % good
+ \ifcat\relax\noexpand#2 % good
\M@arg@goodtrue
- \else
+ \else % if #2 not a control sequence
\M@MissingControlSequenceError#1{#2}
\M@arg@goodfalse
\fi
- \else
+ \else % if #2 is multiple tokens
\M@DoubleArgError#1{#2}
\M@arg@goodfalse
\fi}
@@ -873,8 +846,8 @@
\M@check@csarg\newmathfontcommand{#1}
\ifM@arg@good
\M@newfont{#2}
- \M@NewFontCommandInfo{#1}{\@tempbase}{\M@f@ntn@me}{#3}{#4}
- \DeclareMathAlphabet{#1}{TU}{\M@f@ntn@me}{#3}{#4}
+ \M@NewFontCommandInfo{#1}{\@tempbase}{\M@f@ntn@meb@se}{#3}{#4}
+ \DeclareMathAlphabet{#1}{TU}{\M@f@ntn@meb@se}{#3}{#4}
\fi}
\@onlypreamble\newmathfontcommand
\def\M@define@newmath@cmd#1#2#3{%
@@ -912,11 +885,9 @@
\newmathbfscit\mathbfscit{#1}}
\@onlypreamble\setmathfontcommands
\protected\def\newmathbold{%
- \M@DeprecatedWarning\newmathbold\newmathbf
- \newmathbf}
+ \M@DeprecatedWarning\newmathbold\newmathbf\newmathbf}
\protected\def\newmathboldit{%
- \M@DeprecatedWarning\newmathboldit\newmathbfit
- \newmathbfit}
+ \M@DeprecatedWarning\newmathboldit\newmathbfit\newmathbfit}
\ifM@adjust@font
\def\M@check@int#1{%
\M@arg@goodfalse
@@ -928,7 +899,7 @@
\endgroup % first branch \endgroup
\else
\@expandtwoargs\in@{\@backslashchar}{\@tempa}
- \ifin@ % is \ in #1?
+ \ifin@ % is backslash in #1?
\endgroup % second branch \endgroup
\else
\directlua{
@@ -943,28 +914,28 @@
end}
\fi
\fi}
- \def\RuleThicknessFactor#1{%
+ \protected\def\RuleThicknessFactor#1{%
\M@check@int{#1}
\ifM@arg@good
\global\M@rule@thickness@factor=#1\relax
\else
\M@BadIntegerError\RuleThicknessFactor{#1}
\fi}
- \def\IntegralItalicFactor#1{%
+ \protected\def\IntegralItalicFactor#1{%
\M@check@int{#1}
\ifM@arg@good
\global\M@integral@italic@factor=#1\relax
\else
\M@BadIntegerError\IntegralItalicFactor{#1}
\fi}
- \def\SurdHorizontalFactor#1{%
+ \protected\def\SurdHorizontalFactor#1{%
\M@check@int{#1}
\ifM@arg@good
\global\M@surd@horizontal@factor=#1\relax
\else
\M@BadIntegerError\SurdHorizontalFactor{#1}
\fi}
- \def\SurdVerticalFactor#1{%
+ \protected\def\SurdVerticalFactor#1{%
\M@check@int{#1}
\ifM@arg@good
\global\M@surd@vertical@factor=#1\relax
@@ -973,9 +944,9 @@
\fi}
\else
\@tfor\@i:=\RuleThicknessFactor\IntegralItalicFactor\SurdHorizontalFactor
- \SurdVerticalFactor\CharmLine\CharmFile\mathconstantsfont
+ \SurdVerticalFactor\CharmLine\CharmFile
\do{%
- \expandafter\edef\@i{\noexpand\M@NoFontAdjustError
+ \protected\expandafter\edef\@i{\noexpand\M@NoFontAdjustError
\expandafter\noexpand\@i
\noexpand\@gobble}}
\fi
@@ -1030,26 +1001,6 @@
manually}}
\fi
\fi
-\AtBeginDocument{%
- \bgroup\@tempswafalse
- \ifM@bb
- \@tempswatrue
- \else\ifM@cal
- \@tempswatrue
- \else\ifM@frak
- \@tempawatrue
- \else\ifM@bfrak
- \@tempswatrue
- \fi
- \fi
- \fi
- \fi
- \expandafter\egroup\if@tempswa
- \@ifpackageloaded{amsmath}{\PackageWarningNoLine{mathfont}
- {\MessageBreak Package amsmath detected. Some warning\MessageBreak
- messages for letterlike characters may be\MessageBreak
- duplicated inside the align environment}}{}
- \fi}
\def\keyword@info@begindocument#1:#2\@nil{%
\expandafter\ifx % next line is two cs to be compared
\csname ifM@#1\expandafter\endcsname\csname iftrue\endcsname
@@ -1060,7 +1011,7 @@
\wlog{#1:#2\@spaces No change.}
\fi}
\AtBeginDocument{%
- \def\@tempa{% <---- everything should be 13 characters long plus :
+ \def\@tempa{% <-- everything should be 14 characters long
upper:\@spaces\@spaces,%
lower:\@spaces\@spaces,%
diacritics:\space\space\space,%
@@ -1085,7 +1036,7 @@
frak:\@spaces\@spaces\space,%
bcal:\@spaces\@spaces\space,%
bfrak:\@spaces\@spaces}
- \wlog{^^JPackage mathfont Info: List of changes made in the preamble---}
+ \wlog{^^JPackage mathfont Info: List of changes made in the preamble.}
\@for\@i:=\@tempa\do{%
\expandafter\keyword@info@begindocument\@i\@nil}
\wlog{}}
@@ -1155,7 +1106,7 @@
\fi
\else
\@expandtwoargs\in@{\@backslashchar}{\@tempa}
- \ifin@ % is \ in #1?
+ \ifin@ % is backslash in #1?
\ifM@fromCharmFile
\M@ForbiddenCharmFile{\@backslashchar}
\else
@@ -1953,7 +1904,7 @@ local delim_glyphs = {40, % (
41, % )
47, % /
91, % [
- 92, % \
+ 92, % backslash
93, % ]
123, % {
125, % }
@@ -2384,7 +2335,7 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale)
\def\M@operator@set{%
\ifM@adjust@font
\edef\M@operator@num{\number\csname symM\M@operatorshape\@tempa\endcsname}
- \def\M@default@latin@operator{%
+ \protected\edef\M@operator@mathcodes{%
\Umathcode`A=7+\M@operator@num+`A\relax
\Umathcode`B=7+\M@operator@num+`B\relax
\Umathcode`C=7+\M@operator@num+`C\relax
@@ -2440,10 +2391,10 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale)
\Umathchardef\imath=7+\M@operator@num+1044506\relax
\Umathchardef\jmath=7+\M@operator@num+1044500\relax}
\else
- \let\M@default@latin@operator\@empty
+ \let\M@operator@mathcodes\@empty
\fi
\xdef\operator@font{\noexpand\mathgroup
- \csname symM\M@operatorshape\@tempa\endcsname\M@default@latin@operator}}
+ \csname symM\M@operatorshape\@tempa\endcsname\M@operator@mathcodes}}
\ifM@adjust@font
\def\M@delimiters@set{%
\edef\M@delimiters@font{M\M@delimitersshape\@tempa}
@@ -2466,7 +2417,7 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale)
\protected\gdef\backslash{\ifmmode\mathbackslash\else\textbackslash\fi}
\protected\xdef\mathbackslash{%
\Udelimiter+2+\number\csname sym\M@delimiters@font\endcsname
- +92\relax} % \
+ +92\relax} % backslash
\protected\xdef\lbrace{%
\Udelimiter+4+\number\csname sym\M@delimiters@font\endcsname
+123\relax} % {
@@ -2537,7 +2488,7 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale)
\gdef\sqrtsign##1{\@sqrts@gn{\mkern\radicandoffset##1}}}
\else
\def\M@radical@set{%
- \edef\M@radical@font{M\@radicalshape\@tempa}
+ \edef\M@radical@font{M\M@radicalshape\@tempa}
\DeclareMathSymbol{\surd}{\mathord}{\M@radical@font}{"221A}}
\fi
\def\M@bigops@set{%
@@ -2971,295 +2922,335 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale)
\DeclareMathSymbol{\lcirclearrow}{\mathrel}{\M@arrows@font}{"27F2}
\DeclareMathSymbol{\rcirclearrow}{\mathrel}{\M@arrows@font}{"27F3}}
\def\M@bb@set{%
- \edef\M@bb@font{M\M@bbshape\@tempa}
- \DeclareMathSymbol{\M@bb@A}{\mathord}{\M@bb@font}{"1D538}
- \DeclareMathSymbol{\M@bb@B}{\mathord}{\M@bb@font}{"1D539}
- \DeclareMathSymbol{\M@bb@C}{\mathord}{\M@bb@font}{"2102}
- \DeclareMathSymbol{\M@bb@D}{\mathord}{\M@bb@font}{"1D53B}
- \DeclareMathSymbol{\M@bb@E}{\mathord}{\M@bb@font}{"1D53C}
- \DeclareMathSymbol{\M@bb@F}{\mathord}{\M@bb@font}{"1D53D}
- \DeclareMathSymbol{\M@bb@G}{\mathord}{\M@bb@font}{"1D53E}
- \DeclareMathSymbol{\M@bb@H}{\mathord}{\M@bb@font}{"210D}
- \DeclareMathSymbol{\M@bb@I}{\mathord}{\M@bb@font}{"1D540}
- \DeclareMathSymbol{\M@bb@J}{\mathord}{\M@bb@font}{"1D541}
- \DeclareMathSymbol{\M@bb@K}{\mathord}{\M@bb@font}{"1D542}
- \DeclareMathSymbol{\M@bb@L}{\mathord}{\M@bb@font}{"1D543}
- \DeclareMathSymbol{\M@bb@M}{\mathord}{\M@bb@font}{"1D544}
- \DeclareMathSymbol{\M@bb@N}{\mathord}{\M@bb@font}{"2115}
- \DeclareMathSymbol{\M@bb@O}{\mathord}{\M@bb@font}{"1D546}
- \DeclareMathSymbol{\M@bb@P}{\mathord}{\M@bb@font}{"2119}
- \DeclareMathSymbol{\M@bb@Q}{\mathord}{\M@bb@font}{"211A}
- \DeclareMathSymbol{\M@bb@R}{\mathord}{\M@bb@font}{"211D}
- \DeclareMathSymbol{\M@bb@S}{\mathord}{\M@bb@font}{"1D54A}
- \DeclareMathSymbol{\M@bb@T}{\mathord}{\M@bb@font}{"1D54B}
- \DeclareMathSymbol{\M@bb@U}{\mathord}{\M@bb@font}{"1D54C}
- \DeclareMathSymbol{\M@bb@V}{\mathord}{\M@bb@font}{"1D54D}
- \DeclareMathSymbol{\M@bb@W}{\mathord}{\M@bb@font}{"1D54E}
- \DeclareMathSymbol{\M@bb@X}{\mathord}{\M@bb@font}{"1D54F}
- \DeclareMathSymbol{\M@bb@Y}{\mathord}{\M@bb@font}{"1D550}
- \DeclareMathSymbol{\M@bb@Z}{\mathord}{\M@bb@font}{"2124}
- \DeclareMathSymbol{\M@bb@a}{\mathord}{\M@bb@font}{"1D552}
- \DeclareMathSymbol{\M@bb@b}{\mathord}{\M@bb@font}{"1D553}
- \DeclareMathSymbol{\M@bb@c}{\mathord}{\M@bb@font}{"1D554}
- \DeclareMathSymbol{\M@bb@d}{\mathord}{\M@bb@font}{"1D555}
- \DeclareMathSymbol{\M@bb@e}{\mathord}{\M@bb@font}{"1D556}
- \DeclareMathSymbol{\M@bb@f}{\mathord}{\M@bb@font}{"1D557}
- \DeclareMathSymbol{\M@bb@g}{\mathord}{\M@bb@font}{"1D558}
- \DeclareMathSymbol{\M@bb@h}{\mathord}{\M@bb@font}{"1D559}
- \DeclareMathSymbol{\M@bb@i}{\mathord}{\M@bb@font}{"1D55A}
- \DeclareMathSymbol{\M@bb@j}{\mathord}{\M@bb@font}{"1D55B}
- \DeclareMathSymbol{\M@bb@k}{\mathord}{\M@bb@font}{"1D55C}
- \DeclareMathSymbol{\M@bb@l}{\mathord}{\M@bb@font}{"1D55D}
- \DeclareMathSymbol{\M@bb@m}{\mathord}{\M@bb@font}{"1D55E}
- \DeclareMathSymbol{\M@bb@n}{\mathord}{\M@bb@font}{"1D55F}
- \DeclareMathSymbol{\M@bb@o}{\mathord}{\M@bb@font}{"1D560}
- \DeclareMathSymbol{\M@bb@p}{\mathord}{\M@bb@font}{"1D561}
- \DeclareMathSymbol{\M@bb@q}{\mathord}{\M@bb@font}{"1D562}
- \DeclareMathSymbol{\M@bb@r}{\mathord}{\M@bb@font}{"1D563}
- \DeclareMathSymbol{\M@bb@s}{\mathord}{\M@bb@font}{"1D564}
- \DeclareMathSymbol{\M@bb@t}{\mathord}{\M@bb@font}{"1D565}
- \DeclareMathSymbol{\M@bb@u}{\mathord}{\M@bb@font}{"1D566}
- \DeclareMathSymbol{\M@bb@v}{\mathord}{\M@bb@font}{"1D567}
- \DeclareMathSymbol{\M@bb@w}{\mathord}{\M@bb@font}{"1D568}
- \DeclareMathSymbol{\M@bb@x}{\mathord}{\M@bb@font}{"1D569}
- \DeclareMathSymbol{\M@bb@y}{\mathord}{\M@bb@font}{"1D56A}
- \DeclareMathSymbol{\M@bb@z}{\mathord}{\M@bb@font}{"1D56B}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@0\endcsname}{\mathord}{\M@bb@font}{"1D7D8}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@1\endcsname}{\mathord}{\M@bb@font}{"1D7D9}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@2\endcsname}{\mathord}{\M@bb@font}{"1D7DA}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@3\endcsname}{\mathord}{\M@bb@font}{"1D7DB}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@4\endcsname}{\mathord}{\M@bb@font}{"1D7DC}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@5\endcsname}{\mathord}{\M@bb@font}{"1D7DD}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@6\endcsname}{\mathord}{\M@bb@font}{"1D7DE}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@7\endcsname}{\mathord}{\M@bb@font}{"1D7DF}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@8\endcsname}{\mathord}{\M@bb@font}{"1D7E0}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@9\endcsname}{\mathord}{\M@bb@font}{"1D7E1}}
+ \protected\def\mathbb##1{\relax
+ \ifmmode\else
+ \M@HModeError\mathbb
+ $%
+ \fi
+ \begingroup
+ \M@bb@mathcodes
+ ##1%
+ \endgroup}
+ \edef\M@bb@num{\number\csname symM\M@bbshape\@tempa\endcsname}
+ \protected\edef\M@bb@mathcodes{%
+ \Umathcode`A=0+\M@bb@num"1D538\relax
+ \Umathcode`B=0+\M@bb@num"1D539\relax
+ \Umathcode`C=0+\M@bb@num"2102\relax
+ \Umathcode`D=0+\M@bb@num"1D53B\relax
+ \Umathcode`E=0+\M@bb@num"1D53C\relax
+ \Umathcode`F=0+\M@bb@num"1D53D\relax
+ \Umathcode`G=0+\M@bb@num"1D53E\relax
+ \Umathcode`H=0+\M@bb@num"210D\relax
+ \Umathcode`I=0+\M@bb@num"1D540\relax
+ \Umathcode`J=0+\M@bb@num"1D541\relax
+ \Umathcode`K=0+\M@bb@num"1D542\relax
+ \Umathcode`L=0+\M@bb@num"1D543\relax
+ \Umathcode`M=0+\M@bb@num"1D544\relax
+ \Umathcode`N=0+\M@bb@num"2115\relax
+ \Umathcode`O=0+\M@bb@num"1D546\relax
+ \Umathcode`P=0+\M@bb@num"2119\relax
+ \Umathcode`Q=0+\M@bb@num"211A\relax
+ \Umathcode`R=0+\M@bb@num"211D\relax
+ \Umathcode`S=0+\M@bb@num"1D54A\relax
+ \Umathcode`T=0+\M@bb@num"1D54B\relax
+ \Umathcode`U=0+\M@bb@num"1D54C\relax
+ \Umathcode`V=0+\M@bb@num"1D54D\relax
+ \Umathcode`W=0+\M@bb@num"1D54E\relax
+ \Umathcode`X=0+\M@bb@num"1D54F\relax
+ \Umathcode`Y=0+\M@bb@num"1D550\relax
+ \Umathcode`Z=0+\M@bb@num"2124\relax
+ \Umathcode`a=0+\M@bb@num"1D552\relax
+ \Umathcode`b=0+\M@bb@num"1D553\relax
+ \Umathcode`c=0+\M@bb@num"1D554\relax
+ \Umathcode`d=0+\M@bb@num"1D555\relax
+ \Umathcode`e=0+\M@bb@num"1D556\relax
+ \Umathcode`f=0+\M@bb@num"1D557\relax
+ \Umathcode`g=0+\M@bb@num"1D558\relax
+ \Umathcode`h=0+\M@bb@num"1D559\relax
+ \Umathcode`i=0+\M@bb@num"1D55A\relax
+ \Umathcode`j=0+\M@bb@num"1D55B\relax
+ \Umathcode`k=0+\M@bb@num"1D55C\relax
+ \Umathcode`l=0+\M@bb@num"1D55D\relax
+ \Umathcode`m=0+\M@bb@num"1D55E\relax
+ \Umathcode`n=0+\M@bb@num"1D55F\relax
+ \Umathcode`o=0+\M@bb@num"1D560\relax
+ \Umathcode`p=0+\M@bb@num"1D561\relax
+ \Umathcode`q=0+\M@bb@num"1D562\relax
+ \Umathcode`r=0+\M@bb@num"1D563\relax
+ \Umathcode`s=0+\M@bb@num"1D564\relax
+ \Umathcode`t=0+\M@bb@num"1D565\relax
+ \Umathcode`u=0+\M@bb@num"1D566\relax
+ \Umathcode`v=0+\M@bb@num"1D567\relax
+ \Umathcode`w=0+\M@bb@num"1D568\relax
+ \Umathcode`x=0+\M@bb@num"1D569\relax
+ \Umathcode`y=0+\M@bb@num"1D56A\relax
+ \Umathcode`z=0+\M@bb@num"1D56B\relax
+ \Umathcode`0=0+\M@bb@num"1D7D8\relax
+ \Umathcode`1=0+\M@bb@num"1D7D9\relax
+ \Umathcode`2=0+\M@bb@num"1D7DA\relax
+ \Umathcode`3=0+\M@bb@num"1D7DB\relax
+ \Umathcode`4=0+\M@bb@num"1D7DC\relax
+ \Umathcode`5=0+\M@bb@num"1D7DD\relax
+ \Umathcode`6=0+\M@bb@num"1D7DE\relax
+ \Umathcode`7=0+\M@bb@num"1D7DF\relax
+ \Umathcode`8=0+\M@bb@num"1D7E0\relax
+ \Umathcode`9=0+\M@bb@num"1D7E1\relax}}
\def\M@cal@set{%
- \edef\M@cal@font{M\M@calshape\@tempa}
- \DeclareMathSymbol{\M@cal@A}{\mathord}{\M@cal@font}{"1D49C}
- \DeclareMathSymbol{\M@cal@B}{\mathord}{\M@cal@font}{"212C}
- \DeclareMathSymbol{\M@cal@C}{\mathord}{\M@cal@font}{"1D49E}
- \DeclareMathSymbol{\M@cal@D}{\mathord}{\M@cal@font}{"1D49F}
- \DeclareMathSymbol{\M@cal@E}{\mathord}{\M@cal@font}{"2130}
- \DeclareMathSymbol{\M@cal@F}{\mathord}{\M@cal@font}{"2131}
- \DeclareMathSymbol{\M@cal@G}{\mathord}{\M@cal@font}{"1D4A2}
- \DeclareMathSymbol{\M@cal@H}{\mathord}{\M@cal@font}{"210B}
- \DeclareMathSymbol{\M@cal@I}{\mathord}{\M@cal@font}{"2110}
- \DeclareMathSymbol{\M@cal@J}{\mathord}{\M@cal@font}{"1D4A5}
- \DeclareMathSymbol{\M@cal@K}{\mathord}{\M@cal@font}{"1D4A6}
- \DeclareMathSymbol{\M@cal@L}{\mathord}{\M@cal@font}{"2112}
- \DeclareMathSymbol{\M@cal@M}{\mathord}{\M@cal@font}{"2133}
- \DeclareMathSymbol{\M@cal@N}{\mathord}{\M@cal@font}{"1D4A9}
- \DeclareMathSymbol{\M@cal@O}{\mathord}{\M@cal@font}{"1D4AA}
- \DeclareMathSymbol{\M@cal@P}{\mathord}{\M@cal@font}{"1D4AB}
- \DeclareMathSymbol{\M@cal@Q}{\mathord}{\M@cal@font}{"1D4AC}
- \DeclareMathSymbol{\M@cal@R}{\mathord}{\M@cal@font}{"211B}
- \DeclareMathSymbol{\M@cal@S}{\mathord}{\M@cal@font}{"1D4AE}
- \DeclareMathSymbol{\M@cal@T}{\mathord}{\M@cal@font}{"1D4AF}
- \DeclareMathSymbol{\M@cal@U}{\mathord}{\M@cal@font}{"1D4B0}
- \DeclareMathSymbol{\M@cal@V}{\mathord}{\M@cal@font}{"1D4B1}
- \DeclareMathSymbol{\M@cal@W}{\mathord}{\M@cal@font}{"1D4B2}
- \DeclareMathSymbol{\M@cal@X}{\mathord}{\M@cal@font}{"1D4B3}
- \DeclareMathSymbol{\M@cal@Y}{\mathord}{\M@cal@font}{"1D4B4}
- \DeclareMathSymbol{\M@cal@Z}{\mathord}{\M@cal@font}{"1D4B5}
- \DeclareMathSymbol{\M@cal@a}{\mathord}{\M@cal@font}{"1D4B6}
- \DeclareMathSymbol{\M@cal@b}{\mathord}{\M@cal@font}{"1D4B7}
- \DeclareMathSymbol{\M@cal@c}{\mathord}{\M@cal@font}{"1D4B8}
- \DeclareMathSymbol{\M@cal@d}{\mathord}{\M@cal@font}{"1D4B9}
- \DeclareMathSymbol{\M@cal@e}{\mathord}{\M@cal@font}{"212F}
- \DeclareMathSymbol{\M@cal@f}{\mathord}{\M@cal@font}{"1D4BB}
- \DeclareMathSymbol{\M@cal@g}{\mathord}{\M@cal@font}{"210A}
- \DeclareMathSymbol{\M@cal@h}{\mathord}{\M@cal@font}{"1D4BD}
- \DeclareMathSymbol{\M@cal@i}{\mathord}{\M@cal@font}{"1D4BE}
- \DeclareMathSymbol{\M@cal@j}{\mathord}{\M@cal@font}{"1D4BF}
- \DeclareMathSymbol{\M@cal@k}{\mathord}{\M@cal@font}{"1D4C0}
- \DeclareMathSymbol{\M@cal@l}{\mathord}{\M@cal@font}{"1D4C1}
- \DeclareMathSymbol{\M@cal@m}{\mathord}{\M@cal@font}{"1D4C2}
- \DeclareMathSymbol{\M@cal@n}{\mathord}{\M@cal@font}{"1D4C3}
- \DeclareMathSymbol{\M@cal@o}{\mathord}{\M@cal@font}{"2134}
- \DeclareMathSymbol{\M@cal@p}{\mathord}{\M@cal@font}{"1D4C5}
- \DeclareMathSymbol{\M@cal@q}{\mathord}{\M@cal@font}{"1D4C6}
- \DeclareMathSymbol{\M@cal@r}{\mathord}{\M@cal@font}{"1D4C7}
- \DeclareMathSymbol{\M@cal@s}{\mathord}{\M@cal@font}{"1D4C8}
- \DeclareMathSymbol{\M@cal@t}{\mathord}{\M@cal@font}{"1D4C9}
- \DeclareMathSymbol{\M@cal@u}{\mathord}{\M@cal@font}{"1D4CA}
- \DeclareMathSymbol{\M@cal@v}{\mathord}{\M@cal@font}{"1D4CB}
- \DeclareMathSymbol{\M@cal@w}{\mathord}{\M@cal@font}{"1D4CC}
- \DeclareMathSymbol{\M@cal@x}{\mathord}{\M@cal@font}{"1D4CD}
- \DeclareMathSymbol{\M@cal@y}{\mathord}{\M@cal@font}{"1D4CE}
- \DeclareMathSymbol{\M@cal@z}{\mathord}{\M@cal@font}{"1D4CF}}
+ \protected\def\mathcal##1{\relax
+ \ifmmode\else
+ \M@HModeError\mathcal
+ $%
+ \fi
+ \begingroup
+ \M@cal@mathcodes
+ ##1%
+ \endgroup}
+ \edef\M@cal@num{\number\csname symM\M@calshape\@tempa\endcsname}
+ \protected\edef\M@cal@mathcodes{%
+ \Umathcode`A=0+\M@cal@num"1D49C\relax
+ \Umathcode`B=0+\M@cal@num"212C\relax
+ \Umathcode`C=0+\M@cal@num"1D49E\relax
+ \Umathcode`D=0+\M@cal@num"1D49F\relax
+ \Umathcode`E=0+\M@cal@num"2130\relax
+ \Umathcode`F=0+\M@cal@num"2131\relax
+ \Umathcode`G=0+\M@cal@num"1D4A2\relax
+ \Umathcode`H=0+\M@cal@num"210B\relax
+ \Umathcode`I=0+\M@cal@num"2110\relax
+ \Umathcode`J=0+\M@cal@num"1D4A5\relax
+ \Umathcode`K=0+\M@cal@num"1D4A6\relax
+ \Umathcode`L=0+\M@cal@num"2112\relax
+ \Umathcode`M=0+\M@cal@num"2133\relax
+ \Umathcode`N=0+\M@cal@num"1D4A9\relax
+ \Umathcode`O=0+\M@cal@num"1D4AA\relax
+ \Umathcode`P=0+\M@cal@num"1D4AB\relax
+ \Umathcode`Q=0+\M@cal@num"1D4AC\relax
+ \Umathcode`R=0+\M@cal@num"211B\relax
+ \Umathcode`S=0+\M@cal@num"1D4AE\relax
+ \Umathcode`T=0+\M@cal@num"1D4AF\relax
+ \Umathcode`U=0+\M@cal@num"1D4B0\relax
+ \Umathcode`V=0+\M@cal@num"1D4B1\relax
+ \Umathcode`W=0+\M@cal@num"1D4B2\relax
+ \Umathcode`X=0+\M@cal@num"1D4B3\relax
+ \Umathcode`Y=0+\M@cal@num"1D4B4\relax
+ \Umathcode`Z=0+\M@cal@num"1D4B5\relax
+ \Umathcode`a=0+\M@cal@num"1D4B6\relax
+ \Umathcode`b=0+\M@cal@num"1D4B7\relax
+ \Umathcode`c=0+\M@cal@num"1D4B8\relax
+ \Umathcode`d=0+\M@cal@num"1D4B9\relax
+ \Umathcode`e=0+\M@cal@num"212F\relax
+ \Umathcode`f=0+\M@cal@num"1D4BB\relax
+ \Umathcode`g=0+\M@cal@num"210A\relax
+ \Umathcode`h=0+\M@cal@num"1D4BD\relax
+ \Umathcode`i=0+\M@cal@num"1D4BE\relax
+ \Umathcode`j=0+\M@cal@num"1D4BF\relax
+ \Umathcode`k=0+\M@cal@num"1D4C0\relax
+ \Umathcode`l=0+\M@cal@num"1D4C1\relax
+ \Umathcode`m=0+\M@cal@num"1D4C2\relax
+ \Umathcode`n=0+\M@cal@num"1D4C3\relax
+ \Umathcode`o=0+\M@cal@num"2134\relax
+ \Umathcode`p=0+\M@cal@num"1D4C5\relax
+ \Umathcode`q=0+\M@cal@num"1D4C6\relax
+ \Umathcode`r=0+\M@cal@num"1D4C7\relax
+ \Umathcode`s=0+\M@cal@num"1D4C8\relax
+ \Umathcode`t=0+\M@cal@num"1D4C9\relax
+ \Umathcode`u=0+\M@cal@num"1D4CA\relax
+ \Umathcode`v=0+\M@cal@num"1D4CB\relax
+ \Umathcode`w=0+\M@cal@num"1D4CC\relax
+ \Umathcode`x=0+\M@cal@num"1D4CD\relax
+ \Umathcode`y=0+\M@cal@num"1D4CE\relax
+ \Umathcode`z=0+\M@cal@num"1D4CF\relax}}
\def\M@frak@set{%
- \edef\M@frak@font{M\M@frakshape\@tempa}
- \DeclareMathSymbol{\M@frak@A}{\mathord}{\M@frak@font}{"1D504}
- \DeclareMathSymbol{\M@frak@B}{\mathord}{\M@frak@font}{"1D505}
- \DeclareMathSymbol{\M@frak@C}{\mathord}{\M@frak@font}{"212D}
- \DeclareMathSymbol{\M@frak@D}{\mathord}{\M@frak@font}{"1D507}
- \DeclareMathSymbol{\M@frak@E}{\mathord}{\M@frak@font}{"1D508}
- \DeclareMathSymbol{\M@frak@F}{\mathord}{\M@frak@font}{"1D509}
- \DeclareMathSymbol{\M@frak@G}{\mathord}{\M@frak@font}{"1D50A}
- \DeclareMathSymbol{\M@frak@H}{\mathord}{\M@frak@font}{"210C}
- \DeclareMathSymbol{\M@frak@I}{\mathord}{\M@frak@font}{"2111}
- \DeclareMathSymbol{\M@frak@J}{\mathord}{\M@frak@font}{"1D50D}
- \DeclareMathSymbol{\M@frak@K}{\mathord}{\M@frak@font}{"1D50E}
- \DeclareMathSymbol{\M@frak@L}{\mathord}{\M@frak@font}{"1D50F}
- \DeclareMathSymbol{\M@frak@M}{\mathord}{\M@frak@font}{"1D510}
- \DeclareMathSymbol{\M@frak@N}{\mathord}{\M@frak@font}{"1D511}
- \DeclareMathSymbol{\M@frak@O}{\mathord}{\M@frak@font}{"1D512}
- \DeclareMathSymbol{\M@frak@P}{\mathord}{\M@frak@font}{"1D513}
- \DeclareMathSymbol{\M@frak@Q}{\mathord}{\M@frak@font}{"1D514}
- \DeclareMathSymbol{\M@frak@R}{\mathord}{\M@frak@font}{"211C}
- \DeclareMathSymbol{\M@frak@S}{\mathord}{\M@frak@font}{"1D516}
- \DeclareMathSymbol{\M@frak@T}{\mathord}{\M@frak@font}{"1D517}
- \DeclareMathSymbol{\M@frak@U}{\mathord}{\M@frak@font}{"1D518}
- \DeclareMathSymbol{\M@frak@V}{\mathord}{\M@frak@font}{"1D519}
- \DeclareMathSymbol{\M@frak@W}{\mathord}{\M@frak@font}{"1D51A}
- \DeclareMathSymbol{\M@frak@X}{\mathord}{\M@frak@font}{"1D51B}
- \DeclareMathSymbol{\M@frak@Y}{\mathord}{\M@frak@font}{"1D51C}
- \DeclareMathSymbol{\M@frak@Z}{\mathord}{\M@frak@font}{"2128}
- \DeclareMathSymbol{\M@frak@a}{\mathord}{\M@frak@font}{"1D51E}
- \DeclareMathSymbol{\M@frak@b}{\mathord}{\M@frak@font}{"1D51F}
- \DeclareMathSymbol{\M@frak@c}{\mathord}{\M@frak@font}{"1D520}
- \DeclareMathSymbol{\M@frak@d}{\mathord}{\M@frak@font}{"1D521}
- \DeclareMathSymbol{\M@frak@e}{\mathord}{\M@frak@font}{"1D522}
- \DeclareMathSymbol{\M@frak@f}{\mathord}{\M@frak@font}{"1D523}
- \DeclareMathSymbol{\M@frak@g}{\mathord}{\M@frak@font}{"1D524}
- \DeclareMathSymbol{\M@frak@h}{\mathord}{\M@frak@font}{"1D525}
- \DeclareMathSymbol{\M@frak@i}{\mathord}{\M@frak@font}{"1D526}
- \DeclareMathSymbol{\M@frak@j}{\mathord}{\M@frak@font}{"1D527}
- \DeclareMathSymbol{\M@frak@k}{\mathord}{\M@frak@font}{"1D528}
- \DeclareMathSymbol{\M@frak@l}{\mathord}{\M@frak@font}{"1D529}
- \DeclareMathSymbol{\M@frak@m}{\mathord}{\M@frak@font}{"1D52A}
- \DeclareMathSymbol{\M@frak@n}{\mathord}{\M@frak@font}{"1D52B}
- \DeclareMathSymbol{\M@frak@o}{\mathord}{\M@frak@font}{"1D52C}
- \DeclareMathSymbol{\M@frak@p}{\mathord}{\M@frak@font}{"1D52D}
- \DeclareMathSymbol{\M@frak@q}{\mathord}{\M@frak@font}{"1D52E}
- \DeclareMathSymbol{\M@frak@r}{\mathord}{\M@frak@font}{"1D52F}
- \DeclareMathSymbol{\M@frak@s}{\mathord}{\M@frak@font}{"1D530}
- \DeclareMathSymbol{\M@frak@t}{\mathord}{\M@frak@font}{"1D531}
- \DeclareMathSymbol{\M@frak@u}{\mathord}{\M@frak@font}{"1D532}
- \DeclareMathSymbol{\M@frak@v}{\mathord}{\M@frak@font}{"1D533}
- \DeclareMathSymbol{\M@frak@w}{\mathord}{\M@frak@font}{"1D534}
- \DeclareMathSymbol{\M@frak@x}{\mathord}{\M@frak@font}{"1D535}
- \DeclareMathSymbol{\M@frak@y}{\mathord}{\M@frak@font}{"1D536}
- \DeclareMathSymbol{\M@frak@z}{\mathord}{\M@frak@font}{"1D537}}
+ \protected\def\mathfrak##1{\relax
+ \ifmmode\else
+ \M@HModeError\mathfrak
+ $%
+ \fi
+ \begingroup
+ \M@frak@mathcodes
+ ##1%
+ \endgroup}
+ \edef\M@frak@num{\number\csname symM\M@frakshape\@tempa\endcsname}
+ \protected\edef\M@frak@mathcodes{%
+ \Umathcode`A=0+\M@frak@num"1D504\relax
+ \Umathcode`B=0+\M@frak@num"1D505\relax
+ \Umathcode`C=0+\M@frak@num"212D\relax
+ \Umathcode`D=0+\M@frak@num"1D507\relax
+ \Umathcode`E=0+\M@frak@num"1D508\relax
+ \Umathcode`F=0+\M@frak@num"1D509\relax
+ \Umathcode`G=0+\M@frak@num"1D50A\relax
+ \Umathcode`H=0+\M@frak@num"210C\relax
+ \Umathcode`I=0+\M@frak@num"2111\relax
+ \Umathcode`J=0+\M@frak@num"1D50D\relax
+ \Umathcode`K=0+\M@frak@num"1D50E\relax
+ \Umathcode`L=0+\M@frak@num"1D50F\relax
+ \Umathcode`M=0+\M@frak@num"1D510\relax
+ \Umathcode`N=0+\M@frak@num"1D511\relax
+ \Umathcode`O=0+\M@frak@num"1D512\relax
+ \Umathcode`P=0+\M@frak@num"1D513\relax
+ \Umathcode`Q=0+\M@frak@num"1D514\relax
+ \Umathcode`R=0+\M@frak@num"211C\relax
+ \Umathcode`S=0+\M@frak@num"1D516\relax
+ \Umathcode`T=0+\M@frak@num"1D517\relax
+ \Umathcode`U=0+\M@frak@num"1D518\relax
+ \Umathcode`V=0+\M@frak@num"1D519\relax
+ \Umathcode`W=0+\M@frak@num"1D51A\relax
+ \Umathcode`X=0+\M@frak@num"1D51B\relax
+ \Umathcode`Y=0+\M@frak@num"1D51C\relax
+ \Umathcode`Z=0+\M@frak@num"2128\relax
+ \Umathcode`a=0+\M@frak@num"1D51E\relax
+ \Umathcode`b=0+\M@frak@num"1D51F\relax
+ \Umathcode`c=0+\M@frak@num"1D520\relax
+ \Umathcode`d=0+\M@frak@num"1D521\relax
+ \Umathcode`e=0+\M@frak@num"1D522\relax
+ \Umathcode`f=0+\M@frak@num"1D523\relax
+ \Umathcode`g=0+\M@frak@num"1D524\relax
+ \Umathcode`h=0+\M@frak@num"1D525\relax
+ \Umathcode`i=0+\M@frak@num"1D526\relax
+ \Umathcode`j=0+\M@frak@num"1D527\relax
+ \Umathcode`k=0+\M@frak@num"1D528\relax
+ \Umathcode`l=0+\M@frak@num"1D529\relax
+ \Umathcode`m=0+\M@frak@num"1D52A\relax
+ \Umathcode`n=0+\M@frak@num"1D52B\relax
+ \Umathcode`o=0+\M@frak@num"1D52C\relax
+ \Umathcode`p=0+\M@frak@num"1D52D\relax
+ \Umathcode`q=0+\M@frak@num"1D52E\relax
+ \Umathcode`r=0+\M@frak@num"1D52F\relax
+ \Umathcode`s=0+\M@frak@num"1D530\relax
+ \Umathcode`t=0+\M@frak@num"1D531\relax
+ \Umathcode`u=0+\M@frak@num"1D532\relax
+ \Umathcode`v=0+\M@frak@num"1D533\relax
+ \Umathcode`w=0+\M@frak@num"1D534\relax
+ \Umathcode`x=0+\M@frak@num"1D535\relax
+ \Umathcode`y=0+\M@frak@num"1D536\relax
+ \Umathcode`z=0+\M@frak@num"1D537\relax}}
\def\M@bcal@set{%
- \edef\M@bcal@font{M\M@bcalshape\@tempa}
- \DeclareMathSymbol{\M@bcal@A}{\mathord}{\M@bcal@font}{"1D4D0}
- \DeclareMathSymbol{\M@bcal@B}{\mathord}{\M@bcal@font}{"1D4D1}
- \DeclareMathSymbol{\M@bcal@C}{\mathord}{\M@bcal@font}{"1D4D2}
- \DeclareMathSymbol{\M@bcal@D}{\mathord}{\M@bcal@font}{"1D4D3}
- \DeclareMathSymbol{\M@bcal@E}{\mathord}{\M@bcal@font}{"1D4D4}
- \DeclareMathSymbol{\M@bcal@F}{\mathord}{\M@bcal@font}{"1D4D5}
- \DeclareMathSymbol{\M@bcal@G}{\mathord}{\M@bcal@font}{"1D4D6}
- \DeclareMathSymbol{\M@bcal@H}{\mathord}{\M@bcal@font}{"1D4D7}
- \DeclareMathSymbol{\M@bcal@I}{\mathord}{\M@bcal@font}{"1D4D8}
- \DeclareMathSymbol{\M@bcal@J}{\mathord}{\M@bcal@font}{"1D4D9}
- \DeclareMathSymbol{\M@bcal@K}{\mathord}{\M@bcal@font}{"1D4DA}
- \DeclareMathSymbol{\M@bcal@L}{\mathord}{\M@bcal@font}{"1D4DB}
- \DeclareMathSymbol{\M@bcal@M}{\mathord}{\M@bcal@font}{"1D4DC}
- \DeclareMathSymbol{\M@bcal@N}{\mathord}{\M@bcal@font}{"1D4DD}
- \DeclareMathSymbol{\M@bcal@O}{\mathord}{\M@bcal@font}{"1D4DE}
- \DeclareMathSymbol{\M@bcal@P}{\mathord}{\M@bcal@font}{"1D4DF}
- \DeclareMathSymbol{\M@bcal@Q}{\mathord}{\M@bcal@font}{"1D4E0}
- \DeclareMathSymbol{\M@bcal@R}{\mathord}{\M@bcal@font}{"1D4E1}
- \DeclareMathSymbol{\M@bcal@S}{\mathord}{\M@bcal@font}{"1D4E2}
- \DeclareMathSymbol{\M@bcal@T}{\mathord}{\M@bcal@font}{"1D4E3}
- \DeclareMathSymbol{\M@bcal@U}{\mathord}{\M@bcal@font}{"1D4E4}
- \DeclareMathSymbol{\M@bcal@V}{\mathord}{\M@bcal@font}{"1D4E5}
- \DeclareMathSymbol{\M@bcal@W}{\mathord}{\M@bcal@font}{"1D4E6}
- \DeclareMathSymbol{\M@bcal@X}{\mathord}{\M@bcal@font}{"1D4E7}
- \DeclareMathSymbol{\M@bcal@Y}{\mathord}{\M@bcal@font}{"1D4E8}
- \DeclareMathSymbol{\M@bcal@Z}{\mathord}{\M@bcal@font}{"1D4E9}
- \DeclareMathSymbol{\M@bcal@a}{\mathord}{\M@bcal@font}{"1D4EA}
- \DeclareMathSymbol{\M@bcal@b}{\mathord}{\M@bcal@font}{"1D4EB}
- \DeclareMathSymbol{\M@bcal@c}{\mathord}{\M@bcal@font}{"1D4EC}
- \DeclareMathSymbol{\M@bcal@d}{\mathord}{\M@bcal@font}{"1D4ED}
- \DeclareMathSymbol{\M@bcal@e}{\mathord}{\M@bcal@font}{"1D4EE}
- \DeclareMathSymbol{\M@bcal@f}{\mathord}{\M@bcal@font}{"1D4EF}
- \DeclareMathSymbol{\M@bcal@g}{\mathord}{\M@bcal@font}{"1D4F0}
- \DeclareMathSymbol{\M@bcal@h}{\mathord}{\M@bcal@font}{"1D4F1}
- \DeclareMathSymbol{\M@bcal@i}{\mathord}{\M@bcal@font}{"1D4F2}
- \DeclareMathSymbol{\M@bcal@j}{\mathord}{\M@bcal@font}{"1D4F3}
- \DeclareMathSymbol{\M@bcal@k}{\mathord}{\M@bcal@font}{"1D4F4}
- \DeclareMathSymbol{\M@bcal@l}{\mathord}{\M@bcal@font}{"1D4F5}
- \DeclareMathSymbol{\M@bcal@m}{\mathord}{\M@bcal@font}{"1D4F6}
- \DeclareMathSymbol{\M@bcal@n}{\mathord}{\M@bcal@font}{"1D4F7}
- \DeclareMathSymbol{\M@bcal@o}{\mathord}{\M@bcal@font}{"1D4F8}
- \DeclareMathSymbol{\M@bcal@p}{\mathord}{\M@bcal@font}{"1D4F9}
- \DeclareMathSymbol{\M@bcal@q}{\mathord}{\M@bcal@font}{"1D4FA}
- \DeclareMathSymbol{\M@bcal@r}{\mathord}{\M@bcal@font}{"1D4FB}
- \DeclareMathSymbol{\M@bcal@s}{\mathord}{\M@bcal@font}{"1D4FC}
- \DeclareMathSymbol{\M@bcal@t}{\mathord}{\M@bcal@font}{"1D4FD}
- \DeclareMathSymbol{\M@bcal@u}{\mathord}{\M@bcal@font}{"1D4FE}
- \DeclareMathSymbol{\M@bcal@v}{\mathord}{\M@bcal@font}{"1D4FF}
- \DeclareMathSymbol{\M@bcal@w}{\mathord}{\M@bcal@font}{"1D500}
- \DeclareMathSymbol{\M@bcal@x}{\mathord}{\M@bcal@font}{"1D501}
- \DeclareMathSymbol{\M@bcal@y}{\mathord}{\M@bcal@font}{"1D502}
- \DeclareMathSymbol{\M@bcal@z}{\mathord}{\M@bcal@font}{"1D503}}
+ \protected\def\mathbcal##1{\relax
+ \ifmmode\else
+ \M@HModeError\mathbcal
+ $%
+ \fi
+ \begingroup
+ \M@bcal@mathcodes
+ ##1%
+ \endgroup}
+ \edef\M@bcal@num{\number\csname symM\M@bcalshape\@tempa\endcsname}
+ \protected\edef\M@bcal@mathcodes{%
+ \Umathcode`A=0+\M@bcal@num"1D4D0\relax
+ \Umathcode`B=0+\M@bcal@num"1D4D1\relax
+ \Umathcode`C=0+\M@bcal@num"1D4D2\relax
+ \Umathcode`D=0+\M@bcal@num"1D4D3\relax
+ \Umathcode`E=0+\M@bcal@num"1D4D4\relax
+ \Umathcode`F=0+\M@bcal@num"1D4D5\relax
+ \Umathcode`G=0+\M@bcal@num"1D4D6\relax
+ \Umathcode`H=0+\M@bcal@num"1D4D7\relax
+ \Umathcode`I=0+\M@bcal@num"1D4D8\relax
+ \Umathcode`J=0+\M@bcal@num"1D4D9\relax
+ \Umathcode`K=0+\M@bcal@num"1D4DA\relax
+ \Umathcode`L=0+\M@bcal@num"1D4DB\relax
+ \Umathcode`M=0+\M@bcal@num"1D4DC\relax
+ \Umathcode`N=0+\M@bcal@num"1D4DD\relax
+ \Umathcode`O=0+\M@bcal@num"1D4DE\relax
+ \Umathcode`P=0+\M@bcal@num"1D4DF\relax
+ \Umathcode`Q=0+\M@bcal@num"1D4E0\relax
+ \Umathcode`R=0+\M@bcal@num"1D4E1\relax
+ \Umathcode`S=0+\M@bcal@num"1D4E2\relax
+ \Umathcode`T=0+\M@bcal@num"1D4E3\relax
+ \Umathcode`U=0+\M@bcal@num"1D4E4\relax
+ \Umathcode`V=0+\M@bcal@num"1D4E5\relax
+ \Umathcode`W=0+\M@bcal@num"1D4E6\relax
+ \Umathcode`X=0+\M@bcal@num"1D4E7\relax
+ \Umathcode`Y=0+\M@bcal@num"1D4E8\relax
+ \Umathcode`Z=0+\M@bcal@num"1D4E9\relax
+ \Umathcode`a=0+\M@bcal@num"1D4EA\relax
+ \Umathcode`b=0+\M@bcal@num"1D4EB\relax
+ \Umathcode`c=0+\M@bcal@num"1D4EC\relax
+ \Umathcode`d=0+\M@bcal@num"1D4ED\relax
+ \Umathcode`e=0+\M@bcal@num"1D4EE\relax
+ \Umathcode`f=0+\M@bcal@num"1D4EF\relax
+ \Umathcode`g=0+\M@bcal@num"1D4F0\relax
+ \Umathcode`h=0+\M@bcal@num"1D4F1\relax
+ \Umathcode`i=0+\M@bcal@num"1D4F2\relax
+ \Umathcode`j=0+\M@bcal@num"1D4F3\relax
+ \Umathcode`k=0+\M@bcal@num"1D4F4\relax
+ \Umathcode`l=0+\M@bcal@num"1D4F5\relax
+ \Umathcode`m=0+\M@bcal@num"1D4F6\relax
+ \Umathcode`n=0+\M@bcal@num"1D4F7\relax
+ \Umathcode`o=0+\M@bcal@num"1D4F8\relax
+ \Umathcode`p=0+\M@bcal@num"1D4F9\relax
+ \Umathcode`q=0+\M@bcal@num"1D4FA\relax
+ \Umathcode`r=0+\M@bcal@num"1D4FB\relax
+ \Umathcode`s=0+\M@bcal@num"1D4FC\relax
+ \Umathcode`t=0+\M@bcal@num"1D4FD\relax
+ \Umathcode`u=0+\M@bcal@num"1D4FE\relax
+ \Umathcode`v=0+\M@bcal@num"1D4FF\relax
+ \Umathcode`w=0+\M@bcal@num"1D500\relax
+ \Umathcode`x=0+\M@bcal@num"1D501\relax
+ \Umathcode`y=0+\M@bcal@num"1D502\relax
+ \Umathcode`z=0+\M@bcal@num"1D503\relax}}
\def\M@bfrak@set{%
- \edef\M@bfrak@font{M\M@bfrakshape\@tempa}
- \DeclareMathSymbol{\M@bfrak@A}{\mathord}{\M@bfrak@font}{"1D56C}
- \DeclareMathSymbol{\M@bfrak@B}{\mathord}{\M@bfrak@font}{"1D56D}
- \DeclareMathSymbol{\M@bfrak@C}{\mathord}{\M@bfrak@font}{"1D56E}
- \DeclareMathSymbol{\M@bfrak@D}{\mathord}{\M@bfrak@font}{"1D56F}
- \DeclareMathSymbol{\M@bfrak@E}{\mathord}{\M@bfrak@font}{"1D570}
- \DeclareMathSymbol{\M@bfrak@F}{\mathord}{\M@bfrak@font}{"1D571}
- \DeclareMathSymbol{\M@bfrak@G}{\mathord}{\M@bfrak@font}{"1D572}
- \DeclareMathSymbol{\M@bfrak@H}{\mathord}{\M@bfrak@font}{"1D573}
- \DeclareMathSymbol{\M@bfrak@I}{\mathord}{\M@bfrak@font}{"1D574}
- \DeclareMathSymbol{\M@bfrak@J}{\mathord}{\M@bfrak@font}{"1D575}
- \DeclareMathSymbol{\M@bfrak@K}{\mathord}{\M@bfrak@font}{"1D576}
- \DeclareMathSymbol{\M@bfrak@L}{\mathord}{\M@bfrak@font}{"1D577}
- \DeclareMathSymbol{\M@bfrak@M}{\mathord}{\M@bfrak@font}{"1D578}
- \DeclareMathSymbol{\M@bfrak@N}{\mathord}{\M@bfrak@font}{"1D579}
- \DeclareMathSymbol{\M@bfrak@O}{\mathord}{\M@bfrak@font}{"1D57A}
- \DeclareMathSymbol{\M@bfrak@P}{\mathord}{\M@bfrak@font}{"1D57B}
- \DeclareMathSymbol{\M@bfrak@Q}{\mathord}{\M@bfrak@font}{"1D57C}
- \DeclareMathSymbol{\M@bfrak@R}{\mathord}{\M@bfrak@font}{"1D57D}
- \DeclareMathSymbol{\M@bfrak@S}{\mathord}{\M@bfrak@font}{"1D57E}
- \DeclareMathSymbol{\M@bfrak@T}{\mathord}{\M@bfrak@font}{"1D57F}
- \DeclareMathSymbol{\M@bfrak@U}{\mathord}{\M@bfrak@font}{"1D580}
- \DeclareMathSymbol{\M@bfrak@V}{\mathord}{\M@bfrak@font}{"1D581}
- \DeclareMathSymbol{\M@bfrak@W}{\mathord}{\M@bfrak@font}{"1D582}
- \DeclareMathSymbol{\M@bfrak@X}{\mathord}{\M@bfrak@font}{"1D583}
- \DeclareMathSymbol{\M@bfrak@Y}{\mathord}{\M@bfrak@font}{"1D584}
- \DeclareMathSymbol{\M@bfrak@Z}{\mathord}{\M@bfrak@font}{"1D585}
- \DeclareMathSymbol{\M@bfrak@a}{\mathord}{\M@bfrak@font}{"1D586}
- \DeclareMathSymbol{\M@bfrak@b}{\mathord}{\M@bfrak@font}{"1D587}
- \DeclareMathSymbol{\M@bfrak@c}{\mathord}{\M@bfrak@font}{"1D588}
- \DeclareMathSymbol{\M@bfrak@d}{\mathord}{\M@bfrak@font}{"1D589}
- \DeclareMathSymbol{\M@bfrak@e}{\mathord}{\M@bfrak@font}{"1D58A}
- \DeclareMathSymbol{\M@bfrak@f}{\mathord}{\M@bfrak@font}{"1D58B}
- \DeclareMathSymbol{\M@bfrak@g}{\mathord}{\M@bfrak@font}{"1D58C}
- \DeclareMathSymbol{\M@bfrak@h}{\mathord}{\M@bfrak@font}{"1D58D}
- \DeclareMathSymbol{\M@bfrak@i}{\mathord}{\M@bfrak@font}{"1D58E}
- \DeclareMathSymbol{\M@bfrak@j}{\mathord}{\M@bfrak@font}{"1D58F}
- \DeclareMathSymbol{\M@bfrak@k}{\mathord}{\M@bfrak@font}{"1D590}
- \DeclareMathSymbol{\M@bfrak@l}{\mathord}{\M@bfrak@font}{"1D591}
- \DeclareMathSymbol{\M@bfrak@m}{\mathord}{\M@bfrak@font}{"1D592}
- \DeclareMathSymbol{\M@bfrak@n}{\mathord}{\M@bfrak@font}{"1D593}
- \DeclareMathSymbol{\M@bfrak@o}{\mathord}{\M@bfrak@font}{"1D594}
- \DeclareMathSymbol{\M@bfrak@p}{\mathord}{\M@bfrak@font}{"1D595}
- \DeclareMathSymbol{\M@bfrak@q}{\mathord}{\M@bfrak@font}{"1D596}
- \DeclareMathSymbol{\M@bfrak@r}{\mathord}{\M@bfrak@font}{"1D597}
- \DeclareMathSymbol{\M@bfrak@s}{\mathord}{\M@bfrak@font}{"1D598}
- \DeclareMathSymbol{\M@bfrak@t}{\mathord}{\M@bfrak@font}{"1D599}
- \DeclareMathSymbol{\M@bfrak@u}{\mathord}{\M@bfrak@font}{"1D59A}
- \DeclareMathSymbol{\M@bfrak@v}{\mathord}{\M@bfrak@font}{"1D59B}
- \DeclareMathSymbol{\M@bfrak@w}{\mathord}{\M@bfrak@font}{"1D59C}
- \DeclareMathSymbol{\M@bfrak@x}{\mathord}{\M@bfrak@font}{"1D59D}
- \DeclareMathSymbol{\M@bfrak@y}{\mathord}{\M@bfrak@font}{"1D59E}
- \DeclareMathSymbol{\M@bfrak@z}{\mathord}{\M@bfrak@font}{"1D59F}}
+ \protected\def\mathbfrak##1{\relax
+ \ifmmode\else
+ \M@HModeError\mathbfrak
+ $%
+ \fi
+ \begingroup
+ \M@bfrak@mathcodes
+ ##1%
+ \endgroup}
+ \edef\M@bfrak@num{\number\csname symM\M@bfrakshape\@tempa\endcsname}
+ \protected\edef\M@bfrak@mathcodes{%
+ \Umathcode`A=0+\M@bfrak@num"1D56C\relax
+ \Umathcode`B=0+\M@bfrak@num"1D56D\relax
+ \Umathcode`C=0+\M@bfrak@num"1D56E\relax
+ \Umathcode`D=0+\M@bfrak@num"1D56F\relax
+ \Umathcode`E=0+\M@bfrak@num"1D570\relax
+ \Umathcode`F=0+\M@bfrak@num"1D571\relax
+ \Umathcode`G=0+\M@bfrak@num"1D572\relax
+ \Umathcode`H=0+\M@bfrak@num"1D573\relax
+ \Umathcode`I=0+\M@bfrak@num"1D574\relax
+ \Umathcode`J=0+\M@bfrak@num"1D575\relax
+ \Umathcode`K=0+\M@bfrak@num"1D576\relax
+ \Umathcode`L=0+\M@bfrak@num"1D577\relax
+ \Umathcode`M=0+\M@bfrak@num"1D578\relax
+ \Umathcode`N=0+\M@bfrak@num"1D579\relax
+ \Umathcode`O=0+\M@bfrak@num"1D57A\relax
+ \Umathcode`P=0+\M@bfrak@num"1D57B\relax
+ \Umathcode`Q=0+\M@bfrak@num"1D57C\relax
+ \Umathcode`R=0+\M@bfrak@num"1D57D\relax
+ \Umathcode`S=0+\M@bfrak@num"1D57E\relax
+ \Umathcode`T=0+\M@bfrak@num"1D57F\relax
+ \Umathcode`U=0+\M@bfrak@num"1D580\relax
+ \Umathcode`V=0+\M@bfrak@num"1D581\relax
+ \Umathcode`W=0+\M@bfrak@num"1D582\relax
+ \Umathcode`X=0+\M@bfrak@num"1D583\relax
+ \Umathcode`Y=0+\M@bfrak@num"1D584\relax
+ \Umathcode`Z=0+\M@bfrak@num"1D585\relax
+ \Umathcode`a=0+\M@bfrak@num"1D586\relax
+ \Umathcode`b=0+\M@bfrak@num"1D587\relax
+ \Umathcode`c=0+\M@bfrak@num"1D588\relax
+ \Umathcode`d=0+\M@bfrak@num"1D589\relax
+ \Umathcode`e=0+\M@bfrak@num"1D58A\relax
+ \Umathcode`f=0+\M@bfrak@num"1D58B\relax
+ \Umathcode`g=0+\M@bfrak@num"1D58C\relax
+ \Umathcode`h=0+\M@bfrak@num"1D58D\relax
+ \Umathcode`i=0+\M@bfrak@num"1D58E\relax
+ \Umathcode`j=0+\M@bfrak@num"1D58F\relax
+ \Umathcode`k=0+\M@bfrak@num"1D590\relax
+ \Umathcode`l=0+\M@bfrak@num"1D591\relax
+ \Umathcode`m=0+\M@bfrak@num"1D592\relax
+ \Umathcode`n=0+\M@bfrak@num"1D593\relax
+ \Umathcode`o=0+\M@bfrak@num"1D594\relax
+ \Umathcode`p=0+\M@bfrak@num"1D595\relax
+ \Umathcode`q=0+\M@bfrak@num"1D596\relax
+ \Umathcode`r=0+\M@bfrak@num"1D597\relax
+ \Umathcode`s=0+\M@bfrak@num"1D598\relax
+ \Umathcode`t=0+\M@bfrak@num"1D599\relax
+ \Umathcode`u=0+\M@bfrak@num"1D59A\relax
+ \Umathcode`v=0+\M@bfrak@num"1D59B\relax
+ \Umathcode`w=0+\M@bfrak@num"1D59C\relax
+ \Umathcode`x=0+\M@bfrak@num"1D59D\relax
+ \Umathcode`y=0+\M@bfrak@num"1D59E\relax
+ \Umathcode`z=0+\M@bfrak@num"1D59F\relax}}
\endinput
%%
%% End of file `mathfont.sty'.