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.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.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty | 2992 |
1 files changed, 84 insertions, 2908 deletions
diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty b/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty index 10187f64053..39631028f3f 100644 --- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty +++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty @@ -6,7 +6,7 @@ %% %% unicode-math.dtx (with options: `preamble') %% unicode-math.dtx (with options: `msg') -%% unicode-math.dtx (with options: `package,stix') +%% unicode-math.dtx (with options: `load') %% Copyright 2006-2011 Will Robertson <will.robertson@latex-project.org> %% Copyright 2010-2011 Philipp Stephani <st_philipp@yahoo.de> %% @@ -16,7 +16,7 @@ %% %% This work is "author-maintained" by Will Robertson. \ProvidesPackage{unicode-math} - [2011/07/31 v0.5e Unicode maths in XeLaTeX and LuaLaTeX] + [2011/09/18 v0.6 Unicode maths in XeLaTeX and LuaLaTeX] \usepackage{ifxetex,ifluatex} \ifxetex\else\ifluatex\else \PackageError{unicode-math}{% @@ -24,25 +24,14 @@ Use XeLaTeX or LuaLaTeX instead.% }\@ehd \fi\fi -\RequirePackage{expl3}[2009/08/12] +\RequirePackage{expl3}[2011/07/01] \RequirePackage{xparse}[2009/08/31] \RequirePackage{l3keys2e} \RequirePackage{fontspec}[2010/10/25] \RequirePackage{catchfile} -\RequirePackage{trimspaces}% I'd like to incorporate this into expl3... \RequirePackage{fix-cm} % avoid some warnings \RequirePackage{filehook}[2011/01/03] \ExplSyntaxOn -\cs_if_exist:NF \char_set_catcode_other:N - { - \cs_set_eq:NN \c_math_toggle_token \c_math_shift_token - \cs_set_eq:NN \char_set_catcode_other:N \char_make_other:N - \cs_set_eq:NN \char_set_catcode_active:N \char_make_active:N - \cs_set_eq:NN \char_set_catcode_active:n \char_make_active:n - \cs_set_eq:NN \char_set_catcode_escape:N \char_make_escape:N - \cs_set_eq:NN \char_set_catcode_math_superscript:N - \char_make_math_superscript:N - } \cs_generate_variant:Nn \tl_put_right:Nn {cx} \cs_generate_variant:Nn \seq_if_in:NnTF {NV} \cs_generate_variant:Nn \prop_gput:Nnn {Nxn} @@ -53,13 +42,11 @@ \cs:w #3 \exp_after:wN \cs_end: \cs:w #4 \cs_end: } +\cs_set_eq:NN \tl_replace_in:Nnn \tl_replace_once:Nnn \cs_new_protected_nopar:Npn \bool_const:Nn #1 #2 { \bool_new:N #1 \bool_set:Nn #1 { #2 } } -\bool_const:Nn \c_um_have_fixed_accents_bool { - \c_luatex_is_engine_bool && \int_compare_p:n { \luatexversion > 64 } -} \bool_new:N \l_um_ot_math_bool \bool_new:N \l_um_init_bool \bool_new:N \l_um_implicit_alph_bool @@ -81,16 +68,16 @@ \bool_new:N \g_um_literal_Nabla_bool \bool_new:N \g_um_literal_partial_bool \bool_new:N \g_um_texgreek_bool -\bool_gset_true:N \g_um_texgreek_bool +\bool_set_true:N \g_um_texgreek_bool \bool_new:N \l_um_smallfrac_bool \bool_new:N \g_um_literal_colon_bool \int_new:N \g_um_fam_int -\tl_set:Nn \g_um_math_alphabet_name_latin_tl {Latin,~lowercase} -\tl_set:Nn \g_um_math_alphabet_name_Latin_tl {Latin,~uppercase} -\tl_set:Nn \g_um_math_alphabet_name_greek_tl {Greek,~lowercase} -\tl_set:Nn \g_um_math_alphabet_name_Greek_tl {Greek,~uppercase} -\tl_set:Nn \g_um_math_alphabet_name_num_tl {Numerals} -\tl_set:Nn \g_um_math_alphabet_name_misc_tl {Misc.} +\tl_const:Nn \c_um_math_alphabet_name_latin_tl {Latin,~lowercase} +\tl_const:Nn \c_um_math_alphabet_name_Latin_tl {Latin,~uppercase} +\tl_const:Nn \c_um_math_alphabet_name_greek_tl {Greek,~lowercase} +\tl_const:Nn \c_um_math_alphabet_name_Greek_tl {Greek,~uppercase} +\tl_const:Nn \c_um_math_alphabet_name_num_tl {Numerals} +\tl_const:Nn \c_um_math_alphabet_name_misc_tl {Misc.} \prg_new_conditional:Nnn \um_glyph_if_exist:n {p,TF,T,F} { \iffontchar \l_um_font #1 \scan_stop: \prg_return_true: @@ -102,514 +89,10 @@ \cs_generate_variant:Nn \um_glyph_if_exist:nTF {c} \cs_generate_variant:Nn \um_glyph_if_exist:nT {c} \cs_generate_variant:Nn \um_glyph_if_exist:nF {c} -\xetex_or_luatex:nnn { \cs_new:Npn \um_cs_compat:n #1 } - { \cs_set_eq:cc {U#1} {XeTeX#1} } - { \cs_set_eq:cc {U#1} {luatexU#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} -\luatex_if_engine:T { - \RequirePackage { lualatex-math } [ 2011/05/05 ] -} -\cs_generate_variant:Nn \fontspec_select:nn {x} -\luatex_if_engine:T { - \RequirePackage { luatexbase } - \RequirePackage { luaotfload } [ 2010/11/26 ] - \RequireLuaModule { unicode-math } [ 2011/04/23 ] -} -\cs_new:Npn \um_warning:n { \msg_warning:nn {unicode-math} } -\cs_new:Npn \um_trace:n { \msg_trace:nn {unicode-math} } -\cs_new:Npn \um_trace:nx { \msg_trace:nnx {unicode-math} } -\msg_new:nnn {unicode-math} {disable-beamer} -{ - Disabling~ beamer's~ math~ setup.\\ - Please~ load~ beamer~ with~ the~ [professionalfonts]~ class~ option. -} -\msg_new:nnn {unicode-math} {no-tfrac} -{ - Small~ fraction~ command~ \protect\tfrac\ not~ defined.\\ - Load~ amsmath~ or~ define~ it~ manually~ before~ loading~ unicode-math. -} -\msg_new:nnn {unicode-math} {default-math-font} -{ - Defining~ the~ default~ maths~ font~ as~ '#1'. -} -\msg_new:nnn {unicode-math} {setup-implicit} -{ - Setup~ alphabets:~ implicit~ mode. -} -\msg_new:nnn {unicode-math} {setup-explicit} -{ - Setup~ alphabets:~ explicit~ mode. -} -\msg_new:nnn {unicode-math} {alph-initialise} -{ - Initialising~ \@backslashchar math#1. -} -\msg_new:nnn {unicode-math} {setup-alph} -{ - Setup~ alphabet:~ #1. -} -\msg_new:nnnn { unicode-math } { no-font-selected } { - You've~ loaded~ the~ unicode-math~ package,~ but~ you~ forgot~ to~ select \\ - a~ Unicode~ math~ font.~ Please~ select~ one~ with~ the~ \token_to_str:N \setmathfont \\ - command. -} { - Loading~ the~ unicode-math~ package~ without~ using~ a~ Unicode~ math~ font \\ - is~ not~ supported.~ Either~ select~ a~ Unicode~ math~ font,~ or~ don't~ load \\ - the~ unicode-math~ package. -} -\msg_new:nnn {unicode-math} {macro-expected} -{ - I've~ expected~ that~ #1~ is~ a~ macro,~ but~ it~ isn't. -} -\msg_new:nnn {unicode-math} {wrong-meaning} -{ - I've~ expected~ #1~ to~ have~ the~ meaning~ #3,~ but~ it~ has~ the~ meaning~ #2. -} -\msg_new:nnn {unicode-math} {patch-macro} -{ - I'm~ going~ to~ patch~ macro~ #1. -} -\msg_new:nnn { unicode-math } { mathtools } { - I'm~ going~ to~ overwrite~ the~ following~ commands~ from \\ - the~ `mathtools'~ package: \\ - \token_to_str:N \dblcolon,~ - \token_to_str:N \coloneqq,~ - \token_to_str:N \Coloneqq,~ - \token_to_str:N \eqqcolon. \\ - Note~ that~ since~ I~ won't~ overwrite~ the~ other~ colon-like \\ - commands,~ using~ them~ will~ lead~ to~ inconsistencies. -} -\msg_new:nnn { unicode-math } { colonequals } { - I'm~ going~ to~ overwrite~ the~ following~ commands~ from \\ - the~ `colonequals'~ package: \\ - \token_to_str:N \ratio,~ - \token_to_str:N \coloncolon,~ - \token_to_str:N \minuscolon, \\ - \token_to_str:N \colonequals,~ - \token_to_str:N \equalscolon,~ - \token_to_str:N \coloncolonequals. \\ - Note~ that~ since~ I~ won't~ overwrite~ the~ other~ colon-like \\ - commands,~ using~ them~ will~ lead~ to~ inconsistencies. \\ - Furthermore,~ changing~ \token_to_str:N \colonsep \c_space_tl - or~ \token_to_str:N \doublecolonsep \c_space_tl won't~ have \\ - any~ effect~ on~ the~ re-defined~ commands. -} -\cs_new:Npn \usv_set:nnn #1#2#3 { - \tl_set:cn { \um_to_usv:nn {#1}{#2} } {#3} -} -\cs_new:Npn \um_to_usv:nn #1#2 { 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} -\usv_set:nnn {stixsfup}{partial}{"E17C} -\usv_set:nnn {stixsfup}{Greek}{"E17D} -\usv_set:nnn {stixsfup}{greek}{"E196} -\usv_set:nnn {stixsfup}{varTheta}{"E18E} -\usv_set:nnn {stixsfup}{varepsilon}{"E1AF} -\usv_set:nnn {stixsfup}{vartheta}{"E1B0} -\usv_set:nnn {stixsfup}{varkappa}{0000} % ??? -\usv_set:nnn {stixsfup}{varphi}{"E1B1} -\usv_set:nnn {stixsfup}{varrho}{"E1B2} -\usv_set:nnn {stixsfup}{varpi}{"E1B3} -\usv_set:nnn {stixupslash}{Greek}{"E2FC} -\usv_set:nnn {stixbbit}{A}{"E154} -\usv_set:nnn {stixbbit}{B}{"E155} -\usv_set:nnn {stixbbit}{E}{"E156} -\usv_set:nnn {stixbbit}{F}{"E157} -\usv_set:nnn {stixbbit}{G}{"E158} -\usv_set:nnn {stixbbit}{I}{"E159} -\usv_set:nnn {stixbbit}{J}{"E15A} -\usv_set:nnn {stixbbit}{K}{"E15B} -\usv_set:nnn {stixbbit}{L}{"E15C} -\usv_set:nnn {stixbbit}{M}{"E15D} -\usv_set:nnn {stixbbit}{O}{"E15E} -\usv_set:nnn {stixbbit}{S}{"E15F} -\usv_set:nnn {stixbbit}{T}{"E160} -\usv_set:nnn {stixbbit}{U}{"E161} -\usv_set:nnn {stixbbit}{V}{"E162} -\usv_set:nnn {stixbbit}{W}{"E163} -\usv_set:nnn {stixbbit}{X}{"E164} -\usv_set:nnn {stixbbit}{Y}{"E165} -\usv_set:nnn {stixbbit}{a}{"E166} -\usv_set:nnn {stixbbit}{b}{"E167} -\usv_set:nnn {stixbbit}{c}{"E168} -\usv_set:nnn {stixbbit}{f}{"E169} -\usv_set:nnn {stixbbit}{g}{"E16A} -\usv_set:nnn {stixbbit}{h}{"E16B} -\usv_set:nnn {stixbbit}{k}{"E16C} -\usv_set:nnn {stixbbit}{l}{"E16D} -\usv_set:nnn {stixbbit}{m}{"E16E} -\usv_set:nnn {stixbbit}{n}{"E16F} -\usv_set:nnn {stixbbit}{o}{"E170} -\usv_set:nnn {stixbbit}{p}{"E171} -\usv_set:nnn {stixbbit}{q}{"E172} -\usv_set:nnn {stixbbit}{r}{"E173} -\usv_set:nnn {stixbbit}{s}{"E174} -\usv_set:nnn {stixbbit}{t}{"E175} -\usv_set:nnn {stixbbit}{u}{"E176} -\usv_set:nnn {stixbbit}{v}{"E177} -\usv_set:nnn {stixbbit}{w}{"E178} -\usv_set:nnn {stixbbit}{x}{"E179} -\usv_set:nnn {stixbbit}{y}{"E17A} -\usv_set:nnn {stixbbit}{z}{"E17B} -\usv_set:nnn {stixsfit}{Numerals}{"E1B4} -\usv_set:nnn {stixsfit}{partial}{"E1BE} -\usv_set:nnn {stixsfit}{Greek}{"E1BF} -\usv_set:nnn {stixsfit}{greek}{"E1D8} -\usv_set:nnn {stixsfit}{varTheta}{"E1D0} -\usv_set:nnn {stixsfit}{varepsilon}{"E1F1} -\usv_set:nnn {stixsfit}{vartheta}{"E1F2} -\usv_set:nnn {stixsfit}{varkappa}{0000} % ??? -\usv_set:nnn {stixsfit}{varphi}{"E1F3} -\usv_set:nnn {stixsfit}{varrho}{"E1F4} -\usv_set:nnn {stixsfit}{varpi}{"E1F5} -\usv_set:nnn {stixcal}{Latin}{"E22D} -\usv_set:nnn {stixcal}{num}{"E262} -\usv_set:nnn {scr}{num}{48} -\usv_set:nnn {it}{num}{48} -\usv_set:nnn {stixsfitslash}{Latin}{"E294} -\usv_set:nnn {stixsfitslash}{latin}{"E2C8} -\usv_set:nnn {stixsfitslash}{greek}{"E32C} -\usv_set:nnn {stixsfitslash}{varepsilon}{"E37A} -\usv_set:nnn {stixsfitslash}{vartheta}{"E35E} -\usv_set:nnn {stixsfitslash}{varkappa}{"E374} -\usv_set:nnn {stixsfitslash}{varphi}{"E360} -\usv_set:nnn {stixsfitslash}{varrho}{"E376} -\usv_set:nnn {stixsfitslash}{varpi}{"E362} -\usv_set:nnn {stixsfitslash}{digamma}{"E36A} -\usv_set:nnn {stixbfupslash}{Greek}{"E2FD} -\usv_set:nnn {stixbfupslash}{Digamma}{"E369} -\usv_set:nnn {stixbfbb}{A}{"E38A} -\usv_set:nnn {stixbfbb}{B}{"E38B} -\usv_set:nnn {stixbfbb}{E}{"E38D} -\usv_set:nnn {stixbfbb}{F}{"E38E} -\usv_set:nnn {stixbfbb}{G}{"E38F} -\usv_set:nnn {stixbfbb}{I}{"E390} -\usv_set:nnn {stixbfbb}{J}{"E391} -\usv_set:nnn {stixbfbb}{K}{"E392} -\usv_set:nnn {stixbfbb}{L}{"E393} -\usv_set:nnn {stixbfbb}{M}{"E394} -\usv_set:nnn {stixbfbb}{O}{"E395} -\usv_set:nnn {stixbfbb}{S}{"E396} -\usv_set:nnn {stixbfbb}{T}{"E397} -\usv_set:nnn {stixbfbb}{U}{"E398} -\usv_set:nnn {stixbfbb}{V}{"E399} -\usv_set:nnn {stixbfbb}{W}{"E39A} -\usv_set:nnn {stixbfbb}{X}{"E39B} -\usv_set:nnn {stixbfbb}{Y}{"E39C} -\usv_set:nnn {stixbfbb}{a}{"E39D} -\usv_set:nnn {stixbfbb}{b}{"E39E} -\usv_set:nnn {stixbfbb}{c}{"E39F} -\usv_set:nnn {stixbfbb}{f}{"E3A2} -\usv_set:nnn {stixbfbb}{g}{"E3A3} -\usv_set:nnn {stixbfbb}{h}{"E3A4} -\usv_set:nnn {stixbfbb}{k}{"E3A7} -\usv_set:nnn {stixbfbb}{l}{"E3A8} -\usv_set:nnn {stixbfbb}{m}{"E3A9} -\usv_set:nnn {stixbfbb}{n}{"E3AA} -\usv_set:nnn {stixbfbb}{o}{"E3AB} -\usv_set:nnn {stixbfbb}{p}{"E3AC} -\usv_set:nnn {stixbfbb}{q}{"E3AD} -\usv_set:nnn {stixbfbb}{r}{"E3AE} -\usv_set:nnn {stixbfbb}{s}{"E3AF} -\usv_set:nnn {stixbfbb}{t}{"E3B0} -\usv_set:nnn {stixbfbb}{u}{"E3B1} -\usv_set:nnn {stixbfbb}{v}{"E3B2} -\usv_set:nnn {stixbfbb}{w}{"E3B3} -\usv_set:nnn {stixbfbb}{x}{"E3B4} -\usv_set:nnn {stixbfbb}{y}{"E3B5} -\usv_set:nnn {stixbfbb}{z}{"E3B6} -\usv_set:nnn {stixbfsfup}{Numerals}{"E3B7} -\usv_set:nnn {stixbfsfit}{Numerals}{"E1F6} -\usv_set:nnn {stixbfbbit}{A}{"E200} -\usv_set:nnn {stixbfbbit}{B}{"E201} -\usv_set:nnn {stixbfbbit}{E}{"E203} -\usv_set:nnn {stixbfbbit}{F}{"E204} -\usv_set:nnn {stixbfbbit}{G}{"E205} -\usv_set:nnn {stixbfbbit}{I}{"E206} -\usv_set:nnn {stixbfbbit}{J}{"E207} -\usv_set:nnn {stixbfbbit}{K}{"E208} -\usv_set:nnn {stixbfbbit}{L}{"E209} -\usv_set:nnn {stixbfbbit}{M}{"E20A} -\usv_set:nnn {stixbfbbit}{O}{"E20B} -\usv_set:nnn {stixbfbbit}{S}{"E20C} -\usv_set:nnn {stixbfbbit}{T}{"E20D} -\usv_set:nnn {stixbfbbit}{U}{"E20E} -\usv_set:nnn {stixbfbbit}{V}{"E20F} -\usv_set:nnn {stixbfbbit}{W}{"E210} -\usv_set:nnn {stixbfbbit}{X}{"E211} -\usv_set:nnn {stixbfbbit}{Y}{"E212} -\usv_set:nnn {stixbfbbit}{a}{"E213} -\usv_set:nnn {stixbfbbit}{b}{"E214} -\usv_set:nnn {stixbfbbit}{c}{"E215} -\usv_set:nnn {stixbfbbit}{e}{"E217} -\usv_set:nnn {stixbfbbit}{f}{"E218} -\usv_set:nnn {stixbfbbit}{g}{"E219} -\usv_set:nnn {stixbfbbit}{h}{"E21A} -\usv_set:nnn {stixbfbbit}{k}{"E21D} -\usv_set:nnn {stixbfbbit}{l}{"E21E} -\usv_set:nnn {stixbfbbit}{m}{"E21F} -\usv_set:nnn {stixbfbbit}{n}{"E220} -\usv_set:nnn {stixbfbbit}{o}{"E221} -\usv_set:nnn {stixbfbbit}{p}{"E222} -\usv_set:nnn {stixbfbbit}{q}{"E223} -\usv_set:nnn {stixbfbbit}{r}{"E224} -\usv_set:nnn {stixbfbbit}{s}{"E225} -\usv_set:nnn {stixbfbbit}{t}{"E226} -\usv_set:nnn {stixbfbbit}{u}{"E227} -\usv_set:nnn {stixbfbbit}{v}{"E228} -\usv_set:nnn {stixbfbbit}{w}{"E229} -\usv_set:nnn {stixbfbbit}{x}{"E22A} -\usv_set:nnn {stixbfbbit}{y}{"E22B} -\usv_set:nnn {stixbfbbit}{z}{"E22C} -\usv_set:nnn {stixbfcal}{Latin}{"E247} -\usv_set:nnn {stixbfitslash}{Latin}{"E295} -\usv_set:nnn {stixbfitslash}{latin}{"E2C9} -\usv_set:nnn {stixbfitslash}{greek}{"E32D} -\usv_set:nnn {stixsfitslash}{varepsilon}{"E37B} -\usv_set:nnn {stixsfitslash}{vartheta}{"E35F} -\usv_set:nnn {stixsfitslash}{varkappa}{"E375} -\usv_set:nnn {stixsfitslash}{varphi}{"E361} -\usv_set:nnn {stixsfitslash}{varrho}{"E377} -\usv_set:nnn {stixsfitslash}{varpi}{"E363} -\usv_set:nnn {stixsfitslash}{digamma}{"E36B} +\cs_generate_variant:Nn \fontspec_set_family:Nnn {Nx} +\cs_generate_variant:Nn \fontspec_set_fontface:NNnn {NNx} \DeclareDocumentCommand \unimathsetup {m} { - \clist_clear:N \l_um_unknown_keys_clist - \keys_set:nn {unicode-math} {#1} + \keys_set:nn {unicode-math} {#1} } \keys_define:nn {unicode-math} { normal-style .choice_code:n = @@ -800,23 +283,15 @@ \keys_define:nn {unicode-math} { trace .choice: , trace / debug .code:n = { - \msg_redirect_module:nnn { unicode-math } { trace } { warning } + \msg_redirect_module:nnn { unicode-math } { log } { warning } } , trace / on .code:n = { - \msg_redirect_module:nnn { unicode-math } { trace } { trace } + % default } , trace / off .code:n = { - \msg_redirect_module:nnn { unicode-math } { trace } { none } + \msg_redirect_module:nnn { unicode-math } { log } { none } } , } -\clist_new:N \l_um_unknown_keys_clist -\keys_define:nn {unicode-math} { - unknown .code:n = { - \clist_put_right:No \l_um_unknown_keys_clist { - \l_keys_key_tl = {#1} - } - } -} \unimathsetup {math-style=TeX} \unimathsetup {slash-delimiter=ascii} \unimathsetup {trace=off} @@ -824,2384 +299,85 @@ \unimathsetup {active-frac=small} } \ProcessKeysOptions {unicode-math} -\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_in:Nn \@preamblecmds {\do#1} -} -\def\new@mathgroup{\alloc@8\mathgroup\chardef\@cclvi} -\let\newfam\new@mathgroup -\cs_set:Npn \um_set_mathsymbol:nNNn #1#2#3#4 { - \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} } - } - \mathover { % LuaTeX only - \cs_set_protected_nopar:Npn #2 ##1 { \mathop { \um_overbrace:nnn {#1} {#4} {##1} } \limits } - } - \mathunder { % LuaTeX only - \cs_set_protected_nopar:Npn #2 ##1 { \mathop { \um_underbrace:nnn {#1} {#4} {##1} } \limits } - } - }{ - \um_set_mathcode:nnn {#4} {#3} {#1} - } -} -\edef\mathfence{\string\mathfence} -\edef\mathover{\string\mathover} -\edef\mathunder{\string\mathunder} -\cs_new:Npn \um_set_big_operator:nnn #1#2#3 { - \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:Npn \um_set_delcode:nnn #1#2#3 { - \Udelcode#2 = \csname sym#1\endcsname #3 -} -\cs_new:Npn \um_radical:nn #1#2 { - \Uradical \csname sym#1\endcsname #2 \scan_stop: -} -\cs_new:Npn \um_delimiter:Nnn #1#2#3 { - \Udelimiter \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop: -} -\xetex_or_luatex:nnn { \cs_new:Npn \um_accent:Nnn #1#2#3 } { - \Umathaccent \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop: -} { - \Umathaccent \c_um_accent_keyword_tl \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop: -} -\luatex_if_engine:T { - \cs_new_nopar:Npn \um_wide_top_accent:Nnn #1 #2 #3 { - \Umathaccent \mathchar@type #1 \use:c { sym #2 } #3 \scan_stop: - } - \bool_if:NTF \c_um_have_fixed_accents_bool { - \cs_new_nopar:Npn \um_wide_bottom_accent:Nnn #1 #2 #3 { - \Umathaccent bottom~ \mathchar@type #1 \use:c { sym #2 } #3 \scan_stop: - } - \tl_const:Nn \c_um_accent_keyword_tl { fixed } - } { - \tl_const:Nn \c_um_accent_keyword_tl { } - } -} -\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:Npn \char_gmake_mathactive:N #1 { - \global\mathcode `#1 = "8000 \scan_stop: -} -\cs_new:Npn \char_gmake_mathactive:n #1 { - \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:Npn \um_init: { - \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 - \clist_clear:N \l_um_unknown_keys_clist - \seq_clear:N \l_um_missing_alph_seq -} -\DeclareDocumentCommand \setmathfont { O{} m } { - \um_init: - \cs_if_exist:cF { S@ \f@size } { \calculate@math@sizes } - \csname S@\f@size\endcsname - \tl_set:Nn \l_um_mversion_tf {normal} - \DeclareMathVersion{\l_um_mversion_tf} - \tl_set:Nn \l_um_script_features_tl {ScriptStyle} - \tl_set:Nn \l_um_sscript_features_tl {ScriptScriptStyle} - \tl_set:Nn \l_um_script_font_tl {#2} - \tl_set:Nn \l_um_sscript_font_tl {#2} - \keys_set:nn {unicode-math} {#1} - \um_fontspec_select_font:n {#2} - \group_begin: - \fontfamily{\zf@family}\selectfont - \fontspec_if_script:nTF {math} - {\bool_gset_true:N \l_um_ot_math_bool} - {\bool_gset_false:N \l_um_ot_math_bool} - \group_end: - \bool_if:NTF \l_um_init_bool { - \tl_set:Nn \um_symfont_tl {operators} - \msg_trace:nnx {unicode-math} {default-math-font} {#2} - \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 - }{ - \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 - } - \DeclareSymbolFont{\um_symfont_tl} - {\encodingdefault}{\zf@family}{\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 - \dim_compare:nF { \fontdimen 10 \l_um_font == 0pt } { - \DeclareMathSizes { \f@size } { \f@size } - { \um_fontdimen_to_percent:nn{10}{\l_um_font}\dimexpr \f@size pt\relax } - { \um_fontdimen_to_percent:nn{11}{\l_um_font}\dimexpr \f@size pt\relax } - } - \fontspec_select:xn {\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 - } - } {#2} - \DeclareSymbolFont{symbols} - {\encodingdefault}{\zf@family}{\mddefault}{\updefault} - \fontspec_select:xn {\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 - } - } {#2} - \DeclareSymbolFont{largesymbols} - {\encodingdefault}{\zf@family}{\mddefault}{\updefault} - } - \um_input_math_symbol_table: - \um_remap_symbols: - \um_setup_mathactives: - \um_setup_accents: - \um_setup_delcodes: - \um_setup_alphabets: - \ignorespaces -} -\xetex_or_luatex:nnn { \cs_new:Nn \um_get_fontparam:nn } { - \the\fontdimen#1\zf@basefont\relax -}{ - \directlua{fontspec.mathfontdimen("zf@basefont","#2")} -} -\DeclareDocumentCommand \resetmathfont { O{} m } { - \bool_set_false:N \g_um_mainfont_already_set_bool - \setmathfont[#1]{#2} -} -\cs_new:Npn \um_fontspec_select_font:n #1 { - \tl_set:Nx \l_um_font_keyval_tl { - \luatex_if_engine:T { Renderer = Basic, } - 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_select:xn {\l_um_font_keyval_tl} {#1} - \tl_set_eq:NN \l_um_font \zf@basefont -} -\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@parse@term{#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:Npn \um_remap_symbol_parse:nnn #1#2#3 { - \um@parse@term {#3} {\@nil} {#2} { - \um_remap_symbol_noparse:nnn {#1} {#2} {#3} - } -} -\cs_new:Npn \um_remap_symbol_noparse:nnn #1#2#3 { - \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:Npn \um_make_mathactive:nNN #1#2#3 { - \um_set_mathchar:NNnn #2 #3 {\um_symfont_tl} {#1} - \char_gmake_mathactive:n {#1} -} -\cs_new:Npn \um_assign_delcode_noparse:nn #1#2 { - \um_set_delcode:nnn \um_symfont_tl {#1} {#2} -} -\cs_new:Npn \um_assign_delcode_parse:nn #1#2 { - \um@parse@term {#2}{\@nil}{\@nil} { - \um_assign_delcode_noparse:nn {#1} {#2} - } -} -\cs_new:Npn \um_assign_delcode:n #1 { - \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: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_in:Nn \l_um_nolimits_tl {#1} -} -\tl_new:Nn \l_um_radicals_tl {\sqrt} -\cs_new_protected_nopar:Npn \um_new_cramped_style:N #1 { - \xetex_or_luatex:nn { - \quark_new:N #1 - } { - \cs_new_eq:Nc #1 { luatex \cs_to_str: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 -\xetex_if_engine:T { - \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 - } -} -\xetex_or_luatex:nnn { - \cs_new_protected_nopar:Npn \um_font_param:nnnnn #1 #2 #3 #4 #5 -} { - \um_font_param_aux:ccnnnn { um_ #1 :N } { um_set_ #1 :N } - { #2 } { #3 } { #4 } { #5 } -} { - \tl_set:Nn \l_um_tmpa_tl { #1 } - \tl_remove_all_in:Nn \l_um_tmpa_tl { _ } - \um_font_param_aux:ccc { um_ #1 :N } { um_set_ #1 :N } - { luatexUmath \l_um_tmpa_tl } -} -\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 } -} -\xetex_or_luatex:nnn { - \cs_new_protected_nopar:Npn \um_font_param:n #1 -} { } { - \um_font_param:nnnnn { #1 } { 0 } { 0 } { 0 } { 0 } -} -\xetex_or_luatex:nn { - \cs_new_protected_nopar:Npn \um_font_param_aux:NNnnnn #1 #2 #3 #4 #5 #6 { - \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 } -} { - \cs_new_protected_nopar:Npn \um_font_param_aux:NNN #1 #2 #3 { - \cs_new_nopar:Npn #1 ##1 { - #3 ##1 - } - \cs_new_protected_nopar:Npn #2 ##1 ##2 { - #3 ##1 \dim_eval:n { ##2 } - } - } - \cs_generate_variant:Nn \um_font_param_aux:NNN { ccc } -} -\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 } -\keys_define:nn {unicode-math} +\cs_new:Npn \um_warning:n { \msg_warning:nn {unicode-math} } +\cs_new:Npn \um_log:n { \msg_log:nn {unicode-math} } +\cs_new:Npn \um_log:nx { \msg_log:nnx {unicode-math} } +\msg_new:nnn {unicode-math} {no-tfrac} { - 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 -\keys_define:nn {unicode-math} { - range .code:n = { - \bool_set_false:N \l_um_init_bool - \seq_clear:N \l_um_char_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_put_right:Nn \l_um_char_range_seq {##1} - } - } - } -} -\prg_new_conditional:Nnn \um_if_mathalph_decl:n {TF} { - \tl_set:Nx \l_um_tmpa_tl { \trim@spaces@noexp {#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} -} -\newcommand\um@parse@term[4]{ - \seq_map_variable:NNn \l_um_char_range_seq \@ii { - \unless\ifx\@ii\@empty - \@tempswafalse - \expandafter\um@firstchar\expandafter{\@ii} - \ifx\@tempa\um@backslash - \expandafter\ifx\@ii#2\relax - \@tempswatrue - \else - \expandafter\ifx\@ii#3\relax - \@tempswatrue - \fi - \fi - \else - \expandafter\um@parse@range\@ii-\@marker-\@nil#1\@nil - \fi - \if@tempswa - \clist_put_right:Nx \l_um_char_num_range_clist { \int_eval:n {#1} } - #4 - \fi - \fi - } -} -\def\um@firstof#1#2\@nil{#1} -\edef\um@backslash{\expandafter\um@firstof\string\string\@nil} -\def\um@firstchar#1{\edef\@tempa{\expandafter\um@firstof\string#1\@nil}} -\def\um@parse@range#1-#2-#3\@nil#4\@nil{ - \def\@tempa{#1} - \def\@tempb{#2} - \expandafter\ifx\expandafter\@marker\@tempb\relax - \int_compare:nT {#4=#1} \@tempswatrue - \else - \ifx\@empty\@tempb - \int_compare:nT {#4>#1-1} \@tempswatrue - \else - \ifx\@empty\@tempa - \int_compare:nT {#4<#2+1} \@tempswatrue - \else - \int_compare:nT {#4>#1-1} { - \int_compare:nT {#4<#2+1} \@tempswatrue - } - \fi - \fi - \fi -} -\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:Npn \um_new_mathstyle:N #1 { - \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:Npn \um_prepare_mathstyle:n #1 { - \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} - } - } - \exp_not:c {_um_math#1_aux:n} - } -} -\cs_generate_variant:Nn \um_prepare_mathstyle:n {f} -\cs_set:Npn \um_init_alphabet:n #1 { - \um_trace: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_trace: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_trace: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 - } - \um_warn_missing_alphabets: -} -\cs_new:Npn \um_warn_missing_alphabets: { - \seq_if_empty:NF \l_um_missing_alph_seq { - \typeout{ - Package~unicode-math~Warning:~ - missing~math~alphabets~in~font~ \fontname\l_um_font - } - \seq_map_inline:Nn \l_um_missing_alph_seq { - \typeout{\space\space\space\space##1} - } - } -} -\cs_new:Npn \um_setup_math_alphabet:Nnn #1#2#3 { - \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 { \trim@spaces {##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 { \trim@spaces {##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_trace: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_trace: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{g_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:Npn \um_map_char_noparse:nn #1#2 { - \um_set_mathcode:nnnn {#1}{\mathalpha}{\um_symfont_tl}{#2} -} -\cs_new:Npn \um_map_char_parse:nn #1#2 { - \um@parse@term {#1} {\@nil} {\mathalpha} { - \um_map_char_noparse:nn {#1}{#2} - } -} -\cs_new:Npn \um_map_char_single:nnn #1#2#3 { - \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:Npn \um_map_chars_range:nnnn #1#2#3#4 { - \um_map_chars_range:ncc {#1} { \um_to_usv:nn {#2}{#4} } - { \um_to_usv:nn {#3}{#4} } -} -\cs_set:Npn \um_map_chars_Latin:nn #1#2 { - \clist_map_inline:nn {#1} { - \um_map_chars_range:nnnn {26} {##1} {#2} {Latin} - } -} -\cs_set:Npn \um_map_chars_latin:nn #1#2 { - \clist_map_inline:nn {#1} { - \um_map_chars_range:nnnn {26} {##1} {#2} {latin} - } -} -\cs_set:Npn \um_map_chars_greek:nn #1#2 { - \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_set:Npn \um_map_chars_Greek:nn #1#2 { - \clist_map_inline:nn {#1} { - \um_map_chars_range:nnnn {25} {##1} {#2} {Greek} - \um_map_char_single:nnn {##1} {#2} {varTheta} - } -} -\cs_set:Npn \um_map_chars_numbers:nn #1#2 { - \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_set:Npn \um_mathmap_noparse:Nnn #1#2#3 { - \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_set:Npn \um_mathmap_parse:Nnn #1#2#3 { - \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:Npn \um_set_mathalphabet_numbers:Nnn #1#2#3 { - \clist_map_inline:nn {#2} { - \um_set_mathalph_range:nNnnn {10} #1 {##1} {#3} {num} - } -} -\cs_new:Npn \um_set_mathalphabet_Latin:Nnn #1#2#3 { - \clist_map_inline:nn {#2} { - \um_set_mathalph_range:nNnnn {26} #1 {##1} {#3} {Latin} - } -} -\cs_new:Npn \um_set_mathalphabet_latin:Nnn #1#2#3 { - \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:Npn \um_set_mathalphabet_Greek:Nnn #1#2#3 { - \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:Npn \um_set_mathalphabet_greek:Nnn #1#2#3 { - \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:Npn \um_config_up_num:n #1 { - \um_map_chars_numbers:nn {up}{#1} - \um_set_mathalphabet_numbers:Nnn \mathup {up}{#1} -} -\cs_new:Npn \um_config_up_Latin:n #1 { - \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:Npn \um_config_up_latin:n #1 { - \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:Npn \um_config_up_Greek:n #1 { - \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:Npn \um_config_up_greek:n #1 { - \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:Npn \um_config_up_misc:n #1 { - \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:Npn \um_config_it_Latin:n #1 { - \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:Npn \um_config_it_latin:n #1 { - \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:Npn \um_config_it_Greek:n #1 { - \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:Npn \um_config_it_greek:n #1 { - \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:Npn \um_config_it_misc:n #1 { - \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:Npn \um_config_bb_latin:n #1 { - \um_set_mathalphabet_latin:Nnn \mathbb {up,it}{#1} -} -\cs_new:Npn \um_config_bb_Latin:n #1 { - \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:Npn \um_config_bb_num:n #1 { - \um_set_mathalphabet_numbers:Nnn \mathbb {up}{#1} -} -\cs_new:Npn \um_config_bb_misc:n #1 { - \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:Npn \um_config_bbit_misc:n #1 { - \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:Npn \um_config_scr_Latin:n #1 { - \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:Npn \um_config_scr_latin:n #1 { - \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:Npn \um_config_cal_Latin:n #1 { - \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:Npn \um_config_frak_Latin:n #1 { - \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:Npn \um_config_frak_latin:n #1 { - \um_set_mathalphabet_latin:Nnn \mathfrak {up,it}{#1} -} -\cs_new:Npn \um_config_sfup_num:n #1 { - \um_set_mathalphabet_numbers:Nnn \mathsf {up}{#1} - \um_set_mathalphabet_numbers:Nnn \mathsfup {up}{#1} -} -\cs_new:Npn \um_config_sfup_Latin:n #1 { - \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:Npn \um_config_sfup_latin:n #1 { - \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:Npn \um_config_sfit_Latin:n #1 { - \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:Npn \um_config_sfit_latin:n #1 { - \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:Npn \um_config_tt_num:n #1 { - \um_set_mathalphabet_numbers:Nnn \mathtt {up}{#1} -} -\cs_new:Npn \um_config_tt_Latin:n #1 { - \um_set_mathalphabet_Latin:Nnn \mathtt {up,it}{#1} -} -\cs_new:Npn \um_config_tt_latin:n #1 { - \um_set_mathalphabet_latin:Nnn \mathtt {up,it}{#1} -} -\cs_new:Npn \um_config_bfit_Latin:n #1 { - \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:Npn \um_config_bfit_latin:n #1 { - \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:Npn \um_config_bfit_Greek:n #1 { - \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:Npn \um_config_bfit_greek:n #1 { - \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:Npn \um_config_bfit_misc:n #1 { - \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:Npn \um_config_bfup_num:n #1 { - \um_set_mathalphabet_numbers:Nnn \mathbf {up}{#1} - \um_set_mathalphabet_numbers:Nnn \mathbfup {up}{#1} -} -\cs_new:Npn \um_config_bfup_Latin:n #1 { - \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:Npn \um_config_bfup_latin:n #1 { - \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:Npn \um_config_bfup_Greek:n #1 { - \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:Npn \um_config_bfup_greek:n #1 { - \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:Npn \um_config_bfup_misc:n #1 { - \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:Npn \um_config_bffrak_Latin:n #1 { - \um_set_mathalphabet_Latin:Nnn \mathbffrak {up,it}{#1} -} -\cs_new:Npn \um_config_bffrak_latin:n #1 { - \um_set_mathalphabet_latin:Nnn \mathbffrak {up,it}{#1} -} -\cs_new:Npn \um_config_bfscr_Latin:n #1 { - \um_set_mathalphabet_Latin:Nnn \mathbfscr {up,it}{#1} -} -\cs_new:Npn \um_config_bfscr_latin:n #1 { - \um_set_mathalphabet_latin:Nnn \mathbfscr {up,it}{#1} -} -\cs_new:Npn \um_config_bfcal_Latin:n #1 { - \um_set_mathalphabet_Latin:Nnn \mathbfcal {up,it}{#1} -} -\cs_new:Npn \um_config_bfsfup_num:n #1 { - \um_set_mathalphabet_numbers:Nnn \mathbfsf {up}{#1} - \um_set_mathalphabet_numbers:Nnn \mathbfsfup {up}{#1} -} -\cs_new:Npn \um_config_bfsfup_Latin:n #1 { - \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:Npn \um_config_bfsfup_latin:n #1 { - \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:Npn \um_config_bfsfup_Greek:n #1 { - \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:Npn \um_config_bfsfup_greek:n #1 { - \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:Npn \um_config_bfsfup_misc:n #1 { - \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:Npn \um_config_bfsfit_Latin:n #1 { - \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:Npn \um_config_bfsfit_latin:n #1 { - \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:Npn \um_config_bfsfit_Greek:n #1 { - \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:Npn \um_config_bfsfit_greek:n #1 { - \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:Npn \um_config_bfsfit_misc:n #1 { - \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} - } - } -} -\xetex_or_luatex:nnn { \cs_set: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}} - } - } - } - { - \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 { - \exp_not:n {\_um_sym:nnn{##1}{##2}{##3}} - } - } -\CatchFileEdef \g_um_mathtable_tl {unicode-math-table.tex} {\um_symbol_setup:} -\cs_new:Npn \um_input_math_symbol_table: {\g_um_mathtable_tl} -\begingroup - \char_set_catcode_other:N \^ - \cs_gset:Npn \um_cs_set_eq_active_char:Nw #1 = "#2 \q_nil { - \lowercase{ - \tl_rescan:nn { - \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 \$ - }{ - \global\let#1=^^^^^#2 - } - } - } - \cs_gnew:Npn \um_active_char_set:wc "#1 \q_nil #2 { - \lowercase { - \tl_rescan:nn { - \catcode`\_=11\relax - \catcode`\:=11\relax - \catcode`\^=7\relax - }{ - \protected\gdef^^^^^#1{\csname #2\endcsname}% - } - } - } -\endgroup -\AtBeginDocument{\um_define_math_chars:} -\cs_set: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:Npn \um_nprimes:Nn #1#2 { - \um_superscript:n { - #1 - \prg_replicate:nn {#2-1} { \mskip \g_um_primekern_muskip #1 } - } -} -\cs_new:Npn \um_nprimes_select:nn #1#2 { - \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:Npn \um_nbackprimes_select:nn #1#2 { - \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:Npn \um_scanprime_collect:N #1 { - \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 + Small~ fraction~ command~ \protect\tfrac\ not~ defined.\\ + Load~ amsmath~ or~ define~ it~ manually~ before~ loading~ unicode-math. } -\cs_new:Npn \um_scan_sup_backprime: { - \int_zero:N \l_um_primecount_int - \um_scanbackprime_collect:N \um_backprime_single_mchar +\msg_new:nnn {unicode-math} {default-math-font} +{ + Defining~ the~ default~ maths~ font~ as~ '\l_um_fontname_tl'. } -\cs_new:Npn \um_scan_sup_backdprime: { - \int_set:Nn \l_um_primecount_int {1} - \um_scanbackprime_collect:N \um_backprime_single_mchar +\msg_new:nnn {unicode-math} {setup-implicit} +{ + Setup~ alphabets:~ implicit~ mode. } -\cs_new:Npn \um_scan_sup_backtrprime: { - \int_set:Nn \l_um_primecount_int {2} - \um_scanbackprime_collect:N \um_backprime_single_mchar +\msg_new:nnn {unicode-math} {setup-explicit} +{ + Setup~ alphabets:~ explicit~ mode. } -\cs_new:Npn \um_scanbackprime_collect:N #1 { - \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} - } - } - } - } - } - } - } +\msg_new:nnn {unicode-math} {alph-initialise} +{ + Initialising~ \@backslashchar math#1. } -\AtBeginDocument{\um_define_prime_commands: \um_define_prime_chars:} -\cs_set: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 +\msg_new:nnn {unicode-math} {setup-alph} +{ + Setup~ alphabet:~ #1. } -\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:} -\xetex_or_luatex:nnn { \cs_set: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 - } - } +\msg_new:nnnn { unicode-math } { no-font-selected } { + You've~ loaded~ the~ unicode-math~ package,~ but~ you~ forgot~ to~ select \\ + a~ Unicode~ math~ font.~ Please~ select~ one~ with~ the~ \token_to_str:N \setmathfont \\ + command. } { - \@ifpackageloaded { amsmath } { } { - \cs_set:Npn \root ##1 \of ##2 { - \luatexUroot \l_um_radical_sqrt_tl { ##1 } { ##2 } - } - } -} -\cs_new:Npn \um_fontdimen_to_percent:nn #1#2 { - \strip@pt\dimexpr\fontdimen#1#2*65536/100\relax -} -\cs_new:Npn \um_mathstyle_scale:Nnn #1#2#3 { - \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_set:Npn \um_setup_active_superscript:nn #1#2 { - \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_set:Npn \um_setup_active_subscript:nn #1#2 { - \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 \l_peek_true_aux_tl { \exp_not:n{ #1 } } - \tl_set_eq:NN \l_peek_true_tl \c_peek_true_remove_next_tl - \tl_set:Nx \l_peek_false_tl {\exp_not:n{\group_align_safe_end: #2}} - \group_align_safe_begin: - \peek_after:NN \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 - } - { \l_peek_false_tl } - { \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 - \l_peek_true_tl - } - {\l_peek_false_tl} -} -\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: -\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\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: - \xetex_or_luatex:nnn { #2 #1 #3 } { #6 } { #5 } - } { - \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} { - \xetex_if_engine:T { - \tl_remove_in: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 - \xetex_if_engine:T { - \def \resetMathstrut@ {% - \setbox\z@\hbox{$($}%) - \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@ - } - } - \xetex_if_engine:T { - \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 - } + Loading~ the~ unicode-math~ package~ without~ using~ a~ Unicode~ math~ font \\ + is~ not~ supported.~ Either~ select~ a~ Unicode~ math~ font,~ or~ don't~ load \\ + the~ unicode-math~ package. } -\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: +\msg_new:nnn { unicode-math } { missing-alphabets } + { + Missing~math~alphabets~in~font~ "\fontname\l_um_font" \\ \\ + \seq_map_function:NN \l_um_missing_alph_seq \um_print_indent:n } +\cs_new:Nn \um_print_indent:n { \space\space\space\space #1 \\ } +\msg_new:nnn {unicode-math} {macro-expected} +{ + I've~ expected~ that~ #1~ is~ a~ macro,~ but~ it~ isn't. } -\cs_set:Npn \| {\Vert} -\cs_set:Npn \mathellipsis {\mathinner{\unicodeellipsis}} -\cs_set:Npn \cdots {\mathinner{\unicodecdots}} -\xetex_or_luatex:nnn { \cs_new_protected_nopar:Npn \um_setup_accents: } { - \def\widehat{\hat} - \def\widetilde{\tilde} - \def\overrightarrow{\vec} -} { - \cs_gset_protected_nopar:Npx \widehat { - \um_wide_top_accent:Nnn \mathaccent { \um_symfont_tl } { "0302 } - } - \cs_gset_protected_nopar:Npx \widetilde { - \um_wide_top_accent:Nnn \mathaccent { \um_symfont_tl } { "0303 } - } - \cs_gset_protected_nopar:Npx \overleftarrow { - \um_wide_top_accent:Nnn \mathaccent { \um_symfont_tl } { "20D6 } - } - \cs_gset_protected_nopar:Npx \overrightarrow { - \um_wide_top_accent:Nnn \mathaccent { \um_symfont_tl } { "20D7 } - } - \cs_gset_protected_nopar:Npx \overleftrightarrow { - \um_wide_top_accent:Nnn \mathaccent { \um_symfont_tl } { "20E1 } - } - \bool_if:NT \c_um_have_fixed_accents_bool { - \cs_gset_protected_nopar:Npx \underrightharpoondown { - \um_wide_bottom_accent:Nnn \mathaccent { \um_symfont_tl } { "20EC } - } - \cs_gset_protected_nopar:Npx \underleftharpoondown { - \um_wide_bottom_accent:Nnn \mathaccent { \um_symfont_tl } { "20ED } - } - \cs_gset_protected_nopar:Npx \underleftarrow { - \um_wide_bottom_accent:Nnn \mathaccent { \um_symfont_tl } { "20EE } - } - \cs_gset_protected_nopar:Npx \underrightarrow { - \um_wide_bottom_accent:Nnn \mathaccent { \um_symfont_tl } { "20EF } - } - } +\msg_new:nnn {unicode-math} {wrong-meaning} +{ + I've~ expected~ #1~ to~ have~ the~ meaning~ #3,~ but~ it~ has~ the~ meaning~ #2. } -\cs_set_eq:NN \um_text_slash: \slash -\cs_set:Npn \slash { - \mode_if_math:TF {\mathslash} {\um_text_slash:} +\msg_new:nnn {unicode-math} {patch-macro} +{ + I'm~ going~ to~ patch~ macro~ #1. } -\AtEndOfPackageFile * { mathtools } { - \xetex_if_engine:T { - \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 - \radical \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 } +\msg_new:nnn { unicode-math } { mathtools } { + I'm~ going~ to~ overwrite~ the~ following~ commands~ from \\ + the~ `mathtools'~ package: \\ + \token_to_str:N \dblcolon,~ + \token_to_str:N \coloneqq,~ + \token_to_str:N \Coloneqq,~ + \token_to_str:N \eqqcolon. \\ + Note~ that~ since~ I~ won't~ overwrite~ the~ other~ colon-like \\ + commands,~ using~ them~ will~ lead~ to~ inconsistencies. } -\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 } +\msg_new:nnn { unicode-math } { colonequals } { + I'm~ going~ to~ overwrite~ the~ following~ commands~ from \\ + the~ `colonequals'~ package: \\ + \token_to_str:N \ratio,~ + \token_to_str:N \coloncolon,~ + \token_to_str:N \minuscolon, \\ + \token_to_str:N \colonequals,~ + \token_to_str:N \equalscolon,~ + \token_to_str:N \coloncolonequals. \\ + Note~ that~ since~ I~ won't~ overwrite~ the~ other~ colon-like \\ + commands,~ using~ them~ will~ lead~ to~ inconsistencies. \\ + Furthermore,~ changing~ \token_to_str:N \colonsep \c_space_tl + or~ \token_to_str:N \doublecolonsep \c_space_tl won't~ have \\ + any~ effect~ on~ the~ re-defined~ commands. } -\@ifclassloaded{beamer}{ - \ifbeamer@suppressreplacements\else - \um_warning:n {disable-beamer} - \beamer@suppressreplacementstrue - \fi -}{} -\ExplSyntaxOff +\luatex_if_engine:T { \usepackage{unicode-math-luatex} \endinput } +\xetex_if_engine:T { \usepackage{unicode-math-xetex} \endinput } |