From 22732cc95c18343889729d2b33cadcaa09561171 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 29 Jul 2018 21:16:19 +0000 Subject: unicode-math (29jul18) git-svn-id: svn://tug.org/texlive/trunk@48309 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/unicode-math/unicode-math-luatex.sty | 384 ++++++++++++--------- .../tex/latex/unicode-math/unicode-math-xetex.sty | 280 +++++++++------ .../tex/latex/unicode-math/unicode-math.sty | 2 +- 3 files changed, 407 insertions(+), 259 deletions(-) (limited to 'Master/texmf-dist/tex/latex/unicode-math') diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty index 0fe53583f55..46768acc474 100644 --- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty +++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty @@ -43,7 +43,7 @@ %%^^A%% Metadata for the package code, including files and versioning \ProvidesExplPackage{unicode-math-luatex} - {2018/02/02} {v0.8l} {Unicode maths in XeLaTeX and LuaLaTeX} + {2018/07/29} {v0.8m} {Unicode maths in XeLaTeX and LuaLaTeX} %%^^A%% um-code-opening.dtx -- part of UNICODE-MATH %%^^A%% Assorted initialisation tasks, including some low-level function definitions. @@ -179,7 +179,7 @@ %%^^A%% um-code-variables.dtx -- part of UNICODE-MATH %%^^A%% Declaration of all code-level variables used in the package. -\bool_new:N \l__um_ot_math_bool +\bool_new:N \g__um_ot_math_bool \bool_new:N \g__um_main_font_defined_bool \bool_new:N \l__um_init_bool \bool_new:N \l__um_implicit_alph_bool @@ -215,16 +215,28 @@ \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.} +\tl_new:N \l__um_style_tl +\tl_new:N \l__um_family_tl +\tl_new:N \l__um_alphabet_tl +\tl_new:N \l__um_fontname_tl +\tl_new:N \l__um_symfont_label_tl +\tl_new:N \l__um_remap_style_tl +\tl_new:N \l__um_fam_two_tl +\tl_new:N \l__um_fam_three_tl +\tl_new:N \l__um_curr_named_slot +\tl_new:N \l__um_tmpa_tl \tl_new:N \l__um_mathstyle_tl \tl_new:N \l__um_radicals_tl \tl_new:N \l__um_nolimits_tl +\tl_new:N \l__um_trial_family_tl \tl_new:N \g__um_operator_mathfont_tl \tl_new:N \g__um_slash_delimiter_usv +\tl_new:N \g__um_mathparam_settings_tl \tl_new:N \g__um_mathtable_tl \tl_new:N \g__um_fontname_tl \tl_new:N \g__um_mversion_tl \tl_new:N \g__um_symfont_tl -\tl_new:N \g__um_font_keyval_tl +\tl_new:N \l__um_font_keyval_tl \tl_new:N \g__um_family_tl \tl_new:N \g__um_style_tl \tl_new:N \g__um_remap_style_tl @@ -236,16 +248,20 @@ \clist_new:N \g__um_char_nrange_clist \clist_new:N \g__um_unknown_keys_clist \clist_new:N \g__um_alphabet_clist +\clist_new:N \l__um_mathmap_charints_clist +\clist_new:N \l__um_unknown_keys_clist +\clist_new:N \l__um_font_keyval_clist +\clist_new:N \l__um_alphabet_clist \clist_new:N \g__um_bad_alpha_clist -\clist_put_right:Nx \g__um_bad_alpha_clist { \tl_to_str:n {bf} } -\clist_put_right:Nx \g__um_bad_alpha_clist { \tl_to_str:n {sf} } -\clist_put_right:Nx \g__um_bad_alpha_clist { \tl_to_str:n {bfsf} } +\clist_gput_right:Nx \g__um_bad_alpha_clist { \tl_to_str:n {bf} } +\clist_gput_right:Nx \g__um_bad_alpha_clist { \tl_to_str:n {sf} } +\clist_gput_right:Nx \g__um_bad_alpha_clist { \tl_to_str:n {bfsf} } \seq_new:N \l__um_missing_alph_seq \seq_new:N \g__um_mathalph_seq \seq_new:N \g__um_char_range_seq \seq_new:N \g__um_mclass_range_seq \seq_new:N \g__um_mathclasses_seq -\seq_set_from_clist:Nn \g__um_mathclasses_seq +\seq_gset_from_clist:Nn \g__um_mathclasses_seq { \mathord,\mathalpha,\mathbin,\mathrel,\mathpunct, \mathop, @@ -286,7 +302,7 @@ \@onlypreamble \setmathfontface \NewDocumentCommand \setoperatorfont {m} { - \tl_set:Nn \g__um_operator_mathfont_tl {#1} + \tl_gset:Nn \g__um_operator_mathfont_tl {#1} } \setoperatorfont{\mathrm} \NewDocumentCommand \addnolimits {m} @@ -327,66 +343,66 @@ } \__um_keys_choices:nn {mathup} { - {sym} { \bool_set_false:N \g__um_mathrm_text_bool } - {text} { \bool_set_true:N \g__um_mathrm_text_bool } + {sym} { \bool_gset_false:N \g__um_mathrm_text_bool } + {text} { \bool_gset_true:N \g__um_mathrm_text_bool } } \__um_keys_choices:nn {mathrm} { - {sym} { \bool_set_false:N \g__um_mathrm_text_bool } - {text} { \bool_set_true:N \g__um_mathrm_text_bool } + {sym} { \bool_gset_false:N \g__um_mathrm_text_bool } + {text} { \bool_gset_true:N \g__um_mathrm_text_bool } } \__um_keys_choices:nn {mathit} { - {sym} { \bool_set_false:N \g__um_mathit_text_bool } - {text} { \bool_set_true:N \g__um_mathit_text_bool } + {sym} { \bool_gset_false:N \g__um_mathit_text_bool } + {text} { \bool_gset_true:N \g__um_mathit_text_bool } } \__um_keys_choices:nn {mathbf} { - {sym} { \bool_set_false:N \g__um_mathbf_text_bool } - {text} { \bool_set_true:N \g__um_mathbf_text_bool } + {sym} { \bool_gset_false:N \g__um_mathbf_text_bool } + {text} { \bool_gset_true:N \g__um_mathbf_text_bool } } \__um_keys_choices:nn {mathsf} { - {sym} { \bool_set_false:N \g__um_mathsf_text_bool } - {text} { \bool_set_true:N \g__um_mathsf_text_bool } + {sym} { \bool_gset_false:N \g__um_mathsf_text_bool } + {text} { \bool_gset_true:N \g__um_mathsf_text_bool } } \__um_keys_choices:nn {mathtt} { - {sym} { \bool_set_false:N \g__um_mathtt_text_bool } - {text} { \bool_set_true:N \g__um_mathtt_text_bool } + {sym} { \bool_gset_false:N \g__um_mathtt_text_bool } + {text} { \bool_gset_true:N \g__um_mathtt_text_bool } } \__um_keys_choices:nn {normal-style} { {ISO} { - \bool_set_false:N \g__um_literal_bool - \bool_set_false:N \g__um_upGreek_bool - \bool_set_false:N \g__um_upgreek_bool - \bool_set_false:N \g__um_upLatin_bool - \bool_set_false:N \g__um_uplatin_bool + \bool_gset_false:N \g__um_literal_bool + \bool_gset_false:N \g__um_upGreek_bool + \bool_gset_false:N \g__um_upgreek_bool + \bool_gset_false:N \g__um_upLatin_bool + \bool_gset_false:N \g__um_uplatin_bool } {TeX} { - \bool_set_false:N \g__um_literal_bool - \bool_set_true:N \g__um_upGreek_bool - \bool_set_false:N \g__um_upgreek_bool - \bool_set_false:N \g__um_upLatin_bool - \bool_set_false:N \g__um_uplatin_bool + \bool_gset_false:N \g__um_literal_bool + \bool_gset_true:N \g__um_upGreek_bool + \bool_gset_false:N \g__um_upgreek_bool + \bool_gset_false:N \g__um_upLatin_bool + \bool_gset_false:N \g__um_uplatin_bool } {french} { - \bool_set_false:N \g__um_literal_bool - \bool_set_true:N \g__um_upGreek_bool - \bool_set_true:N \g__um_upgreek_bool - \bool_set_true:N \g__um_upLatin_bool - \bool_set_false:N \g__um_uplatin_bool + \bool_gset_false:N \g__um_literal_bool + \bool_gset_true:N \g__um_upGreek_bool + \bool_gset_true:N \g__um_upgreek_bool + \bool_gset_true:N \g__um_upLatin_bool + \bool_gset_false:N \g__um_uplatin_bool } {upright} { - \bool_set_false:N \g__um_literal_bool - \bool_set_true:N \g__um_upGreek_bool - \bool_set_true:N \g__um_upgreek_bool - \bool_set_true:N \g__um_upLatin_bool - \bool_set_true:N \g__um_uplatin_bool + \bool_gset_false:N \g__um_literal_bool + \bool_gset_true:N \g__um_upGreek_bool + \bool_gset_true:N \g__um_upgreek_bool + \bool_gset_true:N \g__um_upLatin_bool + \bool_gset_true:N \g__um_uplatin_bool } {literal} { - \bool_set_true:N \g__um_literal_bool + \bool_gset_true:N \g__um_literal_bool } } \__um_keys_choices:nn {math-style} @@ -415,74 +431,74 @@ \__um_keys_choices:nn {bold-style} { {ISO} { - \bool_set_false:N \g__um_bfliteral_bool - \bool_set_false:N \g__um_bfupGreek_bool - \bool_set_false:N \g__um_bfupgreek_bool - \bool_set_false:N \g__um_bfupLatin_bool - \bool_set_false:N \g__um_bfuplatin_bool + \bool_gset_false:N \g__um_bfliteral_bool + \bool_gset_false:N \g__um_bfupGreek_bool + \bool_gset_false:N \g__um_bfupgreek_bool + \bool_gset_false:N \g__um_bfupLatin_bool + \bool_gset_false:N \g__um_bfuplatin_bool } {TeX} { - \bool_set_false:N \g__um_bfliteral_bool - \bool_set_true:N \g__um_bfupGreek_bool - \bool_set_false:N \g__um_bfupgreek_bool - \bool_set_true:N \g__um_bfupLatin_bool - \bool_set_true:N \g__um_bfuplatin_bool + \bool_gset_false:N \g__um_bfliteral_bool + \bool_gset_true:N \g__um_bfupGreek_bool + \bool_gset_false:N \g__um_bfupgreek_bool + \bool_gset_true:N \g__um_bfupLatin_bool + \bool_gset_true:N \g__um_bfuplatin_bool } {upright} { - \bool_set_false:N \g__um_bfliteral_bool - \bool_set_true:N \g__um_bfupGreek_bool - \bool_set_true:N \g__um_bfupgreek_bool - \bool_set_true:N \g__um_bfupLatin_bool - \bool_set_true:N \g__um_bfuplatin_bool + \bool_gset_false:N \g__um_bfliteral_bool + \bool_gset_true:N \g__um_bfupGreek_bool + \bool_gset_true:N \g__um_bfupgreek_bool + \bool_gset_true:N \g__um_bfupLatin_bool + \bool_gset_true:N \g__um_bfuplatin_bool } {literal} { - \bool_set_true:N \g__um_bfliteral_bool + \bool_gset_true:N \g__um_bfliteral_bool } } \__um_keys_choices:nn {sans-style} { - {italic} { \bool_set_false:N \g__um_upsans_bool } - {upright} { \bool_set_true:N \g__um_upsans_bool } - {literal} { \bool_set_true:N \g__um_sfliteral_bool } + {italic} { \bool_gset_false:N \g__um_upsans_bool } + {upright} { \bool_gset_true:N \g__um_upsans_bool } + {literal} { \bool_gset_true:N \g__um_sfliteral_bool } } \__um_keys_choices:nn {nabla} { {upright} { - \bool_set_false:N \g__um_literal_Nabla_bool - \bool_set_true:N \g__um_upNabla_bool + \bool_gset_false:N \g__um_literal_Nabla_bool + \bool_gset_true:N \g__um_upNabla_bool } {italic} { - \bool_set_false:N \g__um_literal_Nabla_bool - \bool_set_false:N \g__um_upNabla_bool + \bool_gset_false:N \g__um_literal_Nabla_bool + \bool_gset_false:N \g__um_upNabla_bool } {literal} { - \bool_set_true:N \g__um_literal_Nabla_bool + \bool_gset_true:N \g__um_literal_Nabla_bool } } \__um_keys_choices:nn {partial} { {upright} { - \bool_set_false:N \g__um_literal_partial_bool - \bool_set_true:N \g__um_uppartial_bool + \bool_gset_false:N \g__um_literal_partial_bool + \bool_gset_true:N \g__um_uppartial_bool } {italic} { - \bool_set_false:N \g__um_literal_partial_bool - \bool_set_false:N \g__um_uppartial_bool + \bool_gset_false:N \g__um_literal_partial_bool + \bool_gset_false:N \g__um_uppartial_bool } {literal} { - \bool_set_true:N \g__um_literal_partial_bool + \bool_gset_true:N \g__um_literal_partial_bool } } \__um_keys_choices:nn {colon} { - {literal} { \bool_set_true:N \g__um_literal_colon_bool } - {TeX} { \bool_set_false:N \g__um_literal_colon_bool } + {literal} { \bool_gset_true:N \g__um_literal_colon_bool } + {TeX} { \bool_gset_false:N \g__um_literal_colon_bool } } \__um_keys_choices:nn {slash-delimiter} { - {ascii} { \tl_set:Nn \g__um_slash_delimiter_usv {"002F} } - {frac} { \tl_set:Nn \g__um_slash_delimiter_usv {"2044} } - {div} { \tl_set:Nn \g__um_slash_delimiter_usv {"2215} } + {ascii} { \tl_gset:Nn \g__um_slash_delimiter_usv {"002F} } + {frac} { \tl_gset:Nn \g__um_slash_delimiter_usv {"2044} } + {div} { \tl_gset:Nn \g__um_slash_delimiter_usv {"2215} } } \__um_keys_choices:nn {active-frac} { @@ -894,7 +910,7 @@ \exp_not:n { \__um_sym:nnn {##1} {##2} {##3} } } } -\tl_set_from_file_x:Nnn \g__um_mathtable_tl {\__um_symbol_setup:} {unicode-math-table.tex} +\tl_gset_from_file_x:Nnn \g__um_mathtable_tl {\__um_symbol_setup:} {unicode-math-table.tex} \cs_new:Nn \__um_input_math_symbol_table: {\g__um_mathtable_tl} \AtBeginDocument{\__um_define_math_chars:} \cs_new:Nn \__um_define_math_chars: @@ -975,9 +991,19 @@ { \tl_if_in:NnTF \l__um_radicals_tl {#2} { - \cs_gset_protected_nopar:cpx {\cs_to_str:N #2 sign} - { \__um_radical:nn {#1} {#3} } - \tl_set:cn {l__um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #3} + \cs_if_exist:NF #2 + { + %% todo: check if the check is necessary + \cs_gset_protected_nopar:Npx #2 { \exp_not:c { \cs_to_str:N #2 sign } } + } + \cs_gset_protected_nopar:cpx { \cs_to_str:N #2 sign } + { + \__um_radical:nn {#1} {#3} + } + \tl_if_exist:cF {c__um_radical_\cs_to_str:N #2_tl} + { + \tl_const:cn {c__um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #3} + } } { \__um_set_delcode:nnn {#1} {#3} {#3} @@ -1045,22 +1071,22 @@ % integrate with fontspec's \setmathrm etc: \tl_case:Nn #1 { - \mathrm { \cs_set_eq:NN \g__fontspec_mathrm_tl \l__um_tmpa_tl } - \mathsf { \cs_set_eq:NN \g__fontspec_mathsf_tl \l__um_tmpa_tl } - \mathtt { \cs_set_eq:NN \g__fontspec_mathtt_tl \l__um_tmpa_tl } + \mathrm { \cs_gset_eq:NN \g__fontspec_mathrm_tl \l__um_tmpa_tl } + \mathsf { \cs_gset_eq:NN \g__fontspec_mathsf_tl \l__um_tmpa_tl } + \mathtt { \cs_gset_eq:NN \g__fontspec_mathtt_tl \l__um_tmpa_tl } } } \cs_set:Npn \use@mathgroup #1 #2 { - \__um_group_begin: + \math@bgroup \cs_if_eq:cNF {M@\f@encoding} #1 {#1} - \__um_switchto_literal: + \__um_switch_to:n {literal} \__um_mathgroup_set:n {#2} - \__um_group_end:n + \math@egroup } \cs_set:Npn \operator@font { - \__um_switchto_literal: + \__um_switch_to:n {literal} \__um_fontswitch:n { \g__um_operator_mathfont_tl } } \cs_set:Nn \__um_fontswitch:n @@ -1192,7 +1218,7 @@ \cs_new:Nn \__um_init:n { \tl_set:Nn \l__um_fontname_tl {#1} - \bool_set_true:N \l__um_ot_math_bool + \bool_gset_true:N \g__um_ot_math_bool \tl_set:Nn \l__um_mversion_tl {normal} \tl_set:Nn \l__um_symfont_label_tl {operators} @@ -1241,8 +1267,8 @@ \exp_last_unbraced:NNo \__um_fontface_gset_eq:NN \g__um_trial_font \font@name \fontspec_if_script:nF {math} { - \bool_gset_false:N \l__um_ot_math_bool - \bool_gset_false:N \l__um_init_bool + \bool_gset_false:N \g__um_ot_math_bool + \bool_gset_false:N \g__um_init_bool } \group_end: @@ -1290,14 +1316,14 @@ } \fontspec_if_script:nF {math} { - \bool_gset_false:N \l__um_ot_math_bool - \bool_gset_false:N \l__um_init_bool + \bool_gset_false:N \g__um_ot_math_bool + \bool_gset_false:N \g__um_init_bool } \group_end: } -\tl_set:Nn \g__um_main_font_cmd_tl { \l__um_font } -\tl_set:Nn \g__um_sqrt_font_cmd_tl { \l__um_font } -\tl_set:Nn \g__um_prime_font_cmd_tl { \l__um_font } +\tl_gset:Nn \g__um_main_font_cmd_tl { \l__um_font } +\tl_gset:Nn \g__um_sqrt_font_cmd_tl { \l__um_font } +\tl_gset:Nn \g__um_prime_font_cmd_tl { \l__um_font } \cs_new_protected:Nn \__um_luatex_copy_fontdimens: { \__um_fontdimen_from_param:nn {10} {ScriptPercentScaleDown} @@ -1506,16 +1532,16 @@ \scpolint\npolint\pointint\sqint\intlarhk\intx \intcap\intcup\upint\lowint } -\tl_set:Nn \l__um_radicals_tl {\sqrt \longdivision} +\tl_set:Nn \l__um_radicals_tl {\sqrt \longdivision \cuberoot \fourthroot} \cs_set:Nn \__um_mathparam_restore: { - \check@mathfonts - \tl_use:N \g__um_mathparam_store_tl + \glb@settings + \tl_use:N \g__um_mathparam_settings_tl } \cs_set:Nn \__um_mathparam_store: { - \check@mathfonts - \tl_gset:Nx \g__um_mathparam_store_tl + \glb@settings + \tl_gset:Nx \g__um_mathparam_settings_tl { \__um_mathparam_store_aux:N \displaystyle \__um_mathparam_store_aux:N \textstyle @@ -1525,51 +1551,51 @@ } \cs_set:Nn \__um_mathparam_store_aux:N { - \Umathquad #1 = \the \Umathquad #1 - \Umathaxis #1 = \the \Umathaxis #1 - \Umathoperatorsize #1 = \the \Umathoperatorsize #1 - \Umathoverbarkern #1 = \the \Umathoverbarkern #1 - \Umathoverbarrule #1 = \the \Umathoverbarrule #1 - \Umathoverbarvgap #1 = \the \Umathoverbarvgap #1 - \Umathunderbarkern #1 = \the \Umathunderbarkern #1 - \Umathunderbarrule #1 = \the \Umathunderbarrule #1 - \Umathunderbarvgap #1 = \the \Umathunderbarvgap #1 - \Umathradicalkern #1 = \the \Umathradicalkern #1 - \Umathradicalrule #1 = \the \Umathradicalrule #1 - \Umathradicalvgap #1 = \the \Umathradicalvgap #1 - \Umathradicaldegreebefore #1 = \the \Umathradicaldegreebefore #1 - \Umathradicaldegreeafter #1 = \the \Umathradicaldegreeafter #1 - \Umathradicaldegreeraise #1 = \the \Umathradicaldegreeraise #1 - \Umathstackvgap #1 = \the \Umathstackvgap #1 - \Umathstacknumup #1 = \the \Umathstacknumup #1 - \Umathstackdenomdown #1 = \the \Umathstackdenomdown #1 - \Umathfractionrule #1 = \the \Umathfractionrule #1 - \Umathfractionnumvgap #1 = \the \Umathfractionnumvgap #1 - \Umathfractionnumup #1 = \the \Umathfractionnumup #1 - \Umathfractiondenomvgap #1 = \the \Umathfractiondenomvgap #1 - \Umathfractiondenomdown #1 = \the \Umathfractiondenomdown #1 - \Umathfractiondelsize #1 = \the \Umathfractiondelsize #1 - \Umathlimitabovevgap #1 = \the \Umathlimitabovevgap #1 - \Umathlimitabovebgap #1 = \the \Umathlimitabovebgap #1 - \Umathlimitabovekern #1 = \the \Umathlimitabovekern #1 - \Umathlimitbelowvgap #1 = \the \Umathlimitbelowvgap #1 - \Umathlimitbelowbgap #1 = \the \Umathlimitbelowbgap #1 - \Umathlimitbelowkern #1 = \the \Umathlimitbelowkern #1 - \Umathoverdelimitervgap #1 = \the \Umathoverdelimitervgap #1 - \Umathoverdelimiterbgap #1 = \the \Umathoverdelimiterbgap #1 - \Umathunderdelimitervgap #1 = \the \Umathunderdelimitervgap #1 - \Umathunderdelimiterbgap #1 = \the \Umathunderdelimiterbgap #1 - \Umathsubshiftdrop #1 = \the \Umathsubshiftdrop #1 - \Umathsubshiftdown #1 = \the \Umathsubshiftdown #1 - \Umathsupshiftdrop #1 = \the \Umathsupshiftdrop #1 - \Umathsupshiftup #1 = \the \Umathsupshiftup #1 - \Umathsubsupshiftdown #1 = \the \Umathsubsupshiftdown #1 - \Umathsubtopmax #1 = \the \Umathsubtopmax #1 - \Umathsupbottommin #1 = \the \Umathsupbottommin #1 - \Umathsupsubbottommax #1 = \the \Umathsupsubbottommax #1 - \Umathsubsupvgap #1 = \the \Umathsubsupvgap #1 - \Umathspaceafterscript #1 = \the \Umathspaceafterscript #1 - \Umathconnectoroverlapmin #1 = \the \Umathconnectoroverlapmin #1 + \Umathquad #1 = \the \Umathquad #1 \scan_stop: + \Umathaxis #1 = \the \Umathaxis #1 \scan_stop: + \Umathoperatorsize #1 = \the \Umathoperatorsize #1 \scan_stop: + \Umathoverbarkern #1 = \the \Umathoverbarkern #1 \scan_stop: + \Umathoverbarrule #1 = \the \Umathoverbarrule #1 \scan_stop: + \Umathoverbarvgap #1 = \the \Umathoverbarvgap #1 \scan_stop: + \Umathunderbarkern #1 = \the \Umathunderbarkern #1 \scan_stop: + \Umathunderbarrule #1 = \the \Umathunderbarrule #1 \scan_stop: + \Umathunderbarvgap #1 = \the \Umathunderbarvgap #1 \scan_stop: + \Umathradicalkern #1 = \the \Umathradicalkern #1 \scan_stop: + \Umathradicalrule #1 = \the \Umathradicalrule #1 \scan_stop: + \Umathradicalvgap #1 = \the \Umathradicalvgap #1 \scan_stop: + \Umathradicaldegreebefore #1 = \the \Umathradicaldegreebefore #1 \scan_stop: + \Umathradicaldegreeafter #1 = \the \Umathradicaldegreeafter #1 \scan_stop: + \Umathradicaldegreeraise #1 = \the \Umathradicaldegreeraise #1 \scan_stop: + \Umathstackvgap #1 = \the \Umathstackvgap #1 \scan_stop: + \Umathstacknumup #1 = \the \Umathstacknumup #1 \scan_stop: + \Umathstackdenomdown #1 = \the \Umathstackdenomdown #1 \scan_stop: + \Umathfractionrule #1 = \the \Umathfractionrule #1 \scan_stop: + \Umathfractionnumvgap #1 = \the \Umathfractionnumvgap #1 \scan_stop: + \Umathfractionnumup #1 = \the \Umathfractionnumup #1 \scan_stop: + \Umathfractiondenomvgap #1 = \the \Umathfractiondenomvgap #1 \scan_stop: + \Umathfractiondenomdown #1 = \the \Umathfractiondenomdown #1 \scan_stop: + \Umathfractiondelsize #1 = \the \Umathfractiondelsize #1 \scan_stop: + \Umathlimitabovevgap #1 = \the \Umathlimitabovevgap #1 \scan_stop: + \Umathlimitabovebgap #1 = \the \Umathlimitabovebgap #1 \scan_stop: + \Umathlimitabovekern #1 = \the \Umathlimitabovekern #1 \scan_stop: + \Umathlimitbelowvgap #1 = \the \Umathlimitbelowvgap #1 \scan_stop: + \Umathlimitbelowbgap #1 = \the \Umathlimitbelowbgap #1 \scan_stop: + \Umathlimitbelowkern #1 = \the \Umathlimitbelowkern #1 \scan_stop: + \Umathoverdelimitervgap #1 = \the \Umathoverdelimitervgap #1 \scan_stop: + \Umathoverdelimiterbgap #1 = \the \Umathoverdelimiterbgap #1 \scan_stop: + \Umathunderdelimitervgap #1 = \the \Umathunderdelimitervgap #1 \scan_stop: + \Umathunderdelimiterbgap #1 = \the \Umathunderdelimiterbgap #1 \scan_stop: + \Umathsubshiftdrop #1 = \the \Umathsubshiftdrop #1 \scan_stop: + \Umathsubshiftdown #1 = \the \Umathsubshiftdown #1 \scan_stop: + \Umathsupshiftdrop #1 = \the \Umathsupshiftdrop #1 \scan_stop: + \Umathsupshiftup #1 = \the \Umathsupshiftup #1 \scan_stop: + \Umathsubsupshiftdown #1 = \the \Umathsubsupshiftdown #1 \scan_stop: + \Umathsubtopmax #1 = \the \Umathsubtopmax #1 \scan_stop: + \Umathsupbottommin #1 = \the \Umathsupbottommin #1 \scan_stop: + \Umathsupsubbottommax #1 = \the \Umathsupsubbottommax #1 \scan_stop: + \Umathsubsupvgap #1 = \the \Umathsubsupvgap #1 \scan_stop: + \Umathspaceafterscript #1 = \the \Umathspaceafterscript #1 \scan_stop: + \Umathconnectoroverlapmin #1 = \the \Umathconnectoroverlapmin #1 \scan_stop: } %%^^A%% um-code-fontopt.dtx -- part of UNICODE-MATH @@ -1613,7 +1639,7 @@ } \cs_new:Nn \__um_range_init: { - \int_incr:N \g__um_fam_int + \int_gincr:N \g__um_fam_int \tl_set:Nx \l__um_symfont_label_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_remap_symbol:nnn \__um_remap_symbol_parse:nnn @@ -2128,7 +2154,7 @@ } \cs_new:Nn \__um_mathmap_noparse:nnn { - \tl_put_right:cx { __um_switchto_#1: } + \tl_gput_right:cx { g__um_switchto_#1_tl } { \__um_set_mathcode:nnnn {#2} {\mathalpha} {\l__um_symfont_label_tl} {#3} } @@ -2224,7 +2250,7 @@ \mode_if_math:F { \exp_args:Nc \non@alpherr {sym#1} } \tl_set:Nn \l__um_mathstyle_tl {#1} } - \exp_not:c {__um_switchto_#1:} + \__um_switch_to:n {#1} \__um_mathgroup_set:n {-1} \__um_group_end:n } @@ -2232,7 +2258,12 @@ \cs_set:Nn \__um_init_alphabet:n { \__um_log:nx {alph-initialise} {#1} - \cs_set_eq:cN {__um_switchto_#1:} \prg_do_nothing: + \tl_gclear_new:c {g__um_switchto_#1_tl} + \cs_set_protected:cpn {__um_switchto_#1:} { \tl_use:c {g__um_switchto_#1_tl} } + } +\cs_new_protected:Nn \__um_switch_to:n + { + \tl_use:c {g__um_switchto_#1_tl} } \cs_new:Nn \__um_default_mathalph:nnn { @@ -3481,13 +3512,56 @@ \__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} +\__um_setup_active_superscript:nn {"1D2C} {A} +\__um_setup_active_superscript:nn {"1D2E} {B} +\__um_setup_active_superscript:nn {"1D30} {D} +\__um_setup_active_superscript:nn {"1D31} {E} +\__um_setup_active_superscript:nn {"1D33} {G} +\__um_setup_active_superscript:nn {"1D34} {H} +\__um_setup_active_superscript:nn {"1D35} {I} +\__um_setup_active_superscript:nn {"1D36} {J} +\__um_setup_active_superscript:nn {"1D37} {K} +\__um_setup_active_superscript:nn {"1D38} {L} +\__um_setup_active_superscript:nn {"1D39} {M} +\__um_setup_active_superscript:nn {"1D3A} {N} +\__um_setup_active_superscript:nn {"1D3C} {O} +\__um_setup_active_superscript:nn {"1D3E} {P} +\__um_setup_active_superscript:nn {"1D3F} {R} +\__um_setup_active_superscript:nn {"1D40} {T} +\__um_setup_active_superscript:nn {"1D41} {U} +\__um_setup_active_superscript:nn {"2C7D} {V} +\__um_setup_active_superscript:nn {"1D42} {W} +\__um_setup_active_superscript:nn {"1D43} {a} +\__um_setup_active_superscript:nn {"1D47} {b} +\__um_setup_active_superscript:nn {"1D9C} {c} +\__um_setup_active_superscript:nn {"1D48} {d} +\__um_setup_active_superscript:nn {"1D49} {e} +\__um_setup_active_superscript:nn {"1DA0} {f} +\__um_setup_active_superscript:nn {"1D4D} {g} \__um_setup_active_superscript:nn {"02B0} {h} +\__um_setup_active_superscript:nn {"2071} {i} \__um_setup_active_superscript:nn {"02B2} {j} +\__um_setup_active_superscript:nn {"1D4F} {k} +\__um_setup_active_superscript:nn {"02E1} {l} +\__um_setup_active_superscript:nn {"1D50} {m} +\__um_setup_active_superscript:nn {"207F} {n} +\__um_setup_active_superscript:nn {"1D52} {o} +\__um_setup_active_superscript:nn {"1D56} {p} \__um_setup_active_superscript:nn {"02B3} {r} +\__um_setup_active_superscript:nn {"02E2} {s} +\__um_setup_active_superscript:nn {"1D57} {t} +\__um_setup_active_superscript:nn {"1D58} {u} +\__um_setup_active_superscript:nn {"1D5B} {v} \__um_setup_active_superscript:nn {"02B7} {w} +\__um_setup_active_superscript:nn {"02E3} {x} \__um_setup_active_superscript:nn {"02B8} {y} +\__um_setup_active_superscript:nn {"1DBB} {z} +\__um_setup_active_superscript:nn {"1D5D} {\beta} +\__um_setup_active_superscript:nn {"1D5E} {\gamma} +\__um_setup_active_superscript:nn {"1D5F} {\delta} +\__um_setup_active_superscript:nn {"1D60} {\phi} +\__um_setup_active_superscript:nn {"1D61} {\chi} +\__um_setup_active_superscript:nn {"1DBF} {\theta} \__um_setup_active_subscript:nn {"2080} {0} \__um_setup_active_subscript:nn {"2081} {1} \__um_setup_active_subscript:nn {"2082} {2} @@ -3558,7 +3632,7 @@ } \AtEndOfPackageFile * {url} { - \tl_put_left:Nn \Url@FormatString { \__um_switchto_up: } + \tl_put_left:Nn \Url@FormatString { \__um_switch_to:n {up} } \tl_put_right:Nn \UrlSpecials { \do \` { \mathchar`\` } @@ -3654,7 +3728,7 @@ && \int_compare_p:nNn { \leftroot@ } = { \c_zero } } { - \Uroot \l__um_radical_sqrt_tl { #1 } { #2 } + \Uroot \c__um_radical_sqrt_tl { #1 } { #2 } } { \hbox_set:Nn \rootbox @@ -3692,7 +3766,7 @@ #1 \mskip \uproot@ mu \c_math_toggle_token } - \Uroot \l__um_radical_sqrt_tl + \Uroot \c__um_radical_sqrt_tl { \box_move_up:nn { \box_wd:N \l_tmpa_box } { @@ -3713,7 +3787,7 @@ %%^^A%% um-code-epilogue.dtx -- part of UNICODE-MATH %%^^A%% Assorted definitions to close up. -\AtBeginDocument { \__um_resolve_greek: } +\AtBeginDocument { \debug_suspend: \__um_resolve_greek: \debug_resume: } \cs_new:Npn \__um_resolve_greek: { \clist_map_inline:nn @@ -3735,7 +3809,7 @@ { \cs_set:Npn \root ##1 \of ##2 { - \Uroot \l__um_radical_sqrt_tl { ##1 } { ##2 } + \Uroot \c__um_radical_sqrt_tl { ##1 } { ##2 } } } \cs_new:Nn \__um_which_frac:nn diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty index 31c4df21812..d6abb5d6d70 100644 --- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty +++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty @@ -43,7 +43,7 @@ %%^^A%% Metadata for the package code, including files and versioning \ProvidesExplPackage{unicode-math-xetex} - {2018/02/02} {v0.8l} {Unicode maths in XeLaTeX and LuaLaTeX} + {2018/07/29} {v0.8m} {Unicode maths in XeLaTeX and LuaLaTeX} %%^^A%% um-code-opening.dtx -- part of UNICODE-MATH %%^^A%% Assorted initialisation tasks, including some low-level function definitions. @@ -172,7 +172,7 @@ %%^^A%% um-code-variables.dtx -- part of UNICODE-MATH %%^^A%% Declaration of all code-level variables used in the package. -\bool_new:N \l__um_ot_math_bool +\bool_new:N \g__um_ot_math_bool \bool_new:N \g__um_main_font_defined_bool \bool_new:N \l__um_init_bool \bool_new:N \l__um_implicit_alph_bool @@ -208,16 +208,28 @@ \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.} +\tl_new:N \l__um_style_tl +\tl_new:N \l__um_family_tl +\tl_new:N \l__um_alphabet_tl +\tl_new:N \l__um_fontname_tl +\tl_new:N \l__um_symfont_label_tl +\tl_new:N \l__um_remap_style_tl +\tl_new:N \l__um_fam_two_tl +\tl_new:N \l__um_fam_three_tl +\tl_new:N \l__um_curr_named_slot +\tl_new:N \l__um_tmpa_tl \tl_new:N \l__um_mathstyle_tl \tl_new:N \l__um_radicals_tl \tl_new:N \l__um_nolimits_tl +\tl_new:N \l__um_trial_family_tl \tl_new:N \g__um_operator_mathfont_tl \tl_new:N \g__um_slash_delimiter_usv +\tl_new:N \g__um_mathparam_settings_tl \tl_new:N \g__um_mathtable_tl \tl_new:N \g__um_fontname_tl \tl_new:N \g__um_mversion_tl \tl_new:N \g__um_symfont_tl -\tl_new:N \g__um_font_keyval_tl +\tl_new:N \l__um_font_keyval_tl \tl_new:N \g__um_family_tl \tl_new:N \g__um_style_tl \tl_new:N \g__um_remap_style_tl @@ -228,16 +240,20 @@ \clist_new:N \g__um_char_nrange_clist \clist_new:N \g__um_unknown_keys_clist \clist_new:N \g__um_alphabet_clist +\clist_new:N \l__um_mathmap_charints_clist +\clist_new:N \l__um_unknown_keys_clist +\clist_new:N \l__um_font_keyval_clist +\clist_new:N \l__um_alphabet_clist \clist_new:N \g__um_bad_alpha_clist -\clist_put_right:Nx \g__um_bad_alpha_clist { \tl_to_str:n {bf} } -\clist_put_right:Nx \g__um_bad_alpha_clist { \tl_to_str:n {sf} } -\clist_put_right:Nx \g__um_bad_alpha_clist { \tl_to_str:n {bfsf} } +\clist_gput_right:Nx \g__um_bad_alpha_clist { \tl_to_str:n {bf} } +\clist_gput_right:Nx \g__um_bad_alpha_clist { \tl_to_str:n {sf} } +\clist_gput_right:Nx \g__um_bad_alpha_clist { \tl_to_str:n {bfsf} } \seq_new:N \l__um_missing_alph_seq \seq_new:N \g__um_mathalph_seq \seq_new:N \g__um_char_range_seq \seq_new:N \g__um_mclass_range_seq \seq_new:N \g__um_mathclasses_seq -\seq_set_from_clist:Nn \g__um_mathclasses_seq +\seq_gset_from_clist:Nn \g__um_mathclasses_seq { \mathord,\mathalpha,\mathbin,\mathrel,\mathpunct, \mathop, @@ -278,7 +294,7 @@ \@onlypreamble \setmathfontface \NewDocumentCommand \setoperatorfont {m} { - \tl_set:Nn \g__um_operator_mathfont_tl {#1} + \tl_gset:Nn \g__um_operator_mathfont_tl {#1} } \setoperatorfont{\mathrm} \NewDocumentCommand \addnolimits {m} @@ -319,66 +335,66 @@ } \__um_keys_choices:nn {mathup} { - {sym} { \bool_set_false:N \g__um_mathrm_text_bool } - {text} { \bool_set_true:N \g__um_mathrm_text_bool } + {sym} { \bool_gset_false:N \g__um_mathrm_text_bool } + {text} { \bool_gset_true:N \g__um_mathrm_text_bool } } \__um_keys_choices:nn {mathrm} { - {sym} { \bool_set_false:N \g__um_mathrm_text_bool } - {text} { \bool_set_true:N \g__um_mathrm_text_bool } + {sym} { \bool_gset_false:N \g__um_mathrm_text_bool } + {text} { \bool_gset_true:N \g__um_mathrm_text_bool } } \__um_keys_choices:nn {mathit} { - {sym} { \bool_set_false:N \g__um_mathit_text_bool } - {text} { \bool_set_true:N \g__um_mathit_text_bool } + {sym} { \bool_gset_false:N \g__um_mathit_text_bool } + {text} { \bool_gset_true:N \g__um_mathit_text_bool } } \__um_keys_choices:nn {mathbf} { - {sym} { \bool_set_false:N \g__um_mathbf_text_bool } - {text} { \bool_set_true:N \g__um_mathbf_text_bool } + {sym} { \bool_gset_false:N \g__um_mathbf_text_bool } + {text} { \bool_gset_true:N \g__um_mathbf_text_bool } } \__um_keys_choices:nn {mathsf} { - {sym} { \bool_set_false:N \g__um_mathsf_text_bool } - {text} { \bool_set_true:N \g__um_mathsf_text_bool } + {sym} { \bool_gset_false:N \g__um_mathsf_text_bool } + {text} { \bool_gset_true:N \g__um_mathsf_text_bool } } \__um_keys_choices:nn {mathtt} { - {sym} { \bool_set_false:N \g__um_mathtt_text_bool } - {text} { \bool_set_true:N \g__um_mathtt_text_bool } + {sym} { \bool_gset_false:N \g__um_mathtt_text_bool } + {text} { \bool_gset_true:N \g__um_mathtt_text_bool } } \__um_keys_choices:nn {normal-style} { {ISO} { - \bool_set_false:N \g__um_literal_bool - \bool_set_false:N \g__um_upGreek_bool - \bool_set_false:N \g__um_upgreek_bool - \bool_set_false:N \g__um_upLatin_bool - \bool_set_false:N \g__um_uplatin_bool + \bool_gset_false:N \g__um_literal_bool + \bool_gset_false:N \g__um_upGreek_bool + \bool_gset_false:N \g__um_upgreek_bool + \bool_gset_false:N \g__um_upLatin_bool + \bool_gset_false:N \g__um_uplatin_bool } {TeX} { - \bool_set_false:N \g__um_literal_bool - \bool_set_true:N \g__um_upGreek_bool - \bool_set_false:N \g__um_upgreek_bool - \bool_set_false:N \g__um_upLatin_bool - \bool_set_false:N \g__um_uplatin_bool + \bool_gset_false:N \g__um_literal_bool + \bool_gset_true:N \g__um_upGreek_bool + \bool_gset_false:N \g__um_upgreek_bool + \bool_gset_false:N \g__um_upLatin_bool + \bool_gset_false:N \g__um_uplatin_bool } {french} { - \bool_set_false:N \g__um_literal_bool - \bool_set_true:N \g__um_upGreek_bool - \bool_set_true:N \g__um_upgreek_bool - \bool_set_true:N \g__um_upLatin_bool - \bool_set_false:N \g__um_uplatin_bool + \bool_gset_false:N \g__um_literal_bool + \bool_gset_true:N \g__um_upGreek_bool + \bool_gset_true:N \g__um_upgreek_bool + \bool_gset_true:N \g__um_upLatin_bool + \bool_gset_false:N \g__um_uplatin_bool } {upright} { - \bool_set_false:N \g__um_literal_bool - \bool_set_true:N \g__um_upGreek_bool - \bool_set_true:N \g__um_upgreek_bool - \bool_set_true:N \g__um_upLatin_bool - \bool_set_true:N \g__um_uplatin_bool + \bool_gset_false:N \g__um_literal_bool + \bool_gset_true:N \g__um_upGreek_bool + \bool_gset_true:N \g__um_upgreek_bool + \bool_gset_true:N \g__um_upLatin_bool + \bool_gset_true:N \g__um_uplatin_bool } {literal} { - \bool_set_true:N \g__um_literal_bool + \bool_gset_true:N \g__um_literal_bool } } \__um_keys_choices:nn {math-style} @@ -407,74 +423,74 @@ \__um_keys_choices:nn {bold-style} { {ISO} { - \bool_set_false:N \g__um_bfliteral_bool - \bool_set_false:N \g__um_bfupGreek_bool - \bool_set_false:N \g__um_bfupgreek_bool - \bool_set_false:N \g__um_bfupLatin_bool - \bool_set_false:N \g__um_bfuplatin_bool + \bool_gset_false:N \g__um_bfliteral_bool + \bool_gset_false:N \g__um_bfupGreek_bool + \bool_gset_false:N \g__um_bfupgreek_bool + \bool_gset_false:N \g__um_bfupLatin_bool + \bool_gset_false:N \g__um_bfuplatin_bool } {TeX} { - \bool_set_false:N \g__um_bfliteral_bool - \bool_set_true:N \g__um_bfupGreek_bool - \bool_set_false:N \g__um_bfupgreek_bool - \bool_set_true:N \g__um_bfupLatin_bool - \bool_set_true:N \g__um_bfuplatin_bool + \bool_gset_false:N \g__um_bfliteral_bool + \bool_gset_true:N \g__um_bfupGreek_bool + \bool_gset_false:N \g__um_bfupgreek_bool + \bool_gset_true:N \g__um_bfupLatin_bool + \bool_gset_true:N \g__um_bfuplatin_bool } {upright} { - \bool_set_false:N \g__um_bfliteral_bool - \bool_set_true:N \g__um_bfupGreek_bool - \bool_set_true:N \g__um_bfupgreek_bool - \bool_set_true:N \g__um_bfupLatin_bool - \bool_set_true:N \g__um_bfuplatin_bool + \bool_gset_false:N \g__um_bfliteral_bool + \bool_gset_true:N \g__um_bfupGreek_bool + \bool_gset_true:N \g__um_bfupgreek_bool + \bool_gset_true:N \g__um_bfupLatin_bool + \bool_gset_true:N \g__um_bfuplatin_bool } {literal} { - \bool_set_true:N \g__um_bfliteral_bool + \bool_gset_true:N \g__um_bfliteral_bool } } \__um_keys_choices:nn {sans-style} { - {italic} { \bool_set_false:N \g__um_upsans_bool } - {upright} { \bool_set_true:N \g__um_upsans_bool } - {literal} { \bool_set_true:N \g__um_sfliteral_bool } + {italic} { \bool_gset_false:N \g__um_upsans_bool } + {upright} { \bool_gset_true:N \g__um_upsans_bool } + {literal} { \bool_gset_true:N \g__um_sfliteral_bool } } \__um_keys_choices:nn {nabla} { {upright} { - \bool_set_false:N \g__um_literal_Nabla_bool - \bool_set_true:N \g__um_upNabla_bool + \bool_gset_false:N \g__um_literal_Nabla_bool + \bool_gset_true:N \g__um_upNabla_bool } {italic} { - \bool_set_false:N \g__um_literal_Nabla_bool - \bool_set_false:N \g__um_upNabla_bool + \bool_gset_false:N \g__um_literal_Nabla_bool + \bool_gset_false:N \g__um_upNabla_bool } {literal} { - \bool_set_true:N \g__um_literal_Nabla_bool + \bool_gset_true:N \g__um_literal_Nabla_bool } } \__um_keys_choices:nn {partial} { {upright} { - \bool_set_false:N \g__um_literal_partial_bool - \bool_set_true:N \g__um_uppartial_bool + \bool_gset_false:N \g__um_literal_partial_bool + \bool_gset_true:N \g__um_uppartial_bool } {italic} { - \bool_set_false:N \g__um_literal_partial_bool - \bool_set_false:N \g__um_uppartial_bool + \bool_gset_false:N \g__um_literal_partial_bool + \bool_gset_false:N \g__um_uppartial_bool } {literal} { - \bool_set_true:N \g__um_literal_partial_bool + \bool_gset_true:N \g__um_literal_partial_bool } } \__um_keys_choices:nn {colon} { - {literal} { \bool_set_true:N \g__um_literal_colon_bool } - {TeX} { \bool_set_false:N \g__um_literal_colon_bool } + {literal} { \bool_gset_true:N \g__um_literal_colon_bool } + {TeX} { \bool_gset_false:N \g__um_literal_colon_bool } } \__um_keys_choices:nn {slash-delimiter} { - {ascii} { \tl_set:Nn \g__um_slash_delimiter_usv {"002F} } - {frac} { \tl_set:Nn \g__um_slash_delimiter_usv {"2044} } - {div} { \tl_set:Nn \g__um_slash_delimiter_usv {"2215} } + {ascii} { \tl_gset:Nn \g__um_slash_delimiter_usv {"002F} } + {frac} { \tl_gset:Nn \g__um_slash_delimiter_usv {"2044} } + {div} { \tl_gset:Nn \g__um_slash_delimiter_usv {"2215} } } \__um_keys_choices:nn {active-frac} { @@ -886,7 +902,7 @@ \exp_not:n { \__um_sym:nnn {##1} {##2} {##3} } } } -\tl_set_from_file_x:Nnn \g__um_mathtable_tl {\__um_symbol_setup:} {unicode-math-table.tex} +\tl_gset_from_file_x:Nnn \g__um_mathtable_tl {\__um_symbol_setup:} {unicode-math-table.tex} \cs_new:Nn \__um_input_math_symbol_table: {\g__um_mathtable_tl} \AtBeginDocument{\__um_define_math_chars:} \cs_new:Nn \__um_define_math_chars: @@ -967,9 +983,19 @@ { \tl_if_in:NnTF \l__um_radicals_tl {#2} { - \cs_gset_protected_nopar:cpx {\cs_to_str:N #2 sign} - { \__um_radical:nn {#1} {#3} } - \tl_set:cn {l__um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #3} + \cs_if_exist:NF #2 + { + %% todo: check if the check is necessary + \cs_gset_protected_nopar:Npx #2 { \exp_not:c { \cs_to_str:N #2 sign } } + } + \cs_gset_protected_nopar:cpx { \cs_to_str:N #2 sign } + { + \__um_radical:nn {#1} {#3} + } + \tl_if_exist:cF {c__um_radical_\cs_to_str:N #2_tl} + { + \tl_const:cn {c__um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #3} + } } { \__um_set_delcode:nnn {#1} {#3} {#3} @@ -1037,22 +1063,22 @@ % integrate with fontspec's \setmathrm etc: \tl_case:Nn #1 { - \mathrm { \cs_set_eq:NN \g__fontspec_mathrm_tl \l__um_tmpa_tl } - \mathsf { \cs_set_eq:NN \g__fontspec_mathsf_tl \l__um_tmpa_tl } - \mathtt { \cs_set_eq:NN \g__fontspec_mathtt_tl \l__um_tmpa_tl } + \mathrm { \cs_gset_eq:NN \g__fontspec_mathrm_tl \l__um_tmpa_tl } + \mathsf { \cs_gset_eq:NN \g__fontspec_mathsf_tl \l__um_tmpa_tl } + \mathtt { \cs_gset_eq:NN \g__fontspec_mathtt_tl \l__um_tmpa_tl } } } \cs_set:Npn \use@mathgroup #1 #2 { - \__um_group_begin: + \math@bgroup \cs_if_eq:cNF {M@\f@encoding} #1 {#1} - \__um_switchto_literal: + \__um_switch_to:n {literal} \__um_mathgroup_set:n {#2} - \__um_group_end:n + \math@egroup } \cs_set:Npn \operator@font { - \__um_switchto_literal: + \__um_switch_to:n {literal} \__um_fontswitch:n { \g__um_operator_mathfont_tl } } \cs_set:Nn \__um_fontswitch:n @@ -1182,7 +1208,7 @@ \cs_new:Nn \__um_init:n { \tl_set:Nn \l__um_fontname_tl {#1} - \bool_set_true:N \l__um_ot_math_bool + \bool_gset_true:N \g__um_ot_math_bool \tl_set:Nn \l__um_mversion_tl {normal} \tl_set:Nn \l__um_symfont_label_tl {operators} @@ -1229,8 +1255,8 @@ \exp_last_unbraced:NNo \__um_fontface_gset_eq:NN \g__um_trial_font \font@name \fontspec_if_script:nF {math} { - \bool_gset_false:N \l__um_ot_math_bool - \bool_gset_false:N \l__um_init_bool + \bool_gset_false:N \g__um_ot_math_bool + \bool_gset_false:N \g__um_init_bool } \group_end: @@ -1276,14 +1302,14 @@ } \fontspec_if_script:nF {math} { - \bool_gset_false:N \l__um_ot_math_bool - \bool_gset_false:N \l__um_init_bool + \bool_gset_false:N \g__um_ot_math_bool + \bool_gset_false:N \g__um_init_bool } \group_end: } -\tl_set:Nn \g__um_main_font_cmd_tl { \l__um_font } -\tl_set:Nn \g__um_sqrt_font_cmd_tl { \l__um_font } -\tl_set:Nn \g__um_prime_font_cmd_tl { \l__um_font } +\tl_gset:Nn \g__um_main_font_cmd_tl { \l__um_font } +\tl_gset:Nn \g__um_sqrt_font_cmd_tl { \l__um_font } +\tl_gset:Nn \g__um_prime_font_cmd_tl { \l__um_font } \cs_new:Nn \__um_setup_math_fam: { \cs_if_exist:cF { sym \l__um_symfont_label_tl } @@ -1471,7 +1497,7 @@ \scpolint\npolint\pointint\sqint\intlarhk\intx \intcap\intcup\upint\lowint } -\tl_set:Nn \l__um_radicals_tl {\sqrt \longdivision} +\tl_set:Nn \l__um_radicals_tl {\sqrt \longdivision \cuberoot \fourthroot} %%^^A%% um-code-fontopt.dtx -- part of UNICODE-MATH %%^^A%% Keyval for `\setmathfont` @@ -1514,7 +1540,7 @@ } \cs_new:Nn \__um_range_init: { - \int_incr:N \g__um_fam_int + \int_gincr:N \g__um_fam_int \tl_set:Nx \l__um_symfont_label_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_remap_symbol:nnn \__um_remap_symbol_parse:nnn @@ -2057,7 +2083,7 @@ } \cs_new:Nn \__um_mathmap_noparse:nnn { - \tl_put_right:cx { __um_switchto_#1: } + \tl_gput_right:cx { g__um_switchto_#1_tl } { \__um_set_mathcode:nnnn {#2} {\mathalpha} {\l__um_symfont_label_tl} {#3} } @@ -2153,7 +2179,7 @@ \mode_if_math:F { \exp_args:Nc \non@alpherr {sym#1} } \tl_set:Nn \l__um_mathstyle_tl {#1} } - \exp_not:c {__um_switchto_#1:} + \__um_switch_to:n {#1} \__um_mathgroup_set:n {-1} \__um_group_end:n } @@ -2161,7 +2187,12 @@ \cs_set:Nn \__um_init_alphabet:n { \__um_log:nx {alph-initialise} {#1} - \cs_set_eq:cN {__um_switchto_#1:} \prg_do_nothing: + \tl_gclear_new:c {g__um_switchto_#1_tl} + \cs_set_protected:cpn {__um_switchto_#1:} { \tl_use:c {g__um_switchto_#1_tl} } + } +\cs_new_protected:Nn \__um_switch_to:n + { + \tl_use:c {g__um_switchto_#1_tl} } \cs_new:Nn \__um_default_mathalph:nnn { @@ -3410,13 +3441,56 @@ \__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} +\__um_setup_active_superscript:nn {"1D2C} {A} +\__um_setup_active_superscript:nn {"1D2E} {B} +\__um_setup_active_superscript:nn {"1D30} {D} +\__um_setup_active_superscript:nn {"1D31} {E} +\__um_setup_active_superscript:nn {"1D33} {G} +\__um_setup_active_superscript:nn {"1D34} {H} +\__um_setup_active_superscript:nn {"1D35} {I} +\__um_setup_active_superscript:nn {"1D36} {J} +\__um_setup_active_superscript:nn {"1D37} {K} +\__um_setup_active_superscript:nn {"1D38} {L} +\__um_setup_active_superscript:nn {"1D39} {M} +\__um_setup_active_superscript:nn {"1D3A} {N} +\__um_setup_active_superscript:nn {"1D3C} {O} +\__um_setup_active_superscript:nn {"1D3E} {P} +\__um_setup_active_superscript:nn {"1D3F} {R} +\__um_setup_active_superscript:nn {"1D40} {T} +\__um_setup_active_superscript:nn {"1D41} {U} +\__um_setup_active_superscript:nn {"2C7D} {V} +\__um_setup_active_superscript:nn {"1D42} {W} +\__um_setup_active_superscript:nn {"1D43} {a} +\__um_setup_active_superscript:nn {"1D47} {b} +\__um_setup_active_superscript:nn {"1D9C} {c} +\__um_setup_active_superscript:nn {"1D48} {d} +\__um_setup_active_superscript:nn {"1D49} {e} +\__um_setup_active_superscript:nn {"1DA0} {f} +\__um_setup_active_superscript:nn {"1D4D} {g} \__um_setup_active_superscript:nn {"02B0} {h} +\__um_setup_active_superscript:nn {"2071} {i} \__um_setup_active_superscript:nn {"02B2} {j} +\__um_setup_active_superscript:nn {"1D4F} {k} +\__um_setup_active_superscript:nn {"02E1} {l} +\__um_setup_active_superscript:nn {"1D50} {m} +\__um_setup_active_superscript:nn {"207F} {n} +\__um_setup_active_superscript:nn {"1D52} {o} +\__um_setup_active_superscript:nn {"1D56} {p} \__um_setup_active_superscript:nn {"02B3} {r} +\__um_setup_active_superscript:nn {"02E2} {s} +\__um_setup_active_superscript:nn {"1D57} {t} +\__um_setup_active_superscript:nn {"1D58} {u} +\__um_setup_active_superscript:nn {"1D5B} {v} \__um_setup_active_superscript:nn {"02B7} {w} +\__um_setup_active_superscript:nn {"02E3} {x} \__um_setup_active_superscript:nn {"02B8} {y} +\__um_setup_active_superscript:nn {"1DBB} {z} +\__um_setup_active_superscript:nn {"1D5D} {\beta} +\__um_setup_active_superscript:nn {"1D5E} {\gamma} +\__um_setup_active_superscript:nn {"1D5F} {\delta} +\__um_setup_active_superscript:nn {"1D60} {\phi} +\__um_setup_active_superscript:nn {"1D61} {\chi} +\__um_setup_active_superscript:nn {"1DBF} {\theta} \__um_setup_active_subscript:nn {"2080} {0} \__um_setup_active_subscript:nn {"2081} {1} \__um_setup_active_subscript:nn {"2082} {2} @@ -3487,7 +3561,7 @@ } \AtEndOfPackageFile * {url} { - \tl_put_left:Nn \Url@FormatString { \__um_switchto_up: } + \tl_put_left:Nn \Url@FormatString { \__um_switch_to:n {up} } \tl_put_right:Nn \UrlSpecials { \do \` { \mathchar`\` } @@ -3695,7 +3769,7 @@ %%^^A%% um-code-epilogue.dtx -- part of UNICODE-MATH %%^^A%% Assorted definitions to close up. -\AtBeginDocument { \__um_resolve_greek: } +\AtBeginDocument { \debug_suspend: \__um_resolve_greek: \debug_resume: } \cs_new:Npn \__um_resolve_greek: { \clist_map_inline:nn 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 1d111d77bd6..8f9e1fea54b 100644 --- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty +++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty @@ -24,7 +24,7 @@ \RequirePackage{expl3} \ProvidesExplPackage{unicode-math} - {2018/02/02} {v0.8l} {Unicode maths in XeLaTeX and LuaLaTeX} + {2018/07/29} {v0.8m} {Unicode maths in XeLaTeX and LuaLaTeX} \sys_if_engine_luatex:T { \RequirePackageWithOptions{unicode-math-luatex} } \sys_if_engine_xetex:T { \RequirePackageWithOptions{unicode-math-xetex} } \sys_if_engine_pdftex:T -- cgit v1.2.3