diff options
author | Karl Berry <karl@freefriends.org> | 2011-09-18 22:29:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-09-18 22:29:36 +0000 |
commit | 793be33975bf8f6986bb6435f2039c7c34ac3c15 (patch) | |
tree | 873887f99fef55a52edf3614dd48ec340b1515e6 /Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty | |
parent | 4c7c93512d5ad99119fc38035815ba54a17605a5 (diff) |
unicode-math 0.6 (18sep11)
git-svn-id: svn://tug.org/texlive/trunk@24003 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty | 2630 |
1 files changed, 2630 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty new file mode 100644 index 00000000000..339f67ff4cd --- /dev/null +++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty @@ -0,0 +1,2630 @@ +%% +%% This is file `unicode-math-xetex.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% unicode-math.dtx (with options: `package,XE') +%% Copyright 2006-2011 Will Robertson <will.robertson@latex-project.org> +%% Copyright 2010-2011 Philipp Stephani <st_philipp@yahoo.de> +%% +%% This package is free software and may be redistributed and/or modified under +%% the conditions of the LaTeX Project Public License, version 1.3c or higher +%% (your choice): <http://www.latex-project.org/lppl/>. +%% +%% This work is "author-maintained" by Will Robertson. +\ExplSyntaxOn +\cs_new:Nn \um_cs_compat:n + { \cs_set_eq:cc {U#1} {XeTeX#1} } +\um_cs_compat:n {mathcode} +\um_cs_compat:n {delcode} +\um_cs_compat:n {mathcodenum} +\um_cs_compat:n {mathcharnum} +\um_cs_compat:n {mathchardef} +\um_cs_compat:n {radical} +\um_cs_compat:n {mathaccent} +\um_cs_compat:n {delimiter} +\bool_set_false:N \c_um_have_fixed_accents_bool +\cs_new:Nn \usv_set:nnn { + \tl_set:cn { \um_to_usv:nn {#1}{#2} } {#3} +} +\cs_new:Nn \um_to_usv:nn { g_um_#1_#2_usv } +\usv_set:nnn {up}{num}{48} +\usv_set:nnn {up}{Latin}{65} +\usv_set:nnn {up}{latin}{97} +\usv_set:nnn {up}{Greek}{"391} +\usv_set:nnn {up}{greek}{"3B1} +\usv_set:nnn {it}{Latin}{"1D434} +\usv_set:nnn {it}{latin}{"1D44E} +\usv_set:nnn {it}{Greek}{"1D6E2} +\usv_set:nnn {it}{greek}{"1D6FC} +\usv_set:nnn {bb}{num}{"1D7D8} +\usv_set:nnn {bb}{Latin}{"1D538} +\usv_set:nnn {bb}{latin}{"1D552} +\usv_set:nnn {scr}{Latin}{"1D49C} +\usv_set:nnn {cal}{Latin}{"1D49C} +\usv_set:nnn {scr}{latin}{"1D4B6} +\usv_set:nnn {frak}{Latin}{"1D504} +\usv_set:nnn {frak}{latin}{"1D51E} +\usv_set:nnn {sf}{num}{"1D7E2} +\usv_set:nnn {sfup}{num}{"1D7E2} +\usv_set:nnn {sfit}{num}{"1D7E2} +\usv_set:nnn {sfup}{Latin}{"1D5A0} +\usv_set:nnn {sf}{Latin}{"1D5A0} +\usv_set:nnn {sfup}{latin}{"1D5BA} +\usv_set:nnn {sf}{latin}{"1D5BA} +\usv_set:nnn {sfit}{Latin}{"1D608} +\usv_set:nnn {sfit}{latin}{"1D622} +\usv_set:nnn {tt}{num}{"1D7F6} +\usv_set:nnn {tt}{Latin}{"1D670} +\usv_set:nnn {tt}{latin}{"1D68A} +\usv_set:nnn {bf}{num}{"1D7CE} +\usv_set:nnn {bfup}{num}{"1D7CE} +\usv_set:nnn {bfit}{num}{"1D7CE} +\usv_set:nnn {bfup}{Latin}{"1D400} +\usv_set:nnn {bfup}{latin}{"1D41A} +\usv_set:nnn {bfup}{Greek}{"1D6A8} +\usv_set:nnn {bfup}{greek}{"1D6C2} +\usv_set:nnn {bfit}{Latin}{"1D468} +\usv_set:nnn {bfit}{latin}{"1D482} +\usv_set:nnn {bfit}{Greek}{"1D71C} +\usv_set:nnn {bfit}{greek}{"1D736} +\usv_set:nnn {bffrak}{Latin}{"1D56C} +\usv_set:nnn {bffrak}{latin}{"1D586} +\usv_set:nnn {bfscr}{Latin}{"1D4D0} +\usv_set:nnn {bfcal}{Latin}{"1D4D0} +\usv_set:nnn {bfscr}{latin}{"1D4EA} +\usv_set:nnn {bfsf}{num}{"1D7EC} +\usv_set:nnn {bfsfup}{num}{"1D7EC} +\usv_set:nnn {bfsfit}{num}{"1D7EC} +\usv_set:nnn {bfsfup}{Latin}{"1D5D4} +\usv_set:nnn {bfsfup}{latin}{"1D5EE} +\usv_set:nnn {bfsfup}{Greek}{"1D756} +\usv_set:nnn {bfsfup}{greek}{"1D770} +\usv_set:nnn {bfsfit}{Latin}{"1D63C} +\usv_set:nnn {bfsfit}{latin}{"1D656} +\usv_set:nnn {bfsfit}{Greek}{"1D790} +\usv_set:nnn {bfsfit}{greek}{"1D7AA} +\usv_set:nnn {bfsf}{Latin}{ \bool_if:NTF \g_um_upLatin_bool \g_um_bfsfup_Latin_usv \g_um_bfsfit_Latin_usv } +\usv_set:nnn {bfsf}{latin}{ \bool_if:NTF \g_um_uplatin_bool \g_um_bfsfup_latin_usv \g_um_bfsfit_latin_usv } +\usv_set:nnn {bfsf}{Greek}{ \bool_if:NTF \g_um_upGreek_bool \g_um_bfsfup_Greek_usv \g_um_bfsfit_Greek_usv } +\usv_set:nnn {bfsf}{greek}{ \bool_if:NTF \g_um_upgreek_bool \g_um_bfsfup_greek_usv \g_um_bfsfit_greek_usv } +\usv_set:nnn {bf}{Latin}{ \bool_if:NTF \g_um_bfupLatin_bool \g_um_bfup_Latin_usv \g_um_bfit_Latin_usv } +\usv_set:nnn {bf}{latin}{ \bool_if:NTF \g_um_bfuplatin_bool \g_um_bfup_latin_usv \g_um_bfit_latin_usv } +\usv_set:nnn {bf}{Greek}{ \bool_if:NTF \g_um_bfupGreek_bool \g_um_bfup_Greek_usv \g_um_bfit_Greek_usv } +\usv_set:nnn {bf}{greek}{ \bool_if:NTF \g_um_bfupgreek_bool \g_um_bfup_greek_usv \g_um_bfit_greek_usv } +\usv_set:nnn {up}{varTheta}{"3F4} +\usv_set:nnn {up}{Digamma}{"3DC} +\usv_set:nnn {up}{varepsilon}{"3F5} +\usv_set:nnn {up}{vartheta}{"3D1} +\usv_set:nnn {up}{varkappa}{"3F0} +\usv_set:nnn {up}{varphi}{"3D5} +\usv_set:nnn {up}{varrho}{"3F1} +\usv_set:nnn {up}{varpi}{"3D6} +\usv_set:nnn {up}{digamma}{"3DD} +\usv_set:nnn {bfup}{varTheta}{"1D6B9} +\usv_set:nnn {bfup}{Digamma}{"1D7CA} +\usv_set:nnn {bfup}{varepsilon}{"1D6DC} +\usv_set:nnn {bfup}{vartheta}{"1D6DD} +\usv_set:nnn {bfup}{varkappa}{"1D6DE} +\usv_set:nnn {bfup}{varphi}{"1D6DF} +\usv_set:nnn {bfup}{varrho}{"1D6E0} +\usv_set:nnn {bfup}{varpi}{"1D6E1} +\usv_set:nnn {bfup}{digamma}{"1D7CB} +\usv_set:nnn {it}{varTheta}{"1D6F3} +\usv_set:nnn {it}{varepsilon}{"1D716} +\usv_set:nnn {it}{vartheta}{"1D717} +\usv_set:nnn {it}{varkappa}{"1D718} +\usv_set:nnn {it}{varphi}{"1D719} +\usv_set:nnn {it}{varrho}{"1D71A} +\usv_set:nnn {it}{varpi}{"1D71B} +\usv_set:nnn {bfit}{varTheta}{"1D72D} +\usv_set:nnn {bfit}{varepsilon}{"1D750} +\usv_set:nnn {bfit}{vartheta}{"1D751} +\usv_set:nnn {bfit}{varkappa}{"1D752} +\usv_set:nnn {bfit}{varphi}{"1D753} +\usv_set:nnn {bfit}{varrho}{"1D754} +\usv_set:nnn {bfit}{varpi}{"1D755} +\usv_set:nnn {bfsfup}{varTheta}{"1D767} +\usv_set:nnn {bfsfup}{varepsilon}{"1D78A} +\usv_set:nnn {bfsfup}{vartheta}{"1D78B} +\usv_set:nnn {bfsfup}{varkappa}{"1D78C} +\usv_set:nnn {bfsfup}{varphi}{"1D78D} +\usv_set:nnn {bfsfup}{varrho}{"1D78E} +\usv_set:nnn {bfsfup}{varpi}{"1D78F} +\usv_set:nnn {bfsfit}{varTheta} {"1D7A1} +\usv_set:nnn {bfsfit}{varepsilon}{"1D7C4} +\usv_set:nnn {bfsfit}{vartheta} {"1D7C5} +\usv_set:nnn {bfsfit}{varkappa} {"1D7C6} +\usv_set:nnn {bfsfit}{varphi} {"1D7C7} +\usv_set:nnn {bfsfit}{varrho} {"1D7C8} +\usv_set:nnn {bfsfit}{varpi} {"1D7C9} +\usv_set:nnn {up} {Nabla}{"02207} +\usv_set:nnn {it} {Nabla}{"1D6FB} +\usv_set:nnn {bfup} {Nabla}{"1D6C1} +\usv_set:nnn {bfit} {Nabla}{"1D735} +\usv_set:nnn {bfsfup}{Nabla}{"1D76F} +\usv_set:nnn {bfsfit}{Nabla}{"1D7A9} +\usv_set:nnn {up} {partial}{"02202} +\usv_set:nnn {it} {partial}{"1D715} +\usv_set:nnn {bfup} {partial}{"1D6DB} +\usv_set:nnn {bfit} {partial}{"1D74F} +\usv_set:nnn {bfsfup}{partial}{"1D789} +\usv_set:nnn {bfsfit}{partial}{"1D7C3} +\usv_set:nnn {up}{B}{`\B} +\usv_set:nnn {up}{C}{`\C} +\usv_set:nnn {up}{D}{`\D} +\usv_set:nnn {up}{E}{`\E} +\usv_set:nnn {up}{F}{`\F} +\usv_set:nnn {up}{H}{`\H} +\usv_set:nnn {up}{I}{`\I} +\usv_set:nnn {up}{L}{`\L} +\usv_set:nnn {up}{M}{`\M} +\usv_set:nnn {up}{N}{`\N} +\usv_set:nnn {up}{P}{`\P} +\usv_set:nnn {up}{Q}{`\Q} +\usv_set:nnn {up}{R}{`\R} +\usv_set:nnn {up}{Z}{`\Z} +\usv_set:nnn {it}{B}{"1D435} +\usv_set:nnn {it}{C}{"1D436} +\usv_set:nnn {it}{D}{"1D437} +\usv_set:nnn {it}{E}{"1D438} +\usv_set:nnn {it}{F}{"1D439} +\usv_set:nnn {it}{H}{"1D43B} +\usv_set:nnn {it}{I}{"1D43C} +\usv_set:nnn {it}{L}{"1D43F} +\usv_set:nnn {it}{M}{"1D440} +\usv_set:nnn {it}{N}{"1D441} +\usv_set:nnn {it}{P}{"1D443} +\usv_set:nnn {it}{Q}{"1D444} +\usv_set:nnn {it}{R}{"1D445} +\usv_set:nnn {it}{Z}{"1D44D} +\usv_set:nnn {up}{d}{`\d} +\usv_set:nnn {up}{e}{`\e} +\usv_set:nnn {up}{g}{`\g} +\usv_set:nnn {up}{h}{`\h} +\usv_set:nnn {up}{i}{`\i} +\usv_set:nnn {up}{j}{`\j} +\usv_set:nnn {up}{o}{`\o} +\usv_set:nnn {it}{d}{"1D451} +\usv_set:nnn {it}{e}{"1D452} +\usv_set:nnn {it}{g}{"1D454} +\usv_set:nnn {it}{h}{"0210E} +\usv_set:nnn {it}{i}{"1D456} +\usv_set:nnn {it}{j}{"1D457} +\usv_set:nnn {it}{o}{"1D45C} +\usv_set:nnn {bb} {h}{"1D559} +\usv_set:nnn {tt} {h}{"1D691} +\usv_set:nnn {scr} {h}{"1D4BD} +\usv_set:nnn {frak} {h}{"1D525} +\usv_set:nnn {bfup} {h}{"1D421} +\usv_set:nnn {bfit} {h}{"1D489} +\usv_set:nnn {sfup} {h}{"1D5C1} +\usv_set:nnn {sfit} {h}{"1D629} +\usv_set:nnn {bffrak}{h}{"1D58D} +\usv_set:nnn {bfscr} {h}{"1D4F1} +\usv_set:nnn {bfsfup}{h}{"1D5F5} +\usv_set:nnn {bfsfit}{h}{"1D65D} +\usv_set:nnn {up}{dotlessi}{"00131} +\usv_set:nnn {up}{dotlessj}{"00237} +\usv_set:nnn {it}{dotlessi}{"1D6A4} +\usv_set:nnn {it}{dotlessj}{"1D6A5} +\usv_set:nnn {bb}{C}{"2102} +\usv_set:nnn {bb}{H}{"210D} +\usv_set:nnn {bb}{N}{"2115} +\usv_set:nnn {bb}{P}{"2119} +\usv_set:nnn {bb}{Q}{"211A} +\usv_set:nnn {bb}{R}{"211D} +\usv_set:nnn {bb}{Z}{"2124} +\usv_set:nnn {up}{Pi} {"003A0} +\usv_set:nnn {up}{pi} {"003C0} +\usv_set:nnn {up}{Gamma} {"00393} +\usv_set:nnn {up}{gamma} {"003B3} +\usv_set:nnn {up}{summation}{"02211} +\usv_set:nnn {it}{Pi} {"1D6F1} +\usv_set:nnn {it}{pi} {"1D70B} +\usv_set:nnn {it}{Gamma} {"1D6E4} +\usv_set:nnn {it}{gamma} {"1D6FE} +\usv_set:nnn {bb}{Pi} {"0213F} +\usv_set:nnn {bb}{pi} {"0213C} +\usv_set:nnn {bb}{Gamma} {"0213E} +\usv_set:nnn {bb}{gamma} {"0213D} +\usv_set:nnn {bb}{summation}{"02140} +\usv_set:nnn {bbit}{D}{"2145} +\usv_set:nnn {bbit}{d}{"2146} +\usv_set:nnn {bbit}{e}{"2147} +\usv_set:nnn {bbit}{i}{"2148} +\usv_set:nnn {bbit}{j}{"2149} +\usv_set:nnn {scr}{B}{"212C} +\usv_set:nnn {scr}{E}{"2130} +\usv_set:nnn {scr}{F}{"2131} +\usv_set:nnn {scr}{H}{"210B} +\usv_set:nnn {scr}{I}{"2110} +\usv_set:nnn {scr}{L}{"2112} +\usv_set:nnn {scr}{M}{"2133} +\usv_set:nnn {scr}{R}{"211B} +\usv_set:nnn {scr}{e}{"212F} +\usv_set:nnn {scr}{g}{"210A} +\usv_set:nnn {scr}{o}{"2134} +\usv_set:nnn {cal}{B}{"212C} +\usv_set:nnn {cal}{E}{"2130} +\usv_set:nnn {cal}{F}{"2131} +\usv_set:nnn {cal}{H}{"210B} +\usv_set:nnn {cal}{I}{"2110} +\usv_set:nnn {cal}{L}{"2112} +\usv_set:nnn {cal}{M}{"2133} +\usv_set:nnn {cal}{R}{"211B} +\usv_set:nnn {frak}{C}{"212D} +\usv_set:nnn {frak}{H}{"210C} +\usv_set:nnn {frak}{I}{"2111} +\usv_set:nnn {frak}{R}{"211C} +\usv_set:nnn {frak}{Z}{"2128} +\tl_map_inline:nn { + \new@mathgroup\cdp@list\cdp@elt\DeclareMathSizes + \@DeclareMathSizes\newmathalphabet\newmathalphabet@@\newmathalphabet@@@ + \DeclareMathVersion\define@mathalphabet\define@mathgroup\addtoversion + \version@list\version@elt\alpha@list\alpha@elt + \restore@mathversion\init@restore@version\dorestore@version\process@table + \new@mathversion\DeclareSymbolFont\group@list\group@elt + \new@symbolfont\SetSymbolFont\SetSymbolFont@\get@cdp + \DeclareMathAlphabet\new@mathalphabet\SetMathAlphabet\SetMathAlphabet@ + \DeclareMathAccent\set@mathaccent\DeclareMathSymbol\set@mathchar + \set@mathsymbol\DeclareMathDelimiter\@xxDeclareMathDelimiter + \@DeclareMathDelimiter\@xDeclareMathDelimiter\set@mathdelimiter + \set@@mathdelimiter\DeclareMathRadical\mathchar@type + \DeclareSymbolFontAlphabet\DeclareSymbolFontAlphabet@ +}{ + \tl_remove_once:Nn \@preamblecmds {\do#1} +} +\def\new@mathgroup{\alloc@8\mathgroup\chardef\@cclvi} +\let\newfam\new@mathgroup +\cs_set:Nn \um_set_mathsymbol:nNNn { + \prg_case_tl:Nnn #3 { + \mathop { \um_set_big_operator:nnn {#1} {#2} {#4} } + \mathopen + { + \tl_if_in:NnTF \l_um_radicals_tl {#2} + { + \cs_gset_protected_nopar:cpx {\cs_to_str:N #2 sign} + { \um_radical:nn {#1} {#4} } + \tl_set:cn {l_um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #4} + } + { + \um_set_delcode:nnn {#1} {#4} {#4} + \um_set_mathcode:nnn {#4} \mathopen {#1} + \cs_gset_protected_nopar:Npx #2 + { \um_delimiter:Nnn \mathopen {#1} {#4} } + } + } + \mathclose + { + \um_set_delcode:nnn {#1} {#4} {#4} + \um_set_mathcode:nnn {#4} \mathclose {#1} + \cs_gset_protected_nopar:Npx #2 + { \um_delimiter:Nnn \mathclose {#1} {#4} } + } + \mathaccent + { \cs_gset_protected_nopar:Npx #2 { \um_accent:Nnn #3 {#1} {#4} } } + \mathfence + { + \um_set_mathcode:nnn {#4} {#3} {#1} + \um_set_delcode:nnn {#1} {#4} {#4} + \cs_gset_protected_nopar:cpx {l \cs_to_str:N #2} + { \um_delimiter:Nnn \mathopen {#1} {#4} } + \cs_gset_protected_nopar:cpx {r \cs_to_str:N #2} + { \um_delimiter:Nnn \mathclose {#1} {#4} } + } + }{ + \um_set_mathcode:nnn {#4} {#3} {#1} + } +} +\edef\mathfence{\string\mathfence} +\edef\mathover{\string\mathover} +\edef\mathunder{\string\mathunder} +\cs_new:Nn \um_set_big_operator:nnn { + \group_begin: + \char_set_catcode_active:n {#3} + \char_gmake_mathactive:n {#3} + \um_active_char_set:wc #3 \q_nil { \cs_to_str:N #2 _sym } + \group_end: + \um_set_mathchar:cNnn {\cs_to_str:N #2 op} \mathop {#1} {#3} + \cs_gset:cpx { \cs_to_str:N #2 _sym } { + \exp_not:c { \cs_to_str:N #2 op } + \exp_not:n { \tl_if_in:NnT \l_um_nolimits_tl {#2} \nolimits } + } +} +\cs_set:Npn \um_set_mathcode:nnnn #1#2#3#4 { + \Umathcode \int_eval:n {#1} = + \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop: +} +\cs_set:Npn \um_set_mathcode:nnn #1#2#3 { + \Umathcode \int_eval:n {#1} = + \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#1} \scan_stop: +} +\cs_set:Npn \um_set_mathchar:NNnn #1#2#3#4 { + \Umathchardef #1 = + \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop: +} +\cs_new:Nn \um_set_delcode:nnn { + \Udelcode#2 = \csname sym#1\endcsname #3 +} +\cs_new:Nn \um_radical:nn { + \Uradical \csname sym#1\endcsname #2 \scan_stop: +} +\cs_new:Nn \um_delimiter:Nnn { + \Udelimiter \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop: +} +\cs_new:Nn \um_accent:Nnn + { + \Umathaccent \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop: + } +\cs_generate_variant:Nn \um_set_mathchar:NNnn {c} +\cs_set:Npn \um_overbrace:nnn #1#2#3 { + \luatexUdelimiterover \csname sym#1\endcsname #2 {#3} +} +\cs_set:Npn \um_underbrace:nnn #1#2#3 { + \luatexUdelimiterunder \csname sym#1\endcsname #2 {#3} +} +\cs_new:Nn \char_gmake_mathactive:N { + \global\mathcode `#1 = "8000 \scan_stop: +} +\cs_new:Nn \char_gmake_mathactive:n { + \global\mathcode #1 = "8000 \scan_stop: +} +\cs_new_eq:NN \um_saved_ltxe_glb_settings: \glb@settings +\CheckCommand * \glb@settings { + \expandafter\ifx\csname S@\f@size\endcsname\relax + \calculate@math@sizes + \fi + \csname S@\f@size\endcsname + \ifmath@fonts + \begingroup + \escapechar\m@ne + \csname mv@\math@version \endcsname + \globaldefs\@ne + \math@fonts + \let \glb@currsize \f@size + \endgroup + \the\every@math@size + \fi +} +\cs_set_protected_nopar:Npn \glb@settings { + \msg_error:nn { unicode-math } { no-font-selected } +} +\cs_new:Nn \um_init: { + \bool_set_true:N \l_um_ot_math_bool + \let\glb@currsize\relax + \cs_set_eq:NN \glb@settings \um_saved_ltxe_glb_settings: + \bool_set_true:N \l_um_init_bool + \seq_clear:N \l_um_char_range_seq + \clist_clear:N \l_um_char_num_range_clist + \seq_clear:N \l_um_mathalph_seq + \seq_clear:N \l_um_missing_alph_seq + \tl_set:Nn \l_um_mversion_tl {normal} + \tl_set:Nn \um_symfont_tl {operators} + \cs_set_eq:NN \_um_sym:nnn \um_process_symbol_noparse:nnn + \cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_noparse:Nnn + \cs_set_eq:NN \um_remap_symbol:nnn \um_remap_symbol_noparse:nnn + \cs_set_eq:NN \um_maybe_init_alphabet:n \um_init_alphabet:n + \cs_set_eq:NN \um_map_char_single:nn \um_map_char_noparse:nn + \cs_set_eq:NN \um_assign_delcode:nn \um_assign_delcode_noparse:nn + \cs_set_eq:NN \um_make_mathactive:nNN \um_make_mathactive_noparse:nNN + \tl_set:Nn \l_um_script_features_tl {Style=MathScript} + \tl_set:Nn \l_um_sscript_features_tl {Style=MathScriptScript} + \tl_set_eq:NN \l_um_script_font_tl \l_um_fontname_tl + \tl_set_eq:NN \l_um_sscript_font_tl \l_um_fontname_tl +} +\DeclareDocumentCommand \setmathfont { O{} m } { + \tl_set:Nn \l_um_fontname_tl {#2} + \um_init: + \cs_if_exist:cF { S@ \f@size } { \calculate@math@sizes } + \csname S@\f@size\endcsname + \keys_set_known:nnN {unicode-math} {#1} \l_um_unknown_keys_clist + \bool_if:NT \l_um_init_bool { \um_log:n {default-math-font} } + \um_fontspec_select_font: + \cs_if_exist:cF { sym \um_symfont_tl } + { + \DeclareSymbolFont{\um_symfont_tl} + {\encodingdefault}{\l_um_family_tl}{\mddefault}{\updefault} + } + \SetSymbolFont{\um_symfont_tl}{\l_um_mversion_tl} + {\encodingdefault}{\l_um_family_tl}{\mddefault}{\updefault} + \bool_if:nT {\l_um_ot_math_bool && !\g_um_mainfont_already_set_bool} { + \bool_set_true:N \g_um_mainfont_already_set_bool + \um_declare_math_sizes: + \um_setup_legacy_fam_two: + \um_setup_legacy_fam_three: + } + \um_input_math_symbol_table: + \um_remap_symbols: + \um_setup_mathactives: + \um_setup_accents: + \um_setup_delcodes: + \um_setup_alphabets: + \ignorespaces +} +\cs_new:Nn \um_declare_math_sizes: + { + \dim_compare:nF { \fontdimen 10 \l_um_font == 0pt } + { + \DeclareMathSizes { \f@size } { \f@size } + { \um_fontdimen_to_scale:nn {10} {\l_um_font} } + { \um_fontdimen_to_scale:nn {11} {\l_um_font} } + } + } +\cs_new:Nn \um_setup_legacy_fam_two: + { + \fontspec_set_family:Nxn \l_um_family_tl + { + \l_um_font_keyval_tl, + Scale=1.00001, + FontAdjustment={ + \fontdimen8\font= \um_get_fontparam:nn {43} {FractionNumeratorDisplayStyleShiftUp}\relax + \fontdimen9\font= \um_get_fontparam:nn {42} {FractionNumeratorShiftUp}\relax + \fontdimen10\font=\um_get_fontparam:nn {32} {StackTopShiftUp}\relax + \fontdimen11\font=\um_get_fontparam:nn {45} {FractionDenominatorDisplayStyleShiftDown}\relax + \fontdimen12\font=\um_get_fontparam:nn {44} {FractionDenominatorShiftDown}\relax + \fontdimen13\font=\um_get_fontparam:nn {21} {SuperscriptShiftUp}\relax + \fontdimen14\font=\um_get_fontparam:nn {21} {SuperscriptShiftUp}\relax + \fontdimen15\font=\um_get_fontparam:nn {22} {SuperscriptShiftUpCramped}\relax + \fontdimen16\font=\um_get_fontparam:nn {18} {SubscriptShiftDown}\relax + \fontdimen17\font=\um_get_fontparam:nn {18} {SubscriptShiftDownWithSuperscript}\relax + \fontdimen18\font=\um_get_fontparam:nn {24} {SuperscriptBaselineDropMax}\relax + \fontdimen19\font=\um_get_fontparam:nn {20} {SubscriptBaselineDropMin}\relax + \fontdimen20\font=0pt\relax % delim1 = FractionDelimiterDisplaySize + \fontdimen21\font=0pt\relax % delim2 = FractionDelimiterSize + \fontdimen22\font=\um_get_fontparam:nn {15} {AxisHeight}\relax + } + } {\l_um_fontname_tl} + \SetSymbolFont{symbols}{\l_um_mversion_tl} + {\encodingdefault}{\l_um_family_tl}{\mddefault}{\updefault} + } +\cs_new:Nn \um_setup_legacy_fam_three: + { + \fontspec_set_family:Nxn \l_um_family_tl + { + \l_um_font_keyval_tl, + Scale=0.99999, + FontAdjustment={ + \fontdimen8\font= \um_get_fontparam:nn {48} {FractionRuleThickness}\relax + \fontdimen9\font= \um_get_fontparam:nn {28} {UpperLimitGapMin}\relax + \fontdimen10\font=\um_get_fontparam:nn {30} {LowerLimitGapMin}\relax + \fontdimen11\font=\um_get_fontparam:nn {29} {UpperLimitBaselineRiseMin}\relax + \fontdimen12\font=\um_get_fontparam:nn {31} {LowerLimitBaselineDropMin}\relax + \fontdimen13\font=0pt\relax + } + } {\l_um_fontname_tl} + \SetSymbolFont{largesymbols}{\l_um_mversion_tl} + {\encodingdefault}{\l_um_family_tl}{\mddefault}{\updefault} + } +\cs_new:Nn \um_get_fontparam:nn + { \the\fontdimen#1\l_um_font\relax } +\DeclareDocumentCommand \resetmathfont { O{} m } { + \bool_set_false:N \g_um_mainfont_already_set_bool + \setmathfont[#1]{#2} +} +\cs_new:Nn \um_fontspec_select_font: { + \tl_set:Nx \l_um_font_keyval_tl { + BoldFont = {}, ItalicFont = {}, + Script = Math, + SizeFeatures = { + {Size = \tf@size-} , + {Size = \sf@size-\tf@size , + Font = \l_um_script_font_tl , + \l_um_script_features_tl + } , + {Size = -\sf@size , + Font = \l_um_sscript_font_tl , + \l_um_sscript_features_tl + } + }, + \l_um_unknown_keys_clist + } + \fontspec_set_fontface:NNxn \l_um_font \l_um_family_tl + {\l_um_font_keyval_tl} {\l_um_fontname_tl} + \group_begin: + \fontfamily{\l_um_family_tl}\selectfont + \fontspec_if_script:nF {math} {\bool_gset_false:N \l_um_ot_math_bool} + \group_end: +} +\cs_set:Npn \um_process_symbol_noparse:nnn #1#2#3 { + \um_set_mathsymbol:nNNn {\um_symfont_tl} #2#3{#1} +} +\cs_set:Npn \um_process_symbol_parse:nnn #1#2#3 { + \um_if_char_spec:nNNT{#1}{#2}{#3}{ + \um_process_symbol_noparse:nnn {#1}{#2}{#3} + } +} +\cs_new:Npn \um_remap_symbols: { + \um_remap_symbol:nnn{`\-}{\mathbin}{"02212}% hyphen to minus + \um_remap_symbol:nnn{`\*}{\mathbin}{"02217}% text asterisk to "centred asterisk" + \bool_if:NF \g_um_literal_colon_bool { + \um_remap_symbol:nnn{`\:}{\mathrel}{"02236}% colon to ratio (i.e., punct to rel) + } +} +\cs_new:Nn \um_remap_symbol_parse:nnn { + \um_if_char_spec:nNNT {#3} {\@nil} {#2} { + \um_remap_symbol_noparse:nnn {#1} {#2} {#3} + } +} +\cs_new:Nn \um_remap_symbol_noparse:nnn { + \clist_map_inline:nn {#1} { + \um_set_mathcode:nnnn {##1} {#2} {\um_symfont_tl} {#3} + } +} +\cs_new:Npn \um_setup_mathactives: { + \um_make_mathactive:nNN {"2032} \um_prime_single_mchar \mathord + \um_make_mathactive:nNN {"2033} \um_prime_double_mchar \mathord + \um_make_mathactive:nNN {"2034} \um_prime_triple_mchar \mathord + \um_make_mathactive:nNN {"2057} \um_prime_quad_mchar \mathord + \um_make_mathactive:nNN {"2035} \um_backprime_single_mchar \mathord + \um_make_mathactive:nNN {"2036} \um_backprime_double_mchar \mathord + \um_make_mathactive:nNN {"2037} \um_backprime_triple_mchar \mathord + \um_make_mathactive:nNN {`\'} \mathstraightquote \mathord + \um_make_mathactive:nNN {`\`} \mathbacktick \mathord +} +\cs_new:Nn \um_make_mathactive_parse:nNN + { + \um_if_char_spec:nNNT {#1} #2 #3 + { \um_make_mathactive_noparse:nNN {#1} #2 #3 } + } +\cs_new:Nn \um_make_mathactive_noparse:nNN + { + \um_set_mathchar:NNnn #2 #3 {\um_symfont_tl} {#1} + \char_gmake_mathactive:n {#1} + } +\cs_new:Nn \um_assign_delcode_noparse:nn { + \um_set_delcode:nnn \um_symfont_tl {#1} {#2} +} +\cs_new:Nn \um_assign_delcode_parse:nn { + \um_if_char_spec:nNNT {#2}{\@nil}{\@nil} { + \um_assign_delcode_noparse:nn {#1} {#2} + } +} +\cs_new:Nn \um_assign_delcode:n { \um_assign_delcode:nn {#1} {#1} } +\cs_new:Npn \um_setup_delcodes: { + \um_assign_delcode:nn {`\/} {\g_um_slash_delimiter_usv} + \um_assign_delcode:nn {"2044} {\g_um_slash_delimiter_usv} % fracslash + \um_assign_delcode:nn {"2215} {\g_um_slash_delimiter_usv} % divslash + \um_assign_delcode:n {"005C} % backslash + \um_assign_delcode:nn {`\<} {"27E8} % angle brackets with ascii notation + \um_assign_delcode:nn {`\>} {"27E9} % angle brackets with ascii notation + \um_assign_delcode:n {"2191} % up arrow + \um_assign_delcode:n {"2193} % down arrow + \um_assign_delcode:n {"2195} % updown arrow + \um_assign_delcode:n {"219F} % up arrow twohead + \um_assign_delcode:n {"21A1} % down arrow twohead + \um_assign_delcode:n {"21A5} % up arrow from bar + \um_assign_delcode:n {"21A7} % down arrow from bar + \um_assign_delcode:n {"21A8} % updown arrow from bar + \um_assign_delcode:n {"21BE} % up harpoon right + \um_assign_delcode:n {"21BF} % up harpoon left + \um_assign_delcode:n {"21C2} % down harpoon right + \um_assign_delcode:n {"21C3} % down harpoon left + \um_assign_delcode:n {"21C5} % arrows up down + \um_assign_delcode:n {"21F5} % arrows down up + \um_assign_delcode:n {"21C8} % arrows up up + \um_assign_delcode:n {"21CA} % arrows down down + \um_assign_delcode:n {"21D1} % double up arrow + \um_assign_delcode:n {"21D3} % double down arrow + \um_assign_delcode:n {"21D5} % double updown arrow + \um_assign_delcode:n {"21DE} % up arrow double stroke + \um_assign_delcode:n {"21DF} % down arrow double stroke + \um_assign_delcode:n {"21E1} % up arrow dashed + \um_assign_delcode:n {"21E3} % down arrow dashed + \um_assign_delcode:n {"21E7} % up white arrow + \um_assign_delcode:n {"21E9} % down white arrow + \um_assign_delcode:n {"21EA} % up white arrow from bar + \um_assign_delcode:n {"21F3} % updown white arrow +} +\tl_new:N \l_um_nolimits_tl +\tl_set:Nn \l_um_nolimits_tl { + \int\iint\iiint\iiiint\oint\oiint\oiiint + \intclockwise\varointclockwise\ointctrclockwise\sumint + \intbar\intBar\fint\cirfnint\awint\rppolint + \scpolint\npolint\pointint\sqint\intlarhk\intx + \intcap\intcup\upint\lowint +} +\DeclareDocumentCommand \addnolimits {m} { + \tl_put_right:Nn \l_um_nolimits_tl {#1} +} +\DeclareDocumentCommand \removenolimits {m} { + \tl_remove_all:Nn \l_um_nolimits_tl {#1} +} +\tl_new:N \l_um_radicals_tl +\tl_set:Nn \l_um_radicals_tl {\sqrt} +\cs_new_protected_nopar:Nn \um_new_cramped_style:N + { \quark_new:N #1 } +\um_new_cramped_style:N \crampeddisplaystyle +\um_new_cramped_style:N \crampedtextstyle +\um_new_cramped_style:N \crampedscriptstyle +\um_new_cramped_style:N \crampedscriptscriptstyle + \cs_new_nopar:Npn \um_font_dimen:Nnnnn #1 #2 #3 #4 #5 { + \fontdimen + \cs_if_eq:NNTF #1 \displaystyle { + #2 \textfont + } { + \cs_if_eq:NNTF #1 \crampeddisplaystyle { + #3 \textfont + } { + \cs_if_eq:NNTF #1 \textstyle { + #4 \textfont + } { + \cs_if_eq:NNTF #1 \crampedtextstyle { + #5 \textfont + } { + \cs_if_eq:NNTF #1 \scriptstyle { + #4 \scriptfont + } { + \cs_if_eq:NNTF #1 \crampedscriptstyle { + #5 \scriptfont + } { + \cs_if_eq:NNTF #1 \scriptscriptstyle { + #4 \scriptscriptfont + } { + #5 \scriptscriptfont + } + } + } + } + } + } + } + \c_two + } +\cs_new_protected_nopar:Nn \um_font_param:nnnnn +{ + \um_font_param_aux:ccnnnn { um_ #1 :N } { um_set_ #1 :N } + { #2 } { #3 } { #4 } { #5 } +} +\cs_new_protected_nopar:Npn \um_font_param:nnn #1 #2 #3 { + \um_font_param:nnnnn { #1 } { #2 } { #2 } { #3 } { #3 } +} +\cs_new_protected_nopar:Npn \um_font_param:nn #1 #2 { + \um_font_param:nnnnn { #1 } { #2 } { #2 } { #2 } { #2 } +} +\cs_new_protected_nopar:Nn \um_font_param:n + { } +\cs_new_protected_nopar:Nn \um_font_param_aux:NNnnnn + { + \cs_new_nopar:Npn #1 ##1 { + \um_font_dimen:Nnnnn ##1 { #3 } { #4 } { #5 } { #6 } + } + \cs_new_protected_nopar:Npn #2 ##1 ##2 { + #1 ##1 \dim_eval:n { ##2 } + } + } +\cs_generate_variant:Nn \um_font_param_aux:NNnnnn { cc } +\um_font_param:nn { axis } { 15 } +\um_font_param:nn { operator_size } { 13 } +\um_font_param:n { fraction_del_size } +\um_font_param:nnn { fraction_denom_down } { 45 } { 44 } +\um_font_param:nnn { fraction_denom_vgap } { 50 } { 49 } +\um_font_param:nnn { fraction_num_up } { 43 } { 42 } +\um_font_param:nnn { fraction_num_vgap } { 47 } { 46 } +\um_font_param:nn { fraction_rule } { 48 } +\um_font_param:nn { limit_above_bgap } { 29 } +\um_font_param:n { limit_above_kern } +\um_font_param:nn { limit_above_vgap } { 28 } +\um_font_param:nn { limit_below_bgap } { 31 } +\um_font_param:n { limit_below_kern } +\um_font_param:nn { limit_below_vgap } { 30 } +\um_font_param:nn { over_delimiter_vgap } { 41 } +\um_font_param:nn { over_delimiter_bgap } { 38 } +\um_font_param:nn { under_delimiter_vgap } { 40 } +\um_font_param:nn { under_delimiter_bgap } { 39 } +\um_font_param:nn { overbar_kern } { 55 } +\um_font_param:nn { overbar_rule } { 54 } +\um_font_param:nn { overbar_vgap } { 53 } +\um_font_param:n { quad } +\um_font_param:nn { radical_kern } { 62 } +\um_font_param:nn { radical_rule } { 61 } +\um_font_param:nnn { radical_vgap } { 60 } { 59 } +\um_font_param:nn { radical_degree_before } { 63 } +\um_font_param:nn { radical_degree_after } { 64 } +\um_font_param:nn { radical_degree_raise } { 65 } +\um_font_param:nn { space_after_script } { 27 } +\um_font_param:nnn { stack_denom_down } { 35 } { 34 } +\um_font_param:nnn { stack_num_up } { 33 } { 32 } +\um_font_param:nnn { stack_vgap } { 37 } { 36 } +\um_font_param:nn { sub_shift_down } { 18 } +\um_font_param:nn { sub_shift_drop } { 20 } +\um_font_param:n { subsup_shift_down } +\um_font_param:nn { sub_top_max } { 19 } +\um_font_param:nn { subsup_vgap } { 25 } +\um_font_param:nn { sup_bottom_min } { 23 } +\um_font_param:nn { sup_shift_drop } { 24 } +\um_font_param:nnnnn { sup_shift_up } { 21 } { 22 } { 21 } { 22 } +\um_font_param:nn { supsub_bottom_max } { 26 } +\um_font_param:nn { underbar_kern } { 58 } +\um_font_param:nn { underbar_rule } { 57 } +\um_font_param:nn { underbar_vgap } { 56 } +\um_font_param:n { connector_overlap_min } +\def\new@mathversion#1{% + \expandafter\in@\expandafter#1\expandafter{\version@list}% + \ifin@ + \@font@info{Redeclaring math version + `\expandafter\@gobblefour\string#1'}% + \else + \expandafter\newcount\csname c@\expandafter + \@gobble\string#1\endcsname + \def\version@elt{\noexpand\version@elt\noexpand}% + \edef\version@list{\version@list\version@elt#1}% + \fi + \toks@{}% + \count@\z@ + \def\group@elt##1##2{% + \advance\count@\@ne + \addto@hook\toks@{\getanddefine@fonts##1##2}% + }% + \group@list + \global\csname c@\expandafter\@gobble\string#1\endcsname\count@ + \def\alpha@elt##1##2##3{% + \ifx##2\no@alphabet@error + \toks@\expandafter{\the\toks@\install@mathalphabet##1% + {\no@alphabet@error##1}}% + \else + \toks@\expandafter{\the\toks@\install@mathalphabet##1% + {\select@group##1##2##3}}% + \fi + }% + \alpha@list + \xdef#1{\the\toks@}% +} +\keys_define:nn {unicode-math} + { + version .code:n = + { + \tl_set:Nn \l_um_mversion_tl {#1} + \DeclareMathVersion{\l_um_mversion_tl} + } + } +\keys_define:nn {unicode-math} +{ + script-features .tl_set:N = \l_um_script_features_tl , + sscript-features .tl_set:N = \l_um_sscript_features_tl , + script-font .tl_set:N = \l_um_script_font_tl , + sscript-font .tl_set:N = \l_um_sscript_font_tl , +} +\seq_new:N \l_um_mathalph_seq +\seq_new:N \l_um_char_range_seq +\seq_new:N \l_um_mclass_range_seq +\seq_new:N \l_um_cmd_range_seq +\keys_define:nn {unicode-math} { + range .code:n = { + \bool_set_false:N \l_um_init_bool + \int_incr:N \g_um_fam_int + \tl_set:Nx \um_symfont_tl {um_fam\int_use:N\g_um_fam_int} + \cs_set_eq:NN \_um_sym:nnn \um_process_symbol_parse:nnn + \cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_parse:Nnn + \cs_set_eq:NN \um_remap_symbol:nnn \um_remap_symbol_parse:nnn + \cs_set_eq:NN \um_maybe_init_alphabet:n \use_none:n + \cs_set_eq:NN \um_map_char_single:nn \um_map_char_parse:nn + \cs_set_eq:NN \um_assign_delcode:nn \um_assign_delcode_parse:nn + \cs_set_eq:NN \um_make_mathactive:nNN \um_make_mathactive_parse:nNN + \seq_clear:N \l_um_char_range_seq + \seq_clear:N \l_um_mclass_range_seq + \seq_clear:N \l_um_cmd_range_seq + \seq_clear:N \l_um_mathalph_seq + \clist_map_inline:nn {#1} { + \um_if_mathalph_decl:nTF {##1} { + \seq_put_right:Nx \l_um_mathalph_seq { + { \exp_not:V \l_um_tmpa_tl } + { \exp_not:V \l_um_tmpb_tl } + { \exp_not:V \l_um_tmpc_tl } + } + }{ + \seq_if_in:NnTF \g_um_mathclasses_seq {##1} + { \seq_put_right:Nn \l_um_mclass_range_seq {##1} } + { + \bool_if:nTF { \tl_if_single_p:n {##1} && \token_if_cs_p:N ##1 } + { \seq_put_right:Nn \l_um_cmd_range_seq {##1} } + { \seq_put_right:Nn \l_um_char_range_seq {##1} } + } + } + } + } +} +\seq_new:N \g_um_mathclasses_seq +\seq_set_from_clist:Nn \g_um_mathclasses_seq + { + \mathord,\mathalpha,\mathop,\mathbin,\mathrel, + \mathopen,\mathclose,\mathpunct,\mathaccent, + \mathfence,\mathover,\mathunder + } +\prg_new_conditional:Nnn \um_if_mathalph_decl:n {TF} { + \tl_set:Nx \l_um_tmpa_tl { \tl_trim_spaces:n {#1} } + \tl_clear:N \l_um_tmpb_tl + \tl_clear:N \l_um_tmpc_tl + \tl_if_in:NnT \l_um_tmpa_tl {->} { + \exp_after:wN \um_split_arrow:w \l_um_tmpa_tl \q_nil + } + \tl_if_in:NnT \l_um_tmpa_tl {/} { + \exp_after:wN \um_split_slash:w \l_um_tmpa_tl \q_nil + } + \tl_if_empty:NT \l_um_tmpc_tl { \tl_set_eq:NN \l_um_tmpc_tl \l_um_tmpa_tl } + \seq_if_in:NVTF \g_um_mathstyles_seq \l_um_tmpa_tl { + \prg_return_true: + }{ + \prg_return_false: + } +} +\cs_set:Npn \um_split_arrow:w #1->#2 \q_nil { + \tl_set:Nn \l_um_tmpa_tl {#1} + \tl_if_single:nTF {#2} + { \tl_set:Nn \l_um_tmpc_tl {#2} } + { \exp_args:NNc \tl_set:Nn \l_um_tmpc_tl {math#2} } +} +\cs_set:Npn \um_split_slash:w #1/#2 \q_nil { + \tl_set:Nn \l_um_tmpa_tl {#1} + \tl_set:Nn \l_um_tmpb_tl {#2} +} +\cs_new:Nn \um_if_char_spec:nNNT + { + + % math class: + \seq_if_in:NnT \l_um_mclass_range_seq {#3} + { \use_none_delimit_by_q_nil:w } + + % command name: + \seq_if_in:NnT \l_um_cmd_range_seq {#2} + { \use_none_delimit_by_q_nil:w } + + % character slot: + \seq_map_inline:Nn \l_um_char_range_seq + { + \um_int_if_range_matches_slot:nnT {##1} {#1} + { \seq_map_break:n { \use_none_delimit_by_q_nil:w } } + } + + % this executes if no match was found: + \use_none:nnn + \q_nil + \use:n + { + \clist_put_right:Nx \l_um_char_num_range_clist { \int_eval:n {#1} } + #4 + } + } +\cs_new:Nn \um_int_if_range_matches_slot:nnT + { \um_numrange_parse:nwT {#1} #2 - \q_nil - \q_stop {#3} } +\cs_set:Npn \um_numrange_parse:nwT #1 #2 - #3 - #4 \q_stop #5 + { + \tl_if_empty:nTF {#4} { \int_compare:nT {#1=#2} {#5} } + { + \tl_if_empty:nTF {#3} { \int_compare:nT {#1>=#2} {#5} } + { + \tl_if_empty:nTF {#2} { \int_compare:nT {#1<=#3} {#5} } + { + \int_compare:nT {#1>=#2} { \int_compare:nT {#1<=#3} {#5} } + } } } + } +\AtBeginDocument{\um_resolve_greek:} +\cs_new:Npn \um_resolve_greek: { + \clist_map_inline:nn { + Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda, + alpha,beta,gamma,delta, zeta,eta,theta,iota,kappa,lambda, + Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega, + mu,nu,xi,omicron,pi,rho,sigma,tau,upsilon, chi,psi,omega, + varTheta, + varsigma,vartheta,varkappa,varrho,varpi + }{ + \tl_set:cx {##1} { \exp_not:c { mit ##1 } } + } + \tl_set:Nn \epsilon { + \bool_if:NTF \g_um_texgreek_bool \mitvarepsilon \mitepsilon + } + \tl_set:Nn \phi { + \bool_if:NTF \g_um_texgreek_bool \mitvarphi \mitphi + } + \tl_set:Nn \varepsilon { + \bool_if:NTF \g_um_texgreek_bool \mitepsilon \mitvarepsilon + } + \tl_set:Nn \varphi { + \bool_if:NTF \g_um_texgreek_bool \mitphi \mitvarphi + } +} +\cs_new:Nn \um_new_mathstyle:N { + \um_prepare_mathstyle:f {\exp_after:wN \use_none:nnnnn \token_to_str:N #1} + \seq_put_right:Nn \g_um_mathstyles_seq {#1} +} +\seq_new:N \g_um_default_mathalph_seq +\seq_new:N \g_um_mathstyles_seq +\AtEndOfPackage{ +\clist_map_inline:nn { + {\mathup } {latin,Latin,greek,Greek,num,misc} {\mathup } , + {\mathit } {latin,Latin,greek,Greek,misc} {\mathit } , + {\mathbb } {latin,Latin,num,misc} {\mathbb } , + {\mathbbit } {misc} {\mathbbit } , + {\mathscr } {latin,Latin} {\mathscr } , + {\mathcal } {Latin} {\mathscr } , + {\mathbfcal } {Latin} {\mathbfscr } , + {\mathfrak } {latin,Latin} {\mathfrak } , + {\mathtt } {latin,Latin,num} {\mathtt } , + {\mathsfup } {latin,Latin,num} {\mathsfup } , + {\mathsfit } {latin,Latin} {\mathsfit } , + {\mathbfup } {latin,Latin,greek,Greek,num,misc} {\mathbfup } , + {\mathbfit } {latin,Latin,greek,Greek,misc} {\mathbfit } , + {\mathbfscr } {latin,Latin} {\mathbfscr } , + {\mathbffrak} {latin,Latin} {\mathbffrak} , + {\mathbfsfup} {latin,Latin,greek,Greek,num,misc} {\mathbfsfup} , + {\mathbfsfit} {latin,Latin,greek,Greek,misc} {\mathbfsfit} +}{ + \seq_put_right:Nn \g_um_default_mathalph_seq {#1} + \exp_after:wN \um_new_mathstyle:N \use_i:nnn #1 +} +\um_new_mathstyle:N \mathsf +\um_new_mathstyle:N \mathbf +\um_new_mathstyle:N \mathbfsf +} +\cs_new:Nn \um_prepare_mathstyle:n { + \um_init_alphabet:x {#1} + \cs_set:cpn {_um_math#1_aux:n} ##1 { + \use:c {um_switchto_math#1:} ##1 \egroup + } + \cs_set_protected:cpx {math#1} { + \exp_not:n{ + \bgroup + \mode_if_math:F + { + \egroup\expandafter + \non@alpherr\expandafter{\csname math#1\endcsname\space} + } + \tl_set:Nn \l_um_mathstyle_tl {#1} + } + \exp_not:c {_um_math#1_aux:n} + } +} +\tl_new:N \l_um_mathstyle_tl +\cs_generate_variant:Nn \um_prepare_mathstyle:n {f} +\cs_set:Npn \um_init_alphabet:n #1 { + \um_log:nx {alph-initialise} {#1} + \cs_set_eq:cN {um_switchto_math#1:} \prg_do_nothing: +} +\cs_generate_variant:Nn \um_init_alphabet:n {x} +\cs_new:Npn \um_maybe_init_alphabet:V { + \exp_args:NV \um_maybe_init_alphabet:n +} +\seq_new:N \l_um_missing_alph_seq +\cs_new:Npn \um_setup_alphabets: { + \seq_if_empty:NTF \l_um_mathalph_seq { + \um_log:n {setup-implicit} + \seq_set_eq:NN \l_um_mathalph_seq \g_um_default_mathalph_seq + \bool_set_true:N \l_um_implicit_alph_bool + \um_maybe_init_alphabet:n {sf} + \um_maybe_init_alphabet:n {bf} + \um_maybe_init_alphabet:n {bfsf} + } + { + \um_log:n {setup-explicit} + \bool_set_false:N \l_um_implicit_alph_bool + \cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_noparse:Nnn + \cs_set_eq:NN \um_map_char_single:nn \um_map_char_noparse:nn + } + \seq_map_inline:Nn \l_um_mathalph_seq { + \tl_set:No \l_um_tmpa_tl { \use_i:nnn ##1 } + \tl_set:No \l_um_tmpb_tl { \use_ii:nnn ##1 } + \tl_set:No \l_um_remap_style_tl { \use_iii:nnn ##1 } + \tl_set:Nx \l_um_remap_style_tl { + \exp_after:wN \exp_after:wN \exp_after:wN \use_none:nnnnn + \exp_after:wN \token_to_str:N \l_um_remap_style_tl + } + \tl_if_empty:NT \l_um_tmpb_tl { + \cs_set_eq:NN \um_maybe_init_alphabet:n \um_init_alphabet:n + \tl_set:Nn \l_um_tmpb_tl { latin,Latin,greek,Greek,num,misc } + } + \um_setup_math_alphabet:VVV + \l_um_tmpa_tl \l_um_tmpb_tl \l_um_remap_style_tl + } + \seq_if_empty:NF \l_um_missing_alph_seq { \um_log:n { missing-alphabets } } +} +\cs_new:Nn \um_setup_math_alphabet:Nnn { + \tl_set:Nx \l_um_style_tl { + \exp_after:wN \use_none:nnnnn \token_to_str:N #1 + } + \clist_map_inline:nn {#2} { + \tl_set:Nx \l_um_tmpa_tl { \tl_trim_spaces:n {##1} } + \cs_if_exist:cT {um_config_ \l_um_style_tl _\l_um_tmpa_tl :n} { + \str_if_eq:xxTF {\l_um_tmpa_tl}{misc} { + \um_maybe_init_alphabet:V \l_um_style_tl + \clist_map_break: + }{ + \um_glyph_if_exist:cT { \um_to_usv:nn {#3}{\l_um_tmpa_tl} }{ + \um_maybe_init_alphabet:V \l_um_style_tl + \clist_map_break: + } + } + } + } + \clist_map_inline:nn {#2} { + \tl_set:Nx \l_um_tmpa_tl { \tl_trim_spaces:n {##1} } + \cs_if_exist:cT {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} { + \str_if_eq:xxTF {\l_um_tmpa_tl}{misc} { + \um_log:nx {setup-alph} {math \l_um_style_tl~(\l_um_tmpa_tl)} + \use:c {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} {#3} + }{ + \um_glyph_if_exist:cTF { \um_to_usv:nn {#3}{\l_um_tmpa_tl} } { + \um_log:nx {setup-alph} {math \l_um_style_tl~(\l_um_tmpa_tl)} + \use:c {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} {#3} + }{ + \bool_if:NTF \l_um_implicit_alph_bool { + \seq_put_right:Nx \l_um_missing_alph_seq { + \@backslashchar math \l_um_style_tl \space + (\tl_use:c{c_um_math_alphabet_name_ \l_um_tmpa_tl _tl}) + } + }{ + \use:c {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} {up} + } + } + } + } + } +} +\cs_generate_variant:Nn \um_setup_math_alphabet:Nnn {VVV} +\cs_new:Npn \um_map_char_single:cc { \exp_args:Ncc \um_map_char_single:nn } +\cs_new:Nn \um_map_char_noparse:nn { + \um_set_mathcode:nnnn {#1}{\mathalpha}{\um_symfont_tl}{#2} +} +\cs_new:Nn \um_map_char_parse:nn { + \um_if_char_spec:nNNT {#1} {\@nil} {\mathalpha} { + \um_map_char_noparse:nn {#1}{#2} + } +} +\cs_new:Nn \um_map_char_single:nnn { + \um_map_char_single:cc { \um_to_usv:nn {#1}{#3} } + { \um_to_usv:nn {#2}{#3} } +} +\cs_set:Npn \um_map_single:nnn #1#2#3 { + \cs_if_exist:cT { \um_to_usv:nn {#3} {#1} } + { + \clist_map_inline:nn {#2} { + \um_map_char_single:nnn {##1} {#3} {#1} + } + } +} +\cs_set:Npn \um_map_chars_range:nnn #1#2#3 { + \prg_stepwise_inline:nnnn {0}{1}{#1-1} { + \um_map_char_single:nn {#2+##1}{#3+##1} + } +} +\cs_generate_variant:Nn \um_map_chars_range:nnn {ncc} +\cs_new:Nn \um_map_chars_range:nnnn { + \um_map_chars_range:ncc {#1} { \um_to_usv:nn {#2}{#4} } + { \um_to_usv:nn {#3}{#4} } +} +\cs_new:Nn \um_map_chars_Latin:nn { + \clist_map_inline:nn {#1} { + \um_map_chars_range:nnnn {26} {##1} {#2} {Latin} + } +} +\cs_new:Nn \um_map_chars_latin:nn { + \clist_map_inline:nn {#1} { + \um_map_chars_range:nnnn {26} {##1} {#2} {latin} + } +} +\cs_new:Nn \um_map_chars_greek:nn { + \clist_map_inline:nn {#1} { + \um_map_chars_range:nnnn {25} {##1} {#2} {greek} + \um_map_char_single:nnn {##1} {#2} {varepsilon} + \um_map_char_single:nnn {##1} {#2} {vartheta} + \um_map_char_single:nnn {##1} {#2} {varkappa} + \um_map_char_single:nnn {##1} {#2} {varphi} + \um_map_char_single:nnn {##1} {#2} {varrho} + \um_map_char_single:nnn {##1} {#2} {varpi} + } +} +\cs_new:Nn \um_map_chars_Greek:nn { + \clist_map_inline:nn {#1} { + \um_map_chars_range:nnnn {25} {##1} {#2} {Greek} + \um_map_char_single:nnn {##1} {#2} {varTheta} + } +} +\cs_new:Nn \um_map_chars_numbers:nn { + \um_map_chars_range:nnnn {10} {#1} {#2} {num} +} +\cs_new:Npn \um_set_mathalphabet_char:Ncc { + \exp_args:NNcc \um_set_mathalphabet_char:Nnn +} +\cs_new:Nn \um_mathmap_noparse:Nnn { + \clist_map_inline:nn {#2} { + \tl_put_right:cx {um_switchto_\cs_to_str:N #1:} { + \um_set_mathcode:nnnn{##1}{\mathalpha}{\um_symfont_tl}{#3} + } + } +} +\cs_new:Nn \um_mathmap_parse:Nnn { + \clist_if_in:NnT \l_um_char_num_range_clist {#3} { + \um_mathmap_noparse:Nnn {#1}{#2}{#3} + } +} +\cs_new:Npn \um_set_mathalphabet_char:Nnnn #1#2#3#4 { + \um_set_mathalphabet_char:Ncc #1 { \um_to_usv:nn {#2} {#4} } + { \um_to_usv:nn {#3} {#4} } +} +\cs_new:Npn \um_set_mathalph_range:nNnn #1#2#3#4 { + \prg_stepwise_inline:nnnn {0}{1}{#1-1} + { \um_set_mathalphabet_char:Nnn {#2} { ##1 + #3 } { ##1 + #4 } } +} +\cs_generate_variant:Nn \um_set_mathalph_range:nNnn {nNcc} +\cs_new:Npn \um_set_mathalph_range:nNnnn #1#2#3#4#5 { + \um_set_mathalph_range:nNcc {#1} #2 { \um_to_usv:nn {#3} {#5} } + { \um_to_usv:nn {#4} {#5} } +} +\cs_new:Npn \um_set_mathalphabet_pos:Nnnn #1#2#3#4 { + \cs_if_exist:cT { \um_to_usv:nn {#4}{#2} } { + \clist_map_inline:nn {#3} + { \um_set_mathalphabet_char:Nnnn #1 {##1} {#4} {#2} } + } +} +\cs_new:Nn \um_set_mathalphabet_numbers:Nnn { + \clist_map_inline:nn {#2} + { \um_set_mathalph_range:nNnnn {10} #1 {##1} {#3} {num} } +} +\cs_new:Nn \um_set_mathalphabet_Latin:Nnn { + \clist_map_inline:nn {#2} + { \um_set_mathalph_range:nNnnn {26} #1 {##1} {#3} {Latin} } +} +\cs_new:Nn \um_set_mathalphabet_latin:Nnn { + \clist_map_inline:nn {#2} { + \um_set_mathalph_range:nNnnn {26} #1 {##1} {#3} {latin} + \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {h} + } +} +\cs_new:Nn \um_set_mathalphabet_Greek:Nnn { + \clist_map_inline:nn {#2} { + \um_set_mathalph_range:nNnnn {25} #1 {##1} {#3} {Greek} + \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varTheta} + } +} +\cs_new:Nn \um_set_mathalphabet_greek:Nnn { + \clist_map_inline:nn {#2} { + \um_set_mathalph_range:nNnnn {25} #1 {##1} {#3} {greek} + \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varepsilon} + \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {vartheta} + \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varkappa} + \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varphi} + \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varrho} + \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varpi} + } +} +\cs_new:Nn \um_config_up_num:n { + \um_map_chars_numbers:nn {up}{#1} + \um_set_mathalphabet_numbers:Nnn \mathup {up}{#1} +} +\cs_new:Nn \um_config_up_Latin:n + { + \bool_if:NTF \g_um_literal_bool { \um_map_chars_Latin:nn {up} {#1} } + { + \bool_if:NT \g_um_upLatin_bool { \um_map_chars_Latin:nn {up,it} {#1} } + } + \um_set_mathalphabet_Latin:Nnn \mathup {up,it}{#1} +} +\cs_new:Nn \um_config_up_latin:n { + \bool_if:NTF \g_um_literal_bool { \um_map_chars_latin:nn {up} {#1} } + { + \bool_if:NT \g_um_uplatin_bool { + \um_map_chars_latin:nn {up,it} {#1} + \um_map_single:nnn {h} {up,it} {#1} + \um_map_single:nnn {dotlessi} {up,it} {#1} + \um_map_single:nnn {dotlessj} {up,it} {#1} + } + } + \um_set_mathalphabet_latin:Nnn \mathup {up,it}{#1} +} +\cs_new:Nn \um_config_up_Greek:n { + \bool_if:NTF \g_um_literal_bool { \um_map_chars_Greek:nn {up}{#1} } + { + \bool_if:NT \g_um_upGreek_bool { \um_map_chars_Greek:nn {up,it}{#1} } + } + \um_set_mathalphabet_Greek:Nnn \mathup {up,it}{#1} +} +\cs_new:Nn \um_config_up_greek:n { + \bool_if:NTF \g_um_literal_bool { \um_map_chars_greek:nn {up} {#1} } + { + \bool_if:NT \g_um_upgreek_bool { + \um_map_chars_greek:nn {up,it} {#1} + } + } + \um_set_mathalphabet_greek:Nnn \mathup {up,it} {#1} +} +\cs_new:Nn \um_config_up_misc:n { + \bool_if:NTF \g_um_literal_Nabla_bool { + \um_map_single:nnn {Nabla}{up}{up} + }{ + \bool_if:NT \g_um_upNabla_bool { + \um_map_single:nnn {Nabla}{up,it}{up} + } + } + \bool_if:NTF \g_um_literal_partial_bool { + \um_map_single:nnn {partial}{up}{up} + }{ + \bool_if:NT \g_um_uppartial_bool { + \um_map_single:nnn {partial}{up,it}{up} + } + } + \um_set_mathalphabet_pos:Nnnn \mathup {partial} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathup {Nabla} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathup {dotlessi} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathup {dotlessj} {up,it} {#1} +} +\cs_new:Nn \um_config_it_Latin:n { + \bool_if:NTF \g_um_literal_bool { \um_map_chars_Latin:nn {it} {#1} } + { + \bool_if:NF \g_um_upLatin_bool { \um_map_chars_Latin:nn {up,it} {#1} } + } + \um_set_mathalphabet_Latin:Nnn \mathit {up,it}{#1} +} +\cs_new:Nn \um_config_it_latin:n { + \bool_if:NTF \g_um_literal_bool { + \um_map_chars_latin:nn {it} {#1} + \um_map_single:nnn {h}{it}{#1} + }{ + \bool_if:NF \g_um_uplatin_bool { + \um_map_chars_latin:nn {up,it} {#1} + \um_map_single:nnn {h}{up,it}{#1} + \um_map_single:nnn {dotlessi}{up,it}{#1} + \um_map_single:nnn {dotlessj}{up,it}{#1} + } + } + \um_set_mathalphabet_latin:Nnn \mathit {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathit {dotlessi} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathit {dotlessj} {up,it} {#1} +} +\cs_new:Nn \um_config_it_Greek:n { + \bool_if:NTF \g_um_literal_bool { \um_map_chars_Greek:nn {it}{#1} + }{ + \bool_if:NF \g_um_upGreek_bool { \um_map_chars_Greek:nn {up,it}{#1} } + } + \um_set_mathalphabet_Greek:Nnn \mathit {up,it}{#1} +} +\cs_new:Nn \um_config_it_greek:n { + \bool_if:NTF \g_um_literal_bool { \um_map_chars_greek:nn {it} {#1} } + { + \bool_if:NF \g_um_upgreek_bool { \um_map_chars_greek:nn {it,up} {#1} } + } + \um_set_mathalphabet_greek:Nnn \mathit {up,it} {#1} +} +\cs_new:Nn \um_config_it_misc:n { + \bool_if:NTF \g_um_literal_Nabla_bool { + \um_map_single:nnn {Nabla}{it}{it} + }{ + \bool_if:NF \g_um_upNabla_bool { + \um_map_single:nnn {Nabla}{up,it}{it} + } + } + \bool_if:NTF \g_um_literal_partial_bool { + \um_map_single:nnn {partial}{it}{it} + }{ + \bool_if:NF \g_um_uppartial_bool { + \um_map_single:nnn {partial}{up,it}{it} + } + } + \um_set_mathalphabet_pos:Nnnn \mathit {partial} {up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathit {Nabla} {up,it}{#1} +} +\cs_new:Nn \um_config_bb_latin:n { + \um_set_mathalphabet_latin:Nnn \mathbb {up,it}{#1} +} +\cs_new:Nn \um_config_bb_Latin:n { + \um_set_mathalphabet_Latin:Nnn \mathbb {up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathbb {C} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbb {H} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbb {N} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbb {P} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbb {Q} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbb {R} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbb {Z} {up,it} {#1} +} +\cs_new:Nn \um_config_bb_num:n { + \um_set_mathalphabet_numbers:Nnn \mathbb {up}{#1} +} +\cs_new:Nn \um_config_bb_misc:n { + \um_set_mathalphabet_pos:Nnnn \mathbb {Pi} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbb {pi} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbb {Gamma} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbb {gamma} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbb {summation} {up} {#1} +} +\cs_new:Nn \um_config_bbit_misc:n { + \um_set_mathalphabet_pos:Nnnn \mathbbit {D} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbbit {d} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbbit {e} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbbit {i} {up,it} {#1} + \um_set_mathalphabet_pos:Nnnn \mathbbit {j} {up,it} {#1} +} +\cs_new:Nn \um_config_scr_Latin:n { + \um_set_mathalphabet_Latin:Nnn \mathscr {up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathscr {B}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathscr {E}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathscr {F}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathscr {H}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathscr {I}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathscr {L}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathscr {M}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathscr {R}{up,it}{#1} +} +\cs_new:Nn \um_config_scr_latin:n { + \um_set_mathalphabet_latin:Nnn \mathscr {up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathscr {e}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathscr {g}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathscr {o}{up,it}{#1} +} +\cs_new:Nn \um_config_cal_Latin:n { + \um_set_mathalphabet_Latin:Nnn \mathcal {up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathcal {B}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathcal {E}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathcal {F}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathcal {H}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathcal {I}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathcal {L}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathcal {M}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathcal {R}{up,it}{#1} +} +\cs_new:Nn \um_config_frak_Latin:n { + \um_set_mathalphabet_Latin:Nnn \mathfrak {up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathfrak {C}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathfrak {H}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathfrak {I}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathfrak {R}{up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathfrak {Z}{up,it}{#1} +} +\cs_new:Nn \um_config_frak_latin:n { + \um_set_mathalphabet_latin:Nnn \mathfrak {up,it}{#1} +} +\cs_new:Nn \um_config_sfup_num:n { + \um_set_mathalphabet_numbers:Nnn \mathsf {up}{#1} + \um_set_mathalphabet_numbers:Nnn \mathsfup {up}{#1} +} +\cs_new:Nn \um_config_sfup_Latin:n { + \bool_if:NTF \g_um_sfliteral_bool { + \um_map_chars_Latin:nn {sfup} {#1} + \um_set_mathalphabet_Latin:Nnn \mathsf {up}{#1} + }{ + \bool_if:NT \g_um_upsans_bool { + \um_map_chars_Latin:nn {sfup,sfit} {#1} + \um_set_mathalphabet_Latin:Nnn \mathsf {up,it}{#1} + } + } + \um_set_mathalphabet_Latin:Nnn \mathsfup {up,it}{#1} +} +\cs_new:Nn \um_config_sfup_latin:n { + \bool_if:NTF \g_um_sfliteral_bool { + \um_map_chars_latin:nn {sfup} {#1} + \um_set_mathalphabet_latin:Nnn \mathsf {up}{#1} + }{ + \bool_if:NT \g_um_upsans_bool { + \um_map_chars_latin:nn {sfup,sfit} {#1} + \um_set_mathalphabet_latin:Nnn \mathsf {up,it}{#1} + } + } + \um_set_mathalphabet_latin:Nnn \mathsfup {up,it}{#1} +} +\cs_new:Nn \um_config_sfit_Latin:n { + \bool_if:NTF \g_um_sfliteral_bool { + \um_map_chars_Latin:nn {sfit} {#1} + \um_set_mathalphabet_Latin:Nnn \mathsf {it}{#1} + }{ + \bool_if:NF \g_um_upsans_bool { + \um_map_chars_Latin:nn {sfup,sfit} {#1} + \um_set_mathalphabet_Latin:Nnn \mathsf {up,it}{#1} + } + } + \um_set_mathalphabet_Latin:Nnn \mathsfit {up,it}{#1} +} +\cs_new:Nn \um_config_sfit_latin:n { + \bool_if:NTF \g_um_sfliteral_bool { + \um_map_chars_latin:nn {sfit} {#1} + \um_set_mathalphabet_latin:Nnn \mathsf {it}{#1} + }{ + \bool_if:NF \g_um_upsans_bool { + \um_map_chars_latin:nn {sfup,sfit} {#1} + \um_set_mathalphabet_latin:Nnn \mathsf {up,it}{#1} + } + } + \um_set_mathalphabet_latin:Nnn \mathsfit {up,it}{#1} +} +\cs_new:Nn \um_config_tt_num:n { + \um_set_mathalphabet_numbers:Nnn \mathtt {up}{#1} +} +\cs_new:Nn \um_config_tt_Latin:n { + \um_set_mathalphabet_Latin:Nnn \mathtt {up,it}{#1} +} +\cs_new:Nn \um_config_tt_latin:n { + \um_set_mathalphabet_latin:Nnn \mathtt {up,it}{#1} +} +\cs_new:Nn \um_config_bfit_Latin:n { + \bool_if:NF \g_um_bfupLatin_bool { + \um_map_chars_Latin:nn {bfup,bfit} {#1} + } + \um_set_mathalphabet_Latin:Nnn \mathbfit {up,it}{#1} + \bool_if:NTF \g_um_bfliteral_bool { + \um_map_chars_Latin:nn {bfit} {#1} + \um_set_mathalphabet_Latin:Nnn \mathbf {it}{#1} + }{ + \bool_if:NF \g_um_bfupLatin_bool { + \um_map_chars_Latin:nn {bfup,bfit} {#1} + \um_set_mathalphabet_Latin:Nnn \mathbf {up,it}{#1} + } + } +} +\cs_new:Nn \um_config_bfit_latin:n { + \bool_if:NF \g_um_bfuplatin_bool { + \um_map_chars_latin:nn {bfup,bfit} {#1} + } + \um_set_mathalphabet_latin:Nnn \mathbfit {up,it}{#1} + \bool_if:NTF \g_um_bfliteral_bool { + \um_map_chars_latin:nn {bfit} {#1} + \um_set_mathalphabet_latin:Nnn \mathbf {it}{#1} + }{ + \bool_if:NF \g_um_bfuplatin_bool { + \um_map_chars_latin:nn {bfup,bfit} {#1} + \um_set_mathalphabet_latin:Nnn \mathbf {up,it}{#1} + } + } +} +\cs_new:Nn \um_config_bfit_Greek:n { + \um_set_mathalphabet_Greek:Nnn \mathbfit {up,it}{#1} + \bool_if:NTF \g_um_bfliteral_bool { + \um_map_chars_Greek:nn {bfit}{#1} + \um_set_mathalphabet_Greek:Nnn \mathbf {it}{#1} + }{ + \bool_if:NF \g_um_bfupGreek_bool { + \um_map_chars_Greek:nn {bfup,bfit}{#1} + \um_set_mathalphabet_Greek:Nnn \mathbf {up,it}{#1} + } + } +} +\cs_new:Nn \um_config_bfit_greek:n { + \um_set_mathalphabet_greek:Nnn \mathbfit {up,it} {#1} + \bool_if:NTF \g_um_bfliteral_bool { + \um_map_chars_greek:nn {bfit} {#1} + \um_set_mathalphabet_greek:Nnn \mathbf {it} {#1} + }{ + \bool_if:NF \g_um_bfupgreek_bool { + \um_map_chars_greek:nn {bfit,bfup} {#1} + \um_set_mathalphabet_greek:Nnn \mathbf {up,it} {#1} + } + } +} +\cs_new:Nn \um_config_bfit_misc:n { + \bool_if:NTF \g_um_literal_Nabla_bool { + \um_map_single:nnn {Nabla}{bfit}{#1} + }{ + \bool_if:NF \g_um_upNabla_bool { + \um_map_single:nnn {Nabla}{bfup,bfit}{#1} + } + } + \bool_if:NTF \g_um_literal_partial_bool { + \um_map_single:nnn {partial}{bfit}{#1} + }{ + \bool_if:NF \g_um_uppartial_bool { + \um_map_single:nnn {partial}{bfup,bfit}{#1} + } + } + \um_set_mathalphabet_pos:Nnnn \mathbfit {partial} {up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathbfit {Nabla} {up,it}{#1} + \bool_if:NTF \g_um_literal_partial_bool { + \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {it}{#1} + }{ + \bool_if:NF \g_um_uppartial_bool { + \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {up,it}{#1} + } + } + \bool_if:NTF \g_um_literal_Nabla_bool { + \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {it}{#1} + }{ + \bool_if:NF \g_um_upNabla_bool { + \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {up,it}{#1} + } + } +} +\cs_new:Nn \um_config_bfup_num:n { + \um_set_mathalphabet_numbers:Nnn \mathbf {up}{#1} + \um_set_mathalphabet_numbers:Nnn \mathbfup {up}{#1} +} +\cs_new:Nn \um_config_bfup_Latin:n { + \bool_if:NT \g_um_bfupLatin_bool { + \um_map_chars_Latin:nn {bfup,bfit} {#1} + } + \um_set_mathalphabet_Latin:Nnn \mathbfup {up,it}{#1} + \bool_if:NTF \g_um_bfliteral_bool { + \um_map_chars_Latin:nn {bfup} {#1} + \um_set_mathalphabet_Latin:Nnn \mathbf {up}{#1} + }{ + \bool_if:NT \g_um_bfupLatin_bool { + \um_map_chars_Latin:nn {bfup,bfit} {#1} + \um_set_mathalphabet_Latin:Nnn \mathbf {up,it}{#1} + } + } +} +\cs_new:Nn \um_config_bfup_latin:n { + \bool_if:NT \g_um_bfuplatin_bool { + \um_map_chars_latin:nn {bfup,bfit} {#1} + } + \um_set_mathalphabet_latin:Nnn \mathbfup {up,it}{#1} + \bool_if:NTF \g_um_bfliteral_bool { + \um_map_chars_latin:nn {bfup} {#1} + \um_set_mathalphabet_latin:Nnn \mathbf {up}{#1} + }{ + \bool_if:NT \g_um_bfuplatin_bool { + \um_map_chars_latin:nn {bfup,bfit} {#1} + \um_set_mathalphabet_latin:Nnn \mathbf {up,it}{#1} + } + } +} +\cs_new:Nn \um_config_bfup_Greek:n { + \um_set_mathalphabet_Greek:Nnn \mathbfup {up,it}{#1} + \bool_if:NTF \g_um_bfliteral_bool { + \um_map_chars_Greek:nn {bfup}{#1} + \um_set_mathalphabet_Greek:Nnn \mathbf {up}{#1} + }{ + \bool_if:NT \g_um_bfupGreek_bool { + \um_map_chars_Greek:nn {bfup,bfit}{#1} + \um_set_mathalphabet_Greek:Nnn \mathbf {up,it}{#1} + } + } +} +\cs_new:Nn \um_config_bfup_greek:n { + \um_set_mathalphabet_greek:Nnn \mathbfup {up,it} {#1} + \bool_if:NTF \g_um_bfliteral_bool { + \um_map_chars_greek:nn {bfup} {#1} + \um_set_mathalphabet_greek:Nnn \mathbf {up} {#1} + }{ + \bool_if:NT \g_um_bfupgreek_bool { + \um_map_chars_greek:nn {bfup,bfit} {#1} + \um_set_mathalphabet_greek:Nnn \mathbf {up,it} {#1} + } + } +} +\cs_new:Nn \um_config_bfup_misc:n { + \bool_if:NTF \g_um_literal_Nabla_bool { + \um_map_single:nnn {Nabla}{bfup}{#1} + }{ + \bool_if:NT \g_um_upNabla_bool { + \um_map_single:nnn {Nabla}{bfup,bfit}{#1} + } + } + \bool_if:NTF \g_um_literal_partial_bool { + \um_map_single:nnn {partial}{bfup}{#1} + }{ + \bool_if:NT \g_um_uppartial_bool { + \um_map_single:nnn {partial}{bfup,bfit}{#1} + } + } + \um_set_mathalphabet_pos:Nnnn \mathbfup {partial} {up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathbfup {Nabla} {up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathbfup {digamma} {up}{#1} + \um_set_mathalphabet_pos:Nnnn \mathbfup {Digamma} {up}{#1} + \um_set_mathalphabet_pos:Nnnn \mathbf {digamma} {up}{#1} + \um_set_mathalphabet_pos:Nnnn \mathbf {Digamma} {up}{#1} + \bool_if:NTF \g_um_literal_partial_bool { + \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {up}{#1} + }{ + \bool_if:NT \g_um_uppartial_bool { + \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {up,it}{#1} + } + } + \bool_if:NTF \g_um_literal_Nabla_bool { + \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {up}{#1} + }{ + \bool_if:NT \g_um_upNabla_bool { + \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {up,it}{#1} + } + } +} +\cs_new:Nn \um_config_bffrak_Latin:n { + \um_set_mathalphabet_Latin:Nnn \mathbffrak {up,it}{#1} +} +\cs_new:Nn \um_config_bffrak_latin:n { + \um_set_mathalphabet_latin:Nnn \mathbffrak {up,it}{#1} +} +\cs_new:Nn \um_config_bfscr_Latin:n { + \um_set_mathalphabet_Latin:Nnn \mathbfscr {up,it}{#1} +} +\cs_new:Nn \um_config_bfscr_latin:n { + \um_set_mathalphabet_latin:Nnn \mathbfscr {up,it}{#1} +} +\cs_new:Nn \um_config_bfcal_Latin:n { + \um_set_mathalphabet_Latin:Nnn \mathbfcal {up,it}{#1} +} +\cs_new:Nn \um_config_bfsfup_num:n { + \um_set_mathalphabet_numbers:Nnn \mathbfsf {up}{#1} + \um_set_mathalphabet_numbers:Nnn \mathbfsfup {up}{#1} +} +\cs_new:Nn \um_config_bfsfup_Latin:n { + \bool_if:NTF \g_um_sfliteral_bool { + \um_map_chars_Latin:nn {bfsfup} {#1} + \um_set_mathalphabet_Latin:Nnn \mathbfsf {up}{#1} + }{ + \bool_if:NT \g_um_upsans_bool { + \um_map_chars_Latin:nn {bfsfup,bfsfit} {#1} + \um_set_mathalphabet_Latin:Nnn \mathbfsf {up,it}{#1} + } + } + \um_set_mathalphabet_Latin:Nnn \mathbfsfup {up,it}{#1} +} +\cs_new:Nn \um_config_bfsfup_latin:n { + \bool_if:NTF \g_um_sfliteral_bool { + \um_map_chars_latin:nn {bfsfup} {#1} + \um_set_mathalphabet_latin:Nnn \mathbfsf {up}{#1} + }{ + \bool_if:NT \g_um_upsans_bool { + \um_map_chars_latin:nn {bfsfup,bfsfit} {#1} + \um_set_mathalphabet_latin:Nnn \mathbfsf {up,it}{#1} + } + } + \um_set_mathalphabet_latin:Nnn \mathbfsfup {up,it}{#1} +} +\cs_new:Nn \um_config_bfsfup_Greek:n { + \bool_if:NTF \g_um_sfliteral_bool { + \um_map_chars_Greek:nn {bfsfup}{#1} + \um_set_mathalphabet_Greek:Nnn \mathbfsf {up}{#1} + }{ + \bool_if:NT \g_um_upsans_bool { + \um_map_chars_Greek:nn {bfsfup,bfsfit}{#1} + \um_set_mathalphabet_Greek:Nnn \mathbfsf {up,it}{#1} + } + } + \um_set_mathalphabet_Greek:Nnn \mathbfsfup {up,it}{#1} +} +\cs_new:Nn \um_config_bfsfup_greek:n { + \bool_if:NTF \g_um_sfliteral_bool { + \um_map_chars_greek:nn {bfsfup} {#1} + \um_set_mathalphabet_greek:Nnn \mathbfsf {up} {#1} + }{ + \bool_if:NT \g_um_upsans_bool { + \um_map_chars_greek:nn {bfsfup,bfsfit} {#1} + \um_set_mathalphabet_greek:Nnn \mathbfsf {up,it} {#1} + } + } + \um_set_mathalphabet_greek:Nnn \mathbfsfup {up,it} {#1} +} +\cs_new:Nn \um_config_bfsfup_misc:n { + \bool_if:NTF \g_um_literal_Nabla_bool { + \um_map_single:nnn {Nabla}{bfsfup}{#1} + }{ + \bool_if:NT \g_um_upNabla_bool { + \um_map_single:nnn {Nabla}{bfsfup,bfsfit}{#1} + } + } + \bool_if:NTF \g_um_literal_partial_bool { + \um_map_single:nnn {partial}{bfsfup}{#1} + }{ + \bool_if:NT \g_um_uppartial_bool { + \um_map_single:nnn {partial}{bfsfup,bfsfit}{#1} + } + } + \um_set_mathalphabet_pos:Nnnn \mathbfsfup {partial} {up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathbfsfup {Nabla} {up,it}{#1} + \bool_if:NTF \g_um_literal_partial_bool { + \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {up}{#1} + }{ + \bool_if:NT \g_um_uppartial_bool { + \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {up,it}{#1} + } + } + \bool_if:NTF \g_um_literal_Nabla_bool { + \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {up}{#1} + }{ + \bool_if:NT \g_um_upNabla_bool { + \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {up,it}{#1} + } + } +} +\cs_new:Nn \um_config_bfsfit_Latin:n { + \bool_if:NTF \g_um_sfliteral_bool { + \um_map_chars_Latin:nn {bfsfit} {#1} + \um_set_mathalphabet_Latin:Nnn \mathbfsf {it}{#1} + }{ + \bool_if:NF \g_um_upsans_bool { + \um_map_chars_Latin:nn {bfsfup,bfsfit} {#1} + \um_set_mathalphabet_Latin:Nnn \mathbfsf {up,it}{#1} + } + } + \um_set_mathalphabet_Latin:Nnn \mathbfsfit {up,it}{#1} +} +\cs_new:Nn \um_config_bfsfit_latin:n { + \bool_if:NTF \g_um_sfliteral_bool { + \um_map_chars_latin:nn {bfsfit} {#1} + \um_set_mathalphabet_latin:Nnn \mathbfsf {it}{#1} + }{ + \bool_if:NF \g_um_upsans_bool { + \um_map_chars_latin:nn {bfsfup,bfsfit} {#1} + \um_set_mathalphabet_latin:Nnn \mathbfsf {up,it}{#1} + } + } + \um_set_mathalphabet_latin:Nnn \mathbfsfit {up,it}{#1} +} +\cs_new:Nn \um_config_bfsfit_Greek:n { + \bool_if:NTF \g_um_sfliteral_bool { + \um_map_chars_Greek:nn {bfsfit}{#1} + \um_set_mathalphabet_Greek:Nnn \mathbfsf {it}{#1} + }{ + \bool_if:NF \g_um_upsans_bool { + \um_map_chars_Greek:nn {bfsfup,bfsfit}{#1} + \um_set_mathalphabet_Greek:Nnn \mathbfsf {up,it}{#1} + } + } + \um_set_mathalphabet_Greek:Nnn \mathbfsfit {up,it}{#1} +} +\cs_new:Nn \um_config_bfsfit_greek:n { + \bool_if:NTF \g_um_sfliteral_bool { + \um_map_chars_greek:nn {bfsfit} {#1} + \um_set_mathalphabet_greek:Nnn \mathbfsf {it} {#1} + }{ + \bool_if:NF \g_um_upsans_bool { + \um_map_chars_greek:nn {bfsfup,bfsfit} {#1} + \um_set_mathalphabet_greek:Nnn \mathbfsf {up,it} {#1} + } + } + \um_set_mathalphabet_greek:Nnn \mathbfsfit {up,it} {#1} +} +\cs_new:Nn \um_config_bfsfit_misc:n { + \bool_if:NTF \g_um_literal_Nabla_bool { + \um_map_single:nnn {Nabla}{bfsfit}{#1} + }{ + \bool_if:NF \g_um_upNabla_bool { + \um_map_single:nnn {Nabla}{bfsfup,bfsfit}{#1} + } + } + \bool_if:NTF \g_um_literal_partial_bool { + \um_map_single:nnn {partial}{bfsfit}{#1} + }{ + \bool_if:NF \g_um_uppartial_bool { + \um_map_single:nnn {partial}{bfsfup,bfsfit}{#1} + } + } + \um_set_mathalphabet_pos:Nnnn \mathbfsfit {partial} {up,it}{#1} + \um_set_mathalphabet_pos:Nnnn \mathbfsfit {Nabla} {up,it}{#1} + \bool_if:NTF \g_um_literal_partial_bool { + \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {it}{#1} + }{ + \bool_if:NF \g_um_uppartial_bool { + \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {up,it}{#1} + } + } + \bool_if:NTF \g_um_literal_Nabla_bool { + \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {it}{#1} + }{ + \bool_if:NF \g_um_upNabla_bool { + \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {up,it}{#1} + } + } +} +\cs_new:Npn \um_symbol_setup: + { + \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 { + \prg_case_tl:Nnn ##3 { \mathover {} \mathunder {} } + { + \exp_not:n {\_um_sym:nnn{##1}{##2}{##3}} + } + } + } +\CatchFileEdef \g_um_mathtable_tl {unicode-math-table.tex} {\um_symbol_setup:} +\cs_new:Nn \um_input_math_symbol_table: {\g_um_mathtable_tl} +\group_begin: + \char_set_catcode_other:N \^ + \cs_gset:Npn \um_cs_set_eq_active_char:Nw #1 = "#2 \q_nil { + \tex_lowercase:D { + \tl_rescan:nn { + \ExplSyntaxOn + \char_set_catcode_other:N \{ + \char_set_catcode_other:N \} + \char_set_catcode_other:N \& + \char_set_catcode_other:N \% + \char_set_catcode_other:N \$ + }{ + \cs_gset_eq:NN #1 ^^^^^#2 + } + } + } + \cs_new:Npn \um_active_char_set:wc "#1 \q_nil #2 { + \tex_lowercase:D { + \tl_rescan:nn { \ExplSyntaxOn } + { \cs_gset_protected_nopar:Npx ^^^^^#1 { \exp_not:c {#2} } } + } + } +\group_end: +\AtBeginDocument{\um_define_math_chars:} +\cs_new:Nn \um_define_math_chars: { + \group_begin: + \char_set_catcode_math_superscript:N \^ + \cs_set:Npn \_um_sym:nnn ##1##2##3 { + \bool_if:nF { \cs_if_eq_p:NN ##3 \mathaccent || + \cs_if_eq_p:NN ##3 \mathopen || + \cs_if_eq_p:NN ##3 \mathclose || + \cs_if_eq_p:NN ##3 \mathover || + \cs_if_eq_p:NN ##3 \mathunder } { + \um_cs_set_eq_active_char:Nw ##2 = ##1 \q_nil \ignorespaces + } + } + \char_set_catcode_other:N \# + \um_input_math_symbol_table: + \group_end: +} +\group_begin: + \lccode`\*=`\\ + \char_set_catcode_escape:N \| + \char_set_catcode_other:N \\ + |lowercase{ + |AtBeginDocument{ + |let|backslash=* + } + } +|group_end: +\cs_new:Nn \um_arg_i_before_egroup:n {#1\egroup} +\cs_new:Nn \um_superscript:n { + ^\bgroup #1 + \peek_meaning_remove:NTF ^ \um_arg_i_before_egroup:n \egroup +} +\muskip_new:N \g_um_primekern_muskip +\muskip_gset:Nn \g_um_primekern_muskip { -\thinmuskip/2 }% arbitrary +\int_new:N \l_um_primecount_int +\cs_new:Nn \um_nprimes:Nn { + \um_superscript:n { + #1 + \prg_replicate:nn {#2-1} { \mskip \g_um_primekern_muskip #1 } + } +} +\cs_new:Nn \um_nprimes_select:nn { + \prg_case_int:nnn {#2}{ + {1} { \um_superscript:n {#1} } + {2} { + \um_glyph_if_exist:nTF {"2033} + { \um_superscript:n {\um_prime_double_mchar} } + { \um_nprimes:Nn #1 {#2} } + } + {3} { + \um_glyph_if_exist:nTF {"2034} + { \um_superscript:n {\um_prime_triple_mchar} } + { \um_nprimes:Nn #1 {#2} } + } + {4} { + \um_glyph_if_exist:nTF {"2057} + { \um_superscript:n {\um_prime_quad_mchar} } + { \um_nprimes:Nn #1 {#2} } + } + }{ + \um_nprimes:Nn #1 {#2} + } +} +\cs_new:Nn \um_nbackprimes_select:nn { + \prg_case_int:nnn {#2}{ + {1} { \um_superscript:n {#1} } + {2} { + \um_glyph_if_exist:nTF {"2036} + { \um_superscript:n {\um_backprime_double_mchar} } + { \um_nprimes:Nn #1 {#2} } + } + {3} { + \um_glyph_if_exist:nTF {"2037} + { \um_superscript:n {\um_backprime_triple_mchar} } + { \um_nprimes:Nn #1 {#2} } + } + }{ + \um_nprimes:Nn #1 {#2} + } +} +\cs_new:Npn \um_scan_prime: { + \cs_set_eq:NN \um_superscript:n \use:n + \int_zero:N \l_um_primecount_int + \um_scanprime_collect:N \um_prime_single_mchar +} +\cs_new:Npn \um_scan_dprime: { + \cs_set_eq:NN \um_superscript:n \use:n + \int_set:Nn \l_um_primecount_int {1} + \um_scanprime_collect:N \um_prime_single_mchar +} +\cs_new:Npn \um_scan_trprime: { + \cs_set_eq:NN \um_superscript:n \use:n + \int_set:Nn \l_um_primecount_int {2} + \um_scanprime_collect:N \um_prime_single_mchar +} +\cs_new:Npn \um_scan_qprime: { + \cs_set_eq:NN \um_superscript:n \use:n + \int_set:Nn \l_um_primecount_int {3} + \um_scanprime_collect:N \um_prime_single_mchar +} +\cs_new:Npn \um_scan_sup_prime: { + \int_zero:N \l_um_primecount_int + \um_scanprime_collect:N \um_prime_single_mchar +} +\cs_new:Npn \um_scan_sup_dprime: { + \int_set:Nn \l_um_primecount_int {1} + \um_scanprime_collect:N \um_prime_single_mchar +} +\cs_new:Npn \um_scan_sup_trprime: { + \int_set:Nn \l_um_primecount_int {2} + \um_scanprime_collect:N \um_prime_single_mchar +} +\cs_new:Npn \um_scan_sup_qprime: { + \int_set:Nn \l_um_primecount_int {3} + \um_scanprime_collect:N \um_prime_single_mchar +} +\cs_new:Nn \um_scanprime_collect:N { + \int_incr:N \l_um_primecount_int + \peek_meaning_remove:NTF ' { + \um_scanprime_collect:N #1 + }{ + \peek_meaning_remove:NTF \um_scan_prime: { + \um_scanprime_collect:N #1 + }{ + \peek_meaning_remove:NTF ^^^^2032 { + \um_scanprime_collect:N #1 + }{ + \peek_meaning_remove:NTF \um_scan_dprime: { + \int_incr:N \l_um_primecount_int + \um_scanprime_collect:N #1 + }{ + \peek_meaning_remove:NTF ^^^^2033 { + \int_incr:N \l_um_primecount_int + \um_scanprime_collect:N #1 + }{ + \peek_meaning_remove:NTF \um_scan_trprime: { + \int_add:Nn \l_um_primecount_int {2} + \um_scanprime_collect:N #1 + }{ + \peek_meaning_remove:NTF ^^^^2034 { + \int_add:Nn \l_um_primecount_int {2} + \um_scanprime_collect:N #1 + }{ + \peek_meaning_remove:NTF \um_scan_qprime: { + \int_add:Nn \l_um_primecount_int {3} + \um_scanprime_collect:N #1 + }{ + \peek_meaning_remove:NTF ^^^^2057 { + \int_add:Nn \l_um_primecount_int {3} + \um_scanprime_collect:N #1 + }{ + \um_nprimes_select:nn {#1} {\l_um_primecount_int} + } + } + } + } + } + } + } + } + } +} +\cs_new:Npn \um_scan_backprime: { + \cs_set_eq:NN \um_superscript:n \use:n + \int_zero:N \l_um_primecount_int + \um_scanbackprime_collect:N \um_backprime_single_mchar +} +\cs_new:Npn \um_scan_backdprime: { + \cs_set_eq:NN \um_superscript:n \use:n + \int_set:Nn \l_um_primecount_int {1} + \um_scanbackprime_collect:N \um_backprime_single_mchar +} +\cs_new:Npn \um_scan_backtrprime: { + \cs_set_eq:NN \um_superscript:n \use:n + \int_set:Nn \l_um_primecount_int {2} + \um_scanbackprime_collect:N \um_backprime_single_mchar +} +\cs_new:Npn \um_scan_sup_backprime: { + \int_zero:N \l_um_primecount_int + \um_scanbackprime_collect:N \um_backprime_single_mchar +} +\cs_new:Npn \um_scan_sup_backdprime: { + \int_set:Nn \l_um_primecount_int {1} + \um_scanbackprime_collect:N \um_backprime_single_mchar +} +\cs_new:Npn \um_scan_sup_backtrprime: { + \int_set:Nn \l_um_primecount_int {2} + \um_scanbackprime_collect:N \um_backprime_single_mchar +} +\cs_new:Nn \um_scanbackprime_collect:N { + \int_incr:N \l_um_primecount_int + \peek_meaning_remove:NTF ` { + \um_scanbackprime_collect:N #1 + }{ + \peek_meaning_remove:NTF \um_scan_backprime: { + \um_scanbackprime_collect:N #1 + }{ + \peek_meaning_remove:NTF ^^^^2035 { + \um_scanbackprime_collect:N #1 + }{ + \peek_meaning_remove:NTF \um_scan_backdprime: { + \int_incr:N \l_um_primecount_int + \um_scanbackprime_collect:N #1 + }{ + \peek_meaning_remove:NTF ^^^^2036 { + \int_incr:N \l_um_primecount_int + \um_scanbackprime_collect:N #1 + }{ + \peek_meaning_remove:NTF \um_scan_backtrprime: { + \int_add:Nn \l_um_primecount_int {2} + \um_scanbackprime_collect:N #1 + }{ + \peek_meaning_remove:NTF ^^^^2037 { + \int_add:Nn \l_um_primecount_int {2} + \um_scanbackprime_collect:N #1 + }{ + \um_nbackprimes_select:nn {#1} {\l_um_primecount_int} + } + } + } + } + } + } + } +} +\AtBeginDocument{\um_define_prime_commands: \um_define_prime_chars:} +\cs_new:Nn \um_define_prime_commands: { + \cs_set_eq:NN \prime \um_prime_single_mchar + \cs_set_eq:NN \dprime \um_prime_double_mchar + \cs_set_eq:NN \trprime \um_prime_triple_mchar + \cs_set_eq:NN \qprime \um_prime_quad_mchar + \cs_set_eq:NN \backprime \um_backprime_single_mchar + \cs_set_eq:NN \backdprime \um_backprime_double_mchar + \cs_set_eq:NN \backtrprime \um_backprime_triple_mchar +} +\group_begin: + \char_set_catcode_active:N \' + \char_set_catcode_active:N \` + \char_set_catcode_active:n {"2032} + \char_set_catcode_active:n {"2033} + \char_set_catcode_active:n {"2034} + \char_set_catcode_active:n {"2057} + \char_set_catcode_active:n {"2035} + \char_set_catcode_active:n {"2036} + \char_set_catcode_active:n {"2037} + \cs_gset:Nn \um_define_prime_chars: { + \cs_set_eq:NN ' \um_scan_sup_prime: + \cs_set_eq:NN ^^^^2032 \um_scan_sup_prime: + \cs_set_eq:NN ^^^^2033 \um_scan_sup_dprime: + \cs_set_eq:NN ^^^^2034 \um_scan_sup_trprime: + \cs_set_eq:NN ^^^^2057 \um_scan_sup_qprime: + \cs_set_eq:NN ` \um_scan_sup_backprime: + \cs_set_eq:NN ^^^^2035 \um_scan_sup_backprime: + \cs_set_eq:NN ^^^^2036 \um_scan_sup_backdprime: + \cs_set_eq:NN ^^^^2037 \um_scan_sup_backtrprime: + } +\group_end: +\AtBeginDocument{\um_redefine_radical:} +\cs_new:Nn \um_redefine_radical: + { + \@ifpackageloaded { amsmath } { } { + \cs_set_nopar:Npn \r@@t ##1 ##2 { + \hbox_set:Nn \l_tmpa_box { + \c_math_toggle_token + \m@th + ##1 + \sqrtsign { ##2 } + \c_math_toggle_token + } + \um_mathstyle_scale:Nnn ##1 { \kern } { + \fontdimen 63 \l_um_font + } + \box_move_up:nn { + (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box) + * \number \fontdimen 65 \l_um_font / 100 + } { + \box_use:N \rootbox + } + \um_mathstyle_scale:Nnn ##1 { \kern } { + \fontdimen 64 \l_um_font + } + \box_use_clear:N \l_tmpa_box + } + } + } +\cs_new:Nn \um_fontdimen_to_percent:nn { + \strip@pt\dimexpr\fontdimen#1#2*65536/100\relax +} +\cs_new:Nn \um_fontdimen_to_scale:nn + { + \um_fontdimen_to_percent:nn {#1} {#2} \dimexpr \f@size pt\relax + } +\cs_new:Nn \um_mathstyle_scale:Nnn { + \ifx#1\scriptstyle + #2\um_fontdimen_to_percent:nn{10}\l_um_font#3 + \else + \ifx#1\scriptscriptstyle + #2\um_fontdimen_to_percent:nn{11}\l_um_font#3 + \else + #2#3 + \fi + \fi +} +\prop_new:N \g_um_supers_prop +\prop_new:N \g_um_subs_prop +\group_begin: +\cs_new:Nn \um_setup_active_superscript:nn { + \prop_gput:Nxn \g_um_supers_prop {\meaning #1} {#2} + \char_set_catcode_active:N #1 + \char_gmake_mathactive:N #1 + \scantokens{ + \cs_gset:Npn #1 { + \tl_set:Nn \l_um_ss_chain_tl {#2} + \cs_set_eq:NN \um_sub_or_super:n \sp + \tl_set:Nn \l_um_tmpa_tl {supers} + \um_scan_sscript: + } + } +} +\um_setup_active_superscript:nn {^^^^2070} {0} +\um_setup_active_superscript:nn {^^^^00b9} {1} +\um_setup_active_superscript:nn {^^^^00b2} {2} +\um_setup_active_superscript:nn {^^^^00b3} {3} +\um_setup_active_superscript:nn {^^^^2074} {4} +\um_setup_active_superscript:nn {^^^^2075} {5} +\um_setup_active_superscript:nn {^^^^2076} {6} +\um_setup_active_superscript:nn {^^^^2077} {7} +\um_setup_active_superscript:nn {^^^^2078} {8} +\um_setup_active_superscript:nn {^^^^2079} {9} +\um_setup_active_superscript:nn {^^^^207a} {+} +\um_setup_active_superscript:nn {^^^^207b} {-} +\um_setup_active_superscript:nn {^^^^207c} {=} +\um_setup_active_superscript:nn {^^^^207d} {(} +\um_setup_active_superscript:nn {^^^^207e} {)} +\um_setup_active_superscript:nn {^^^^2071} {i} +\um_setup_active_superscript:nn {^^^^207f} {n} +\cs_new:Nn \um_setup_active_subscript:nn { + \prop_gput:Nxn \g_um_subs_prop {\meaning #1} {#2} + \char_set_catcode_active:N #1 + \char_gmake_mathactive:N #1 + \scantokens{ + \cs_gset:Npn #1 { + \tl_set:Nn \l_um_ss_chain_tl {#2} + \cs_set_eq:NN \um_sub_or_super:n \sb + \tl_set:Nn \l_um_tmpa_tl {subs} + \um_scan_sscript: + } + } +} +\um_setup_active_subscript:nn {^^^^2080} {0} +\um_setup_active_subscript:nn {^^^^2081} {1} +\um_setup_active_subscript:nn {^^^^2082} {2} +\um_setup_active_subscript:nn {^^^^2083} {3} +\um_setup_active_subscript:nn {^^^^2084} {4} +\um_setup_active_subscript:nn {^^^^2085} {5} +\um_setup_active_subscript:nn {^^^^2086} {6} +\um_setup_active_subscript:nn {^^^^2087} {7} +\um_setup_active_subscript:nn {^^^^2088} {8} +\um_setup_active_subscript:nn {^^^^2089} {9} +\um_setup_active_subscript:nn {^^^^208a} {+} +\um_setup_active_subscript:nn {^^^^208b} {-} +\um_setup_active_subscript:nn {^^^^208c} {=} +\um_setup_active_subscript:nn {^^^^208d} {(} +\um_setup_active_subscript:nn {^^^^208e} {)} +\um_setup_active_subscript:nn {^^^^2090} {a} +\um_setup_active_subscript:nn {^^^^2091} {e} +\um_setup_active_subscript:nn {^^^^1d62} {i} +\um_setup_active_subscript:nn {^^^^2092} {o} +\um_setup_active_subscript:nn {^^^^1d63} {r} +\um_setup_active_subscript:nn {^^^^1d64} {u} +\um_setup_active_subscript:nn {^^^^1d65} {v} +\um_setup_active_subscript:nn {^^^^2093} {x} +\um_setup_active_subscript:nn {^^^^1d66} {\beta} +\um_setup_active_subscript:nn {^^^^1d67} {\gamma} +\um_setup_active_subscript:nn {^^^^1d68} {\rho} +\um_setup_active_subscript:nn {^^^^1d69} {\phi} +\um_setup_active_subscript:nn {^^^^1d6a} {\chi} +\group_end: +\cs_new:Npn \um_scan_sscript: { + \um_scan_sscript:TF { + \um_scan_sscript: + }{ + \um_sub_or_super:n {\l_um_ss_chain_tl} + } +} +\cs_new:Npn \um_scan_sscript:TF #1#2 { + \tl_set:Nx \peek_true_aux:w { \exp_not:n{ #1 } } + \tl_set_eq:NN \peek_true:w \peek_true_remove:w + \tl_set:Nx \peek_false:w { \exp_not:n { \group_align_safe_end: #2 } } + \group_align_safe_begin: + \peek_after:Nw \um_peek_execute_branches_ss: +} +\cs_new:Npn \um_peek_execute_branches_ss: { + \bool_if:nTF { + \token_if_eq_catcode_p:NN \l_peek_token \c_group_begin_token || + \token_if_eq_catcode_p:NN \l_peek_token \c_group_end_token || + \token_if_eq_meaning_p:NN \l_peek_token \c_space_token + } + { \peek_false:w } + { \um_peek_execute_branches_ss_aux: } +} +\cs_new:Npn \um_peek_execute_branches_ss_aux: { + \prop_if_in:cxTF + {g_um_\l_um_tmpa_tl _prop} {\meaning\l_peek_token} + { + \prop_get:cxN + {g_um_\l_um_tmpa_tl _prop} {\meaning\l_peek_token} \l_um_tmpb_tl + \tl_put_right:NV \l_um_ss_chain_tl \l_um_tmpb_tl + \peek_true:w + } + { \peek_false:w } +} +\cs_new:Npn \um_define_active_frac:Nw #1 #2/#3 { + \char_set_catcode_active:N #1 + \char_gmake_mathactive:N #1 + \tl_rescan:nn { + \catcode`\_=11\relax + \catcode`\:=11\relax + }{ + \cs_gset:Npx #1 { + \bool_if:NTF \l_um_smallfrac_bool {\exp_not:N\tfrac} {\exp_not:N\frac} + {#2} {#3} + } + } +} +\cs_new:Npn \um_setup_active_frac: { + \group_begin: + \um_define_active_frac:Nw ^^^^2189 0/3 + \um_define_active_frac:Nw ^^^^2152 1/{10} + \um_define_active_frac:Nw ^^^^2151 1/9 + \um_define_active_frac:Nw ^^^^215b 1/8 + \um_define_active_frac:Nw ^^^^2150 1/7 + \um_define_active_frac:Nw ^^^^2159 1/6 + \um_define_active_frac:Nw ^^^^2155 1/5 + \um_define_active_frac:Nw ^^^^00bc 1/4 + \um_define_active_frac:Nw ^^^^2153 1/3 + \um_define_active_frac:Nw ^^^^215c 3/8 + \um_define_active_frac:Nw ^^^^2156 2/5 + \um_define_active_frac:Nw ^^^^00bd 1/2 + \um_define_active_frac:Nw ^^^^2157 3/5 + \um_define_active_frac:Nw ^^^^215d 5/8 + \um_define_active_frac:Nw ^^^^2154 2/3 + \um_define_active_frac:Nw ^^^^00be 3/4 + \um_define_active_frac:Nw ^^^^2158 4/5 + \um_define_active_frac:Nw ^^^^215a 5/6 + \um_define_active_frac:Nw ^^^^215e 7/8 + \group_end: +} +\um_setup_active_frac: +\cs_new:Nn \um_over_bracket:nN + { + \mathop { \vbox { + \setbox\z@\hbox{$\displaystyle#1$} + \dimen@=\dimexpr\wd\z@+3\p@\relax + \setbox\tw@\hbox{$\left #2 \vcenter to\dimen@{\vss} \right. $} + \m@th\ialign + { + ##\crcr\noalign{\kern-\p@}% + \rotatebox[origin=Bl]{-90} + {\box\tw@}\crcr\noalign{\kern0\p@\nointerlineskip}% + \hfil\box\z@\hfil\crcr + } + } } \limits + } +\cs_new:Nn \um_under_bracket:nN + { + \mathop { \vtop { + \setbox\z@\hbox{$\displaystyle#1$} + \dimen@=\dimexpr\wd\z@+3\p@\relax + \setbox\tw@\hbox{$\left #2 \vcenter to\dimen@{\vss} \right. $} + \m@th\ialign + { + ##\crcr\hfil\box\z@\hfil\crcr + \noalign{\kern1\p@\nointerlineskip}% + \rotatebox[origin=Br]{-90}{\box\tw@}\crcr\noalign{\kern0\p@} + } + } } \limits + } +\DeclareDocumentCommand \overbrace {m} { \um_over_bracket:nN {#1} \{ } +\DeclareDocumentCommand \overbracket {m} { \um_over_bracket:nN {#1} [ } +\DeclareDocumentCommand \overparen {m} { \um_over_bracket:nN {#1} ( } +\DeclareDocumentCommand \underbrace {m} { \um_under_bracket:nN {#1} \} } +\DeclareDocumentCommand \underbracket {m} { \um_under_bracket:nN {#1} ] } +\DeclareDocumentCommand \underparen {m} { \um_under_bracket:nN {#1} ) } +\def\to{\rightarrow} +\def\le{\leq} +\def\ge{\geq} +\def\neq{\ne} +\def\triangle{\mathord{\bigtriangleup}} +\def\bigcirc{\mdlgwhtcircle} +\def\circ{\vysmwhtcircle} +\def\bullet{\smblkcircle} +\def\mathyen{\yen} +\def\mathsterling{\sterling} +\def\diamond{\smwhtdiamond} +\def\emptyset{\varnothing} +\def\hbar{\hslash} +\def\land{\wedge} +\def\lor{\vee} +\def\owns{\ni} +\def\gets{\leftarrow} +\def\mathring{\ocirc} +\def\lnot{\neg} +\def\backepsilon{\upbackepsilon} +\def\eth{\matheth} +\def\smallint{{\textstyle\int}\limits} +\@ifpackageloaded{amsmath}{ + % define their own colon, perhaps I should just steal it. (It does look much better.) +}{ + \cs_set_protected:Npn \colon { + \bool_if:NTF \g_um_literal_colon_bool {:} { \mathpunct{:} } + } +} +\def\mathrm{\mathup} +\let\mathfence\mathord +\def\digamma{\updigamma} +\def\Digamma{\upDigamma} +\def\operator@font{\um_switchto_mathup:} +\chk_if_free_cs:N \um_tmpa:w +\cs_new_protected_nopar:Npn \um_check_and_fix:NNnnnn #1 #2 #3 #4 #5 #6 { + \cs_if_exist:NT #1 { + \token_if_macro:NTF #1 { + \group_begin: + #2 \um_tmpa:w #3 { #4 } + \cs_if_eq:NNTF #1 \um_tmpa:w { + \msg_info:nnx { unicode-math } { patch-macro } + { \token_to_str:N #1 } + \group_end: + #2 #1 #3 + { #6 } + } { + \msg_warning:nnxxx { unicode-math } { wrong-meaning } + { \token_to_str:N #1 } { \token_to_meaning:N #1 } + { \token_to_meaning:N \um_tmpa:w } + \group_end: + } + } { + \msg_warning:nnx { unicode-math } { macro-expected } + { \token_to_str:N #1 } + } + } +} +\cs_new_protected_nopar:Npn \um_check_and_fix:NNnnn #1 #2 #3 #4 #5 { + \um_check_and_fix:NNnnnn #1 #2 { #3 } { #4 } { #5 } { #5 } +} +\cs_new_protected_nopar:Npn \um_check_and_fix_luatex:NNnnn #1 #2 #3 #4 #5 { + \luatex_if_engine:T { + \um_check_and_fix:NNnnn #1 #2 { #3 } { #4 } { #5 } + } +} +\cs_generate_variant:Nn \um_check_and_fix_luatex:NNnnn { c } +\AtEndOfPackageFile * {url} { + \tl_put_left:Nn \Url@FormatString { \um_switchto_mathup: } + \tl_put_right:Nn \UrlSpecials { + \do\`{\mathchar`\`} + \do\'{\mathchar`\'} + \do\${\mathchar`\$} + \do\&{\mathchar`\&} + } +} +\AtEndOfPackageFile * {amsmath} { + \tl_remove_once:Nn \@begindocumenthook { + \mathchardef\std@minus\mathcode`\-\relax + \mathchardef\std@equal\mathcode`\=\relax + } + \def\std@minus{\Umathcharnum\Umathcodenum`\-\relax} + \def\std@equal{\Umathcharnum\Umathcodenum`\=\relax} + \cs_set:Npn \@cdots {\mathinner{\cdots}} + \cs_set_eq:NN \dotsb@ \cdots + \def \resetMathstrut@ {% + \setbox\z@\hbox{$($}%) + \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@ + } + \um_check_and_fix:NNnnn \subarray \cs_set:Npn { #1 } { + \vcenter + \bgroup + \Let@ + \restore@math@cr + \default@tag + \baselineskip \fontdimen 10~ \scriptfont \tw@ + \advance \baselineskip \fontdimen 12~ \scriptfont \tw@ + \lineskip \thr@@ \fontdimen 8~ \scriptfont \thr@@ + \lineskiplimit \lineskip + \ialign + \bgroup + \ifx c #1 \hfil \fi + $ \m@th \scriptstyle ## $ + \hfil + \crcr + } { + \vcenter + \c_group_begin_token + \Let@ + \restore@math@cr + \default@tag + \skip_set:Nn \baselineskip { + \um_stack_num_up:N \scriptstyle + + \um_stack_denom_down:N \scriptstyle + } + \lineskip \um_stack_vgap:N \scriptstyle + \lineskiplimit \lineskip + \ialign + \c_group_begin_token + \token_if_eq_meaning:NNT c #1 { \hfil } + \c_math_toggle_token + \m@th + \scriptstyle + \c_parameter_token \c_parameter_token + \c_math_toggle_token + \hfil + \crcr + } + \um_check_and_fix_luatex:NNnnn \plainroot@ \cs_set_nopar:Npn { #1 \of #2 } { + \setbox \rootbox \hbox { + $ \m@th \scriptscriptstyle { #1 } $ + } + \mathchoice + { \r@@t \displaystyle { #2 } } + { \r@@t \textstyle { #2 } }~ + { \r@@t \scriptstyle { #2 } } + { \r@@t \scriptscriptstyle { #2 } } + \egroup + } { + \bool_if:nTF { + \int_compare_p:nNn { \uproot@ } = { \c_zero } + && \int_compare_p:nNn { \leftroot@ } = { \c_zero } + } { + \luatexUroot \l_um_radical_sqrt_tl { #1 } { #2 } + } { + \hbox_set:Nn \rootbox { + \c_math_toggle_token + \m@th + \scriptscriptstyle { #1 } + \c_math_toggle_token + } + \mathchoice + { \r@@t \displaystyle { #2 } } + { \r@@t \textstyle { #2 } } + { \r@@t \scriptstyle { #2 } } + { \r@@t \scriptscriptstyle { #2 } } + } + \c_group_end_token + } + \um_check_and_fix:NNnnnn \r@@t \cs_set_nopar:Npn { #1 #2 } { + \setboxz@h { $ \m@th #1 \sqrtsign { #2 } $ } + \dimen@ \ht\z@ + \advance \dimen@ -\dp\z@ + \setbox\@ne \hbox { $ \m@th #1 \mskip \uproot@ mu $ } + \advance \dimen@ by 1.667 \wd\@ne + \mkern -\leftroot@ mu + \mkern 5mu + \raise .6\dimen@ \copy\rootbox + \mkern -10mu + \mkern \leftroot@ mu + \boxz@ + } { + \hbox_set:Nn \l_tmpa_box { + \c_math_toggle_token + \m@th + #1 + \mskip \uproot@ mu + \c_math_toggle_token + } + \luatexUroot \l_um_radical_sqrt_tl { + \box_move_up:nn { \box_wd:N \l_tmpa_box } { + \hbox:n { + \c_math_toggle_token + \m@th + \mkern -\leftroot@ mu + \box_use:N \rootbox + \mkern \leftroot@ mu + \c_math_toggle_token + } + } + } { + #2 + } + } { + \hbox_set:Nn \l_tmpa_box { + \c_math_toggle_token + \m@th + #1 + \sqrtsign { #2 } + \c_math_toggle_token + } + \hbox_set:Nn \l_tmpb_box { + \c_math_toggle_token + \m@th + #1 + \mskip \uproot@ mu + \c_math_toggle_token + } + \mkern -\leftroot@ mu + \um_mathstyle_scale:Nnn #1 { \kern } { + \fontdimen 63 \l_um_font + } + \box_move_up:nn { + \box_wd:N \l_tmpb_box + + (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box) + * \number \fontdimen 65 \l_um_font / 100 + } { + \box_use:N \rootbox + } + \um_mathstyle_scale:Nnn #1 { \kern } { + \fontdimen 64 \l_um_font + } + \mkern \leftroot@ mu + \box_use_clear:N \l_tmpa_box + } +} +\AtEndOfPackageFile * {amsopn} { + \cs_set:Npn \newmcodes@ { + \mathcode`\'39\scan_stop: + \mathcode`\*42\scan_stop: + \mathcode`\."613A\scan_stop: +%% \ifnum\mathcode`\-=45 \else +%% \mathchardef\std@minus\mathcode`\-\relax +%% \fi + \mathcode`\-45\scan_stop: + \mathcode`\/47\scan_stop: + \mathcode`\:"603A\scan_stop: + } +} +\cs_set:Npn \| {\Vert} +\cs_set:Npn \mathellipsis {\mathinner{\unicodeellipsis}} +\cs_set:Npn \cdots {\mathinner{\unicodecdots}} +\cs_new_protected_nopar:Nn \um_setup_accents: + { + \def\widehat{\hat} + \def\widetilde{\tilde} + \def\overrightarrow{\vec} + } +\cs_set_eq:NN \um_text_slash: \slash +\cs_set_protected:Npn \slash { + \mode_if_math:TF {\mathslash} {\um_text_slash:} +} +\AtEndOfPackageFile * { mathtools } { + \chk_if_free_cs:N \g_um_empty_fam + \newfam \g_um_empty_fam + \um_check_and_fix:NNnnn + \MT_cramped_internal:Nn \cs_set_nopar:Npn { #1 #2 } + { + \sbox \z@ { + $ + \m@th + #1 + \nulldelimiterspace = \z@ + \radical \z@ { #2 } + $ + } + \ifx #1 \displaystyle + \dimen@ = \fontdimen 8 \textfont 3 + \advance \dimen@ .25 \fontdimen 5 \textfont 2 + \else + \dimen@ = 1.25 \fontdimen 8 + \ifx #1 \textstyle + \textfont + \else + \ifx #1 \scriptstyle + \scriptfont + \else + \scriptscriptfont + \fi + \fi + 3 + \fi + \advance \dimen@ -\ht\z@ + \ht\z@ = -\dimen@ + \box\z@ + } + { + \hbox_set:Nn \l_tmpa_box { + \color@setgroup + \c_math_toggle_token + \m@th + #1 + \dim_zero:N \nulldelimiterspace + \XeTeXradical \g_um_empty_fam \c_zero { #2 } + \c_math_toggle_token + \color@endgroup + } + \box_set_ht:Nn \l_tmpa_box { + \box_ht:N \l_tmpa_box + - \um_radical_vgap:N #1 + } + \box_use_clear:N \l_tmpa_box + } + \msg_warning:nn { unicode-math } { mathtools } + \NewDocumentCommand \dblcolon { } { \Colon } + \NewDocumentCommand \coloneqq { } { \coloneq } + \NewDocumentCommand \Coloneqq { } { \Coloneq } + \NewDocumentCommand \eqqcolon { } { \eqcolon } +} +\AtEndOfPackageFile * { colonequals } { + \msg_warning:nn { unicode-math } { colonequals } + \RenewDocumentCommand \ratio { } { \mathratio } + \RenewDocumentCommand \coloncolon { } { \Colon } + \RenewDocumentCommand \minuscolon { } { \dashcolon } + \RenewDocumentCommand \colonequals { } { \coloneq } + \RenewDocumentCommand \equalscolon { } { \eqcolon } + \RenewDocumentCommand \coloncolonequals { } { \Coloneq } +} +\ExplSyntaxOff |