%% %% This is file `mathfont.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% mathfont_code.dtx (with options: `package') %% %% This file is from version 2.0 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 %% %% 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 %% %% https://www.latex-project.org/lppl/. %% %% This Work has the LPPL status "maintained," and the current %% 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. %% %% 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. %% %% 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. %% %% For more information, see the mathfont_code.dtx. %% %% Happy TeXing! %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{mathfont}[2021/12/28 v. 2.0 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? \newif\ifM@font@loaded % load mathfont with font specified? \newif\ifE@sterEggDecl@red % already did easter egg? \long\def\@gobbletwo@brackets[#1]#2{} \def\M@NoMathfontError#1{\PackageError{mathfont} {\MessageBreak Invalid command\MessageBreak \string#1 on line \the\inputlineno} {Your command was ignored. I couldn't\MessageBreak load mathfont, so I never defined this\MessageBreak control sequence.}} \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} \ifdefined\directlua \M@XeTeXLuaTeXtrue \fi \ifdefined\XeTeXrevision \M@XeTeXLuaTeXtrue \fi \ifM@XeTeXLuaTeX\else \begingroup \catcode`\+=\active \def+{ } \def\M@XeTeXLuaTeXError{\GenericError{} {\MessageBreak\MessageBreak Package mathfont error: \MessageBreak\MessageBreak +*************************\MessageBreak +*+++++++++++++++++++++++*\MessageBreak +*+++++++UNABLE TO+++++++*\MessageBreak +*+++++LOAD MATHFONT+++++*\MessageBreak +*+++++++++++++++++++++++*\MessageBreak +*+++++Missing XeTeX+++++*\MessageBreak +*+++++++or LuaTeX+++++++*\MessageBreak +*+++++++++++++++++++++++*\MessageBreak +*************************\MessageBreak\@gobbletwo} {See the mathfont package documentation for explanation.} {I need XeTeX or LuaTeX to make mathfont\MessageBreak work properly. It looks like the current\MessageBreak engine is something else, so I'm going to\MessageBreak stop reading in the package file now. (You\MessageBreak won't be able to use commands from mathfont\MessageBreak in your document.) To make mathfont work\MessageBreak correctly, please retypeset your document\MessageBreak with one of those two engines.^^J}} \M@XeTeXLuaTeXError \endgroup \AtEndOfPackage{\typeout{Package mathfont failed to load\on@line.}} \expandafter\endinput % we should \endinput with a balanced conditional \fi \ifdefined\directlua \M@adjust@fonttrue % if engine is LuaTeX, adjust font by default \IfFileExists{luaotfload.sty}{\M@Noluaotfloadfalse}{\M@Noluaotfloadtrue} \else \PackageWarningNoLine{mathfont}{% The current engine is XeTeX, but as\MessageBreak of mathfont version 2.0, LuaTeX is\MessageBreak recommended. Consider compiling with\MessageBreak LuaLaTeX. Certain features will not\MessageBreak work with XeTeX} \fi \ifM@Noluaotfload % false by default; true if LuaTeX AND no luaotfload.sty \begingroup \catcode`\+=\active \def+{ } \def\M@NoluaotfloadError{\GenericError{} {\MessageBreak\MessageBreak Package mathfont error: \MessageBreak\MessageBreak +*************************\MessageBreak +*+++++++++++++++++++++++*\MessageBreak +*+++++++UNABLE TO+++++++*\MessageBreak +*+++++LOAD MATHFONT+++++*\MessageBreak +*+++++++++++++++++++++++*\MessageBreak +*++++Cannot find the++++*\MessageBreak +*++file luaotfload.sty++*\MessageBreak +*+++++++++++++++++++++++*\MessageBreak +*************************\MessageBreak\@gobbletwo} {You are likely seeing this message because you haven't^^J% installed luaotfload. Check your TeX distribution for a^^J% list of the packages on your system. See the mathfont^^J% documentation for further explanation.^^J} {It looks like the current engine is LuaTeX, so I\MessageBreak need the luaotfload package to make mathfont work\MessageBreak correctly. I can't find luaotfload, so I'm going to\MessageBreak stop reading in the mathfont package file now. (You\MessageBreak won't be able to use commands from mathfont in your\MessageBreak document.) To make mathfont work correctly, make\MessageBreak sure luaotfload.sty is installed on your computer\MessageBreak in a directory searchable by TeX or compile with\MessageBreak XeLaTeX.^^J}} \M@NoluaotfloadError \endgroup \AtEndOfPackage{\typeout{Package mathfont failed to load\on@line.}} \expandafter\endinput % we should \endinput with a balanced conditional \fi \def\M@Optiondeprecated#1#2{\PackageError{mathfont} {Option "#1" deprecated} {Your option was ignored. Please\MessageBreak 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}} \DeclareOption{operators}{% \M@Optiondeprecated{operators} {the bigops keyword with \string\mathfont}} \DeclareOption{no-operators}{% \M@Optiondeprecated{no-operators} {the bigops keyword with \string\mathfont}} \DeclareOption{easter-egg}{% \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{..} \EasterEggUpdate \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} \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} \fi}% my easter egg :) \DeclareOption{adjust}{\M@adjust@fonttrue} \DeclareOption{no-adjust}{\M@adjust@fontfalse} \DeclareOption*{\M@font@loadedtrue\edef\M@font@load{\CurrentOption}} \ProcessOptions* \ifdefined\directlua \ifM@adjust@font \AtEndOfPackage{% \typeout{:: mathfont :: Lua-based font adjustments enabled.}} \else \AtEndOfPackage{% \typeout{:: mathfont :: Lua-based font adjustments disabled.}} \fi \else \AtEndOfPackage{% \typeout{:: mathfont :: Lua-based font adjustments disabled.}} \ifM@adjust@font \AtEndOfPackage{% \PackageError{mathfont}{Option^^J"adjust" ignored with XeTeX} {Your package option "adjust" was ignored.\MessageBreak This option works only with LuaTeX, and it\MessageBreak looks like the current engine is XeTeX. To\MessageBreak enable Lua-based font adjustments, compile\MessageBreak with LuaLaTeX.^^J}} \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% 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 replaced it with \string#2\@gobble}} \def\M@InvalidOptionError#1{\PackageError{mathfont} {Invalid^^Joption "#1" for \string\mathfont\on@line} {Hm. You used a keyword that isn't actually an optional\MessageBreak argument for \string\mathfont. Check that you spelled the keyword\MessageBreak correctly. Otherwise, I'm not sure what's wrong. Is this\MessageBreak option listed in the package documentation? In any event,\MessageBreak I'm going to ignore it.^^J}} \def\M@InvalidSuboptionError#1{\PackageError{mathfont} {Invalid^^Jsuboption "#1" for \string\mathfont\on@line} {Hm. You used a keyword that isn't actually a suboption\MessageBreak for \string\mathfont. Check that you spelled the keyword correctly.\MessageBreak Otherwise, I'm not sure what's wrong. Is this suboption\MessageBreak listed in the package documentation? In any event, I'm\MessageBreak going to ignore it.^^J}} \def\M@MissingOptionError{\PackageError{mathfont} {Missing^^Joption for \string\mathfont\on@line} {It looks like you included a , or = in\MessageBreak the optional argument of \string\mathfont\space but\MessageBreak didn't put anything before it.^^J}} \def\M@MissingSuboptionError{\PackageError{mathfont} {Missing^^Jsuboption for \string\mathfont\on@line} {It looks like you included an = somewhere\MessageBreak but didn't put the suboption after it. Either\MessageBreak that or you typed == instead of = in the\MessageBreak optional argument of \string\mathfont.^^J}} \def\M@InternalsRestoredError{\PackageError{mathfont} {Internal^^Jcommands restored} {This package slightly changes two LaTeX\MessageBreak internal commands, and you really shouldn't\MessageBreak be loading new math fonts without those\MessageBreak adjustments. What happened here is that you\MessageBreak used \string\mathfont\space in a situation where those\MessageBreak two commands retain their original defini-\MessageBreak tions. Presumably you used \string\mathfont\space after\MessageBreak calling the \string\restoremathinternals\space command.\MessageBreak I'm going to ignore this call to \string\mathfont.\MessageBreak Try typesetting this document with all\MessageBreak \string\mathfont\space commands placed before you call\MessageBreak \string\restoremathinternals.^^J}} \def\M@NoFontspecFamilyError{\PackageError{mathfont} {No previous^^Jfont loaded by fontspec} {You called \string\mathfont\space with the argument "fontspec" \MessageBreak on line \the\inputlineno, and that tells me to use the previous \MessageBreak font loaded by the fontspec package. However, it \MessageBreak looks like you haven't loaded any fonts yet with \MessageBreak fontspec. To resolve this error, try using for \MessageBreak example \string\setmainfont\space before calling \string\mathfont.^^J}} \def\M@NoFontspecError{\PackageError{mathfont} {Missing^^Jpackage fontspec} {You called \string\mathfont\space with the argument "fontspec" \MessageBreak on line \the\inputlineno, and that tells me to use the previous \MessageBreak font loaded by the fontspec package. However, you\MessageBreak 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@MissingControlSequenceError#1#2{\PackageError{mathfont} {Missing control sequence\MessageBreak for\string#1\MessageBreak on input line \the\inputlineno} {Your command was ignored. Right now the\MessageBreak first argument of \string#1\space is "#2."\MessageBreak Please use a control sequence instead.^^J}} \def\M@DoubleArgError#1#2{\PackageError{mathfont} {Multiple characters in\MessageBreak first argument of \string#1\MessageBreak on input line \the\inputlineno} {Your command was ignored. Right now the\MessageBreak first argument of \string#1\space is "#2,"\MessageBreak which is multiple characters. Please use\MessageBreak 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} {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}} \def\M@ForbiddenCharmLine#1{\PackageError{mathfont} {Forbidden charm info contains #1} {The argument of your \string\CharmLine\space macro on line \the\inputlineno\MessageBreak contains the character #1, which will mess me up\MessageBreak if I try to read it, so I'm ignoring this call\MessageBreak to \string\CharmLine. To resolve this error, make sure\MessageBreak your charm information contains only integers,\MessageBreak floats, asterisks, commas, and spaces.^^J}} \def\M@ForbiddenCharmFile#1{\PackageError{mathfont} {Forbidden charm info contains #1} {One of the lines in your \string\CharmFile\space from line \the\inputlineno\MessageBreak contains the character #1, which will mess me up\MessageBreak if I try to read it, so I'm ignoring this line\MessageBreak from your file. To resolve this error, make sure\MessageBreak your charm information contains only integers,\MessageBreak floats, asterisks, commas, and spaces.^^J}} \def\M@NoFontAdjustError#1{\PackageError{mathfont} {Your command \MessageBreak\string#1 is invalid\MessageBreak without Lua-based font adjustments} {You haven't enabled Lua-based font adjustments,\MessageBreak but the macro you called won't do anything without\MessageBreak them. I'm going to ignore your command for now. To\MessageBreak resolve this error, load mathfont with the package\MessageBreak option "adjust" or compile with LuaLaTeX.^^J}} \def\M@BadIntegerError#1#2{\PackageError{mathfont} {Bad argument for\MessageBreak\string#1} {Your command was ignored. Please make sure\MessageBreak that your argument of \string#1\space\MessageBreak is a nonnegative integer. Right now it's\MessageBreak "#2".^^J}} \@ifpackageloaded{fontspec} {\csname bool_set_false:N\expandafter\endcsname \csname g__fontspec_math_bool\endcsname} {\PassOptionsToPackage{no-math}{fontspec}} \let\@@set@mathchar\set@mathchar \let\@@set@mathsymbol\set@mathsymbol \let\@@set@mathaccent\set@mathaccent \let\@@DeclareSymbolFont\DeclareSymbolFont \@onlypreamble\@@set@mathchar \@onlypreamble\@@set@mathsymbol \@onlypreamble\@@set@mathaccent \@onlypreamble\@@DeclareSymbolFont \wlog{Package mathfont Info: Adapting \noexpand\set@mathchar for unicode.} \wlog{Package mathfont Info: Adapting \noexpand\set@mathsymbol for unicode.} \wlog{Package mathfont Info: Adapting \noexpand\set@mathaccent for unicode.} \wlog{Package mathfont Info: Increasing upper bound on \noexpand\DeclareSymbolFont to 256.} \def\set@mathchar#1#2#3#4{% \multiply\count\z@ by 16\relax \advance\count\z@\count\tw@ \global\Umathcode`#2=\mathchar@type#3+#1+\count\z@\relax} \def\set@mathsymbol#1#2#3#4{% \multiply\count\z@ by 16\relax \advance\count\z@\count\tw@ \global\Umathchardef#2=\mathchar@type#3+#1+\count\z@\relax} \def\set@mathaccent#1#2#3#4{% \multiply\count\z@ by 16\relax \advance\count\z@\count\tw@ \protected\xdef#2{% \Umathaccent\mathchar@type#3+\number#1+\the\count\z@\relax}} \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} \ifdefined\directlua \expandafter\@tempa\expandafter{\scantextokens\expandafter{\M@DecSymDef}} \else \begingroup \everyeof{\noexpand} \endlinechar\m@ne \edef\M@retokenize{\noexpand\scantokens{\noexpand\unexpanded{\M@DecSymDef}}} \edef\M@retokenize{\M@retokenize} \expandafter\endgroup \expandafter\@tempa\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 \newcount\M@surd@horizontal@factor \newmuskip\radicandoffset \newread\M@Charm \newtoks\M@toks \M@count\z@ \M@rule@thickness@factor\@m \M@integral@italic@factor=400\relax \M@surd@horizontal@factor\@m \M@surd@vertical@factor\@m \radicandoffset=3mu\relax \newif\ifM@upper \newif\ifM@lower \newif\ifM@diacritics \newif\ifM@greekupper \newif\ifM@greeklower \newif\ifM@agreekupper \newif\ifM@agreeklower \newif\ifM@cyrillicupper \newif\ifM@cyrilliclower \newif\ifM@hebrew \newif\ifM@digits \newif\ifM@operator \newif\ifM@symbols \newif\ifM@extsymbols \newif\ifM@delimiters \newif\ifM@radical \newif\ifM@arrows \newif\ifM@bigops \newif\ifM@extbigops \newif\ifM@bb \newif\ifM@cal \newif\ifM@frak \newif\ifM@bcal \newif\ifM@bfrak \newif\if@optionpresent \newif\if@suboptionpresent \newif\ifM@arg@good \newif\ifM@Decl@reF@mily \newif\ifM@fromCharmFile \def\M@uppershape{italic} % latin upper \def\M@lowershape{italic} % latin lower \def\M@diacriticsshape{upright} % diacritics \def\M@greekuppershape{upright} % greek upper \def\M@greeklowershape{italic} % greek lower \def\M@agreekuppershape{upright} % ancient greek upper \def\M@agreeklowershape{italic} % ancient greek lower \def\M@cyrillicuppershape{upright} % cyrillic upper \def\M@cyrilliclowershape{italic} % cyrillic lower \def\M@hebrewshape{upright} % hebrew \def\M@digitsshape{upright} % numerals \def\M@operatorshape{upright} % operator font \def\M@delimitersshape{upright} % delimiters \def\M@radicalshape{upright} % surd \def\M@bigopsshape{upright} % big operators \def\M@extbigopsshape{upright} % extended big operators \def\M@symbolsshape{upright} % basic symbols \def\M@extsymbolsshape{upright} % extended symbols \def\M@arrowsshape{upright} % arrows \def\M@bbshape{upright} % blackboard bold \def\M@calshape{upright} % caligraphic \def\M@frakshape{upright} % fraktur \def\M@bcalshape{upright} % bold caligraphic \def\M@bfrakshape{upright} % bold fraktur \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;% tlig=true;liga=true;smcp=false;lnum=true} \def\M@default@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@check@option@valid#1{% \let\@temperror\M@InvalidOptionError % error by default \@for\@j:=\M@normalkeys\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\M@check@suboption@valid#1{% \let\@temperror\M@InvalidSuboptionError % error by default \@for\@j:=roman,upright,italic\do{% \ifx\@j#1 \let\@temperror\@gobble % eliminate error \@suboptionpresenttrue % set switch to true \fi} \@temperror{#1}} \def\M@strip@equals#1={#1} \def\M@parse@option#1=#2\@nil{% \@optionpresentfalse % set switch to false by default \@suboptionpresentfalse % set switch to false by default \def\@temp@opt{#1} % store option \def\@temp@sub{#2} % store suboption \ifx\@temp@opt\@empty \M@MissingOptionError \else \M@check@option@valid\@temp@opt \bgroup\def\@tempa{=} \ifx\@temp@sub\@tempa \egroup % first branch \egroup \M@MissingSuboptionError \else \egroup % second branch \egroup \ifx\@temp@sub\@empty \else \edef\@temp@sub{\expandafter\M@strip@equals\@temp@sub} \M@check@suboption@valid\@temp@sub % check that suboption is valid \fi \fi \bgroup\def\@tempa{roman} \ifx\@temp@sub\@tempa \egroup % first branch \egroup \def\@temp@sub{upright} \else \egroup % second branch \egroup \fi \fi} \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]} \def\@mathfont[#1]#2{% \ifx\set@mathchar\@@set@mathchar \M@InternalsRestoredError \else \M@toks{} \M@newfont{#2} \expandafter\edef\csname M@fontfamily@#2\endcsname{\M@f@ntn@me} \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} \advance\M@count\@ne \fi \edef\@tempa{\csname M@fontid@\M@f@ntn@me\endcsname} \edef@nospace\@tempb{#1} \@for\@i:=\@tempb\do{\expandafter\M@parse@option\@i=\@nil \if@optionpresent \expandafter\ifx % next line is two cs to be compared \csname ifM@\@temp@opt\expandafter\endcsname\csname iftrue\endcsname \M@CharsSetWarning{\@temp@opt} \else \edef\@tempc{\the\M@toks^^J\@temp@opt} \M@toks\expandafter{\@tempc} \if@suboptionpresent \expandafter\edef\csname M@\@temp@opt shape\endcsname{\@temp@sub} \fi \edef\@tempc{\the\M@toks\space (\csname M@\@temp@opt shape\endcsname)} \M@toks\expandafter{\@tempc} \edef\@tempc{\csname M@\@temp@opt shape\endcsname} \def\@tempb{upright} \ifx\@tempb\@tempc \let\@tempb\shapedefault \else \let\@tempb\itdefault \fi \ifcsname symM\@tempc\@tempa\endcsname\else \DeclareSymbolFont {M\@tempc\@tempa}{TU}{\M@f@ntn@me}{\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} \csname M@\@temp@opt @set\endcsname % set default font \csname M@\@temp@opt true\endcsname % set switch to true \fi \fi} \edef\@tempa{\the\M@toks} \ifx\@tempa\@empty \wlog{The \string\mathfont\space command on line \the\inputlineno\space did not change the font for any characters!} \else \typeout{:: mathfont :: Using font \@tempbase\space on line \the\inputlineno.} \wlog{Character classes changed:\the\M@toks^^J} \fi \fi} \@onlypreamble\mathfont \@onlypreamble\m@thf@nt \@onlypreamble\@mathfont \protected\def\setfont#1{% \mathfont{#1} \mathconstantsfont{#1} \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 \csname TU/\m@th@const@nts@font/\seriesdefault/\shapedefault \endcsname % expands to \TU//m/n \globaldefs\@ne \expandafter\@gobbletwo\math@fonts % gobble to avoid infinite loop \endgroup} \fi \let\m@th@const@nts@font\@tempa \fi} \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@ \else \ifnum\catcode`#1=11\relax% good \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 \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}}} \def\M@check@csarg#1#2{% \expandafter\ifx\expandafter\@nnil\@gobble#2\@nnil% good \ifcat\relax\noexpand#2% good \M@arg@goodtrue \else \M@MissingControlSequenceError#1{#2} \M@arg@goodfalse \fi \else \M@DoubleArgError#1{#2} \M@arg@goodfalse \fi} \protected\def\newmathfontcommand#1#2#3#4{% \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} \fi} \@onlypreamble\newmathfontcommand \def\M@define@newmath@cmd#1#2#3{% \protected\def#1##1##2{% \M@check@csarg{#1}{##1} \newmathfontcommand{##1}{##2}{#2}{#3}}} \def\M@default@newmath@cmds{% \newmathrm{\mddefault}{\shapedefault},% \newmathit{\mddefault}{\itdefault},% \newmathbf{\bfdefault}{\shapedefault},% \newmathbfit{\bfdefault}{\itdefault},% \newmathsc{\mddefault}{\scdefault},% \newmathscit{\mddefault}{\scdefault\itdefault},% \newmathbfsc{\bfdefault}{\scdefault},% \newmathbfscit{\bfdefault}{\scdefault\itdefault}} \@for\@i:=\M@default@newmath@cmds\do{\expandafter\M@define@newmath@cmd\@i} \@onlypreamble\newmathrm \@onlypreamble\newmathit \@onlypreamble\newmathbf \@onlypreamble\newmathbfit \@onlypreamble\newmathsc \@onlypreamble\newmathscit \@onlypreamble\newmathbfsc \@onlypreamble\newmathbfscit \@onlypreamble\M@define@newmath@cmd \let\M@default@newmath@cmds\relax \protected\def\setmathfontcommands#1{% \newmathrm\mathrm{#1} \newmathit\mathit{#1} \newmathbf\mathbf{#1} \newmathbfit\mathbfit{#1} \newmathsc\mathsc{#1} \newmathscit\mathscit{#1} \newmathbfsc\mathbfsc{#1} \newmathbfscit\mathbfscit{#1}} \@onlypreamble\setmathfontcommands \protected\def\newmathbold{% \M@DeprecatedWarning\newmathbold\newmathbf \newmathbf} \protected\def\newmathboldit{% \M@DeprecatedWarning\newmathboldit\newmathbfit \newmathbfit} \ifM@adjust@font \def\M@check@int#1{% \M@arg@goodfalse \begingroup \edef\@tempa{\number0#1} \edef\@tempa{\detokenize\expandafter{\@tempa}} \@expandtwoargs\in@{"}{\@tempa} \ifin@ % is " in #1? \endgroup % first branch \endgroup \else \@expandtwoargs\in@{\@backslashchar}{\@tempa} \ifin@ % is \ in #1? \endgroup % second branch \endgroup \else \directlua{ local num = tonumber("\@tempa") if num then % if number? if num == num - (num \@percentchar 1) then % if integer? if num >= 0 then % if nonnegative? tex.print("\@backslashchar\@backslashchar endgroup% \@backslashchar\@backslashchar M@arg@goodtrue") end end end} \fi \fi} \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{% \M@check@int{#1} \ifM@arg@good \global\M@integral@italic@factor=#1\relax \else \M@BadIntegerError\IntegralItalicFactor{#1} \fi} \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{% \M@check@int{#1} \ifM@arg@good \global\M@surd@vertical@factor=#1\relax \else \M@BadIntegerError\SurdVerticalFactor{#1} \fi} \else \@tfor\@i:=\RuleThicknessFactor\IntegralItalicFactor\SurdHorizontalFactor \SurdVerticalFactor\CharmLine\CharmFile\mathconstantsfont \do{% \expandafter\edef\@i{\noexpand\M@NoFontAdjustError \expandafter\noexpand\@i \noexpand\@gobble}} \fi \@onlypreamble\RuleThicknessFactor \@onlypreamble\IntegralItalicFactor \@onlypreamble\SurdHorizontalFactor \@onlypreamble\SurdVerticalFactor \@onlypreamble\CharmLine \@onlypreamble\CharmFile \def\restoremathinternals{% \ifx\set@mathchar\@@set@mathchar \else \wlog{Package mathfont Info: Restoring \string\set@mathchar.} \wlog{Package mathfont Info: Restoring \string\set@mathsymbol.} \wlog{Package mathfont Info: Restoring \string\set@mathaccent.} \wlog{Package mathfont Info: Restoring \string\DeclareSymbolFont.} \let\set@mathchar\@@set@mathchar \let\set@mathsymbol\@@set@mathsymbol \let\set@mathaccent\@@set@mathaccent \let\DeclareSymbolFont\@@DeclareSymbolFont \fi} \protected\gdef\clap#1{\hb@xt@\z@{\hss#1\hss}} \protected\def\stack@flatrel#1#2{\expandafter \st@ck@fl@trel\expandafter#1\@firstofone#2} \protected\gdef\st@ck@fl@trel#1#2#3{% {\setbox0\hbox{$\m@th#1#2$}% contains \mathrel symbol \setbox1\hbox{$\m@th#1#3$}% gets raised over \box0 \if\wd0>\wd1\relax \hb@xt@\wd0{% \hfil \clap{\raise0.7\ht0\box1}% \clap{\box0}\hfil}% \else \hb@xt@\wd1{% \hfil \clap{\raise0.7\ht0\box1}% \clap{\box0}\hfil}% \fi}} \ifnum\tracinglostchars<\tw@ \tracinglostchars\tw@ \fi \ifdefined\XeTeXrevision \ifM@font@loaded \AtEndOfPackage{% \PackageWarningNoLine{mathfont} {XeTeX detected. It looks like you\MessageBreak specified a font when you loaded\MessageBreak mathfont. If you run into problems\MessageBreak with a font whose name is multiple\MessageBreak words, try compiling with LuaLaTeX\MessageBreak or call \string\setfont\space or \string\mathfont\MessageBreak 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 \wlog{#1:#2\@spaces Set to \csname M@#1@fontinfo\endcsname, \csname M@#1shape\endcsname\space shape.} \else \wlog{#1:#2\@spaces No change.} \fi} \AtBeginDocument{% \def\@tempa{% <---- everything should be 13 characters long plus : upper:\@spaces\@spaces,% lower:\@spaces\@spaces,% diacritics:\space\space\space,% greekupper:\space\space\space,% greeklower:\space\space\space,% agreekupper:\space\space,% agreeklower:\space\space,% cyrillicupper:,% cyrilliclower:,% hebrew:\@spaces\space\space\space,% digits:\@spaces\space\space\space,% operator:\@spaces\space,% delimiters:\space\space\space,% radical:\@spaces\space\space,% bigops:\@spaces\space\space\space,% extbigops:\@spaces,% symbols:\@spaces\space\space,% extsymbols:\space\space\space,% arrows:\@spaces\space\space\space,% bb:\@spaces\@spaces\space\space\space,% cal:\@spaces\@spaces\space\space,% frak:\@spaces\@spaces\space,% bcal:\@spaces\@spaces\space,% bfrak:\@spaces\@spaces} \wlog{^^JPackage mathfont Info: List of changes made in the preamble---} \@for\@i:=\@tempa\do{% \expandafter\keyword@info@begindocument\@i\@nil} \wlog{}} \ifM@font@loaded \AtEndOfPackage{\setfont\M@font@load} \fi \@onlypreamble\M@upper@set \@onlypreamble\M@lower@set \@onlypreamble\M@diacritics@set \@onlypreamble\M@greekupper@set \@onlypreamble\M@greeklower@set \@onlypreamble\M@agreekupper@set \@onlypreamble\M@agreeklower@set \@onlypreamble\M@cyrillicupper@set \@onlypreamble\M@cyrilliclower@set \@onlypreamble\M@hebrew@set \@onlypreamble\M@digits@set \@onlypreamble\M@operator@set \@onlypreamble\M@symbols@set \@onlypreamble\M@extsymbols@set \@onlypreamble\M@delimiters@set \@onlypreamble\M@arrows@set \@onlypreamble\M@bigops@set \@onlypreamble\M@extbigops@set \@onlypreamble\M@bb@set \@onlypreamble\M@cal@set \@onlypreamble\M@frak@set \@onlypreamble\M@bcal@set \@onlypreamble\M@bfrak@set \ifM@adjust@font \mathnolimitsmode=4\relax \bgroup \catcode`\~=0 ~catcode`~\=12 ~@firstofone{ ~egroup ~def~M@number@ssert{"\n% Package mathfont error: Nonnumeric charm value.\n\n% I'm having trouble with a character metric.\n% Your \\CharmLine or \\CharmFile contains \""..temp_string.."\"\n% which is not a number. Make sure that your\n% charm information is all integers, floats,\n% or asterisks separated by commas or spaces.\n"} ~def~M@index@ssert{"\n% Package mathfont error: Invalid unicode index.\n\n% The unicode index \""..split_string[1].."\" is invalid. Make sure\n% that the first number in your \\CharmLine and in each\n% line of your \\CharmFile is an integer between 0 and\n% 1,114,111.\n"} ~def~M@entries@ssert{"\n% Package mathfont error: Charm values too short.\n\n% Your charm information for U+"..index.." needs more\n% entries. Right now you have "..number_of_entries.." entries, and\n% you need at least "..entries_needed..". If you aren't sure what\n% to do, try adding asterisks to your \\CharmLine\n% or line in your \\CharmFile.\n"}} \protected\def\CharmLine#1{% \begingroup \edef\@tempa{#1} \edef\@tempa{\detokenize\expandafter{\@tempa}} \@expandtwoargs\in@{"}{\@tempa} \ifin@ % is " in #1? \ifM@fromCharmFile \M@ForbiddenCharmFile{"} \else \M@ForbiddenCharmLine{"} \fi \else \@expandtwoargs\in@{\@backslashchar}{\@tempa} \ifin@ % is \ in #1? \ifM@fromCharmFile \M@ForbiddenCharmFile{\@backslashchar} \else \M@ForbiddenCharmLine{\@backslashchar} \fi \else \directlua{mathfont:add_to_charm("\@tempa")} \fi \fi \endgroup} \protected\def\CharmFile#1{% \begingroup \M@fromCharmFiletrue \immediate\openin\M@Charm{#1} \def\@next{% \read\M@Charm to \@tempa \CharmLine\@tempa \ifeof\M@Charm\else % if file has more lines? \expandafter\@next \fi} \@next \immediate\closein\M@Charm \M@fromCharmFilefalse \endgroup} \directlua{ mathfont = {} function mathfont:new_type_a(index, next, data) self[index] = {} self[index].type = "a" self[index].next = next self[index].left_stretch = data[1] / 1000 self[index].right_stretch = data[2] / 1000 self[index].top_accent_stretch = data[3] / 1000 self[index].bot_accent_stretch = data[4] / 1000 end function mathfont:new_type_e(index, smash, next, data) local v = \string# next self[index] = {} self[index].type = "e" self[index].smash = smash self[index].next = next self[index].total_variants = v self[index].data = {} for i = 1, v, 1 do self[index].data[i] = {} self[index].data[i].x = data[2*i-1] / 1000 self[index].data[i].y = data[2*i] / 1000 end self[index].top_accent_stretch = data[2*v+1] / 1000 self[index].bot_accent_stretch = data[2*v+2] / 1000 end function mathfont:new_type_u(index, data) self[index] = {} self[index].type = "u" self[index].top_accent_stretch = data[1] / 1000 self[index].bot_accent_stretch = data[2] / 1000 end function mathfont.parse_charm(charm_input) local split_string = {} local charm_string = charm_input local temp_string = "" local i = 1 while string.find(charm_string, " ") or string.find(charm_string, ",") do local length = string.len(charm_string) local first_space = string.find(charm_string, " ") or length local first_comma = string.find(charm_string, ",") or length local sep = first_space if first_comma < first_space then sep = first_comma end temp_string = string.sub(charm_string, 1, sep-1) charm_string = string.sub(charm_string, sep+1) if temp_string \noexpand~= "" then if tonumber(temp_string) then % if a number, append number split_string[i] = tonumber(temp_string) i = i+1 elseif temp_string == "*" then % if asterisk, append asterisk split_string[i] = temp_string i = i+1 else % if neither, raise error error(\M@number@ssert) end end end temp_string = charm_string if temp_string \noexpand~= "" then if tonumber(temp_string) then % if a number, append number split_string[i] = tonumber(temp_string) elseif temp_string == "*" then % if asterisk, append asterisk split_string[i] = temp_string else % if neither, raise error error(\M@number@ssert) end end local index = split_string[1] if index == "*" then error(\M@index@ssert) end local rounded = index - (index \@percentchar 1) % subtract decimal portion local max = 1114111 assert(index == rounded and index >= 0 and index <= max, \M@index@ssert) return split_string end function mathfont:add_to_charm(charm_string) local charm_metrics = self.parse_charm(charm_string) local index = charm_metrics[1] local number_of_entries = \string# charm_metrics if not self[index] then self:new_type_u(index, {0, 0}) end if self[index].type == "a" then local entries_needed = 5 assert(number_of_entries >= entries_needed, \M@entries@ssert) if charm_metrics[2] \noexpand~= "*" then self[index].left_stretch = charm_metrics[2] / 1000 end if charm_metrics[3] \noexpand~= "*" then self[index].right_stretch = charm_metrics[3] / 1000 end if charm_metrics[4] \noexpand~= "*" then self[index].top_accent_stretch = charm_metrics[4] / 1000 end if charm_metrics[5] \noexpand~= "*" then self[index].bot_accent_stretch = charm_metrics[5] / 1000 end elseif self[index].type == "e" then local tot_variants = self[index].total_variants local entries_needed = 2 * tot_variants + 3 assert(number_of_entries >= entries_needed, \M@entries@ssert) for i = 1, tot_variants, 1 do if charm_metrics[2*i] \noexpand~= "*" then self[index].data[i].x = charm_metrics[2*i] / 1000 end if charm_metrics[2*i+1] \noexpand~= "*" then self[index].data[i].y = charm_metrics[2*i+1] / 1000 end end if charm_metrics[2*tot_variants+2] \noexpand~= "*" then self[index].top_accent_stretch = charm_metrics[2*tot_variants+2] / 1000 end if charm_metrics[2*tot_variants+3] \noexpand~= "*" then self[index].bot_accent_stretch = charm_metrics[2*tot_variants+3] / 1000 end elseif self[index].type == "u" then local entries_needed = 3 assert(number_of_entries >= entries_needed, \M@entries@ssert) if charm_metrics[2] \noexpand~= "*" then self[index].top_accent_stretch = charm_metrics[2] / 1000 end if charm_metrics[3] \noexpand~= "*" then self[index].bot_accent_stretch = charm_metrics[3] / 1000 end end end function mathfont.make_hex_value(integer) if integer == 0 then return "0000" end if integer == 1 then return "0001" end local hex_digits = "0123456789ABCDEF" % for reference local hex_string = "" local curr_val = integer local remainder = 0 local i = 0 while 16^i <= curr_val do i = i+1 end for j = i-1, 0, -1 do remainder = curr_val \@percentchar (16^j) curr_val = (curr_val - remainder) / (16^j) hex_string = hex_string .. string.sub(hex_digits, curr_val+1, curr_val+1) curr_val = remainder end if \string# hex_string < 4 then for i = \string# hex_string, 4, 1 do hex_string = "0" .. hex_string end end return hex_string end function mathfont.glyph_info(char) local glyph_width = char.width or 0 local glyph_height = char.height or 0 local glyph_depth = char.depth or 0 local glyph_italic = char.italic or 0 return glyph_width, glyph_height, glyph_depth, glyph_italic end function mathfont:smash_glyph(index, fontdata) local smash_table = {} smash_table.width = 0 smash_table.height = 0 smash_table.depth = 0 smash_table.commands = {{"char", index}} return smash_table end function mathfont.empty(arg) end function mathfont.make_a_commands(index, offset) local c_1 = {"right", offset} local c_2 = {"char", index} return {c_1, c_2} end function mathfont:make_a_table(index, charm_data, fontdata) local a_table = {} local char = fontdata.characters[index] or {} local slant = fontdata.parameters.slant / 65536 or 0 local left_stretch = charm_data.left_stretch local right_stretch = charm_data.right_stretch local width, height, depth, italic = self.glyph_info(char) width = width + italic local offset = width * left_stretch a_table.width = width * (1 + left_stretch + right_stretch) a_table.height = height a_table.depth = depth a_table.italic = italic a_table.unicode = index a_table.tounicode = self.make_hex_value(index) local top_base = (0.5 + left_stretch) * width + 0.5 * slant * height local bot_base = (0.5 + left_stretch) * width - 0.5 * slant * height local top_accent_shift = charm_data.top_accent_stretch * width local bot_accent_shift = charm_data.bot_accent_stretch * width a_table.top_accent = top_base + top_accent_shift a_table.bot_accent = bot_base + bot_accent_shift a_table.commands = self.make_a_commands(index, offset) a_table.mathkern = {} a_table.mathkern.top_right = {{height = 0, kern = -italic}} a_table.mathkern.bottom_right = {{height = 0, kern = -italic}} a_table.mathkern.top_left = {{height = 0, kern = 0}} a_table.mathkern.bottom_left = {{height = 0, kern = 0}} return a_table end function mathfont:modify_e_base(index, fontdata) local char = fontdata.characters[index] or {} local width, height, depth, italic = self.glyph_info(char) char.width = width + italic if index == 8730 then local horizontal_scale = tex.getcount("M@surd@horizontal@factor") / 1000 local vertical_scale = tex.getcount("M@surd@vertical@factor") / 1000 char.width = horizontal_scale * char.width char.height = vertical_scale * height end if index == 8747 then local scale_factor = tex.getcount("M@integral@italic@factor") / 1000 char.italic = scale_factor * width end end function mathfont.make_e_commands(index, h_stretch, v_stretch) local c_1 = {"pdf", "origin", string.format( "q \@percentchar s 0 0 \@percentchar s 0 0 cm", h_stretch, v_stretch)} local c_2 = {"char", index} local c_3 = {"pdf", "origin", "Q"} return {c_1, c_2, c_3} end function mathfont:make_e_table(index, charm_data, fontdata) local e_table = {} local char = fontdata.characters[index] or {} local slant = fontdata.parameters.slant / 65536 local tounicode = self.make_hex_value(index) local smash_index = charm_data.smash local width, height, depth, italic = self.glyph_info(char) for i = 1, charm_data.total_variants, 1 do local h_stretch = charm_data.data[i].x local v_stretch = charm_data.data[i].y local new_width = width * h_stretch local new_height = height * v_stretch local new_depth = depth * v_stretch local new_italic = italic * h_stretch e_table[i] = {} e_table[i].width = new_width e_table[i].height = new_height e_table[i].depth = new_depth e_table[i].italic = new_italic e_table[i].unicode = index e_table[i].tounicode = tounicode local base_top_accent = 0.5 * new_width + 0.5 * slant * new_height local base_bot_accent = 0.5 * new_width - 0.5 * slant * new_height local top_accent_shift = charm_data.top_accent_stretch * new_width local bot_accent_shift = charm_data.bot_accent_stretch * new_width e_table[i].top_accent = base_top_accent + top_accent_shift e_table[i].bot_accent = base_bot_accent + bot_accent_shift e_table[i].commands = self.make_e_commands(smash_index, h_stretch, v_stretch) if i < charm_data.total_variants then e_table[i].next = charm_data.next[i+1] end end return e_table end function mathfont:make_u_table(index, charm_data, fontdata) local u_table = fontdata.characters[index] or {} local slant = fontdata.parameters.slant / 65536 or 0 local width, height, depth, italic = self.glyph_info(u_table) local new_width = width + italic u_table.width = new_width local base_top_accent = 0.5 * new_width + 0.5 * slant * height local base_bot_accent = 0.5 * new_width - 0.5 * slant * height local top_accent_shift = charm_data.top_accent_stretch * new_width local bot_accent_shift = charm_data.bot_accent_stretch * new_width u_table.top_accent = base_top_accent + top_accent_shift u_table.bot_accent = base_bot_accent + bot_accent_shift u_table.mathkern = {} u_table.mathkern.top_right = {{height = 0, kern = -italic}} u_table.mathkern.bottom_right = {{height = 0, kern = -italic}} u_table.mathkern.top_left = {{height = 0, kern = 0}} u_table.mathkern.bottom_left = {{height = 0, kern = 0}} return u_table end function mathfont.make_fake_angle(index, smash, fontdata) local temp = {} local lparen = fontdata.characters[40] or {} local lparen_height = lparen.height or 0 local lparen_depth = lparen.depth or 0 local glyph = fontdata.characters[index] or {} local glyph_height = glyph.height or 0 local base_height = 0.9 * glyph_height local factor = 0 if glyph_height \noexpand~= 0 then factor = (lparen_height + lparen_depth) / base_height end local shift = 0.1 * glyph_height * factor + lparen_depth temp.height = lparen_height temp.depth = lparen_depth temp.width = glyph.width or 0 temp.italic = glyph.italic or 0 temp.top_accent = glyph.top_accent or 0.5 * temp.width temp.bot_accent = glyph.bot_accent or 0.5 * temp.width temp.commands = { {"down", shift}, {"pdf", "origin", string.format("q 1 0 0 \@percentchar s 0 0 cm", factor)}, {"char", smash}, {"pdf", "origin", "Q"}, {"down", -shift}} return temp end function mathfont.set_nomath_true(fontdata) fontdata.nomath = false fontdata.oldmath = false end function mathfont.apply_charm_info(fontdata) local chars = fontdata.characters or {} chars[1044538] = mathfont:smash_glyph(8249, fontdata) % \lguil chars[1044539] = mathfont:smash_glyph(8250, fontdata) % \rguil chars[1044540] = mathfont:smash_glyph(171, fontdata) % \llguil chars[1044541] = mathfont:smash_glyph(187, fontdata) % \rrguil chars[1044508] = mathfont.make_fake_angle(8249, 1044538, fontdata) chars[1044509] = mathfont.make_fake_angle(8250, 1044539, fontdata) chars[1044510] = mathfont.make_fake_angle(171, 1044540, fontdata) chars[1044511] = mathfont.make_fake_angle(187, 1044541, fontdata) if not chars[8711] then chars[8710] = chars[8710] or {} chars[1044508] = mathfont:smash_glyph(8710, fontdata) chars[8711] = {} chars[8711].width = chars[8710].width or 0 chars[8711].height = chars[8710].height or 0 chars[8711].depth = chars[8710].depth or 0 chars[8711].italic = chars[8710].italic or 0 chars[8711].top_accent = chars[8710].top_accent or 0.5 * chars[8711].width chars[8711].bot_accent = chars[8710].bot_accent or 0.5 * chars[8711].width chars[8711].unicode = 8711 chars[8711].tounicode = mathfont.make_hex_value(8711) chars[8711].commands = { {"down", -chars[8711].height}, {"pdf", "origin", "q 1 0 0 -1 0 0 cm"}, {"char", 1044508}, {"pdf", "origin", "Q"}, {"down", chars[8711].height}} end for index, info in pairs(mathfont) do if type(info) == "table" then if info.type == "a" then chars[info.next] = mathfont:make_a_table(index, info, fontdata) elseif info.type == "e" then local smash = info.smash chars[index] = chars[index] or {} chars[index].next = info.next[1] mathfont:modify_e_base(index, fontdata) chars[smash] = mathfont:smash_glyph(index, fontdata) local variants_table = mathfont:make_e_table(index, info, fontdata) for i = 1, info.total_variants, 1 do chars[info.next[i]] = variants_table[i] end elseif info.type == "u" then chars[index] = mathfont:make_u_table(index, info, fontdata) end end end end function mathfont.math_constants(fontdata) fontdata.MathConstants = fontdata.MathConstants or {} local size = fontdata.size or 0 local ex = fontdata.parameters.x_height or 0 local em = fontdata.parameters.quad or 0 local A_height = 0 local y_depth = 0 if fontdata.characters[65] then A_height = fontdata.characters[65].height or 0 % A end if fontdata.characters[121] then y_depth = fontdata.characters[121].depth or 0 % y end local axis = 0 local rule_thickness = 0 local dim = "FractionRuleThickness" if not fontdata.MathConstants[dim] then local scale_factor = tex.getcount("M@rule@thickness@factor") / 1000 rule_thickness = (size / 18) * scale_factor fontdata.MathConstants[dim] = rule_thickness else rule_thickness = fontdata.MathConstants[dim] end local dim = "AxisHeight" if fontdata.MathConstants[dim] then axis = fontdata.MathConstants[dim] else if fontdata.characters[45] then axis = fontdata.characters[45].height - 0.5 * rule_thickness else axis = 0.8 * ex end fontdata.MathConstants[dim] = axis end local xi_9 = 2 * rule_thickness % upper limit minimum clearance local xi_10 = xi_9 + 0.35 * y_depth % upper limit attempt placement local xi_11 = xi_10 % lower limit minimum clearance local xi_12 = xi_10 + 0.35 * (A_height + ex) % lower limit attempt placement local sigma_8 = axis + 1.5 * rule_thickness + y_depth + 0.1 * A_height local sigma_9 = (axis + 1.35 * rule_thickness + 0.7 * y_depth + 0.07 * A_height) local sigma_10 = sigma_9 local sigma_11 = (-axis + 1.5 * rule_thickness + 0.5 * y_depth + 1.1 * A_height) local sigma_12 = (-axis + 1.35 * rule_thickness + 0.35 * y_depth + 0.77 * A_height) local sigma_13 = 0.6 * A_height % attempted superscript height local sigma_15 = 0.5 * A_height % attempted superscript for \cramped local sigma_16 = 1.1 * y_depth % attempted subscript lower if sigma_16 < 0.2 * A_height then sigma_16 = 0.2 * A_height end local sigma_17 = sigma_16 % sigma_16 when superscript present local sigma_18 = 0.5 * A_height % superscript lower for boxed subformula local sigma_19 = 0.1 * A_height % subscript lower for boxed subformula local dim = "DisplayOperatorMinHeight" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 1.8 * A_height end local dim = "FractionDelimiterDisplayStyleSize" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 2 * size end local dim = "FractionDelimiterSize" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 1.3 * size end local dim = "FractionDenominatorDisplayStyleShiftDown" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_11 end local dim = "FractionDenominatorShiftDown" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_12 end local dim = "FractionDenominatorDisplayStyleGapMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = rule_thickness + 0.5 * y_depth end local dim = "FractionDenominatorGapMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = rule_thickness + 0.35 * y_depth end local dim = "FractionNumeratorDisplayStyleShiftUp" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_8 end local dim = "FractionNumeratorShiftUp" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_9 end local dim = "FractionNumeratorDisplayStyleGapMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = rule_thickness end local dim = "FractionNumeratorGapMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = rule_thickness end local dim = "SkewedFractionHorizontalGap" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 0.5 * em end local dim = "SkewedFractionVerticalGap" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = ex end local dim = "UpperLimitBaselineRiseMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = xi_11 end local dim = "UpperLimitGapMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = xi_9 end local dim = "LowerLimitBaselineDropMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = xi_12 end local dim = "LowerLimitGapMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = xi_10 end local dim = "StretchStackGapBelowMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = xi_10 end local dim = "StretchStackTopShiftUp" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = xi_11 end local dim = "StretchStackGapAboveMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = xi_9 end local dim = "StretchStackBottomShiftDown" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = xi_12 end local dim = "OverbarExtraAscender" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = rule_thickness end local dim = "OverbarRuleThickness" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = rule_thickness end local dim = "OverbarVerticalGap" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 2 * rule_thickness end local dim = "RadicalExtraAscender" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = rule_thickness end local dim = "RadicalRuleThickness" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = rule_thickness end local dim = "RadicalDisplayStyleVerticalGap" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 2 * rule_thickness end local dim = "RadicalVerticalGap" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = rule_thickness end local dim = "RadicalKernBeforeDegree" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = (5/18) * em end local dim = "RadicalKernAfterDegree" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = (10/18) * em end local dim = "RadicalDegreeBottomRaisePercent" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 60 end local dim = "SpaceAfterScript" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 0.1 * em end local dim = "StackBottomDisplayStyleShiftDown" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_11 end local dim = "StackBottomShiftDown" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_12 end local dim = "StackTopDisplayStyleShiftUp" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_8 end local dim = "StackTopShiftUp" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_10 end local dim = "StackDisplayStyleGapMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 5 * rule_thickness + 0.5 * y_depth end local dim = "StackGapMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 3 * rule_thickness + 0.35 * y_depth end local dim = "SubscriptShiftDown" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_16 end local dim = "SubscriptBaselineDropMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_19 end local dim = "SubscriptShiftDownWithSuperscript" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_17 end local dim = "SubscriptTopMax" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 0.5 * A_height end local dim = "SubSuperscriptGapMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = rule_thickness end local dim = "SuperscriptBottomMin" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_15 - 0.7 * y_depth end local dim = "SuperscriptBaselineDropMax" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_18 end local dim = "SuperscriptShiftUp" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_13 end local dim = "SuperscriptShiftUpCramped" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = sigma_15 end local dim = "SuperscriptBottomMaxWithSubscript" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = -sigma_16 + 0.7 * A_height + rule_thickness end local dim = "UnderbarExtraDescender" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = rule_thickness end local dim = "UnderbarRuleThickness" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = rule_thickness end local dim = "UnderbarVerticalGap" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 2 * rule_thickness end local dim = "MinConnectorOverlap" if not fontdata.MathConstants[dim] then fontdata.MathConstants[dim] = 0 end end luatexbase.create_callback("mathfont.inspect_font", "simple", mathfont.empty) luatexbase.create_callback("mathfont.pre_adjust", "simple", mathfont.empty) luatexbase.create_callback("mathfont.disable_nomath", "simple", mathfont.set_nomath_true) luatexbase.create_callback("mathfont.add_math_constants", "simple", mathfont.math_constants) luatexbase.create_callback("mathfont.fix_character_metrics", "simple", mathfont.apply_charm_info) luatexbase.create_callback("mathfont.post_adjust", "simple", mathfont.empty) function mathfont.info(msg) texio.write_nl("log", "Package mathfont Info: " .. msg) end function mathfont.get_font_name(fontdata) return fontdata.fullname or fontdata.psname or fontdata.name or "" end function mathfont.adjust_font(fontdata) luatexbase.call_callback("mathfont.inspect_font", fontdata) if fontdata.nomath then mathfont.info("Adjusting font " .. mathfont.get_font_name(fontdata) .. ".") luatexbase.call_callback("mathfont.pre_adjust", fontdata) luatexbase.call_callback("mathfont.disable_nomath", fontdata) luatexbase.call_callback("mathfont.add_math_constants", fontdata) luatexbase.call_callback("mathfont.fix_character_metrics", fontdata) luatexbase.call_callback("mathfont.post_adjust", fontdata) else mathfont.info("No changes made to " .. mathfont.get_font_name(fontdata) .. ".") end end luatexbase.add_to_callback("luaotfload.patch_font", mathfont.adjust_font, "mathfont.adjust_font") mathfont:new_type_a(97, 1044480, {50, 50, -50, 0}) % a mathfont:new_type_a(98, 1044481, {50, 50, -50, 0}) % b mathfont:new_type_a(99, 1044482, {50, 50, 0, 0}) % c mathfont:new_type_a(100, 1044483, {50, -50, -50, 0}) % d mathfont:new_type_a(101, 1044484, {50, 50, 0, 0}) % e mathfont:new_type_a(102, 1044485, {200, 0, 0, 0}) % f mathfont:new_type_a(103, 1044486, {100, 50, -50, 0}) % g mathfont:new_type_a(104, 1044487, {50, 0, -50, 0}) % h mathfont:new_type_a(105, 1044488, {50, 100, -100, 0}) % i mathfont:new_type_a(106, 1044489, {400, 50, -50, 0}) % j mathfont:new_type_a(107, 1044490, {50, 50, -100, 0}) % k mathfont:new_type_a(108, 1044491, {100, 150, -100, 0}) % l mathfont:new_type_a(109, 1044492, {50, 0, 0, 0}) % m mathfont:new_type_a(110, 1044493, {50, 0, 0, 0}) % n mathfont:new_type_a(111, 1044494, {50, 0, 0, 0}) % o mathfont:new_type_a(112, 1044495, {200, 50, -50, 0}) % p mathfont:new_type_a(113, 1044496, {50, 0, -50, 0}) % q mathfont:new_type_a(114, 1044497, {100, 100, -50, 0}) % r mathfont:new_type_a(115, 1044498, {50, 50, -50, 0}) % s mathfont:new_type_a(116, 1044499, {50, 50, -50, 0}) % t mathfont:new_type_a(117, 1044500, {0, 50, 0, 0}) % u mathfont:new_type_a(118, 1044501, {0, 50, -50, 0}) % v mathfont:new_type_a(119, 1044502, {0, 50, 0, 0}) % w mathfont:new_type_a(120, 1044503, {50, 0, -50, 0}) % x mathfont:new_type_a(121, 1044504, {150, 50, -50, 0}) % y mathfont:new_type_a(122, 1044505, {100, 50, -100, 0}) % z mathfont:new_type_a(305, 1044506, {100, 100, -150, 0}) % \imath mathfont:new_type_a(567, 1044507, {700, 50, -150, 0}) % \jmath mathfont:new_type_a(65, 1044512, {50, 0, 150, 0}) % A mathfont:new_type_a(66, 1044513, {50, 0, 0, 0}) % B mathfont:new_type_a(67, 1044514, {0, 0, 0, 0}) % C mathfont:new_type_a(68, 1044515, {50, 0, -50, 0}) % D mathfont:new_type_a(69, 1044516, {50, 0, 0, 0}) % E mathfont:new_type_a(70, 1044517, {50, 0, 0, 0}) % F mathfont:new_type_a(71, 1044518, {0, 0, 0, 0}) % G mathfont:new_type_a(72, 1044519, {50, 0, -50, 0}) % H mathfont:new_type_a(73, 1044520, {100, 0, 0, 0}) % I mathfont:new_type_a(74, 1044521, {50, 0, 100, 0}) % J mathfont:new_type_a(75, 1044522, {50, 0, 0, 0}) % K mathfont:new_type_a(76, 1044523, {50, 0, -180, 0}) % L mathfont:new_type_a(77, 1044524, {50, 0, -50, 0}) % M mathfont:new_type_a(78, 1044525, {50, 0, -50, 0}) % N mathfont:new_type_a(79, 1044526, {0, 0, 0, 0}) % O mathfont:new_type_a(80, 1044527, {0, 0, -50, 0}) % P mathfont:new_type_a(81, 1044528, {0, 50, 0, 0}) % Q mathfont:new_type_a(82, 1044529, {50, 0, -50, 0}) % R mathfont:new_type_a(83, 1044530, {0, 0, -50, 0}) % S mathfont:new_type_a(84, 1044531, {0, 0, -50, 0}) % T mathfont:new_type_a(85, 1044532, {0, 0, -50, 0}) % U mathfont:new_type_a(86, 1044533, {0, 50, 0, 0}) % V mathfont:new_type_a(87, 1044534, {0, 50, -50, 0}) % W mathfont:new_type_a(88, 1044535, {50, 0, 0, 0}) % X mathfont:new_type_a(89, 1044536, {0, 0, -50, 0}) % Y mathfont:new_type_a(90, 1044537, {50, 0, -50, 0}) % Z mathfont:new_type_u(945, {0, 0}) % \alpha mathfont:new_type_u(946, {0, 0}) % \beta mathfont:new_type_u(947, {-50, 0}) % \gamma mathfont:new_type_u(948, {0, 0}) % \delta mathfont:new_type_u(1013, {50, 0}) % \epsilon mathfont:new_type_u(950, {0, 0}) % \zeta mathfont:new_type_u(951, {-50, 0}) % \eta mathfont:new_type_u(952, {0, 0}) % \theta mathfont:new_type_u(953, {-50, 0}) % \iota mathfont:new_type_u(954, {0, 0}) % \kappa mathfont:new_type_u(955, {-150, 0}) % lambda mathfont:new_type_u(956, {0, 0}) % \mu mathfont:new_type_u(957, {-50, 0}) % \nu mathfont:new_type_u(958, {0, 0}) % \xi mathfont:new_type_u(959, {0, 0}) % \omicron mathfont:new_type_u(960, {-100, 0}) % \pi mathfont:new_type_u(961, {-50, 0}) % \rho mathfont:new_type_u(963, {-100, 0}) % \sigma mathfont:new_type_u(964, {-100, 0}) % \tau mathfont:new_type_u(965, {-50, 0}) % \upsilon mathfont:new_type_u(981, {0, 0}) % \phi mathfont:new_type_u(967, {-50, 0}) % \chi mathfont:new_type_u(968, {-50, 0}) % \psi mathfont:new_type_u(969, {0, 0}) % \omega mathfont:new_type_u(976, {0, 0}) % \varbeta mathfont:new_type_u(949, {-50, 0}) % \varepsilon mathfont:new_type_u(977, {50, 0}) % \vartheta mathfont:new_type_u(1009, {-50, 0}) % \varrho mathfont:new_type_u(962, {-50, 0}) % \varsigma mathfont:new_type_u(966, {0, 0}) % \varphi mathfont:new_type_u(913, {0, 0}) % \Alpha mathfont:new_type_u(914, {0, 0}) % \Beta mathfont:new_type_u(915, {0, 0}) % \Gamma mathfont:new_type_u(916, {0, 0}) % \Delta mathfont:new_type_u(917, {0, 0}) % \Epsilon mathfont:new_type_u(918, {0, 0}) % \Zeta mathfont:new_type_u(919, {0, 0}) % \Eta mathfont:new_type_u(920, {0, 0}) % \Theta mathfont:new_type_u(921, {0, 0}) % \Iota mathfont:new_type_u(922, {0, 0}) % \Kappa mathfont:new_type_u(923, {0, 0}) % \Lambda mathfont:new_type_u(924, {0, 0}) % \Mu mathfont:new_type_u(925, {0, 0}) % \Nu mathfont:new_type_u(926, {0, 0}) % \Xi mathfont:new_type_u(927, {0, 0}) % \Omicron mathfont:new_type_u(928, {0, 0}) % \Pi mathfont:new_type_u(929, {0, 0}) % \Rho mathfont:new_type_u(931, {0, 0}) % \Sigma mathfont:new_type_u(932, {0, 0}) % \Tau mathfont:new_type_u(933, {0, 0}) % \Upsilon mathfont:new_type_u(934, {0, 0}) % \Phi mathfont:new_type_u(935, {0, 0}) % \Chi mathfont:new_type_u(936, {0, 0}) % \Psi mathfont:new_type_u(937, {0, 0}) % \Omega mathfont:new_type_u(1012, {0, 0}) % \varTheta local delim_glyphs = {40, % ( 41, % ) 47, % / 91, % [ 92, % \ 93, % ] 123, % { 125, % } 8249, % \lguil 8250, % \rguil 171, % \llguil 187, % \rrguil 1044508, % \fakelangle 1044509, % \fakerangle 1044510, % \fakellangle 1044511} % \fakerrangle local big_op_glyphs = {33, % ! 35, % # 36, % $ 37, % % 38, % & 43, % + 63, % ? 64, % @ 167, % \S 215, % \times 247, % \div 8719, % \prod 8721, % \sum 8720, % \coprod 8897, % \bigvee 8896, % \bigwedge 8899, % \bigcup 8898, % \bigcap 10753, % \bigoplus 10754, % \bigotimes 10752, % \bigodot 10757, % \bigsqcap 10758} % \bigsqcup local vert_glyphs = {124, 8730} % | and \surd local int_glyphs = {8747, % \intop 8748, % \iint 8749, % \iiint 8750, % \oint 8751, % \oiint 8752} % \oiiint local smash = 1044544 local delim_scale = {} local big_op_scale = {} local vert_scale = {} local int_scale = {} for i = 1, 15, 1 do delim_scale[2*i-1] = 1000 + 100*i % horizontal - delimiters delim_scale[2*i] = 1000 + 500*i % vertical - delimiters vert_scale[2*i-1] = 1000 vert_scale[2*i] = 1000 + 500*i % vertical - vertically scaled chars big_op_scale[2*i-1] = 1000 + 100*i % horizontal - big operators big_op_scale[2*i] = 1000 + 100*i % vertical - big operators int_scale[2*i-1] = 1000 + 500*i % horizontal - integral sign int_scale[2*i] = 1000 + 1500*i % vertical - integral sign end delim_scale[31] = 0 delim_scale[32] = 0 big_op_scale[31] = 0 big_op_scale[32] = 0 vert_scale[31] = 0 vert_scale[32] = 0 int_scale[31] = 0 int_scale[32] = 0 function mathfont:add_extensible_variants(first_smash, glyph_list, scale_list) local variants = (\string# scale_list - 2) / 2 local curr_smash = first_smash for i = 1, \string# glyph_list, 1 do local curr_char = glyph_list[i] local curr_slots = {} for j = 1, variants, 1 do curr_slots[j] = curr_smash + j end self:new_type_e(curr_char, curr_smash, curr_slots, scale_list) smash = smash + variants + 1 curr_smash = smash end end mathfont:add_extensible_variants(smash, delim_glyphs, delim_scale) mathfont:add_extensible_variants(smash, big_op_glyphs, big_op_scale) mathfont:add_extensible_variants(smash, vert_glyphs, vert_scale) mathfont:add_extensible_variants(smash, int_glyphs, int_scale) } \fi % matches previous \ifM@adjust@font \ifM@adjust@font \def\M@upper@set{% \edef\M@upper@font{M\M@uppershape\@tempa} \DeclareMathSymbol{A}{\mathalpha}{\M@upper@font}{1044512} \DeclareMathSymbol{B}{\mathalpha}{\M@upper@font}{1044513} \DeclareMathSymbol{C}{\mathalpha}{\M@upper@font}{1044514} \DeclareMathSymbol{D}{\mathalpha}{\M@upper@font}{1044515} \DeclareMathSymbol{E}{\mathalpha}{\M@upper@font}{1044516} \DeclareMathSymbol{F}{\mathalpha}{\M@upper@font}{1044517} \DeclareMathSymbol{G}{\mathalpha}{\M@upper@font}{1044518} \DeclareMathSymbol{H}{\mathalpha}{\M@upper@font}{1044519} \DeclareMathSymbol{I}{\mathalpha}{\M@upper@font}{1044520} \DeclareMathSymbol{J}{\mathalpha}{\M@upper@font}{1044521} \DeclareMathSymbol{K}{\mathalpha}{\M@upper@font}{1044522} \DeclareMathSymbol{L}{\mathalpha}{\M@upper@font}{1044523} \DeclareMathSymbol{M}{\mathalpha}{\M@upper@font}{1044524} \DeclareMathSymbol{N}{\mathalpha}{\M@upper@font}{1044525} \DeclareMathSymbol{O}{\mathalpha}{\M@upper@font}{1044526} \DeclareMathSymbol{P}{\mathalpha}{\M@upper@font}{1044527} \DeclareMathSymbol{Q}{\mathalpha}{\M@upper@font}{1044528} \DeclareMathSymbol{R}{\mathalpha}{\M@upper@font}{1044529} \DeclareMathSymbol{S}{\mathalpha}{\M@upper@font}{1044530} \DeclareMathSymbol{T}{\mathalpha}{\M@upper@font}{1044531} \DeclareMathSymbol{U}{\mathalpha}{\M@upper@font}{1044532} \DeclareMathSymbol{V}{\mathalpha}{\M@upper@font}{1044533} \DeclareMathSymbol{W}{\mathalpha}{\M@upper@font}{1044534} \DeclareMathSymbol{X}{\mathalpha}{\M@upper@font}{1044535} \DeclareMathSymbol{Y}{\mathalpha}{\M@upper@font}{1044536} \DeclareMathSymbol{Z}{\mathalpha}{\M@upper@font}{1044537}} \else \def\M@upper@set{% \edef\M@upper@font{M\M@uppershape\@tempa} \DeclareMathSymbol{A}{\mathalpha}{\M@upper@font}{`A} \DeclareMathSymbol{B}{\mathalpha}{\M@upper@font}{`B} \DeclareMathSymbol{C}{\mathalpha}{\M@upper@font}{`C} \DeclareMathSymbol{D}{\mathalpha}{\M@upper@font}{`D} \DeclareMathSymbol{E}{\mathalpha}{\M@upper@font}{`E} \DeclareMathSymbol{F}{\mathalpha}{\M@upper@font}{`F} \DeclareMathSymbol{G}{\mathalpha}{\M@upper@font}{`G} \DeclareMathSymbol{H}{\mathalpha}{\M@upper@font}{`H} \DeclareMathSymbol{I}{\mathalpha}{\M@upper@font}{`I} \DeclareMathSymbol{J}{\mathalpha}{\M@upper@font}{`J} \DeclareMathSymbol{K}{\mathalpha}{\M@upper@font}{`K} \DeclareMathSymbol{L}{\mathalpha}{\M@upper@font}{`L} \DeclareMathSymbol{M}{\mathalpha}{\M@upper@font}{`M} \DeclareMathSymbol{N}{\mathalpha}{\M@upper@font}{`N} \DeclareMathSymbol{O}{\mathalpha}{\M@upper@font}{`O} \DeclareMathSymbol{P}{\mathalpha}{\M@upper@font}{`P} \DeclareMathSymbol{Q}{\mathalpha}{\M@upper@font}{`Q} \DeclareMathSymbol{R}{\mathalpha}{\M@upper@font}{`R} \DeclareMathSymbol{S}{\mathalpha}{\M@upper@font}{`S} \DeclareMathSymbol{T}{\mathalpha}{\M@upper@font}{`T} \DeclareMathSymbol{U}{\mathalpha}{\M@upper@font}{`U} \DeclareMathSymbol{V}{\mathalpha}{\M@upper@font}{`V} \DeclareMathSymbol{W}{\mathalpha}{\M@upper@font}{`W} \DeclareMathSymbol{X}{\mathalpha}{\M@upper@font}{`X} \DeclareMathSymbol{Y}{\mathalpha}{\M@upper@font}{`Y} \DeclareMathSymbol{Z}{\mathalpha}{\M@upper@font}{`Z}} \fi \ifM@adjust@font \def\M@lower@set{% \edef\M@lower@font{M\M@lowershape\@tempa} \DeclareMathSymbol{a}{\mathalpha}{\M@lower@font}{1044480} \DeclareMathSymbol{b}{\mathalpha}{\M@lower@font}{1044481} \DeclareMathSymbol{c}{\mathalpha}{\M@lower@font}{1044482} \DeclareMathSymbol{d}{\mathalpha}{\M@lower@font}{1044483} \DeclareMathSymbol{e}{\mathalpha}{\M@lower@font}{1044484} \DeclareMathSymbol{f}{\mathalpha}{\M@lower@font}{1044485} \DeclareMathSymbol{g}{\mathalpha}{\M@lower@font}{1044486} \DeclareMathSymbol{h}{\mathalpha}{\M@lower@font}{1044487} \DeclareMathSymbol{i}{\mathalpha}{\M@lower@font}{1044488} \DeclareMathSymbol{j}{\mathalpha}{\M@lower@font}{1044489} \DeclareMathSymbol{k}{\mathalpha}{\M@lower@font}{1044490} \DeclareMathSymbol{l}{\mathalpha}{\M@lower@font}{1044491} \DeclareMathSymbol{m}{\mathalpha}{\M@lower@font}{1044492} \DeclareMathSymbol{n}{\mathalpha}{\M@lower@font}{1044493} \DeclareMathSymbol{o}{\mathalpha}{\M@lower@font}{1044494} \DeclareMathSymbol{p}{\mathalpha}{\M@lower@font}{1044495} \DeclareMathSymbol{q}{\mathalpha}{\M@lower@font}{1044496} \DeclareMathSymbol{r}{\mathalpha}{\M@lower@font}{1044497} \DeclareMathSymbol{s}{\mathalpha}{\M@lower@font}{1044498} \DeclareMathSymbol{t}{\mathalpha}{\M@lower@font}{1044499} \DeclareMathSymbol{u}{\mathalpha}{\M@lower@font}{1044500} \DeclareMathSymbol{v}{\mathalpha}{\M@lower@font}{1044501} \DeclareMathSymbol{w}{\mathalpha}{\M@lower@font}{1044502} \DeclareMathSymbol{x}{\mathalpha}{\M@lower@font}{1044503} \DeclareMathSymbol{y}{\mathalpha}{\M@lower@font}{1044504} \DeclareMathSymbol{z}{\mathalpha}{\M@lower@font}{1044505} \DeclareMathSymbol{\imath}{\mathalpha}{\M@lower@font}{1044506} \DeclareMathSymbol{\jmath}{\mathalpha}{\M@lower@font}{1044507} \DeclareMathSymbol{\hbar}{\mathord}{\M@lower@font}{"127}} \else \def\M@lower@set{% \edef\M@lower@font{M\M@lowershape\@tempa} \DeclareMathSymbol{a}{\mathalpha}{\M@lower@font}{`a} \DeclareMathSymbol{b}{\mathalpha}{\M@lower@font}{`b} \DeclareMathSymbol{c}{\mathalpha}{\M@lower@font}{`c} \DeclareMathSymbol{d}{\mathalpha}{\M@lower@font}{`d} \DeclareMathSymbol{e}{\mathalpha}{\M@lower@font}{`e} \DeclareMathSymbol{f}{\mathalpha}{\M@lower@font}{`f} \DeclareMathSymbol{g}{\mathalpha}{\M@lower@font}{`g} \DeclareMathSymbol{h}{\mathalpha}{\M@lower@font}{`h} \DeclareMathSymbol{i}{\mathalpha}{\M@lower@font}{`i} \DeclareMathSymbol{j}{\mathalpha}{\M@lower@font}{`j} \DeclareMathSymbol{k}{\mathalpha}{\M@lower@font}{`k} \DeclareMathSymbol{l}{\mathalpha}{\M@lower@font}{`l} \DeclareMathSymbol{m}{\mathalpha}{\M@lower@font}{`m} \DeclareMathSymbol{n}{\mathalpha}{\M@lower@font}{`n} \DeclareMathSymbol{o}{\mathalpha}{\M@lower@font}{`o} \DeclareMathSymbol{p}{\mathalpha}{\M@lower@font}{`p} \DeclareMathSymbol{q}{\mathalpha}{\M@lower@font}{`q} \DeclareMathSymbol{r}{\mathalpha}{\M@lower@font}{`r} \DeclareMathSymbol{s}{\mathalpha}{\M@lower@font}{`s} \DeclareMathSymbol{t}{\mathalpha}{\M@lower@font}{`t} \DeclareMathSymbol{u}{\mathalpha}{\M@lower@font}{`u} \DeclareMathSymbol{v}{\mathalpha}{\M@lower@font}{`v} \DeclareMathSymbol{w}{\mathalpha}{\M@lower@font}{`w} \DeclareMathSymbol{x}{\mathalpha}{\M@lower@font}{`x} \DeclareMathSymbol{y}{\mathalpha}{\M@lower@font}{`y} \DeclareMathSymbol{z}{\mathalpha}{\M@lower@font}{`z} \DeclareMathSymbol{\imath}{\mathalpha}{\M@lower@font}{"131} \DeclareMathSymbol{\jmath}{\mathalpha}{\M@lower@font}{"237} \DeclareMathSymbol{\hbar}{\mathord}{\M@lower@font}{"127}} \fi \def\M@diacritics@set{% \edef\M@diacritics@font{M\M@diacriticsshape\@tempa} \DeclareMathAccent{\acute}{\mathalpha}{\M@diacritics@font}{"B4} \DeclareMathAccent{\aacute}{\mathalpha}{\M@diacritics@font}{"2DD} \DeclareMathAccent{\dot}{\mathalpha}{\M@diacritics@font}{"2D9} \DeclareMathAccent{\ddot}{\mathalpha}{\M@diacritics@font}{"A8} \DeclareMathAccent{\grave}{\mathalpha}{\M@diacritics@font}{"60} \DeclareMathAccent{\breve}{\mathalpha}{\M@diacritics@font}{"2D8} \DeclareMathAccent{\hat}{\mathalpha}{\M@diacritics@font}{"2C6} \DeclareMathAccent{\check}{\mathalpha}{\M@diacritics@font}{"2C7} \DeclareMathAccent{\bar}{\mathalpha}{\M@diacritics@font}{"2C9} \DeclareMathAccent{\mathring}{\mathalpha}{\M@diacritics@font}{"2DA} \DeclareMathAccent{\tilde}{\mathalpha}{\M@diacritics@font}{"2DC}} \def\M@greekupper@set{% \edef\M@greekupper@font{M\M@greekuppershape\@tempa} \DeclareMathSymbol{\Alpha}{\mathalpha}{\M@greekupper@font}{"391} \DeclareMathSymbol{\Beta}{\mathalpha}{\M@greekupper@font}{"392} \DeclareMathSymbol{\Gamma}{\mathalpha}{\M@greekupper@font}{"393} \DeclareMathSymbol{\Delta}{\mathalpha}{\M@greekupper@font}{"394} \DeclareMathSymbol{\Epsilon}{\mathalpha}{\M@greekupper@font}{"395} \DeclareMathSymbol{\Zeta}{\mathalpha}{\M@greekupper@font}{"396} \DeclareMathSymbol{\Eta}{\mathalpha}{\M@greekupper@font}{"397} \DeclareMathSymbol{\Theta}{\mathalpha}{\M@greekupper@font}{"398} \DeclareMathSymbol{\Iota}{\mathalpha}{\M@greekupper@font}{"399} \DeclareMathSymbol{\Kappa}{\mathalpha}{\M@greekupper@font}{"39A} \DeclareMathSymbol{\Lambda}{\mathalpha}{\M@greekupper@font}{"39B} \DeclareMathSymbol{\Mu}{\mathalpha}{\M@greekupper@font}{"39C} \DeclareMathSymbol{\Nu}{\mathalpha}{\M@greekupper@font}{"39D} \DeclareMathSymbol{\Xi}{\mathalpha}{\M@greekupper@font}{"39E} \DeclareMathSymbol{\Omicron}{\mathalpha}{\M@greekupper@font}{"39F} \DeclareMathSymbol{\Pi}{\mathalpha}{\M@greekupper@font}{"3A0} \DeclareMathSymbol{\Rho}{\mathalpha}{\M@greekupper@font}{"3A1} \DeclareMathSymbol{\Sigma}{\mathalpha}{\M@greekupper@font}{"3A3} \DeclareMathSymbol{\Tau}{\mathalpha}{\M@greekupper@font}{"3A4} \DeclareMathSymbol{\Upsilon}{\mathalpha}{\M@greekupper@font}{"3A5} \DeclareMathSymbol{\Phi}{\mathalpha}{\M@greekupper@font}{"3A6} \DeclareMathSymbol{\Chi}{\mathalpha}{\M@greekupper@font}{"3A7} \DeclareMathSymbol{\Psi}{\mathalpha}{\M@greekupper@font}{"3A8} \DeclareMathSymbol{\Omega}{\mathalpha}{\M@greekupper@font}{"3A9} \DeclareMathSymbol{\varTheta}{\mathalpha}{\M@greekupper@font}{"3F4} \ifM@adjust@font \ifM@symbols\else \DeclareMathSymbol{\increment}{\mathord}{\M@greekupper@font}{"2206} \DeclareMathSymbol{\nabla}{\mathord}{\M@greekupper@font}{"2207} \fi \else \ifM@symbols\else \DeclareMathSymbol{\increment}{\mathord}{\M@greekupper@font}{"2206} \fi \ifM@extsymbols\else \DeclareMathSymbol{\nabla}{\mathord}{\M@greekupper@font}{"2207} \fi \fi} \def\M@greeklower@set{% \edef\M@greeklower@font{M\M@greeklowershape\@tempa} \DeclareMathSymbol{\alpha}{\mathalpha}{\M@greeklower@font}{"3B1} \DeclareMathSymbol{\beta}{\mathalpha}{\M@greeklower@font}{"3B2} \DeclareMathSymbol{\gamma}{\mathalpha}{\M@greeklower@font}{"3B3} \DeclareMathSymbol{\delta}{\mathalpha}{\M@greeklower@font}{"3B4} \DeclareMathSymbol{\epsilon}{\mathalpha}{\M@greeklower@font}{"3B5} \DeclareMathSymbol{\zeta}{\mathalpha}{\M@greeklower@font}{"3B6} \DeclareMathSymbol{\eta}{\mathalpha}{\M@greeklower@font}{"3B7} \DeclareMathSymbol{\theta}{\mathalpha}{\M@greeklower@font}{"3B8} \DeclareMathSymbol{\iota}{\mathalpha}{\M@greeklower@font}{"3B9} \DeclareMathSymbol{\kappa}{\mathalpha}{\M@greeklower@font}{"3BA} \DeclareMathSymbol{\lambda}{\mathalpha}{\M@greeklower@font}{"3BB} \DeclareMathSymbol{\mu}{\mathalpha}{\M@greeklower@font}{"3BC} \DeclareMathSymbol{\nu}{\mathalpha}{\M@greeklower@font}{"3BD} \DeclareMathSymbol{\xi}{\mathalpha}{\M@greeklower@font}{"3BE} \DeclareMathSymbol{\omicron}{\mathalpha}{\M@greeklower@font}{"3BF} \DeclareMathSymbol{\pi}{\mathalpha}{\M@greeklower@font}{"3C0} \DeclareMathSymbol{\rho}{\mathalpha}{\M@greeklower@font}{"3C1} \DeclareMathSymbol{\sigma}{\mathalpha}{\M@greeklower@font}{"3C3} \DeclareMathSymbol{\tau}{\mathalpha}{\M@greeklower@font}{"3C4} \DeclareMathSymbol{\upsilon}{\mathalpha}{\M@greeklower@font}{"3C5} \DeclareMathSymbol{\phi}{\mathalpha}{\M@greeklower@font}{"3C6} \DeclareMathSymbol{\chi}{\mathalpha}{\M@greeklower@font}{"3C7} \DeclareMathSymbol{\psi}{\mathalpha}{\M@greeklower@font}{"3C8} \DeclareMathSymbol{\omega}{\mathalpha}{\M@greeklower@font}{"3C9} \DeclareMathSymbol{\varbeta}{\mathalpha}{\M@greeklower@font}{"3D0} \DeclareMathSymbol{\varepsilon}{\mathalpha}{\M@greeklower@font}{"3F5} \DeclareMathSymbol{\varkappa}{\mathalpha}{\M@greeklower@font}{"3F0} \DeclareMathSymbol{\vartheta}{\mathalpha}{\M@greeklower@font}{"3D1} \DeclareMathSymbol{\varrho}{\mathalpha}{\M@greeklower@font}{"3F1} \DeclareMathSymbol{\varsigma}{\mathalpha}{\M@greeklower@font}{"3C2} \DeclareMathSymbol{\varphi}{\mathalpha}{\M@greeklower@font}{"3D5}} \def\M@agreekupper@set{% \edef\M@agreekupper@font{M\M@agreekuppershape\@tempa} \DeclareMathSymbol{\Heta}{\mathalpha}{\M@agreekupper@font}{"370} \DeclareMathSymbol{\Sampi}{\mathalpha}{\M@agreekupper@font}{"3E0} \DeclareMathSymbol{\Digamma}{\mathalpha}{\M@agreekupper@font}{"3DC} \DeclareMathSymbol{\Koppa}{\mathalpha}{\M@agreekupper@font}{"3D8} \DeclareMathSymbol{\Stigma}{\mathalpha}{\M@agreekupper@font}{"3DA} \DeclareMathSymbol{\Sho}{\mathalpha}{\M@agreekupper@font}{"3F7} \DeclareMathSymbol{\San}{\mathalpha}{\M@agreekupper@font}{"3FA} \DeclareMathSymbol{\varSampi}{\mathalpha}{\M@agreekupper@font}{"372} \DeclareMathSymbol{\varDigamma}{\mathalpha}{\M@agreekupper@font}{"376} \DeclareMathSymbol{\varKoppa}{\mathalpha}{\M@agreekupper@font}{"3DE}} \def\M@agreeklower@set{% \edef\M@agreeklower@font{M\M@agreeklowershape\@tempa} \DeclareMathSymbol{\heta}{\mathalpha}{\M@agreeklower@font}{"371} \DeclareMathSymbol{\sampi}{\mathalpha}{\M@agreeklower@font}{"3E1} \DeclareMathSymbol{\digamma}{\mathalpha}{\M@agreeklower@font}{"3DD} \DeclareMathSymbol{\koppa}{\mathalpha}{\M@agreeklower@font}{"3D9} \DeclareMathSymbol{\stigma}{\mathalpha}{\M@agreeklower@font}{"3DB} \DeclareMathSymbol{\sho}{\mathalpha}{\M@agreeklower@font}{"3F8} \DeclareMathSymbol{\san}{\mathalpha}{\M@agreeklower@font}{"3FB} \DeclareMathSymbol{\varsampi}{\mathalpha}{\M@agreeklower@font}{"373} \DeclareMathSymbol{\vardigamma}{\mathalpha}{\M@agreeklower@font}{"377} \DeclareMathSymbol{\varkoppa}{\mathalpha}{\M@agreeklower@font}{"3DF}} \def\M@cyrillicupper@set{% \edef\M@cyrillicupper@font{M\M@cyrillicuppershape\@tempa} \DeclareMathSymbol{\cyrA}{\mathalpha}{\M@cyrillicupper@font}{"410} \DeclareMathSymbol{\cyrBe}{\mathalpha}{\M@cyrillicupper@font}{"411} \DeclareMathSymbol{\cyrVe}{\mathalpha}{\M@cyrillicupper@font}{"412} \DeclareMathSymbol{\cyrGhe}{\mathalpha}{\M@cyrillicupper@font}{"413} \DeclareMathSymbol{\cyrDe}{\mathalpha}{\M@cyrillicupper@font}{"414} \DeclareMathSymbol{\cyrIe}{\mathalpha}{\M@cyrillicupper@font}{"415} \DeclareMathSymbol{\cyrZhe}{\mathalpha}{\M@cyrillicupper@font}{"416} \DeclareMathSymbol{\cyrZe}{\mathalpha}{\M@cyrillicupper@font}{"417} \DeclareMathSymbol{\cyrI}{\mathalpha}{\M@cyrillicupper@font}{"418} \DeclareMathSymbol{\cyrKa}{\mathalpha}{\M@cyrillicupper@font}{"41A} \DeclareMathSymbol{\cyrEl}{\mathalpha}{\M@cyrillicupper@font}{"41B} \DeclareMathSymbol{\cyrEm}{\mathalpha}{\M@cyrillicupper@font}{"41C} \DeclareMathSymbol{\cyrEn}{\mathalpha}{\M@cyrillicupper@font}{"41D} \DeclareMathSymbol{\cyrO}{\mathalpha}{\M@cyrillicupper@font}{"41E} \DeclareMathSymbol{\cyrPe}{\mathalpha}{\M@cyrillicupper@font}{"41F} \DeclareMathSymbol{\cyrEr}{\mathalpha}{\M@cyrillicupper@font}{"420} \DeclareMathSymbol{\cyrEs}{\mathalpha}{\M@cyrillicupper@font}{"421} \DeclareMathSymbol{\cyrTe}{\mathalpha}{\M@cyrillicupper@font}{"422} \DeclareMathSymbol{\cyrU}{\mathalpha}{\M@cyrillicupper@font}{"423} \DeclareMathSymbol{\cyrEf}{\mathalpha}{\M@cyrillicupper@font}{"424} \DeclareMathSymbol{\cyrHa}{\mathalpha}{\M@cyrillicupper@font}{"425} \DeclareMathSymbol{\cyrTse}{\mathalpha}{\M@cyrillicupper@font}{"426} \DeclareMathSymbol{\cyrChe}{\mathalpha}{\M@cyrillicupper@font}{"427} \DeclareMathSymbol{\cyrSha}{\mathalpha}{\M@cyrillicupper@font}{"428} \DeclareMathSymbol{\cyrShcha}{\mathalpha}{\M@cyrillicupper@font}{"429} \DeclareMathSymbol{\cyrHard}{\mathalpha}{\M@cyrillicupper@font}{"42A} \DeclareMathSymbol{\cyrYeru}{\mathalpha}{\M@cyrillicupper@font}{"42B} \DeclareMathSymbol{\cyrSoft}{\mathalpha}{\M@cyrillicupper@font}{"42C} \DeclareMathSymbol{\cyrE}{\mathalpha}{\M@cyrillicupper@font}{"42D} \DeclareMathSymbol{\cyrYu}{\mathalpha}{\M@cyrillicupper@font}{"42E} \DeclareMathSymbol{\cyrYa}{\mathalpha}{\M@cyrillicupper@font}{"42F} \DeclareMathSymbol{\cyrvarI}{\mathalpha}{\M@cyrillicupper@font}{"419}} \def\M@cyrilliclower@set{% \edef\M@cyrilliclower@font{M\M@cyrilliclowershape\@tempa} \DeclareMathSymbol{\cyra}{\mathalpha}{\M@cyrilliclower@font}{"430} \DeclareMathSymbol{\cyrbe}{\mathalpha}{\M@cyrilliclower@font}{"431} \DeclareMathSymbol{\cyrve}{\mathalpha}{\M@cyrilliclower@font}{"432} \DeclareMathSymbol{\cyrghe}{\mathalpha}{\M@cyrilliclower@font}{"433} \DeclareMathSymbol{\cyrde}{\mathalpha}{\M@cyrilliclower@font}{"434} \DeclareMathSymbol{\cyrie}{\mathalpha}{\M@cyrilliclower@font}{"435} \DeclareMathSymbol{\cyrzhe}{\mathalpha}{\M@cyrilliclower@font}{"436} \DeclareMathSymbol{\cyrze}{\mathalpha}{\M@cyrilliclower@font}{"437} \DeclareMathSymbol{\cyri}{\mathalpha}{\M@cyrilliclower@font}{"438} \DeclareMathSymbol{\cyrka}{\mathalpha}{\M@cyrilliclower@font}{"43A} \DeclareMathSymbol{\cyrel}{\mathalpha}{\M@cyrilliclower@font}{"43B} \DeclareMathSymbol{\cyrem}{\mathalpha}{\M@cyrilliclower@font}{"43C} \DeclareMathSymbol{\cyren}{\mathalpha}{\M@cyrilliclower@font}{"43D} \DeclareMathSymbol{\cyro}{\mathalpha}{\M@cyrilliclower@font}{"43E} \DeclareMathSymbol{\cyrpe}{\mathalpha}{\M@cyrilliclower@font}{"43F} \DeclareMathSymbol{\cyrer}{\mathalpha}{\M@cyrilliclower@font}{"440} \DeclareMathSymbol{\cyres}{\mathalpha}{\M@cyrilliclower@font}{"441} \DeclareMathSymbol{\cyrte}{\mathalpha}{\M@cyrilliclower@font}{"442} \DeclareMathSymbol{\cyru}{\mathalpha}{\M@cyrilliclower@font}{"443} \DeclareMathSymbol{\cyref}{\mathalpha}{\M@cyrilliclower@font}{"444} \DeclareMathSymbol{\cyrha}{\mathalpha}{\M@cyrilliclower@font}{"445} \DeclareMathSymbol{\cyrtse}{\mathalpha}{\M@cyrilliclower@font}{"446} \DeclareMathSymbol{\cyrche}{\mathalpha}{\M@cyrilliclower@font}{"447} \DeclareMathSymbol{\cyrsha}{\mathalpha}{\M@cyrilliclower@font}{"448} \DeclareMathSymbol{\cyrshcha}{\mathalpha}{\M@cyrilliclower@font}{"449} \DeclareMathSymbol{\cyrhard}{\mathalpha}{\M@cyrilliclower@font}{"44A} \DeclareMathSymbol{\cyryeru}{\mathalpha}{\M@cyrilliclower@font}{"44B} \DeclareMathSymbol{\cyrsoft}{\mathalpha}{\M@cyrilliclower@font}{"44C} \DeclareMathSymbol{\cyre}{\mathalpha}{\M@cyrilliclower@font}{"44D} \DeclareMathSymbol{\cyryu}{\mathalpha}{\M@cyrilliclower@font}{"44E} \DeclareMathSymbol{\cyrya}{\mathalpha}{\M@cyrilliclower@font}{"44F} \DeclareMathSymbol{\cyrvari}{\mathalpha}{\M@cyrilliclower@font}{"439}} \def\M@hebrew@set{% \edef\M@hebrew@font{M\M@hebrewshape\@tempa} \DeclareMathSymbol{\aleph}{\mathalpha}{\M@hebrew@font}{"5D0} \DeclareMathSymbol{\beth}{\mathalpha}{\M@hebrew@font}{"5D1} \DeclareMathSymbol{\gimel}{\mathalpha}{\M@hebrew@font}{"5D2} \DeclareMathSymbol{\daleth}{\mathalpha}{\M@hebrew@font}{"5D3} \DeclareMathSymbol{\he}{\mathalpha}{\M@hebrew@font}{"5D4} \DeclareMathSymbol{\vav}{\mathalpha}{\M@hebrew@font}{"5D5} \DeclareMathSymbol{\zayin}{\mathalpha}{\M@hebrew@font}{"5D6} \DeclareMathSymbol{\het}{\mathalpha}{\M@hebrew@font}{"5D7} \DeclareMathSymbol{\tet}{\mathalpha}{\M@hebrew@font}{"5D8} \DeclareMathSymbol{\yod}{\mathalpha}{\M@hebrew@font}{"5D9} \DeclareMathSymbol{\kaf}{\mathalpha}{\M@hebrew@font}{"5DB} \DeclareMathSymbol{\lamed}{\mathalpha}{\M@hebrew@font}{"5DC} \DeclareMathSymbol{\mem}{\mathalpha}{\M@hebrew@font}{"5DE} \DeclareMathSymbol{\nun}{\mathalpha}{\M@hebrew@font}{"5E0} \DeclareMathSymbol{\samekh}{\mathalpha}{\M@hebrew@font}{"5E1} \DeclareMathSymbol{\ayin}{\mathalpha}{\M@hebrew@font}{"5E2} \DeclareMathSymbol{\pe}{\mathalpha}{\M@hebrew@font}{"5E4} \DeclareMathSymbol{\tsadi}{\mathalpha}{\M@hebrew@font}{"5E6} \DeclareMathSymbol{\qof}{\mathalpha}{\M@hebrew@font}{"5E7} \DeclareMathSymbol{\resh}{\mathalpha}{\M@hebrew@font}{"5E8} \DeclareMathSymbol{\shin}{\mathalpha}{\M@hebrew@font}{"5E9} \DeclareMathSymbol{\tav}{\mathalpha}{\M@hebrew@font}{"5EA} \DeclareMathSymbol{\varkaf}{\mathalpha}{\M@hebrew@font}{"5DA} \DeclareMathSymbol{\varmem}{\mathalpha}{\M@hebrew@font}{"5DD} \DeclareMathSymbol{\varnun}{\mathalpha}{\M@hebrew@font}{"5DF} \DeclareMathSymbol{\varpe}{\mathalpha}{\M@hebrew@font}{"5E3} \DeclareMathSymbol{\vartsadi}{\mathalpha}{\M@hebrew@font}{"5E5}} \def\M@digits@set{% \edef\M@digits@font{M\M@digitsshape\@tempa} \DeclareMathSymbol{0}{\mathalpha}{\M@digits@font}{`0} \DeclareMathSymbol{1}{\mathalpha}{\M@digits@font}{`1} \DeclareMathSymbol{2}{\mathalpha}{\M@digits@font}{`2} \DeclareMathSymbol{3}{\mathalpha}{\M@digits@font}{`3} \DeclareMathSymbol{4}{\mathalpha}{\M@digits@font}{`4} \DeclareMathSymbol{5}{\mathalpha}{\M@digits@font}{`5} \DeclareMathSymbol{6}{\mathalpha}{\M@digits@font}{`6} \DeclareMathSymbol{7}{\mathalpha}{\M@digits@font}{`7} \DeclareMathSymbol{8}{\mathalpha}{\M@digits@font}{`8} \DeclareMathSymbol{9}{\mathalpha}{\M@digits@font}{`9}} \def\M@operator@set{% \ifM@adjust@font \edef\M@operator@num{\number\csname symM\M@operatorshape\@tempa\endcsname} \def\M@default@latin@operator{% \Umathcode`A=7+\M@operator@num+`A\relax \Umathcode`B=7+\M@operator@num+`B\relax \Umathcode`C=7+\M@operator@num+`C\relax \Umathcode`D=7+\M@operator@num+`D\relax \Umathcode`E=7+\M@operator@num+`E\relax \Umathcode`F=7+\M@operator@num+`F\relax \Umathcode`G=7+\M@operator@num+`G\relax \Umathcode`H=7+\M@operator@num+`H\relax \Umathcode`I=7+\M@operator@num+`I\relax \Umathcode`J=7+\M@operator@num+`J\relax \Umathcode`K=7+\M@operator@num+`K\relax \Umathcode`L=7+\M@operator@num+`L\relax \Umathcode`M=7+\M@operator@num+`M\relax \Umathcode`N=7+\M@operator@num+`N\relax \Umathcode`O=7+\M@operator@num+`O\relax \Umathcode`P=7+\M@operator@num+`P\relax \Umathcode`Q=7+\M@operator@num+`Q\relax \Umathcode`R=7+\M@operator@num+`R\relax \Umathcode`S=7+\M@operator@num+`S\relax \Umathcode`T=7+\M@operator@num+`T\relax \Umathcode`U=7+\M@operator@num+`U\relax \Umathcode`V=7+\M@operator@num+`V\relax \Umathcode`W=7+\M@operator@num+`W\relax \Umathcode`X=7+\M@operator@num+`X\relax \Umathcode`Y=7+\M@operator@num+`Y\relax \Umathcode`Z=7+\M@operator@num+`Z\relax \Umathcode`a=7+\M@operator@num+`a\relax \Umathcode`b=7+\M@operator@num+`b\relax \Umathcode`c=7+\M@operator@num+`c\relax \Umathcode`d=7+\M@operator@num+`d\relax \Umathcode`e=7+\M@operator@num+`e\relax \Umathcode`f=7+\M@operator@num+`f\relax \Umathcode`g=7+\M@operator@num+`g\relax \Umathcode`h=7+\M@operator@num+`h\relax \Umathcode`i=7+\M@operator@num+`i\relax \Umathcode`j=7+\M@operator@num+`j\relax \Umathcode`k=7+\M@operator@num+`k\relax \Umathcode`l=7+\M@operator@num+`l\relax \Umathcode`m=7+\M@operator@num+`m\relax \Umathcode`n=7+\M@operator@num+`n\relax \Umathcode`o=7+\M@operator@num+`o\relax \Umathcode`p=7+\M@operator@num+`p\relax \Umathcode`q=7+\M@operator@num+`q\relax \Umathcode`r=7+\M@operator@num+`r\relax \Umathcode`s=7+\M@operator@num+`s\relax \Umathcode`t=7+\M@operator@num+`t\relax \Umathcode`u=7+\M@operator@num+`u\relax \Umathcode`v=7+\M@operator@num+`v\relax \Umathcode`w=7+\M@operator@num+`w\relax \Umathcode`x=7+\M@operator@num+`x\relax \Umathcode`y=7+\M@operator@num+`y\relax \Umathcode`z=7+\M@operator@num+`z\relax \Umathchardef\imath=7+\M@operator@num+1044506\relax \Umathchardef\jmath=7+\M@operator@num+1044500\relax} \else \let\M@default@latin@operator\@empty \fi \xdef\operator@font{\noexpand\mathgroup \csname symM\M@operatorshape\@tempa\endcsname\M@default@latin@operator}} \ifM@adjust@font \def\M@delimiters@set{% \edef\M@delimiters@font{M\M@delimitersshape\@tempa} \DeclareMathSymbol{(}{\mathopen}{\M@delimiters@font}{"28} \DeclareMathSymbol{)}{\mathclose}{\M@delimiters@font}{"29} \DeclareMathSymbol{[}{\mathopen}{\M@delimiters@font}{"5B} \DeclareMathSymbol{]}{\mathclose}{\M@delimiters@font}{"5D} \ifM@symbols\else \DeclareMathSymbol{|}{\mathord}{\M@delimiters@font}{"7C} \fi \DeclareMathSymbol{\leftbrace}{\mathopen}{\M@delimiters@font}{"7B} \DeclareMathSymbol{\rightbrace}{\mathclose}{\M@delimiters@font}{"7D} \global\Udelcode40=+\csname sym\M@delimiters@font\endcsname+40\relax % ( \global\Udelcode41=+\csname sym\M@delimiters@font\endcsname+41\relax % ) \global\Udelcode47=+\csname sym\M@delimiters@font\endcsname+47\relax % / \global\Udelcode91=+\csname sym\M@delimiters@font\endcsname+91\relax % [ \global\Udelcode93=+\csname sym\M@delimiters@font\endcsname+93\relax % ] \global\Udelcode124=+\csname sym\M@delimiters@font\endcsname+124\relax % | \global\let\vert=| \protected\gdef\backslash{\ifmmode\mathbackslash\else\textbackslash\fi} \protected\xdef\mathbackslash{% \Udelimiter+2+\number\csname sym\M@delimiters@font\endcsname +92\relax} % \ \protected\xdef\lbrace{% \Udelimiter+4+\number\csname sym\M@delimiters@font\endcsname +123\relax} % { \protected\xdef\rbrace{% \Udelimiter+5+\number\csname sym\M@delimiters@font\endcsname +125\relax} % } \protected\xdef\lguil{% \Udelimiter+4+\number\csname sym\M@delimiters@font\endcsname +8249\relax} % single left guilement \protected\xdef\rguil{% \Udelimiter+5+\number\csname sym\M@delimiters@font\endcsname +8250\relax} % single right guilement \protected\xdef\llguil{% \Udelimiter+4+\number\csname sym\M@delimiters@font\endcsname +171\relax} % double left guilement \protected\xdef\rrguil{% \Udelimiter+5+\number\csname sym\M@delimiters@font\endcsname +187\relax} % double right guilement \protected\xdef\fakelangle{% \Udelimiter+4+\number\csname sym\M@delimiters@font\endcsname +1044508\relax} % fake left angle \protected\xdef\fakerangle{% \Udelimiter+5+\number\csname sym\M@delimiters@font\endcsname +1044509\relax} % fake right angle \protected\xdef\fakellangle{% \Udelimiter+4+\number\csname sym\M@delimiters@font\endcsname +1044510\relax} % fake double left angle \protected\xdef\fakerrangle{% \Udelimiter+5+\number\csname sym\M@delimiters@font\endcsname +1044511\relax} % fake double right angle } \else \def\M@delimiters@set{% \edef\M@delimiters@font{M\M@delimitersshape\@tempa} \DeclareMathSymbol{(}{\mathopen}{\M@delimiters@font}{"28} \DeclareMathSymbol{)}{\mathclose}{\M@delimiters@font}{"29} \DeclareMathSymbol{[}{\mathopen}{\M@delimiters@font}{"5B} \DeclareMathSymbol{]}{\mathclose}{\M@delimiters@font}{"5D} \DeclareMathSymbol{\lguil}{\mathopen}{\M@delimiters@font}{"2039} \DeclareMathSymbol{\rguil}{\mathclose}{\M@delimiters@font}{"203A} \DeclareMathSymbol{\llguil}{\mathopen}{\M@delimiters@font}{"AB} \DeclareMathSymbol{\rrguil}{\mathclose}{\M@delimiters@font}{"BB} \DeclareMathSymbol{\leftbrace}{\mathopen}{\M@delimiters@font}{"7B} \DeclareMathSymbol{\rightbrace}{\mathclose}{\M@delimiters@font}{"7D}} \fi \ifM@adjust@font \def\M@radical@set{% \edef\M@radical@font{M\M@radicalshape\@tempa} \DeclareMathSymbol{\surd}{\mathord}{\M@radical@font}{"221A} \xdef\@sqrts@gn##1{% \Uradical+\number\csname sym\M@radical@font\endcsname+8730\relax{##1}} \gdef\r@@t##1##2{% \setbox\z@\hbox{$\m@th##1\sqrtsign{##2}$}% \setbox\surdbox\hbox{$\m@th##1\@sqrts@gn{% \hbox{\vphantom{$\m@th##1##2$}}}$} \dimen@\ht\surdbox \advance\dimen@\dp\surdbox \dimen@=0.6\dimen@ \advance\dimen@-\dp\surdbox \ifdim\wd\rootbox<0.6\wd\surdbox \kern0.6\wd\surdbox \else \kern\wd\rootbox \fi \raise\dimen@\hbox{\llap{\copy\rootbox}} \kern-0.6\wd\surdbox \box\z@} \gdef\sqrtsign##1{\@sqrts@gn{\mkern\radicandoffset##1}}} \else \def\M@radical@set{% \edef\M@radical@font{M\@radicalshape\@tempa} \DeclareMathSymbol{\surd}{\mathord}{\M@radical@font}{"221A}} \fi \def\M@bigops@set{% \edef\M@bigops@font{M\M@bigopsshape\@tempa} \let\sum\@undefined \let\prod\@undefined \DeclareMathSymbol{\sum}{\mathop}{\M@bigops@font}{"2211} \DeclareMathSymbol{\prod}{\mathop}{\M@bigops@font}{"220F} \DeclareMathSymbol{\intop}{\mathop}{\M@bigops@font}{"222B}} \def\M@extbigops@set{% \edef\M@extbigops@font{M\M@extbigopsshape\@tempa} \let\coprod\@undefined \let\bigvee\@undefined \let\bigwedge\@undefined \let\bigcup\@undefined \let\bigcap\@undefined \let\bigoplus\@undefined \let\bigotimes\@undefined \let\bigodot\@undefined \let\bigsqcup\@undefined \DeclareMathSymbol{\coprod}{\mathop}{\M@extbigops@font}{"2210} \DeclareMathSymbol{\bigvee}{\mathop}{\M@extbigops@font}{"22C1} \DeclareMathSymbol{\bigwedge}{\mathop}{\M@extbigops@font}{"22C0} \DeclareMathSymbol{\bigcup}{\mathop}{\M@extbigops@font}{"22C3} \DeclareMathSymbol{\bigcap}{\mathop}{\M@extbigops@font}{"22C2} \DeclareMathSymbol{\iintop}{\mathop}{\M@extbigops@font}{"222C} \protected\gdef\iint{\iintop\nolimits} \DeclareMathSymbol{\iiintop}{\mathop}{\M@extbigops@font}{"222D} \protected\gdef\iiint{\iiintop\nolimits} \DeclareMathSymbol{\ointop}{\mathop}{\M@extbigops@font}{"222E} \protected\gdef\oint{\ointop\nolimits} \DeclareMathSymbol{\oiintop}{\mathop}{\M@extbigops@font}{"222F} \protected\gdef\oiint{\oiintop\nolimits} \DeclareMathSymbol{\oiiintop}{\mathop}{\M@extbigops@font}{"2230} \protected\gdef\oiiint{\oiiintop\nolimits} \DeclareMathSymbol{\bigoplus}{\mathop}{\M@extbigops@font}{"2A01} \DeclareMathSymbol{\bigotimes}{\mathop}{\M@extbigops@font}{"2A02} \DeclareMathSymbol{\bigodot}{\mathop}{\M@extbigops@font}{"2A00} \DeclareMathSymbol{\bigsqcap}{\mathop}{\M@extbigops@font}{"2A05} \DeclareMathSymbol{\bigsqcup}{\mathop}{\M@extbigops@font}{"2A06}} \def\M@symbols@set{% \edef\M@symbols@font{M\M@symbolsshape\@tempa} \let\colon\@undefined \let\mathellipsis\@undefined \DeclareMathSymbol{.}{\mathord}{\M@symbols@font}{"2E} \DeclareMathSymbol{@}{\mathord}{\M@symbols@font}{"40} \DeclareMathSymbol{'}{\mathord}{\M@symbols@font}{"2032} \DeclareMathSymbol{\prime}{\mathord}{\M@symbols@font}{"2032} \DeclareMathSymbol{"}{\mathord}{\M@symbols@font}{"2033} \DeclareMathSymbol{\mathhash}{\mathord}{\M@symbols@font}{"23} \DeclareMathSymbol{\mathdollar}{\mathord}{\M@symbols@font}{"24} \DeclareMathSymbol{\mathpercent}{\mathord}{\M@symbols@font}{"25} \DeclareMathSymbol{\mathand}{\mathord}{\M@symbols@font}{"26} \DeclareMathSymbol{\mathparagraph}{\mathord}{\M@symbols@font}{"B6} \DeclareMathSymbol{\mathsection}{\mathord}{\M@symbols@font}{"A7} \DeclareMathSymbol{\mathsterling}{\mathord}{\M@symbols@font}{"A3} \DeclareMathSymbol{\neg}{\mathord}{\M@symbols@font}{"AC} \DeclareMathSymbol{|}{\mathord}{\M@symbols@font}{"7C} \DeclareMathSymbol{\infty}{\mathord}{\M@symbols@font}{"221E} \DeclareMathSymbol{\partial}{\mathord}{\M@symbols@font}{"2202} \DeclareMathSymbol{\degree}{\mathord}{\M@symbols@font}{"B0} \DeclareMathSymbol{\increment}{\mathord}{\M@symbols@font}{"2206} \DeclareMathSymbol{\comma}{\mathord}{\M@symbols@font}{"2C} \DeclareMathSymbol{+}{\mathbin}{\M@symbols@font}{"2B} \DeclareMathSymbol{-}{\mathbin}{\M@symbols@font}{"2212} \DeclareMathSymbol{*}{\mathbin}{\M@symbols@font}{"2A} \DeclareMathSymbol{\times}{\mathbin}{\M@symbols@font}{"D7} \DeclareMathSymbol{/}{\mathbin}{\M@symbols@font}{"2F} \DeclareMathSymbol{\fractionslash}{\mathbin}{\M@symbols@font}{"2215} \DeclareMathSymbol{\div}{\mathbin}{\M@symbols@font}{"F7} \DeclareMathSymbol{\pm}{\mathbin}{\M@symbols@font}{"B1} \DeclareMathSymbol{\bullet}{\mathbin}{\M@symbols@font}{"2022} \DeclareMathSymbol{\dagger}{\mathbin}{\M@symbols@font}{"2020} \DeclareMathSymbol{\ddagger}{\mathbin}{\M@symbols@font}{"2021} \DeclareMathSymbol{\cdot}{\mathbin}{\M@symbols@font}{"2219} \DeclareMathSymbol{\setminus}{\mathbin}{\M@symbols@font}{"5C} \DeclareMathSymbol{=}{\mathrel}{\M@symbols@font}{"3D} \DeclareMathSymbol{<}{\mathrel}{\M@symbols@font}{"3C} \DeclareMathSymbol{>}{\mathrel}{\M@symbols@font}{"3E} \DeclareMathSymbol{\leq}{\mathrel}{\M@symbols@font}{"2264} \DeclareMathSymbol{\geq}{\mathrel}{\M@symbols@font}{"2265} \DeclareMathSymbol{\sim}{\mathrel}{\M@symbols@font}{"7E} \DeclareMathSymbol{\approx}{\mathrel}{\M@symbols@font}{"2248} \DeclareMathSymbol{\equiv}{\mathrel}{\M@symbols@font}{"2261} \DeclareMathSymbol{\mid}{\mathrel}{\M@symbols@font}{"7C} \DeclareMathSymbol{\parallel}{\mathrel}{\M@symbols@font}{"2016} \DeclareMathSymbol{:}{\mathrel}{\M@symbols@font}{"3A} \DeclareMathSymbol{?}{\mathclose}{\M@symbols@font}{"3F} \DeclareMathSymbol{!}{\mathclose}{\M@symbols@font}{"21} \DeclareMathSymbol{,}{\mathpunct}{\M@symbols@font}{"2C} \DeclareMathSymbol{;}{\mathpunct}{\M@symbols@font}{"3B} \DeclareMathSymbol{\colon}{\mathord}{\M@symbols@font}{"3A} \DeclareMathSymbol{\mathellipsis}{\mathinner}{\M@symbols@font}{"2026} \protected\gdef\#{\ifmmode\mathhash\else\char"23\relax\fi} \protected\gdef\%{\ifmmode\mathpercent\else\char"25\relax\fi} \protected\gdef\&{\ifmmode\mathand\else\char"26\relax\fi} \DeclareMathSymbol{\@relbar}{\mathbin}{symbols}{"00} \DeclareMathSymbol{\@Relbar}{\mathrel}{operators}{"3D} \DeclareMathSymbol{\@verticalbar}{\mathord}{symbols}{"6A} \ifM@extsymbols\else \protected\gdef\simeq{\mathrel{\mathpalette\stack@flatrel{{-}{\sim}}}} \protected\gdef\cong{\mathrel{\mathpalette\stack@flatrel{{=}{\sim}}}} \fi \protected\gdef\relbar{\mathrel{\smash\@relbar}} \protected\gdef\Relbar{\mathrel{\@Relbar}} \protected\gdef\models{\mathrel{\@verticalbar}\joinrel\Relbar} \ifM@adjust@font \DeclareMathSymbol{\bigat}{\mathop}{\M@symbols@font}{"40} \DeclareMathSymbol{\bighash}{\mathop}{\M@symbols@font}{"23} \DeclareMathSymbol{\bigdollar}{\mathop}{\M@symbols@font}{"24} \DeclareMathSymbol{\bigpercent}{\mathop}{\M@symbols@font}{"25} \DeclareMathSymbol{\bigand}{\mathop}{\M@symbols@font}{"26} \DeclareMathSymbol{\bigplus}{\mathop}{\M@symbols@font}{"2B} \DeclareMathSymbol{\bigp}{\mathop}{\M@symbols@font}{"21} \DeclareMathSymbol{\bigq}{\mathop}{\M@symbols@font}{"3F} \DeclareMathSymbol{\bigS}{\mathop}{\M@symbols@font}{"A7} \DeclareMathSymbol{\bigtimes}{\mathop}{\M@symbols@font}{"D7} \DeclareMathSymbol{\bigdiv}{\mathop}{\M@symbols@font}{"F7} \DeclareMathSymbol{\nabla}{\mathord}{\M@symbols@font}{"2207} \fi} \def\M@extsymbols@set{% \edef\M@extsymbols@font{M\M@extsymbolsshape\@tempa} \let\angle\@undefined \let\simeq\@undefined \let\sqsubset\@undefined \let\sqsupset\@undefined \let\bowtie\@undefined \let\doteq\@undefined \let\neq\@undefined \let\ng\@undefined \DeclareMathSymbol{\wp}{\mathord}{\M@extsymbols@font}{"2118} \DeclareMathSymbol{\Re}{\mathord}{\M@extsymbols@font}{"211C} \DeclareMathSymbol{\Im}{\mathord}{\M@extsymbols@font}{"2111} \DeclareMathSymbol{\ell}{\mathord}{\M@extsymbols@font}{"2113} \DeclareMathSymbol{\forall}{\mathord}{\M@extsymbols@font}{"2200} \DeclareMathSymbol{\exists}{\mathord}{\M@extsymbols@font}{"2203} \DeclareMathSymbol{\emptyset}{\mathord}{\M@extsymbols@font}{"2205} \DeclareMathSymbol{\in}{\mathord}{\M@extsymbols@font}{"2208} \DeclareMathSymbol{\ni}{\mathord}{\M@extsymbols@font}{"220B} \DeclareMathSymbol{\mp}{\mathord}{\M@extsymbols@font}{"2213} \DeclareMathSymbol{\angle}{\mathord}{\M@extsymbols@font}{"2220} \DeclareMathSymbol{\top}{\mathord}{\M@extsymbols@font}{"22A4} \DeclareMathSymbol{\bot}{\mathord}{\M@extsymbols@font}{"22A5} \DeclareMathSymbol{\vdash}{\mathord}{\M@extsymbols@font}{"22A2} \DeclareMathSymbol{\dashv}{\mathord}{\M@extsymbols@font}{"22A3} \DeclareMathSymbol{\flat}{\mathord}{\M@extsymbols@font}{"266D} \DeclareMathSymbol{\natural}{\mathord}{\M@extsymbols@font}{"266E} \DeclareMathSymbol{\sharp}{\mathord}{\M@extsymbols@font}{"266F} \DeclareMathSymbol{\fflat}{\mathord}{\M@extsymbols@font}{"1D12B} \DeclareMathSymbol{\ssharp}{\mathord}{\M@extsymbols@font}{"1D12A} \DeclareMathSymbol{\bclubsuit}{\mathord}{\M@extsymbols@font}{"2663} \DeclareMathSymbol{\bdiamondsuit}{\mathord}{\M@extsymbols@font}{"2666} \DeclareMathSymbol{\bheartsuit}{\mathord}{\M@extsymbols@font}{"2665} \DeclareMathSymbol{\bspadesuit}{\mathord}{\M@extsymbols@font}{"2660} \DeclareMathSymbol{\wclubsuit}{\mathord}{\M@extsymbols@font}{"2667} \DeclareMathSymbol{\wdiamondsuit}{\mathord}{\M@extsymbols@font}{"2662} \DeclareMathSymbol{\wheartsuit}{\mathord}{\M@extsymbols@font}{"2661} \DeclareMathSymbol{\wspadesuit}{\mathord}{\M@extsymbols@font}{"2664} \global\let\spadesuit\bspadesuit \global\let\heartsuit\wheartsuit \global\let\diamondsuit\wdiamondsuit \global\let\clubsuit\bclubsuit \DeclareMathSymbol{\wedge}{\mathbin}{\M@extsymbols@font}{"2227} \DeclareMathSymbol{\vee}{\mathbin}{\M@extsymbols@font}{"2228} \DeclareMathSymbol{\cap}{\mathord}{\M@extsymbols@font}{"2229} \DeclareMathSymbol{\cup}{\mathbin}{\M@extsymbols@font}{"222A} \DeclareMathSymbol{\sqcap}{\mathbin}{\M@extsymbols@font}{"2293} \DeclareMathSymbol{\sqcup}{\mathbin}{\M@extsymbols@font}{"2294} \DeclareMathSymbol{\amalg}{\mathbin}{\M@extsymbols@font}{"2A3F} \DeclareMathSymbol{\wr}{\mathbin}{\M@extsymbols@font}{"2240} \DeclareMathSymbol{\ast}{\mathbin}{\M@extsymbols@font}{"2217} \DeclareMathSymbol{\star}{\mathbin}{\M@extsymbols@font}{"22C6} \DeclareMathSymbol{\diamond}{\mathbin}{\M@extsymbols@font}{"22C4} \DeclareMathSymbol{\varcdot}{\mathbin}{\M@extsymbols@font}{"22C5} \DeclareMathSymbol{\varsetminus}{\mathbin}{\M@extsymbols@font}{"2216} \DeclareMathSymbol{\oplus}{\mathbin}{\M@extsymbols@font}{"2295} \DeclareMathSymbol{\otimes}{\mathbin}{\M@extsymbols@font}{"2297} \DeclareMathSymbol{\ominus}{\mathbin}{\M@extsymbols@font}{"2296} \DeclareMathSymbol{\odiv}{\mathbin}{\M@extsymbols@font}{"2A38} \DeclareMathSymbol{\oslash}{\mathbin}{\M@extsymbols@font}{"2298} \DeclareMathSymbol{\odot}{\mathbin}{\M@extsymbols@font}{"2299} \DeclareMathSymbol{\sqplus}{\mathbin}{\M@extsymbols@font}{"229E} \DeclareMathSymbol{\sqtimes}{\mathbin}{\M@extsymbols@font}{"22A0} \DeclareMathSymbol{\sqminus}{\mathbin}{\M@extsymbols@font}{"229F} \DeclareMathSymbol{\sqdot}{\mathbin}{\M@extsymbols@font}{"22A1} \DeclareMathSymbol{\in}{\mathrel}{\M@extsymbols@font}{"2208} \DeclareMathSymbol{\ni}{\mathrel}{\M@extsymbols@font}{"220B} \DeclareMathSymbol{\subset}{\mathrel}{\M@extsymbols@font}{"2282} \DeclareMathSymbol{\supset}{\mathrel}{\M@extsymbols@font}{"2283} \DeclareMathSymbol{\subseteq}{\mathrel}{\M@extsymbols@font}{"2286} \DeclareMathSymbol{\supseteq}{\mathrel}{\M@extsymbols@font}{"2287} \DeclareMathSymbol{\sqsubset}{\mathrel}{\M@extsymbols@font}{"228F} \DeclareMathSymbol{\sqsupset}{\mathrel}{\M@extsymbols@font}{"2290} \DeclareMathSymbol{\sqsubseteq}{\mathrel}{\M@extsymbols@font}{"2291} \DeclareMathSymbol{\sqsupseteq}{\mathrel}{\M@extsymbols@font}{"2292} \DeclareMathSymbol{\triangleleft}{\mathrel}{\M@extsymbols@font}{"22B2} \DeclareMathSymbol{\triangleright}{\mathrel}{\M@extsymbols@font}{"22B3} \DeclareMathSymbol{\trianglelefteq}{\mathrel}{\M@extsymbols@font}{"22B4} \DeclareMathSymbol{\trianglerighteq}{\mathrel}{\M@extsymbols@font}{"22B5} \DeclareMathSymbol{\propto}{\mathrel}{\M@extsymbols@font}{"221D} \DeclareMathSymbol{\bowtie}{\mathrel}{\M@extsymbols@font}{"22C8} \DeclareMathSymbol{\hourglass}{\mathrel}{\M@extsymbols@font}{"29D6} \DeclareMathSymbol{\therefore}{\mathrel}{\M@extsymbols@font}{"2234} \DeclareMathSymbol{\because}{\mathrel}{\M@extsymbols@font}{"2235} \DeclareMathSymbol{\ratio}{\mathrel}{\M@extsymbols@font}{"2236} \DeclareMathSymbol{\proportion}{\mathrel}{\M@extsymbols@font}{"2237} \DeclareMathSymbol{\ll}{\mathrel}{\M@extsymbols@font}{"226A} \DeclareMathSymbol{\gg}{\mathrel}{\M@extsymbols@font}{"226B} \DeclareMathSymbol{\lll}{\mathrel}{\M@extsymbols@font}{"22D8} \DeclareMathSymbol{\ggg}{\mathrel}{\M@extsymbols@font}{"22D9} \DeclareMathSymbol{\leqq}{\mathrel}{\M@extsymbols@font}{"2266} \DeclareMathSymbol{\geqq}{\mathrel}{\M@extsymbols@font}{"2267} \DeclareMathSymbol{\lapprox}{\mathrel}{\M@extsymbols@font}{"2A85} \DeclareMathSymbol{\gapprox}{\mathrel}{\M@extsymbols@font}{"2A86} \DeclareMathSymbol{\simeq}{\mathrel}{\M@extsymbols@font}{"2243} \DeclareMathSymbol{\eqsim}{\mathrel}{\M@extsymbols@font}{"2242} \DeclareMathSymbol{\simeqq}{\mathrel}{\M@extsymbols@font}{"2245} \global\let\cong\simeqq \DeclareMathSymbol{\approxeq}{\mathrel}{\M@extsymbols@font}{"224A} \DeclareMathSymbol{\sssim}{\mathrel}{\M@extsymbols@font}{"224B} \DeclareMathSymbol{\seq}{\mathrel}{\M@extsymbols@font}{"224C} \DeclareMathSymbol{\doteq}{\mathrel}{\M@extsymbols@font}{"2250} \DeclareMathSymbol{\coloneq}{\mathrel}{\M@extsymbols@font}{"2254} \DeclareMathSymbol{\eqcolon}{\mathrel}{\M@extsymbols@font}{"2255} \DeclareMathSymbol{\ringeq}{\mathrel}{\M@extsymbols@font}{"2257} \DeclareMathSymbol{\arceq}{\mathrel}{\M@extsymbols@font}{"2258} \DeclareMathSymbol{\wedgeeq}{\mathrel}{\M@extsymbols@font}{"2259} \DeclareMathSymbol{\veeeq}{\mathrel}{\M@extsymbols@font}{"225A} \DeclareMathSymbol{\stareq}{\mathrel}{\M@extsymbols@font}{"225B} \DeclareMathSymbol{\triangleeq}{\mathrel}{\M@extsymbols@font}{"225C} \DeclareMathSymbol{\defeq}{\mathrel}{\M@extsymbols@font}{"225D} \DeclareMathSymbol{\qeq}{\mathrel}{\M@extsymbols@font}{"225F} \DeclareMathSymbol{\lsim}{\mathrel}{\M@extsymbols@font}{"2272} \DeclareMathSymbol{\gsim}{\mathrel}{\M@extsymbols@font}{"2273} \DeclareMathSymbol{\prec}{\mathrel}{\M@extsymbols@font}{"227A} \DeclareMathSymbol{\succ}{\mathrel}{\M@extsymbols@font}{"227B} \DeclareMathSymbol{\preceq}{\mathrel}{\M@extsymbols@font}{"227C} \DeclareMathSymbol{\succeq}{\mathrel}{\M@extsymbols@font}{"227D} \DeclareMathSymbol{\preceqq}{\mathrel}{\M@extsymbols@font}{"2AB3} \DeclareMathSymbol{\succeqq}{\mathrel}{\M@extsymbols@font}{"2AB4} \DeclareMathSymbol{\precsim}{\mathrel}{\M@extsymbols@font}{"227E} \DeclareMathSymbol{\succsim}{\mathrel}{\M@extsymbols@font}{"227F} \DeclareMathSymbol{\precapprox}{\mathrel}{\M@extsymbols@font}{"2AB7} \DeclareMathSymbol{\succapprox}{\mathrel}{\M@extsymbols@font}{"2AB8} \DeclareMathSymbol{\precprec}{\mathrel}{\M@extsymbols@font}{"2ABB} \DeclareMathSymbol{\succsucc}{\mathrel}{\M@extsymbols@font}{"2ABC} \DeclareMathSymbol{\asymp}{\mathrel}{\M@extsymbols@font}{"224D} \DeclareMathSymbol{\nin}{\mathrel}{\M@extsymbols@font}{"2209} \DeclareMathSymbol{\nni}{\mathrel}{\M@extsymbols@font}{"220C} \DeclareMathSymbol{\nsubset}{\mathrel}{\M@extsymbols@font}{"2284} \DeclareMathSymbol{\nsupset}{\mathrel}{\M@extsymbols@font}{"2285} \DeclareMathSymbol{\nsubseteq}{\mathrel}{\M@extsymbols@font}{"2288} \DeclareMathSymbol{\nsupseteq}{\mathrel}{\M@extsymbols@font}{"2289} \DeclareMathSymbol{\subsetneq}{\mathrel}{\M@extsymbols@font}{"228A} \DeclareMathSymbol{\supsetneq}{\mathrel}{\M@extsymbols@font}{"228B} \DeclareMathSymbol{\nsqsubseteq}{\mathrel}{\M@extsymbols@font}{"22E2} \DeclareMathSymbol{\nsqsupseteq}{\mathrel}{\M@extsymbols@font}{"22E3} \DeclareMathSymbol{\sqsubsetneq}{\mathrel}{\M@extsymbols@font}{"22E4} \DeclareMathSymbol{\sqsupsetneq}{\mathrel}{\M@extsymbols@font}{"22E5} \DeclareMathSymbol{\neq}{\mathrel}{\M@extsymbols@font}{"2260} \DeclareMathSymbol{\nl}{\mathrel}{\M@extsymbols@font}{"226E} \DeclareMathSymbol{\ng}{\mathrel}{\M@extsymbols@font}{"226F} \DeclareMathSymbol{\nleq}{\mathrel}{\M@extsymbols@font}{"2270} \DeclareMathSymbol{\ngeq}{\mathrel}{\M@extsymbols@font}{"2271} \DeclareMathSymbol{\lneq}{\mathrel}{\M@extsymbols@font}{"2A87} \DeclareMathSymbol{\gneq}{\mathrel}{\M@extsymbols@font}{"2A88} \DeclareMathSymbol{\lneqq}{\mathrel}{\M@extsymbols@font}{"2268} \DeclareMathSymbol{\gneqq}{\mathrel}{\M@extsymbols@font}{"2269} \DeclareMathSymbol{\ntriangleleft}{\mathrel}{\M@extsymbols@font}{"22EA} \DeclareMathSymbol{\ntriangleright}{\mathrel}{\M@extsymbols@font}{"22EB} \DeclareMathSymbol{\ntrianglelefteq}{\mathrel}{\M@extsymbols@font}{"22EC} \DeclareMathSymbol{\ntrianglerighteq}{\mathrel}{\M@extsymbols@font}{"22ED} \DeclareMathSymbol{\nsim}{\mathrel}{\M@extsymbols@font}{"2241} \DeclareMathSymbol{\napprox}{\mathrel}{\M@extsymbols@font}{"2249} \DeclareMathSymbol{\nsimeq}{\mathrel}{\M@extsymbols@font}{"2244} \DeclareMathSymbol{\nsimeqq}{\mathrel}{\M@extsymbols@font}{"2247} \DeclareMathSymbol{\simneqq}{\mathrel}{\M@extsymbols@font}{"2246} \DeclareMathSymbol{\nlsim}{\mathrel}{\M@extsymbols@font}{"2274} \DeclareMathSymbol{\ngsim}{\mathrel}{\M@extsymbols@font}{"2275} \DeclareMathSymbol{\lnsim}{\mathrel}{\M@extsymbols@font}{"22E6} \DeclareMathSymbol{\gnsim}{\mathrel}{\M@extsymbols@font}{"22E7} \DeclareMathSymbol{\lnapprox}{\mathrel}{\M@extsymbols@font}{"2A89} \DeclareMathSymbol{\gnapprox}{\mathrel}{\M@extsymbols@font}{"2A8A} \DeclareMathSymbol{\nprec}{\mathrel}{\M@extsymbols@font}{"2280} \DeclareMathSymbol{\nsucc}{\mathrel}{\M@extsymbols@font}{"2281} \DeclareMathSymbol{\npreceq}{\mathrel}{\M@extsymbols@font}{"22E0} \DeclareMathSymbol{\nsucceq}{\mathrel}{\M@extsymbols@font}{"22E1} \DeclareMathSymbol{\precneq}{\mathrel}{\M@extsymbols@font}{"2AB1} \DeclareMathSymbol{\succneq}{\mathrel}{\M@extsymbols@font}{"2AB2} \DeclareMathSymbol{\precneqq}{\mathrel}{\M@extsymbols@font}{"2AB5} \DeclareMathSymbol{\succneqq}{\mathrel}{\M@extsymbols@font}{"2AB6} \DeclareMathSymbol{\precnsim}{\mathrel}{\M@extsymbols@font}{"22E8} \DeclareMathSymbol{\succnsim}{\mathrel}{\M@extsymbols@font}{"22E9} \DeclareMathSymbol{\precnapprox}{\mathrel}{\M@extsymbols@font}{"2AB9} \DeclareMathSymbol{\succnapprox}{\mathrel}{\M@extsymbols@font}{"2ABA} \DeclareMathSymbol{\nequiv}{\mathrel}{\M@extsymbols@font}{"2262} \ifM@adjust@font\else \DeclareMathSymbol{\nabla}{\mathord}{\M@extsymbols@font}{"2207} \fi} \def\M@arrows@set{% \edef\M@arrows@font{M\M@arrowsshape\@tempa} \let\uparrow\@undefined \let\Uparrow\@undefined \let\downarrow\@undefined \let\Downarrow\@undefined \let\updownarrow\@undefined \let\Updownarrow\@undefined \let\longrightarrow\@undefined \let\longleftarrow\@undefined \let\longleftrightarrow\@undefined \let\hookrightarrow\@undefined \let\hookleftarrow\@undefined \let\Longrightarrow\@undefined \let\Longleftarrow\@undefined \let\Longleftrightarrow\@undefined \let\rightleftharpoons\@undefined \DeclareMathSymbol{\rightarrow}{\mathrel}{\M@arrows@font}{"2192} \global\let\to\rightarrow \DeclareMathSymbol{\nrightarrow}{\mathrel}{\M@arrows@font}{"219B} \DeclareMathSymbol{\Rightarrow}{\mathrel}{\M@arrows@font}{"21D2} \DeclareMathSymbol{\nRightarrow}{\mathrel}{\M@arrows@font}{"21CF} \DeclareMathSymbol{\Rrightarrow}{\mathrel}{\M@arrows@font}{"21DB} \DeclareMathSymbol{\longrightarrow}{\mathrel}{\M@arrows@font}{"27F6} \DeclareMathSymbol{\Longrightarrow}{\mathrel}{\M@arrows@font}{"27F9} \DeclareMathSymbol{\rightbararrow}{\mathrel}{\M@arrows@font}{"21A6} \global\let\mapsto\rightbararrow \DeclareMathSymbol{\Rightbararrow}{\mathrel}{\M@arrows@font}{"2907} \DeclareMathSymbol{\longrightbararrow}{\mathrel}{\M@arrows@font}{"27FC} \global\let\longmapsto\longrightbararrow \DeclareMathSymbol{\Longrightbararrow}{\mathrel}{\M@arrows@font}{"27FE} \DeclareMathSymbol{\hookrightarrow}{\mathrel}{\M@arrows@font}{"21AA} \DeclareMathSymbol{\rightdasharrow}{\mathrel}{\M@arrows@font}{"21E2} \DeclareMathSymbol{\rightharpoonup}{\mathrel}{\M@arrows@font}{"21C0} \DeclareMathSymbol{\rightharpoondown}{\mathrel}{\M@arrows@font}{"21C1} \DeclareMathSymbol{\rightarrowtail}{\mathrel}{\M@arrows@font}{"21A3} \DeclareMathSymbol{\rightoplusarrow}{\mathrel}{\M@arrows@font}{"27F4} \DeclareMathSymbol{\rightwavearrow}{\mathrel}{\M@arrows@font}{"219D} \DeclareMathSymbol{\rightsquigarrow}{\mathrel}{\M@arrows@font}{"21DD} \DeclareMathSymbol{\longrightsquigarrow}{\mathrel}{\M@arrows@font}{"27FF} \DeclareMathSymbol{\looparrowright}{\mathrel}{\M@arrows@font}{"21AC} \DeclareMathSymbol{\curvearrowright}{\mathrel}{\M@arrows@font}{"293B} \DeclareMathSymbol{\circlearrowright}{\mathrel}{\M@arrows@font}{"21BB} \DeclareMathSymbol{\twoheadrightarrow}{\mathrel}{\M@arrows@font}{"21A0} \DeclareMathSymbol{\rightarrowtobar}{\mathrel}{\M@arrows@font}{"21E5} \DeclareMathSymbol{\rightwhitearrow}{\mathrel}{\M@arrows@font}{"21E8} \DeclareMathSymbol{\rightrightarrows}{\mathrel}{\M@arrows@font}{"21C9} \DeclareMathSymbol{\rightrightrightarrows}{\mathrel}{\M@arrows@font}{"21F6} \DeclareMathSymbol{\leftarrow}{\mathrel}{\M@arrows@font}{"2190} \global\let\from\leftarrow \DeclareMathSymbol{\nleftarrow}{\mathrel}{\M@arrows@font}{"219A} \DeclareMathSymbol{\Leftarrow}{\mathrel}{\M@arrows@font}{"21D0} \DeclareMathSymbol{\nLeftarrow}{\mathrel}{\M@arrows@font}{"21CD} \DeclareMathSymbol{\Lleftarrow}{\mathrel}{\M@arrows@font}{"21DA} \DeclareMathSymbol{\longleftarrow}{\mathrel}{\M@arrows@font}{"27F5} \DeclareMathSymbol{\Longleftarrow}{\mathrel}{\M@arrows@font}{"27F8} \DeclareMathSymbol{\leftbararrow}{\mathrel}{\M@arrows@font}{"21A4} \global\let\mapsfrom\leftbararrow \DeclareMathSymbol{\Leftbararrow}{\mathrel}{\M@arrows@font}{"2906} \DeclareMathSymbol{\longleftbararrow}{\mathrel}{\M@arrows@font}{"27FB} \global\let\longmapsfrom\longleftbararrow \DeclareMathSymbol{\Longleftbararrow}{\mathrel}{\M@arrows@font}{"27FD} \DeclareMathSymbol{\hookleftarrow}{\mathrel}{\M@arrows@font}{"21A9} \DeclareMathSymbol{\leftdasharrow}{\mathrel}{\M@arrows@font}{"21E0} \DeclareMathSymbol{\leftharpoonup}{\mathrel}{\M@arrows@font}{"21BC} \DeclareMathSymbol{\leftharpoondown}{\mathrel}{\M@arrows@font}{"21BD} \DeclareMathSymbol{\leftarrowtail}{\mathrel}{\M@arrows@font}{"21A2} \DeclareMathSymbol{\leftoplusarrow}{\mathrel}{\M@arrows@font}{"2B32} \DeclareMathSymbol{\leftwavearrow}{\mathrel}{\M@arrows@font}{"219C} \DeclareMathSymbol{\leftsquigarrow}{\mathrel}{\M@arrows@font}{"21DC} \DeclareMathSymbol{\longleftsquigarrow}{\mathrel}{\M@arrows@font}{"2B33} \DeclareMathSymbol{\looparrowleft}{\mathrel}{\M@arrows@font}{"21AB} \DeclareMathSymbol{\curvearrowleft}{\mathrel}{\M@arrows@font}{"293A} \DeclareMathSymbol{\circlearrowleft}{\mathrel}{\M@arrows@font}{"21BA} \DeclareMathSymbol{\twoheadleftarrow}{\mathrel}{\M@arrows@font}{"219E} \DeclareMathSymbol{\leftarrowtobar}{\mathrel}{\M@arrows@font}{"21E4} \DeclareMathSymbol{\leftwhitearrow}{\mathrel}{\M@arrows@font}{"21E6} \DeclareMathSymbol{\leftleftarrows}{\mathrel}{\M@arrows@font}{"21C7} \DeclareMathSymbol{\leftleftleftarrows}{\mathrel}{\M@arrows@font}{"2B31} \DeclareMathSymbol{\leftrightarrow}{\mathrel}{\M@arrows@font}{"2194} \DeclareMathSymbol{\Leftrightarrow}{\mathrel}{\M@arrows@font}{"21D4} \DeclareMathSymbol{\nLeftrightarrow}{\mathrel}{\M@arrows@font}{"21CE} \DeclareMathSymbol{\longleftrightarrow}{\mathrel}{\M@arrows@font}{"27F7} \DeclareMathSymbol{\Longleftrightarrow}{\mathrel}{\M@arrows@font}{"27FA} \DeclareMathSymbol{\leftrightwavearrow}{\mathrel}{\M@arrows@font}{"21AD} \DeclareMathSymbol{\leftrightarrows}{\mathrel}{\M@arrows@font}{"21C6} \DeclareMathSymbol{\leftrightharpoons}{\mathrel}{\M@arrows@font}{"21CB} \DeclareMathSymbol{\leftrightarrowstobar}{\mathrel}{\M@arrows@font}{"21B9} \DeclareMathSymbol{\rightleftarrows}{\mathrel}{\M@arrows@font}{"21C4} \DeclareMathSymbol{\rightleftharpoons}{\mathrel}{\M@arrows@font}{"21CC} \DeclareMathSymbol{\uparrow}{\mathrel}{\M@arrows@font}{"2191} \DeclareMathSymbol{\Uparrow}{\mathrel}{\M@arrows@font}{"21D1} \DeclareMathSymbol{\Uuparrow}{\mathrel}{\M@arrows@font}{"290A} \DeclareMathSymbol{\upbararrow}{\mathrel}{\M@arrows@font}{"21A5} \DeclareMathSymbol{\updasharrow}{\mathrel}{\M@arrows@font}{"21E1} \DeclareMathSymbol{\upharpoonleft}{\mathrel}{\M@arrows@font}{"21BF} \DeclareMathSymbol{\upharpoonright}{\mathrel}{\M@arrows@font}{"21BE} \DeclareMathSymbol{\twoheaduparrow}{\mathrel}{\M@arrows@font}{"219F} \DeclareMathSymbol{\uparrowtobar}{\mathrel}{\M@arrows@font}{"2912} \DeclareMathSymbol{\upwhitearrow}{\mathrel}{\M@arrows@font}{"21E7} \DeclareMathSymbol{\upwhitebararrow}{\mathrel}{\M@arrows@font}{"21EA} \DeclareMathSymbol{\upuparrows}{\mathrel}{\M@arrows@font}{"21C8} \DeclareMathSymbol{\downarrow}{\mathrel}{\M@arrows@font}{"2193} \DeclareMathSymbol{\Downarrow}{\mathrel}{\M@arrows@font}{"21D3} \DeclareMathSymbol{\Ddownarrow}{\mathrel}{\M@arrows@font}{"290B} \DeclareMathSymbol{\downbararrow}{\mathrel}{\M@arrows@font}{"21A7} \DeclareMathSymbol{\downdasharrow}{\mathrel}{\M@arrows@font}{"21E3} \DeclareMathSymbol{\zigzagarrow}{\mathrel}{\M@arrows@font}{"21AF} \global\let\lightningboltarrow\zigzagarrow \DeclareMathSymbol{\downharpoonleft}{\mathrel}{\M@arrows@font}{"21C3} \DeclareMathSymbol{\downharpoonright}{\mathrel}{\M@arrows@font}{"21C2} \DeclareMathSymbol{\twoheaddownarrow}{\mathrel}{\M@arrows@font}{"21A1} \DeclareMathSymbol{\downarrowtobar}{\mathrel}{\M@arrows@font}{"2913} \DeclareMathSymbol{\downwhitearrow}{\mathrel}{\M@arrows@font}{"21E9} \DeclareMathSymbol{\downdownarrows}{\mathrel}{\M@arrows@font}{"21CA} \DeclareMathSymbol{\updownarrow}{\mathrel}{\M@arrows@font}{"2195} \DeclareMathSymbol{\Updownarrow}{\mathrel}{\M@arrows@font}{"21D5} \DeclareMathSymbol{\updownarrows}{\mathrel}{\M@arrows@font}{"21C5} \DeclareMathSymbol{\downuparrows}{\mathrel}{\M@arrows@font}{"21F5} \DeclareMathSymbol{\updownharpoons}{\mathrel}{\M@arrows@font}{"296E} \DeclareMathSymbol{\downupharpoons}{\mathrel}{\M@arrows@font}{"296F} \DeclareMathSymbol{\nearrow}{\mathrel}{\M@arrows@font}{"2197} \DeclareMathSymbol{\Nearrow}{\mathrel}{\M@arrows@font}{"21D7} \DeclareMathSymbol{\nwarrow}{\mathrel}{\M@arrows@font}{"2196} \DeclareMathSymbol{\Nwarrow}{\mathrel}{\M@arrows@font}{"21D6} \DeclareMathSymbol{\searrow}{\mathrel}{\M@arrows@font}{"2198} \DeclareMathSymbol{\Searrow}{\mathrel}{\M@arrows@font}{"21D8} \DeclareMathSymbol{\swarrow}{\mathrel}{\M@arrows@font}{"2199} \DeclareMathSymbol{\Swarrow}{\mathrel}{\M@arrows@font}{"21D9} \DeclareMathSymbol{\nwsearrow}{\mathrel}{\M@arrows@font}{"2921} \DeclareMathSymbol{\neswarrow}{\mathrel}{\M@arrows@font}{"2922} \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}} \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}} \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}} \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}} \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}} \endinput %% %% End of file `mathfont.sty'.