You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3938 lines
133 KiB
3938 lines
133 KiB
%%
|
|
%% This is file `unicode-math-luatex.sty',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% unicode-math.dtx (with options: `package,LU')
|
|
%% um-code-opening.dtx (with options: `package,LU')
|
|
%% um-code-variables.dtx (with options: `package,LU')
|
|
%% um-code-api.dtx (with options: `package,LU')
|
|
%% um-code-ui.dtx (with options: `package,LU')
|
|
%% um-code-pkgopt.dtx (with options: `package,LU')
|
|
%% um-code-msg.dtx (with options: `package,LU')
|
|
%% um-code-usv.dtx (with options: `package,LU')
|
|
%% um-code-setchar.dtx (with options: `package,LU')
|
|
%% um-code-mathtext.dtx (with options: `package,LU')
|
|
%% um-code-main.dtx (with options: `package,LU')
|
|
%% um-code-fontopt.dtx (with options: `package,LU')
|
|
%% um-code-fontparam.dtx (with options: `package,LU')
|
|
%% um-code-mathmap.dtx (with options: `package,LU')
|
|
%% um-code-sym-commands.dtx (with options: `package,LU')
|
|
%% um-code-alphabets.dtx (with options: `package,LU')
|
|
%% um-code-primes.dtx (with options: `package,LU')
|
|
%% um-code-sscript.dtx (with options: `package,LU')
|
|
%% um-code-compat.dtx (with options: `package,LU')
|
|
%% um-code-amsmath.dtx (with options: `package,LU')
|
|
%% um-code-epilogue.dtx (with options: `package,LU')
|
|
%%
|
|
%% ------------------------------------------------
|
|
%% The UNICODE-MATH package <wspr.io/unicode-math>
|
|
%% ------------------------------------------------
|
|
%% This package is free software and may be redistributed and/or modified under
|
|
%% the conditions of the LaTeX Project Public License, version 1.3c or higher
|
|
%% (your choice): <http://www.latex-project.org/lppl/>.
|
|
%% ------------------------------------------------
|
|
%% Copyright 2006-2018 Will Robertson, LPPL "maintainer"
|
|
%% Copyright 2010-2017 Philipp Stephani
|
|
%% Copyright 2011-2017 Joseph Wright
|
|
%% Copyright 2012-2015 Khaled Hosny
|
|
%% ------------------------------------------------
|
|
%%
|
|
%%^^A%% unicode-math.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Metadata for the package code, including files and versioning
|
|
|
|
\ProvidesExplPackage{unicode-math-luatex}
|
|
{2020/01/31} {0.8q} {Unicode maths in XeLaTeX and LuaLaTeX}
|
|
|
|
%%^^A%% um-code-opening.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Assorted initialisation tasks, including some low-level function definitions.
|
|
|
|
\RequirePackage{xparse,l3keys2e}
|
|
\RequirePackage{fontspec}
|
|
\RequirePackage{fix-cm}
|
|
\RequirePackage{amsmath}
|
|
\RequirePackage{lualatex-math}
|
|
\cs_set_protected:Npn \__um_after_package:nNn #1 #2 #3
|
|
{
|
|
\AtBeginDocument
|
|
{
|
|
\cs_new_protected:Npn #2 {#3}
|
|
\@ifpackageloaded {#1} {#2} {}
|
|
}
|
|
}
|
|
\RequirePackage{xparse,l3keys2e}
|
|
\RequirePackage{fontspec}
|
|
\RequirePackage{fix-cm}
|
|
\RequirePackage{lualatex-math}
|
|
\cs_set_protected_nopar:Npn \exp_last_unbraced:NNx { \::N \::x_unbraced \::: }
|
|
\cs_generate_variant:Nn \fontspec_set_family:Nnn {Nx,Nxx}
|
|
\cs_generate_variant:Nn \prop_get:NnNTF {cx}
|
|
\cs_generate_variant:Nn \tl_if_eq:nnF {o}
|
|
\cs_set_eq:NN \__um_group_begin: \group_begin:
|
|
\cs_set_protected:Npn \__um_group_end:n #1 { #1 \group_end: }
|
|
\cs_set_eq:NN \__um_group_begin_frozen: \__um_group_begin:
|
|
\cs_set_eq:NN \__um_group_end_frozen:n \__um_group_end:n
|
|
\prg_new_conditional:Nnn \__um_glyph_if_exist:Nn {p,TF,T,F}
|
|
{
|
|
\tex_iffontchar:D #1 #2 \scan_stop:
|
|
\prg_return_true:
|
|
\else:
|
|
\prg_return_false:
|
|
\fi:
|
|
}
|
|
\cs_set_protected:Nn \__um_fontface_gset_eq:NN
|
|
{
|
|
\tex_global:D \tex_let:D #1 #2
|
|
}
|
|
\cs_generate_variant:Nn \__um_fontface_gset_eq:NN {cN}
|
|
\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_generate_variant:Nn \__um_set_mathchar:NNnn {c}
|
|
\cs_new:Nn \__um_set_delcode:nnn
|
|
{
|
|
\Udelcode#2 = \csname sym#1\endcsname #3 \scan_stop:
|
|
}
|
|
\cs_new:Nn \__um_radical:nn
|
|
{
|
|
\Uradical \csname sym#1\endcsname #2 \scan_stop:
|
|
}
|
|
\cs_new:Nn \__um_delimiter:Nnn
|
|
{
|
|
\Udelimiter \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop:
|
|
}
|
|
\cs_new:Nn \__um_accent:nnn
|
|
{
|
|
\Umathaccent #1~ \mathchar@type\mathaccent \use:c { sym #2 } #3 \scan_stop:
|
|
}
|
|
\cs_new:Nn \__um_char_gmake_mathactive:N
|
|
{
|
|
\tex_global:D \tex_mathcode:D `#1 = "8000 \scan_stop:
|
|
}
|
|
\cs_new:Nn \__um_char_gmake_mathactive:n
|
|
{
|
|
\tex_global:D \tex_mathcode:D \int_eval:n {#1} = "8000 \scan_stop:
|
|
}
|
|
\cs_new:Nn \__um_mathactive_remap:nn
|
|
{
|
|
\group_begin:
|
|
\cs_set_protected:Npn \__um_tmp: {#2}
|
|
\__um_char_gmake_mathactive:n {#1}
|
|
\char_gset_active_eq:nN {#1} \__um_tmp:
|
|
\group_end:
|
|
}
|
|
\cs_new_protected:Nn \__um_mathgroup_set:n
|
|
{
|
|
\tex_fam:D #1 \scan_stop:
|
|
}
|
|
\cs_new:Nn \__um_copy_fontdimen:nnN
|
|
{
|
|
\fontdimen #1 \font = \the \fontdimen #2 #3 \relax
|
|
}
|
|
\cs_new:Nn \__um_zero_fontdimen:n
|
|
{
|
|
\fontdimen #1 \font = 0pt\relax
|
|
}
|
|
\cs_new_protected:Nn \__um_fontdimen_from_param:nn
|
|
{
|
|
\fontdimen #1 \font =
|
|
\lua_now:n { fontspec.mathfontdimen(font.current(),"#2") }
|
|
\scan_stop:
|
|
}
|
|
\prg_new_conditional:Nnn \__um_int_if_zero:n {p,TF,T,F}
|
|
{
|
|
\int_compare:nNnTF {#1} = 0 {\prg_return_true:} {\prg_return_false:}
|
|
}
|
|
\cs_new:Nn \usv_set:nnn { \tl_const:cn { c__um_#1_#2_usv } {#3} }
|
|
\cs_new:Nn \__um_to_usv:nn { \use:c { c__um_#1_#2_usv } }
|
|
\prg_new_conditional:Nnn \__um_usv_if_exist:nn {T,F,TF}
|
|
{
|
|
\cs_if_exist:cTF { c__um_#1_#2_usv }
|
|
\prg_return_true: \prg_return_false:
|
|
}
|
|
\tl_map_inline:nn
|
|
{
|
|
\new@mathgroup\cdp@list\cdp@elt\DeclareMathSizes
|
|
\@DeclareMathSizes\newmathalphabet\newmathalphabet__um\newmathalphabet__um@
|
|
\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__ummathdelimiter\DeclareMathRadical\mathchar@type
|
|
\DeclareSymbolFontAlphabet\DeclareSymbolFontAlphabet@
|
|
}
|
|
{
|
|
\tl_remove_once:Nn \@preamblecmds {\do#1}
|
|
}
|
|
\cs_new:Npn \__um_error:n { \msg_error:nn {unicode-math} }
|
|
\cs_new:Npn \__um_error:nx { \msg_error:nnx {unicode-math} }
|
|
\cs_new:Npn \__um_warning:n { \msg_warning:nn {unicode-math} }
|
|
\cs_new:Npn \__um_warning:nnn { \msg_warning:nnxx {unicode-math} }
|
|
\cs_new:Npn \__um_log:n { \msg_log:nn {unicode-math} }
|
|
\cs_new:Npn \__um_log:nx { \msg_log:nnx {unicode-math} }
|
|
\cs_generate_variant:Nn \msg_new:nnn {nnx}
|
|
\cs_generate_variant:Nn \msg_new:nnnn {nnxx}
|
|
\cs_new:Nn \__um_msg_new:nn { \msg_new:nnx {unicode-math} {#1} { \tl_trim_spaces:n {#2} } }
|
|
\cs_new:Npn \__um_cs_set:Nn #1 #2
|
|
{
|
|
\cs_if_exist:NF #1 { \ERROR{CS~ DOES~ NOT~ EXIST,~ USE~ "NEW"} }
|
|
\cs_set_protected:Nn #1
|
|
{
|
|
#2
|
|
}
|
|
}
|
|
\cs_new:Npn \__um_cs_new:Nn #1 #2
|
|
{
|
|
\cs_new_protected:Nn #1
|
|
{
|
|
#2
|
|
}
|
|
}
|
|
|
|
%%^^A%% um-code-variables.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Declaration of all code-level variables used in the package.
|
|
|
|
\bool_new:N \g__um_ot_math_bool
|
|
\bool_new:N \g__um_main_font_defined_bool
|
|
\bool_new:N \g__um_init_bool
|
|
\bool_new:N \l__um_implicit_alph_bool
|
|
\bool_new:N \g__um_literal_bool
|
|
\bool_new:N \g__um_upLatin_bool
|
|
\bool_new:N \g__um_uplatin_bool
|
|
\bool_new:N \g__um_upGreek_bool
|
|
\bool_new:N \g__um_upgreek_bool
|
|
\bool_new:N \g__um_bfliteral_bool
|
|
\bool_new:N \g__um_bfupLatin_bool
|
|
\bool_new:N \g__um_bfuplatin_bool
|
|
\bool_new:N \g__um_bfupGreek_bool
|
|
\bool_new:N \g__um_bfupgreek_bool
|
|
\bool_new:N \g__um_upsans_bool
|
|
\bool_new:N \g__um_sfliteral_bool
|
|
\bool_new:N \g__um_upNabla_bool
|
|
\bool_new:N \g__um_uppartial_bool
|
|
\bool_new:N \g__um_literal_Nabla_bool
|
|
\bool_new:N \g__um_literal_partial_bool
|
|
\bool_new:N \l__um_smallfrac_bool
|
|
\bool_new:N \g__um_literal_colon_bool
|
|
\bool_new:N \g__um_mathrm_text_bool
|
|
\bool_new:N \g__um_mathit_text_bool
|
|
\bool_new:N \g__um_mathbf_text_bool
|
|
\bool_new:N \g__um_mathsf_text_bool
|
|
\bool_new:N \g__um_mathtt_text_bool
|
|
\int_new:N \g__um_fam_int
|
|
\int_new:N \g__um_fonts_used_int
|
|
\int_new:N \l__um_primecount_int
|
|
\tl_if_exist:NF \g__um_secret_hook_tl { \tl_new:N \g__um_secret_hook_tl }
|
|
\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.}
|
|
\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_tmpb_tl
|
|
\tl_new:N \l__um_tmpc_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 \l__um_ss_chain_tl
|
|
\tl_new:N \l__um_tmpa_key_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 \l__um_mathtable_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 \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
|
|
\tl_new:N \l__um_not_token_name_tl
|
|
\tl_new:N \g__um_curr_font_cmd_tl
|
|
\tl_new:N \g__um_sqrt_font_cmd_tl
|
|
\tl_new:N \g__um_prime_font_cmd_tl
|
|
\tl_new:N \g__um_mathparam_store_tl
|
|
\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_keyval_clist
|
|
\clist_new:N \l__um_alphabet_clist
|
|
\clist_new:N \g__um_bad_alpha_clist
|
|
\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_gset_from_clist:Nn \g__um_mathclasses_seq
|
|
{
|
|
\mathord,\mathalpha,\mathbin,\mathrel,\mathpunct,
|
|
\mathop,
|
|
\mathopen,\mathclose,
|
|
\mathfence,\mathover,\mathunder,
|
|
\mathaccent,\mathaccentoverlay,\mathbotaccent,\mathaccentwide,\mathbotaccentwide
|
|
}
|
|
\seq_new:N \g__um_default_mathalph_seq
|
|
\seq_new:N \g__um_mathstyles_seq
|
|
\prop_new:N \g__um_supers_prop
|
|
\prop_new:N \g__um_subs_prop
|
|
\muskip_new:N \g__um_primekern_muskip
|
|
\muskip_gset:Nn \g__um_primekern_muskip { -\thinmuskip/2 }% arbitrary
|
|
\fp_new:N \g__um_size_tfsf_fp
|
|
\fp_new:N \g__um_size_sfssf_fp
|
|
\quark_new:N \q_unicode_math
|
|
|
|
%%^^A%% um-code-api.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% The (underdeveloped) API to interface with the package internals.
|
|
|
|
\cs_new:Nn \unimath_get_mathstyle:
|
|
{
|
|
\tl_use:N \l__um_mathstyle_tl
|
|
}
|
|
|
|
%%^^A%% um-code-ui.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% The xparse user interface top-level definitions.
|
|
|
|
\NewDocumentCommand \unimathsetup {m} { \keys_set:nn {unicode-math} {#1} }
|
|
\NewDocumentCommand \setmathfont { O{} m O{} }
|
|
{
|
|
\__um_setmathfont:nn {#1,#3} {#2}
|
|
}
|
|
\NewDocumentCommand \setmathfontface { m O{} m O{} }
|
|
{
|
|
\__um_setmathfontface:Nnn #1 {#2,#4} {#3}
|
|
}
|
|
\@onlypreamble \setmathfontface
|
|
\NewDocumentCommand \setoperatorfont {m}
|
|
{
|
|
\tl_gset:Nn \g__um_operator_mathfont_tl {#1}
|
|
}
|
|
\setoperatorfont{\mathrm}
|
|
\NewDocumentCommand \addnolimits {m}
|
|
{
|
|
\tl_put_right:Nn \l__um_nolimits_tl {#1}
|
|
}
|
|
\NewDocumentCommand \removenolimits {m}
|
|
{
|
|
\tl_remove_all:Nn \l__um_nolimits_tl {#1}
|
|
}
|
|
|
|
%%^^A%% um-code-pkgopt.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Package options.
|
|
|
|
\cs_new:Nn \__um_keys_choices:nn
|
|
{
|
|
\cs_set:Npn \__um_keys_choices_fn:nn { \__um_keys_choices_aux:nnn {#1} }
|
|
\use:x
|
|
{
|
|
\exp_not:N \keys_define:nn {unicode-math}
|
|
{
|
|
#1 .choice: ,
|
|
\__um_tl_map_dbl:nN {#2} \__um_keys_choices_fn:nn
|
|
}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_keys_choices_aux:nnn { #1 / #2 .code:n = { \exp_not:n {#3} } , }
|
|
\cs_new:Nn \__um_tl_map_dbl:nN
|
|
{
|
|
\__um_tl_map_dbl:Nnn #2 #1 \q_recursion_tail {}{} \q_recursion_stop
|
|
}
|
|
\cs_new:Nn \__um_tl_map_dbl:Nnn
|
|
{
|
|
\quark_if_recursion_tail_stop:n {#2}
|
|
\quark_if_recursion_tail_stop:n {#3}
|
|
#1 {#2} {#3}
|
|
\__um_tl_map_dbl:Nnn #1
|
|
}
|
|
\__um_keys_choices:nn {mathup}
|
|
{
|
|
{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_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_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_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_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_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_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_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_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_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_gset_true:N \g__um_literal_bool
|
|
}
|
|
}
|
|
\__um_keys_choices:nn {math-style}
|
|
{
|
|
{ISO} {
|
|
\unimathsetup { nabla=upright, partial=italic,
|
|
normal-style=ISO, bold-style=ISO, sans-style=italic }
|
|
}
|
|
{TeX} {
|
|
\unimathsetup { nabla=upright, partial=italic,
|
|
normal-style=TeX, bold-style=TeX, sans-style=upright }
|
|
}
|
|
{french} {
|
|
\unimathsetup { nabla=upright, partial=upright,
|
|
normal-style=french, bold-style=upright, sans-style=upright }
|
|
}
|
|
{upright} {
|
|
\unimathsetup { nabla=upright, partial=upright,
|
|
normal-style=upright, bold-style=upright, sans-style=upright }
|
|
}
|
|
{literal} {
|
|
\unimathsetup { colon=literal, nabla=literal, partial=literal,
|
|
normal-style=literal, bold-style=literal, sans-style=literal }
|
|
}
|
|
}
|
|
\__um_keys_choices:nn {bold-style}
|
|
{
|
|
{ISO} {
|
|
\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_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_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_gset_true:N \g__um_bfliteral_bool
|
|
}
|
|
}
|
|
\__um_keys_choices:nn {sans-style}
|
|
{
|
|
{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_gset_false:N \g__um_literal_Nabla_bool
|
|
\bool_gset_true:N \g__um_upNabla_bool
|
|
}
|
|
{italic} {
|
|
\bool_gset_false:N \g__um_literal_Nabla_bool
|
|
\bool_gset_false:N \g__um_upNabla_bool
|
|
}
|
|
{literal} {
|
|
\bool_gset_true:N \g__um_literal_Nabla_bool
|
|
}
|
|
}
|
|
\__um_keys_choices:nn {partial}
|
|
{
|
|
{upright} {
|
|
\bool_gset_false:N \g__um_literal_partial_bool
|
|
\bool_gset_true:N \g__um_uppartial_bool
|
|
}
|
|
{italic} {
|
|
\bool_gset_false:N \g__um_literal_partial_bool
|
|
\bool_gset_false:N \g__um_uppartial_bool
|
|
}
|
|
{literal} {
|
|
\bool_gset_true:N \g__um_literal_partial_bool
|
|
}
|
|
}
|
|
\__um_keys_choices:nn {colon}
|
|
{
|
|
{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_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}
|
|
{
|
|
{small}
|
|
{
|
|
\cs_if_exist:NTF \tfrac
|
|
{ \bool_set_true:N \l__um_smallfrac_bool }
|
|
{
|
|
\__um_warning:n {no-tfrac}
|
|
\bool_set_false:N \l__um_smallfrac_bool
|
|
}
|
|
\use:c {__um_setup_active_frac:}
|
|
}
|
|
|
|
{normalsize}
|
|
{
|
|
\bool_set_false:N \l__um_smallfrac_bool
|
|
\use:c {__um_setup_active_frac:}
|
|
}
|
|
}
|
|
\keys_define:nn {unicode-math}
|
|
{
|
|
warnings-off .code:n =
|
|
{
|
|
\clist_map_inline:nn {#1}
|
|
{ \msg_redirect_name:nnn { unicode-math } { ##1 } { none } }
|
|
}
|
|
}
|
|
\__um_keys_choices:nn {trace}
|
|
{
|
|
{on} {} % default
|
|
{debug} { \msg_redirect_module:nnn { unicode-math } { log } { warning } }
|
|
{off} { \msg_redirect_module:nnn { unicode-math } { log } { none } }
|
|
}
|
|
\unimathsetup {math-style=TeX}
|
|
\unimathsetup {slash-delimiter=ascii}
|
|
\unimathsetup {trace=off}
|
|
\unimathsetup {mathrm=text,mathit=text,mathbf=text,mathsf=text,mathtt=text}
|
|
\cs_if_exist:NT \tfrac { \unimathsetup {active-frac=small} }
|
|
\ProcessKeysOptions {unicode-math}
|
|
|
|
%%^^A%% um-code-msg.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Definitions of error, warning, and log messages.
|
|
|
|
\char_set_catcode_space:n {32}
|
|
\__um_msg_new:nn {no-tfrac}
|
|
{
|
|
Small fraction command \protect\tfrac\ not defined.\\
|
|
Load amsmath or define it manually before loading unicode-math.
|
|
}
|
|
\__um_msg_new:nn {default-math-font}
|
|
{
|
|
Defining the default maths font as '\l__um_fontname_tl'.
|
|
}
|
|
\__um_msg_new:nn {setup-implicit}
|
|
{
|
|
Setup alphabets: implicit mode.
|
|
}
|
|
\__um_msg_new:nn {setup-explicit}
|
|
{
|
|
Setup alphabets: explicit mode.
|
|
}
|
|
\__um_msg_new:nn {alph-initialise}
|
|
{
|
|
Initialising \@backslashchar math#1.
|
|
}
|
|
\__um_msg_new:nn {setup-alph}
|
|
{
|
|
Setup alphabet: #1.
|
|
}
|
|
\__um_msg_new:nn {no-alphabet}
|
|
{
|
|
I am trying to set up alphabet"#1" but there are no configuration settings for it.
|
|
(See source file "unicode-math-alphabets.dtx" to debug.)
|
|
}
|
|
\__um_msg_new:nn {no-named-range}
|
|
{
|
|
I am trying to define new alphabet "#2" in range "#1", but range "#1" hasn't been defined yet.
|
|
}
|
|
\__um_msg_new:nn {missing-alphabets}
|
|
{
|
|
Missing math alphabets in font "\fontname\g__um_curr_font_cmd_tl" \\ \\
|
|
\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 \\ }
|
|
\__um_msg_new:nn {macro-expected}
|
|
{
|
|
I've expected that #1 is a macro, but it isn't.
|
|
}
|
|
\__um_msg_new:nn {wrong-meaning}
|
|
{
|
|
I've expected #1 to have the meaning #3, but it has the meaning #2.
|
|
}
|
|
\__um_msg_new:nn {patch-macro}
|
|
{
|
|
I'm going to patch macro #1.
|
|
}
|
|
\__um_msg_new:nn {mathtools-overbracket} {
|
|
Using \token_to_str:N \overbracket\ and
|
|
\token_to_str:N \underbracket\ from
|
|
`mathtools' package.\\
|
|
\\
|
|
Use \token_to_str:N \Uoverbracket\ and
|
|
\token_to_str:N \Uunderbracket\ for
|
|
original `unicode-math' definition.
|
|
}
|
|
\__um_msg_new:nn {mathtools-colon} {
|
|
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.
|
|
}
|
|
\__um_msg_new:nn {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.
|
|
}
|
|
\__um_msg_new:nn {bad-cs-in-range}
|
|
{
|
|
Command `#1` in math range is not recognised as a maths symbol.
|
|
Check file "unicode-math-table.tex" for allowable commands.
|
|
}
|
|
\__um_msg_new:nn {legacy-char-not-supported}
|
|
{
|
|
Command `#1` is a legacy maths symbol that is not supported by unicode-math.
|
|
}
|
|
\__um_msg_new:nn {range-not-bf-sf}
|
|
{
|
|
Range alphabets cannot include alphabets referring to `bf`, `sf`, or `bfsf`
|
|
since they relate to input commands not output glyphs.
|
|
Use `bfit` or `bfup` (etc.) to specify which.
|
|
}
|
|
\__um_msg_new:nn {no-main-font}
|
|
{
|
|
No main maths font has been set up yet.\\If you simply want ‘the default’, use: \\
|
|
\iow_indent:n {\token_to_str:N\setmathfont{latinmodern-math.otf}}
|
|
}
|
|
\__um_msg_new:nn {not-ot-math}
|
|
{
|
|
The first font loaded by unicode-math must be an OpenType Math font (with script=math).
|
|
If you simply want ‘the default’ before loading supplementary fonts over the top for certain
|
|
ranges, use: \\
|
|
\iow_indent:n {\token_to_str:N\setmathfont{latinmodern-math.otf}}
|
|
}
|
|
\char_set_catcode_ignore:n {32}
|
|
|
|
%%^^A%% um-code-usv.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Mapping of mathematical unicode slots for alphabets.
|
|
|
|
\usv_set:nnn {normal} {num} {48}
|
|
\usv_set:nnn {normal} {Latin} {"1D434}
|
|
\usv_set:nnn {normal} {latin} {"1D44E}
|
|
\usv_set:nnn {normal} {Greek} {"1D6E2}
|
|
\usv_set:nnn {normal} {greek} {"1D6FC}
|
|
\usv_set:nnn {normal} {varTheta} {"1D6F3}
|
|
\usv_set:nnn {normal} {epsilon} {"1D716}
|
|
\usv_set:nnn {normal} {vartheta} {"1D717}
|
|
\usv_set:nnn {normal} {varkappa} {"1D718}
|
|
\usv_set:nnn {normal} {phi} {"1D719}
|
|
\usv_set:nnn {normal} {varrho} {"1D71A}
|
|
\usv_set:nnn {normal} {varpi} {"1D71B}
|
|
\usv_set:nnn {normal} {Nabla} {"1D6FB}
|
|
\usv_set:nnn {normal} {partial} {"1D715}
|
|
\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} {epsilon} {"3F5}
|
|
\usv_set:nnn {up} {vartheta} {"3D1}
|
|
\usv_set:nnn {up} {varkappa} {"3F0}
|
|
\usv_set:nnn {up} {phi} {"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} {epsilon} {"1D6DC}
|
|
\usv_set:nnn {bfup} {vartheta} {"1D6DD}
|
|
\usv_set:nnn {bfup} {varkappa} {"1D6DE}
|
|
\usv_set:nnn {bfup} {phi} {"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} {epsilon} {"1D716}
|
|
\usv_set:nnn {it} {vartheta} {"1D717}
|
|
\usv_set:nnn {it} {varkappa} {"1D718}
|
|
\usv_set:nnn {it} {phi} {"1D719}
|
|
\usv_set:nnn {it} {varrho} {"1D71A}
|
|
\usv_set:nnn {it} {varpi} {"1D71B}
|
|
\usv_set:nnn {bfit} {varTheta} {"1D72D}
|
|
\usv_set:nnn {bfit} {epsilon} {"1D750}
|
|
\usv_set:nnn {bfit} {vartheta} {"1D751}
|
|
\usv_set:nnn {bfit} {varkappa} {"1D752}
|
|
\usv_set:nnn {bfit} {phi} {"1D753}
|
|
\usv_set:nnn {bfit} {varrho} {"1D754}
|
|
\usv_set:nnn {bfit} {varpi} {"1D755}
|
|
\usv_set:nnn {bfsfup} {varTheta} {"1D767}
|
|
\usv_set:nnn {bfsfup} {epsilon} {"1D78A}
|
|
\usv_set:nnn {bfsfup} {vartheta} {"1D78B}
|
|
\usv_set:nnn {bfsfup} {varkappa} {"1D78C}
|
|
\usv_set:nnn {bfsfup} {phi} {"1D78D}
|
|
\usv_set:nnn {bfsfup} {varrho} {"1D78E}
|
|
\usv_set:nnn {bfsfup} {varpi} {"1D78F}
|
|
\usv_set:nnn {bfsfit} {varTheta} {"1D7A1}
|
|
\usv_set:nnn {bfsfit} {epsilon} {"1D7C4}
|
|
\usv_set:nnn {bfsfit} {vartheta} {"1D7C5}
|
|
\usv_set:nnn {bfsfit} {varkappa} {"1D7C6}
|
|
\usv_set:nnn {bfsfit} {phi} {"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}
|
|
|
|
%%^^A%% um-code-setchar.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% General assignment of maths symbols.
|
|
|
|
\group_begin:
|
|
\file_get:nnN {unicode-math-table.tex} {} \l__um_mathtable_tl
|
|
\cs_set:Npn \UnicodeMathSymbol #1#2#3#4
|
|
{
|
|
\exp_not:n { \__um_sym:nnn {#1} {#2} {#3} }
|
|
}
|
|
\tl_gset:Nx \g__um_mathtable_tl {\l__um_mathtable_tl}
|
|
\group_end:
|
|
\__um_cs_new:Nn \__um_input_math_symbol_table: {\g__um_mathtable_tl}
|
|
\AtBeginDocument{\__um_define_math_chars:}
|
|
\__um_cs_new:Nn \__um_define_math_chars:
|
|
{
|
|
\group_begin:
|
|
\cs_set:Npn \__um_sym:nnn ##1##2##3
|
|
{
|
|
\tl_if_in:nnT
|
|
{ \mathord \mathalpha \mathbin \mathrel \mathpunct \mathop \mathfence }
|
|
{##3}
|
|
{
|
|
\exp_last_unbraced:NNx \cs_gset_eq:NN ##2 { \char_generate:nn {##1} {12} }
|
|
}
|
|
}
|
|
\__um_input_math_symbol_table:
|
|
\group_end:
|
|
}
|
|
\cs_set:Nn \__um_set_mathsymbol:nNNn
|
|
{
|
|
\bool_lazy_and:nnT
|
|
{
|
|
\int_compare_p:nNn {#4} > {127}
|
|
}
|
|
{
|
|
\int_compare_p:nNn { \char_value_catcode:n {#4} } = {11}
|
|
}
|
|
{ \char_set_catcode_other:n {#4} }
|
|
|
|
\tl_case:Nn #3
|
|
{
|
|
\mathord { \__um_set_mathcode:nnn {#4} {#3} {#1} }
|
|
\mathalpha { \__um_set_mathcode:nnn {#4} {#3} {#1} }
|
|
\mathbin { \__um_set_mathcode:nnn {#4} {#3} {#1} }
|
|
\mathrel { \__um_set_mathcode:nnn {#4} {#3} {#1} }
|
|
\mathpunct { \__um_set_mathcode:nnn {#4} {#3} {#1} }
|
|
\mathop { \__um_set_big_operator:nnn {#1} {#2} {#4} }
|
|
\mathopen { \__um_set_math_open:nnn {#1} {#2} {#4} }
|
|
\mathclose { \__um_set_math_close:nnn {#1} {#2} {#4} }
|
|
\mathfence { \__um_set_math_fence:nnnn {#1} {#2} {#3} {#4} }
|
|
\mathaccent
|
|
{ \__um_set_math_accent:Nnnn #2 {fixed} {#1} {#4} }
|
|
\mathbotaccent
|
|
{ \__um_set_math_accent:Nnnn #2 {bottom~ fixed} {#1} {#4} }
|
|
\mathaccentwide
|
|
{ \__um_set_math_accent:Nnnn #2 {} {#1} {#4} }
|
|
\mathbotaccentwide
|
|
{ \__um_set_math_accent:Nnnn #2 {bottom} {#1} {#4} }
|
|
\mathover
|
|
{ \__um_set_math_overunder:Nnnn #2 {} {#1} {#4} }
|
|
\mathunder
|
|
{ \__um_set_math_overunder:Nnnn #2 {bottom} {#1} {#4} }
|
|
\mathaccentoverlay
|
|
{ \__um_set_math_accent:Nnnn #2 {overlay~ fixed} {#1} {#4} }
|
|
}
|
|
}
|
|
\edef\mathfence{\string\mathfence}
|
|
\edef\mathover{\string\mathover}
|
|
\edef\mathunder{\string\mathunder}
|
|
\edef\mathbotaccent{\string\mathbotaccent}
|
|
\edef\mathaccentwide{\string\mathaccentwide}
|
|
\edef\mathaccentoverlay{\string\mathaccentoverlay}
|
|
\edef\mathbotaccentwide{\string\mathbotaccentwide}
|
|
\cs_new:Nn \__um_set_big_operator:nnn
|
|
{
|
|
\__um_char_gmake_mathactive:n {#3}
|
|
\cs_set_protected_nopar:Npx \__um_tmpa: { \exp_not:c { \cs_to_str:N #2 _sym } }
|
|
\char_gset_active_eq:nN {#3} \__um_tmpa:
|
|
|
|
\__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_new:Nn \__um_set_math_open:nnn
|
|
{
|
|
\tl_if_in:NnTF \l__um_radicals_tl {#2}
|
|
{
|
|
\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}
|
|
\__um_set_mathcode:nnn {#3} \mathopen {#1}
|
|
\cs_gset_protected_nopar:Npx #2
|
|
{ \__um_delimiter:Nnn \mathopen {#1} {#3} }
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_set_math_close:nnn
|
|
{
|
|
\__um_set_delcode:nnn {#1} {#3} {#3}
|
|
\__um_set_mathcode:nnn {#3} \mathclose {#1}
|
|
\cs_gset_protected_nopar:Npx #2
|
|
{ \__um_delimiter:Nnn \mathclose {#1} {#3} }
|
|
}
|
|
\cs_new:Nn \__um_set_math_fence:nnnn
|
|
{
|
|
\__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} }
|
|
}
|
|
\cs_new:Nn \__um_set_math_accent:Nnnn
|
|
{
|
|
\cs_gset_protected_nopar:Npx #1
|
|
{ \__um_accent:nnn {#2} {#3} {#4} }
|
|
}
|
|
\cs_new:Nn \__um_set_math_overunder:Nnnn
|
|
{
|
|
\cs_gset_protected_nopar:Npx #1 ##1
|
|
{
|
|
\mathop
|
|
{ \__um_accent:nnn {#2} {#3} {#4} {{}##1} }
|
|
% TODO: remove braces above ^^ which work around a LuaTeX bug
|
|
\limits
|
|
}
|
|
}
|
|
|
|
%%^^A%% um-code-mathtext.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% The "math text" commands such as `\mathbf` and co.
|
|
|
|
\keys_define:nn {__um_mathface}
|
|
{
|
|
version .tl_set:N = \l__um_mversion_tl
|
|
}
|
|
\__um_cs_new:Nn \__um_setmathfontface:Nnn
|
|
{
|
|
\tl_clear:N \l__um_mversion_tl
|
|
|
|
\keys_set_known:nnN {__um_mathface} {#2} \l__um_keyval_clist
|
|
|
|
\fontspec_set_family:Nxx \l__um_tmpa_tl
|
|
{ ItalicFont={}, BoldFont={}, SmallCapsFont={}, \exp_not:V \l__um_keyval_clist }
|
|
{ #3 }
|
|
|
|
\tl_if_empty:NT \l__um_mversion_tl
|
|
{
|
|
\tl_set:Nn \l__um_mversion_tl {normal}
|
|
\DeclareMathAlphabet #1 {\g_fontspec_encoding_tl} {\l__um_tmpa_tl} {\mddefault} {\shapedefault}
|
|
}
|
|
|
|
\SetMathAlphabet #1 {\l__um_mversion_tl} {\g_fontspec_encoding_tl} {\l__um_tmpa_tl} {\mddefault} {\shapedefault}
|
|
|
|
% integrate with fontspec's \setmathrm etc:
|
|
\tl_case:Nn #1
|
|
{
|
|
\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
|
|
{
|
|
\math@bgroup
|
|
\cs_if_eq:cNF {M@\f@encoding} #1 {#1}
|
|
\__um_switch_to:n {literal}
|
|
\__um_mathgroup_set:n {#2}
|
|
\math@egroup
|
|
}
|
|
\cs_set:Npn \operator@font
|
|
{
|
|
\__um_switch_to:n {literal}
|
|
\__um_fontswitch:n { \g__um_operator_mathfont_tl }
|
|
}
|
|
\cs_set:Nn \__um_fontswitch:n
|
|
{
|
|
\cs_set_eq:NN \math@bgroup \scan_stop:
|
|
\cs_set_eq:NN \__um_group_begin: \scan_stop:
|
|
\cs_set:Npn \__um_group_end:n % takes no argument in this case
|
|
{
|
|
\cs_set_eq:NN \__um_group_begin: \__um_group_begin_frozen:
|
|
\cs_set_eq:NN \__um_group_end:n \__um_group_end_frozen:n
|
|
\cs_set_eq:NN \math@bgroup \@@math@bgroup
|
|
\cs_set_eq:NN \math@egroup \@@math@egroup
|
|
}
|
|
\cs_set_eq:NN \math@egroup \__um_group_end:n
|
|
#1 \scan_stop:
|
|
}
|
|
\cs_generate_variant:Nn \tl_if_eq:nnT {o}
|
|
\__um_cs_set:Nn \__fontspec_setmainfont_hook:nn
|
|
{
|
|
\tl_if_eq:onT {\g__fontspec_mathrm_tl} {\rmdefault}
|
|
{
|
|
\fontspec_gset_family:Nnn \g__fontspec_mathrm_tl {Renderer=Basic,#1} {#2}
|
|
\__fontspec_setmathrm_hook:nn {#1} {#2}
|
|
}
|
|
}
|
|
\__um_cs_set:Nn \__fontspec_setsansfont_hook:nn
|
|
{
|
|
\tl_if_eq:onT {\g__fontspec_mathsf_tl} {\sfdefault}
|
|
{
|
|
\fontspec_gset_family:Nnn \g__fontspec_mathsf_tl {Renderer=Basic,#1} {#2}
|
|
\__fontspec_setmathsf_hook:nn {#1} {#2}
|
|
}
|
|
}
|
|
\__um_cs_set:Nn \__fontspec_setmonofont_hook:nn
|
|
{
|
|
\tl_if_eq:onT {\g__fontspec_mathtt_tl} {\ttdefault}
|
|
{
|
|
\fontspec_gset_family:Nnn \g__fontspec_mathtt_tl {Renderer=Basic,#1} {#2}
|
|
\__fontspec_setmathtt_hook:nn {#1} {#2}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_rm_series_default:n
|
|
{
|
|
\ifcsname #1series@rm\endcsname
|
|
\csname #1series@rm\endcsname
|
|
\else
|
|
\csname #1default\endcsname
|
|
\fi
|
|
}
|
|
\__um_cs_set:Nn \__fontspec_setmathrm_hook:nn
|
|
{
|
|
\SetMathAlphabet\mathrm{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl{\__um_rm_series_default:n {md}}\shapedefault
|
|
\SetMathAlphabet\mathit{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl{\__um_rm_series_default:n {md}}\itdefault
|
|
\SetMathAlphabet\mathbf{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl{\__um_rm_series_default:n {bf}}\shapedefault
|
|
}
|
|
\__um_cs_set:Nn \__fontspec_setboldmathrm_hook:nn
|
|
{
|
|
\SetMathAlphabet\mathrm{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl{\__um_rm_series_default:n {md}}\shapedefault
|
|
\SetMathAlphabet\mathbf{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl{\__um_rm_series_default:n {bf}}\shapedefault
|
|
\SetMathAlphabet\mathit{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\mddefault\itdefault
|
|
}
|
|
\__um_cs_set:Nn \__fontspec_setmathsf_hook:nn
|
|
{
|
|
\SetMathAlphabet\mathsf{normal}\g_fontspec_encoding_tl\g__fontspec_mathsf_tl{\__um_rm_series_default:n {md}}\shapedefault
|
|
\SetMathAlphabet\mathsf{bold} \g_fontspec_encoding_tl\g__fontspec_mathsf_tl{\__um_rm_series_default:n {bf}}\shapedefault
|
|
}
|
|
\__um_cs_set:Nn \__fontspec_setmathtt_hook:nn
|
|
{
|
|
\SetMathAlphabet\mathtt{normal}\g_fontspec_encoding_tl\g__fontspec_mathtt_tl{\__um_rm_series_default:n {md}}\shapedefault
|
|
\SetMathAlphabet\mathtt{bold} \g_fontspec_encoding_tl\g__fontspec_mathtt_tl{\__um_rm_series_default:n {bf}}\shapedefault
|
|
}
|
|
\tl_if_eq:onF {\g__fontspec_mathrm_tl} {\rmdefault} { \__fontspec_setmathrm_hook:nn {} {} }
|
|
\tl_if_eq:onF {\g__fontspec_mathsf_tl} {\sfdefault} { \__fontspec_setmathsf_hook:nn {} {} }
|
|
\tl_if_eq:onF {\g__fontspec_mathtt_tl} {\ttdefault} { \__fontspec_setmathtt_hook:nn {} {} }
|
|
\AtBeginDocument
|
|
{
|
|
\tl_if_eq:onT {\g__fontspec_mathrm_tl} {\rmdefault} { \__fontspec_setmathrm_hook:nn {} {} }
|
|
\tl_if_eq:onT {\g__fontspec_mathsf_tl} {\sfdefault} { \__fontspec_setmathsf_hook:nn {} {} }
|
|
\tl_if_eq:onT {\g__fontspec_mathtt_tl} {\ttdefault} { \__fontspec_setmathtt_hook:nn {} {} }
|
|
}
|
|
|
|
%%^^A%% um-code-main.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Definition of `\setmainfont`.
|
|
|
|
\__um_cs_new:Nn \__um_setmathfont:nn
|
|
{
|
|
|
|
\__um_init:n {#2}
|
|
\cs_set_eq:NN \glb@currsize \scan_stop:
|
|
\cs_if_exist:cF { S@ \f@size } { \calculate@math@sizes }
|
|
\use:c { S@ \f@size }
|
|
|
|
\keys_set_known:nnN {unicode-math} {#1} \l__um_unknown_keys_clist
|
|
|
|
\bool_if:NT \g__um_init_bool \__um_fontspec_trial_font:
|
|
\bool_if:NT \g__um_init_bool \__um_declare_math_sizes:
|
|
|
|
\__um_fontspec_select_font:
|
|
\__um_setup_math_fam:
|
|
\bool_if:NT \g__um_init_bool
|
|
{
|
|
\__um_setup_legacy_fam_two:
|
|
\__um_setup_legacy_fam_three:
|
|
}
|
|
|
|
\__um_input_math_symbol_table:
|
|
|
|
\bool_if:NT \g__um_init_bool \__um_onceoff_setup:
|
|
\__um_remap_symbols:
|
|
\__um_setup_mathactives:
|
|
\__um_setup_delcodes:
|
|
\__um_setup_alphabets:
|
|
|
|
%% TODO: what of the above should only be run for the "default"/"main" font?
|
|
|
|
\bool_if:NTF \g__um_init_bool
|
|
{
|
|
\bool_gset_true:N \g__um_main_font_defined_bool
|
|
\__um_mathparam_store:
|
|
\__um_log:n {default-math-font}
|
|
}
|
|
{
|
|
\__um_mathparam_restore:
|
|
}
|
|
}
|
|
\AtBeginDocument { \bool_if:NF \g__um_main_font_defined_bool \__um_load_lm: }
|
|
\__um_cs_new:Nn \__um_load_lm:
|
|
{
|
|
\setmathfont{latinmodern-math.otf}[BoldFont={latinmodern-math.otf}]
|
|
}
|
|
\__um_cs_new:Nn \__um_init:n
|
|
{
|
|
\tl_set:Nn \l__um_fontname_tl {#1}
|
|
\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}
|
|
|
|
\tl_set:Nn \l__um_script_features_tl {Style=MathScript}
|
|
\tl_set:Nn \l__um_sscript_features_tl {Style=MathScriptScript}
|
|
\tl_set_eq:NN \l__um_script_font_tl \l__um_fontname_tl
|
|
\tl_set_eq:NN \l__um_sscript_font_tl \l__um_fontname_tl
|
|
|
|
\bool_gset_true:N \g__um_init_bool
|
|
\seq_gclear:N \g__um_char_range_seq
|
|
\clist_clear:N \l__um_mathmap_charints_clist
|
|
\seq_gclear:N \g__um_mathalph_seq
|
|
\seq_clear:N \l__um_missing_alph_seq
|
|
|
|
\cs_set_eq:NN \__um_sym:nnn \__um_process_symbol_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_assign_delcode:nn \__um_assign_delcode_noparse:nn
|
|
\cs_set_eq:NN \__um_make_mathactive:nNN \__um_make_mathactive_noparse:nNN
|
|
}
|
|
\tl_new:N \g__um_main_font_cmd_tl
|
|
\cs_new:Nn \__um_sf_size: { \__um_fontdimen_pc_to_pt:nN {10} \g__um_trial_font }
|
|
\cs_new:Nn \__um_ssf_size: { \__um_fontdimen_pc_to_pt:nN {11} \g__um_trial_font }
|
|
\__um_cs_new:Nn \__um_declare_math_sizes:
|
|
{
|
|
\fp_gset:Nn \g__um_size_tfsf_fp { (\f@size + \__um_sf_size: )/2 }
|
|
\fp_gset:Nn \g__um_size_sfssf_fp { (\__um_sf_size: + \__um_ssf_size:)/2 }
|
|
|
|
\dim_compare:nF { \fontdimen 10 \g__um_trial_font == 0pt }
|
|
{
|
|
\DeclareMathSizes { \f@size } { \f@size } { \__um_sf_size: } { \__um_ssf_size: }
|
|
}
|
|
}
|
|
\__um_cs_new:Nn \__um_fontspec_trial_font:
|
|
{
|
|
\tl_set:Nx \l__um_font_keyval_tl
|
|
{
|
|
Renderer = Basic,
|
|
BoldItalicFont = {}, ItalicFont = {}, SmallCapsFont = {},
|
|
Script = Math,
|
|
FontAdjustment = { \__um_luatex_copy_fontdimens: },
|
|
\l__um_unknown_keys_clist
|
|
}
|
|
|
|
\fontspec_set_family:Nxn \l__um_trial_family_tl {\l__um_font_keyval_tl} {\l__um_fontname_tl}
|
|
|
|
\group_begin:
|
|
\fontfamily { \l__um_trial_family_tl } \selectfont
|
|
\exp_last_unbraced:NNo \__um_fontface_gset_eq:NN \g__um_trial_font \font@name
|
|
\fontspec_if_script:nF {math}
|
|
{
|
|
\__um_warning:n {not-ot-math}
|
|
\bool_gset_false:N \g__um_ot_math_bool
|
|
\bool_gset_false:N \g__um_init_bool
|
|
}
|
|
\group_end:
|
|
|
|
}
|
|
\__um_cs_new:Nn \__um_fontspec_select_font:
|
|
{
|
|
\tl_set:Nx \l__um_font_keyval_tl
|
|
{
|
|
Renderer = Basic,
|
|
BoldItalicFont = {}, ItalicFont = {}, SmallCapsFont = {},
|
|
Script = Math,
|
|
SizeFeatures =
|
|
{
|
|
{
|
|
Size = \fp_use:N \g__um_size_tfsf_fp -
|
|
} ,
|
|
{
|
|
Size = \fp_use:N \g__um_size_sfssf_fp - \fp_use:N \g__um_size_tfsf_fp ,
|
|
Font = \l__um_script_font_tl ,
|
|
\l__um_script_features_tl
|
|
} ,
|
|
{
|
|
Size = - \fp_use:N \g__um_size_sfssf_fp ,
|
|
Font = \l__um_sscript_font_tl ,
|
|
\l__um_sscript_features_tl
|
|
}
|
|
} ,
|
|
FontAdjustment = { \__um_luatex_copy_fontdimens: },
|
|
\l__um_unknown_keys_clist
|
|
}
|
|
|
|
\fontspec_set_family:Nxn \l__um_family_tl {\l__um_font_keyval_tl} {\l__um_fontname_tl}
|
|
|
|
\int_gincr:N \g__um_fonts_used_int
|
|
\group_begin:
|
|
\fontfamily { \l__um_family_tl } \selectfont
|
|
\exp_last_unbraced:Nno \__um_fontface_gset_eq:cN {g__um_mathfont_ \int_use:N \g__um_fonts_used_int _font} \font@name
|
|
\tl_gset:Nx \g__um_curr_font_cmd_tl { \exp_not:c {g__um_mathfont_ \int_use:N \g__um_fonts_used_int _font} }
|
|
\bool_if:NT \g__um_init_bool
|
|
{
|
|
\exp_last_unbraced:NNo \__um_fontface_gset_eq:NN \l__um_font \font@name
|
|
}
|
|
\group_end:
|
|
}
|
|
\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 }
|
|
\__um_cs_new:Nn \__um_luatex_copy_fontdimens:
|
|
{
|
|
\__um_fontdimen_from_param:nn {10} {ScriptPercentScaleDown}
|
|
\__um_fontdimen_from_param:nn {11} {ScriptScriptPercentScaleDown}
|
|
\__um_fontdimen_from_param:nn {15} {AxisHeight}
|
|
\__um_fontdimen_from_param:nn {18} {SubscriptShiftDown}
|
|
\__um_fontdimen_from_param:nn {20} {SubscriptBaselineDropMin}
|
|
\__um_fontdimen_from_param:nn {21} {SuperscriptShiftUp}
|
|
\__um_fontdimen_from_param:nn {22} {SuperscriptShiftUpCramped}
|
|
\__um_fontdimen_from_param:nn {24} {SuperscriptBaselineDropMax}
|
|
\__um_fontdimen_from_param:nn {28} {UpperLimitGapMin}
|
|
\__um_fontdimen_from_param:nn {29} {UpperLimitBaselineRiseMin}
|
|
\__um_fontdimen_from_param:nn {30} {LowerLimitGapMin}
|
|
\__um_fontdimen_from_param:nn {31} {LowerLimitBaselineDropMin}
|
|
\__um_fontdimen_from_param:nn {32} {StackTopShiftUp}
|
|
\__um_fontdimen_from_param:nn {42} {FractionNumeratorShiftUp}
|
|
\__um_fontdimen_from_param:nn {43} {FractionNumeratorDisplayStyleShiftUp}
|
|
\__um_fontdimen_from_param:nn {44} {FractionDenominatorShiftDown}
|
|
\__um_fontdimen_from_param:nn {45} {FractionDenominatorDisplayStyleShiftDown}
|
|
\__um_fontdimen_from_param:nn {48} {FractionRuleThickness}
|
|
}
|
|
\__um_cs_new:Nn \__um_setup_math_fam:
|
|
{
|
|
\cs_if_exist:cF { sym \l__um_symfont_label_tl }
|
|
{
|
|
\DeclareSymbolFont{\l__um_symfont_label_tl}
|
|
{\encodingdefault}{\l__um_family_tl}{\mddefault}{\shapedefault}
|
|
}
|
|
\SetSymbolFont{\l__um_symfont_label_tl}{\l__um_mversion_tl}
|
|
{\encodingdefault}{\l__um_family_tl}{\mddefault}{\shapedefault}
|
|
\str_if_eq:eeT {\l__um_mversion_tl} {normal}
|
|
{
|
|
\SetSymbolFont{\l__um_symfont_label_tl}{bold}
|
|
{\encodingdefault}{\l__um_family_tl}{\bfdefault}{\shapedefault}
|
|
}
|
|
}
|
|
\__um_cs_new:Nn \__um_setup_legacy_fam_two:
|
|
{
|
|
\fontspec_set_family:Nxn \l__um_fam_two_tl
|
|
{
|
|
\l__um_font_keyval_tl,
|
|
ScaleAgain = 1.0001,
|
|
FontAdjustment =
|
|
{
|
|
\__um_copy_fontdimen:nnN { 8} {43} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN { 9} {42} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {10} {32} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {11} {45} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {12} {44} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {13} {21} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {14} {21} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {15} {22} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {16} {18} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {17} {18} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {18} {24} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {19} {20} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {22} {15} \g__um_main_font_cmd_tl
|
|
\__um_zero_fontdimen:n {20} % delim1 = FractionDelimiterDisplaySize
|
|
\__um_zero_fontdimen:n {21} % delim2 = FractionDelimiterSize
|
|
}
|
|
} {\l__um_fontname_tl}
|
|
|
|
\SetSymbolFont{symbols}{\l__um_mversion_tl}
|
|
{\encodingdefault}{\l__um_fam_two_tl}{\mddefault}{\shapedefault}
|
|
|
|
\str_if_eq:eeT {\l__um_mversion_tl} {normal}
|
|
{
|
|
\SetSymbolFont{symbols}{bold}
|
|
{\encodingdefault}{\l__um_fam_two_tl}{\bfdefault}{\shapedefault}
|
|
}
|
|
}
|
|
\__um_cs_new:Nn \__um_setup_legacy_fam_three:
|
|
{
|
|
\fontspec_set_family:Nxn \l__um_fam_three_tl
|
|
{
|
|
\l__um_font_keyval_tl,
|
|
ScaleAgain = 0.9999,
|
|
FontAdjustment = {
|
|
\__um_copy_fontdimen:nnN { 8} {48} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN { 9} {28} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {10} {30} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {11} {29} \g__um_main_font_cmd_tl
|
|
\__um_copy_fontdimen:nnN {12} {31} \g__um_main_font_cmd_tl
|
|
\__um_zero_fontdimen:n {13}
|
|
}
|
|
} {\l__um_fontname_tl}
|
|
|
|
\SetSymbolFont{largesymbols}{\l__um_mversion_tl}
|
|
{\encodingdefault}{\l__um_fam_three_tl}{\mddefault}{\shapedefault}
|
|
|
|
\str_if_eq:eeT {\l__um_mversion_tl} {normal}
|
|
{
|
|
\SetSymbolFont{largesymbols}{bold}
|
|
{\encodingdefault}{\l__um_fam_three_tl}{\bfdefault}{\shapedefault}
|
|
}
|
|
}
|
|
\__um_cs_new:Nn \__um_onceoff_setup:
|
|
{
|
|
\__um_set_delcode:nnn {operators} {`\.} {0}
|
|
}
|
|
\cs_set:Nn \__um_process_symbol_noparse:nnn
|
|
{
|
|
\__um_set_mathsymbol:nNNn {\l__um_symfont_label_tl} #2 #3 {#1}
|
|
}
|
|
\cs_set:Nn \__um_process_symbol_parse:nnn
|
|
{
|
|
\__um_if_char_spec:nNT {#1} {#3}
|
|
{
|
|
\__um_process_symbol_noparse:nnn {#1} {#2} {#3}
|
|
}
|
|
}
|
|
\__um_cs_new:Nn \__um_remap_symbols:
|
|
{
|
|
\__um_remap_symbol:nnn {`\-} {\mathbin} {"2212}
|
|
\__um_remap_symbol:nnn {`\*} {\mathbin} {"02217}% text asterisk to "centred asterisk"
|
|
\bool_if:NF \g__um_literal_colon_bool
|
|
{
|
|
\__um_remap_symbol:nnn {`\:} {\mathrel} {"02236}% colon to ratio (i.e., punct to rel)
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_remap_symbol_parse:nnn
|
|
{
|
|
\__um_if_char_spec:nNT {#3} {#2}
|
|
{ \__um_remap_symbol_noparse:nnn {#1} {#2} {#3} }
|
|
}
|
|
\cs_new:Nn \__um_remap_symbol_noparse:nnn
|
|
{
|
|
\clist_map_inline:nn {#1}
|
|
{ \__um_set_mathcode:nnnn {##1} {#2} {\l__um_symfont_label_tl} {#3} }
|
|
}
|
|
\__um_cs_new:Nn \__um_setup_mathactives:
|
|
{
|
|
\__um_make_mathactive:nNN {"2032} \__um_prime_single_mchar \mathord
|
|
\__um_make_mathactive:nNN {"2033} \__um_prime_double_mchar \mathord
|
|
\__um_make_mathactive:nNN {"2034} \__um_prime_triple_mchar \mathord
|
|
\__um_make_mathactive:nNN {"2057} \__um_prime_quad_mchar \mathord
|
|
\__um_make_mathactive:nNN {"2035} \__um_backprime_single_mchar \mathord
|
|
\__um_make_mathactive:nNN {"2036} \__um_backprime_double_mchar \mathord
|
|
\__um_make_mathactive:nNN {"2037} \__um_backprime_triple_mchar \mathord
|
|
\__um_make_mathactive:nNN {`\'} \mathstraightquote \mathord
|
|
\__um_make_mathactive:nNN {`\`} \mathbacktick \mathord
|
|
}
|
|
\cs_new:Nn \__um_make_mathactive_parse:nNN
|
|
{
|
|
\__um_if_char_spec:nNT {#1} #3
|
|
{ \__um_make_mathactive_noparse:nNN {#1} #2 #3 }
|
|
}
|
|
\cs_new:Nn \__um_make_mathactive_noparse:nNN
|
|
{
|
|
\__um_set_mathchar:NNnn #2 #3 {\l__um_symfont_label_tl} {#1}
|
|
\__um_char_gmake_mathactive:n {#1}
|
|
}
|
|
\cs_new:Nn \__um_assign_delcode_noparse:nn
|
|
{
|
|
\__um_set_delcode:nnn \l__um_symfont_label_tl {#1} {#2}
|
|
}
|
|
\cs_new:Nn \__um_assign_delcode_parse:nn
|
|
{
|
|
\__um_if_char_spec:nNT {#2} \@nil
|
|
{
|
|
\__um_assign_delcode_noparse:nn {#1} {#2}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_assign_delcode:n { \__um_assign_delcode:nn {#1} {#1} }
|
|
\__um_cs_new:Nn \__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_set:Nn \l__um_nolimits_tl
|
|
{
|
|
\int\iint\iiint\iiiint\oint\oiint\oiiint
|
|
\intclockwise\varointclockwise\ointctrclockwise\sumint
|
|
\intbar\intBar\fint\cirfnint\awint\rppolint
|
|
\scpolint\npolint\pointint\sqint\intlarhk\intx
|
|
\intcap\intcup\upint\lowint
|
|
}
|
|
\tl_set:Nn \l__um_radicals_tl {\sqrt \longdivision \cuberoot \fourthroot}
|
|
\__um_cs_new:Nn \__um_mathparam_restore:
|
|
{
|
|
\glb@settings
|
|
\tl_use:N \g__um_mathparam_settings_tl
|
|
}
|
|
\__um_cs_new:Nn \__um_mathparam_store:
|
|
{
|
|
\glb@settings
|
|
\tl_gset:Nx \g__um_mathparam_settings_tl
|
|
{
|
|
\__um_mathparam_store_aux:N \displaystyle
|
|
\__um_mathparam_store_aux:N \textstyle
|
|
\__um_mathparam_store_aux:N \scriptstyle
|
|
\__um_mathparam_store_aux:N \scriptscriptstyle
|
|
}
|
|
}
|
|
\cs_set:Nn \__um_mathparam_store_aux:N
|
|
{
|
|
\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 <wspr.io/unicode-math>
|
|
%%^^A%% Keyval for `\setmathfont`
|
|
|
|
\keys_define:nn {unicode-math}
|
|
{
|
|
version .code:n =
|
|
{
|
|
\tl_set:Nn \l__um_mversion_tl {#1}
|
|
\DeclareMathVersion {\l__um_mversion_tl}
|
|
}
|
|
}
|
|
\keys_define:nn {unicode-math}
|
|
{
|
|
script-features .tl_set:N = \l__um_script_features_tl ,
|
|
sscript-features .tl_set:N = \l__um_sscript_features_tl ,
|
|
script-font .tl_set:N = \l__um_script_font_tl ,
|
|
sscript-font .tl_set:N = \l__um_sscript_font_tl ,
|
|
}
|
|
\keys_define:nn {unicode-math}
|
|
{
|
|
range .code:n =
|
|
{
|
|
\bool_if:NF \g__um_main_font_defined_bool { \__um_error:n {no-main-font} }
|
|
\bool_gset_false:N \g__um_init_bool
|
|
\__um_range_init:
|
|
\group_begin:
|
|
\seq_map_inline:Nn \g__um_mathclasses_seq
|
|
{
|
|
\cs_set:Npn ##1 { \use_none:n \q_unicode_math \exp_not:N ##1 }
|
|
}
|
|
\cs_set:Npn \__um_sym:nnn ##1 ##2 ##3
|
|
{
|
|
\cs_set:Npn ##2 { \use_none:n \q_unicode_math ##1 }
|
|
}
|
|
\__um_input_math_symbol_table:
|
|
\__um_range_process:n {#1}
|
|
\group_end:
|
|
}
|
|
}
|
|
\__um_cs_new:Nn \__um_range_init:
|
|
{
|
|
\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
|
|
\cs_set_eq:NN \__um_maybe_init_alphabet:n \use_none:n
|
|
\cs_set_eq:NN \__um_assign_delcode:nn \__um_assign_delcode_parse:nn
|
|
\cs_set_eq:NN \__um_make_mathactive:nNN \__um_make_mathactive_parse:nNN
|
|
\seq_gclear:N \g__um_char_range_seq
|
|
\seq_gclear:N \g__um_mclass_range_seq
|
|
\seq_gclear:N \g__um_mathalph_seq
|
|
}
|
|
\cs_new:Nn \__um_range_process:n
|
|
{
|
|
\clist_map_inline:nn {#1}
|
|
{
|
|
\__um_mathalph_decl:nF {##1} { \__um_range_decl:n {##1} }
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_mathalph_decl:nF
|
|
{
|
|
\tl_set:Nn \l__um_tmpa_tl {#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_set:Nx \l__um_tmpa_tl { \tl_to_str:N \l__um_tmpa_tl }
|
|
\exp_args:NNx \tl_remove_all:Nn \l__um_tmpa_tl { \token_to_str:N \math }
|
|
\exp_args:NNx \tl_remove_all:Nn \l__um_tmpa_tl { \token_to_str:N \sym }
|
|
\tl_trim_spaces:N \l__um_tmpa_tl
|
|
|
|
\tl_if_empty:NT \l__um_tmpc_tl
|
|
{ \tl_set_eq:NN \l__um_tmpc_tl \l__um_tmpa_tl }
|
|
|
|
\clist_if_in:NVT \g__um_bad_alpha_clist \l__um_tmpa_tl { \__um_error:n {range-not-bf-sf} }
|
|
|
|
\prop_if_exist:cTF {g__um_named_range_ \l__um_tmpa_tl _prop}
|
|
{
|
|
\seq_gput_right:Nx \g__um_mathalph_seq
|
|
{
|
|
{ \exp_not:V \l__um_tmpa_tl }
|
|
{ \exp_not:V \l__um_tmpb_tl }
|
|
{ \exp_not:V \l__um_tmpc_tl }
|
|
}
|
|
}
|
|
{#2}
|
|
}
|
|
\cs_set:Npn \__um_split_arrow:w #1->#2 \q_nil
|
|
{
|
|
\tl_set:Nx \l__um_tmpa_tl { \tl_trim_spaces:n {#1} }
|
|
\tl_set:Nx \l__um_tmpc_tl { \tl_trim_spaces:n {#2} }
|
|
}
|
|
\cs_set:Npn \__um_split_slash:w #1/#2 \q_nil
|
|
{
|
|
\tl_set:Nx \l__um_tmpa_tl { \tl_trim_spaces:n {#1} }
|
|
\tl_set:Nx \l__um_tmpb_tl { \tl_trim_spaces:n {#2} }
|
|
}
|
|
\cs_new_protected:Nn \__um_range_decl:n
|
|
{
|
|
\bool_lazy_and:nnTF { \tl_if_single_p:n {#1} } { \token_if_cs_p:N #1 }
|
|
% IF A CSNAME:
|
|
{
|
|
\tl_if_in:VnTF #1 { \q_unicode_math }
|
|
{
|
|
\seq_if_in:NnTF \g__um_mathclasses_seq {#1}
|
|
{ \seq_gput_right:Nn \g__um_mclass_range_seq {#1} }
|
|
{ \seq_gput_right:Nx \g__um_char_range_seq { #1 } }
|
|
}
|
|
{ \__um_error:nx {bad-cs-in-range} { \tl_to_str:n {#1} } }
|
|
}
|
|
% ELSE ASSUME NUMERIC INPUT:
|
|
{
|
|
\seq_gput_right:Nx \g__um_char_range_seq { #1 }
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_if_char_spec:nNT
|
|
{
|
|
% math class:
|
|
\seq_if_in:NnT \g__um_mclass_range_seq {#2}
|
|
{ \use_none_delimit_by_q_nil:w }
|
|
|
|
% character slot:
|
|
\seq_map_inline:Nn \g__um_char_range_seq
|
|
{
|
|
\__um_int_if_slot_is_last_in_range:nnT {#1} {##1}
|
|
{ \seq_gremove_all:Nn \g__um_char_range_seq {##1} }
|
|
|
|
\__um_int_if_slot_in_range:nnT {#1} {##1}
|
|
{ \seq_map_break:n { \use_none_delimit_by_q_nil:w } }
|
|
}
|
|
|
|
% the following expands to nil if no match was found:
|
|
\use_none:nnn
|
|
\q_nil
|
|
\use:n
|
|
{
|
|
\cs_if_eq:NNT #2 \mathalpha
|
|
{
|
|
\clist_put_right:Nx \l__um_mathmap_charints_clist { \int_eval:n {#1} }
|
|
}
|
|
#3
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_int_if_slot_in_range:nnT
|
|
{
|
|
\__um_numrange_parse:nwT {#1} #2 - \q_nil - \q_stop {#3}
|
|
}
|
|
\cs_set:Npn \__um_numrange_parse:nwT #1 #2 - #3 - #4 \q_stop #5
|
|
{
|
|
\tl_if_empty:nTF {#4} { \int_compare:nT {#1=#2} {#5} }
|
|
{
|
|
\tl_if_empty:nTF {#3} { \int_compare:nT {#1>=#2} {#5} }
|
|
{
|
|
\tl_if_empty:nTF {#2} { \int_compare:nT {#1<=#3} {#5} }
|
|
{
|
|
\int_compare:nT {#1>=#2} { \int_compare:nT {#1<=#3} {#5} }
|
|
} } }
|
|
}
|
|
\cs_new:Nn \__um_int_if_slot_is_last_in_range:nnT
|
|
{
|
|
\__um_numrange_last_parse:nwT {#1} #2 - \q_nil - \q_stop {#3}
|
|
}
|
|
\cs_set:Npn \__um_numrange_last_parse:nwT #1 #2 - #3 - #4 \q_stop #5
|
|
{
|
|
\tl_if_empty:nTF {#4} { \int_compare:nT {#1==#2} {#5} }
|
|
{
|
|
\tl_if_empty:nTF {#2} { \int_compare:nT {#1==#3} {#5} }
|
|
{
|
|
\int_compare:nT {#1==#3} {#5}
|
|
} }
|
|
}
|
|
|
|
%%^^A%% um-code-fontparam.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Cross-platform interface for font parameters
|
|
|
|
\cs_new_protected_nopar:Nn \__um_new_cramped_style:N
|
|
{
|
|
\cs_if_exist:NF #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
|
|
\cs_new_protected_nopar:Nn \__um_font_param:nnnnn
|
|
{
|
|
\tl_set:Nn \l__um_tmpa_tl { #1 }
|
|
\tl_remove_all:Nn \l__um_tmpa_tl { _ }
|
|
\__um_font_param_aux:ccc { __um_ #1 :N } { __um_set_ #1 :Nn }
|
|
{ Umath \l__um_tmpa_tl }
|
|
}
|
|
\cs_new_protected_nopar:Nn \__um_font_param:nnn
|
|
{
|
|
\__um_font_param:nnnnn { #1 } { #2 } { #2 } { #3 } { #3 }
|
|
}
|
|
\cs_new_protected_nopar:Nn \__um_font_param:nn
|
|
{
|
|
\__um_font_param:nnnnn { #1 } { #2 } { #2 } { #2 } { #2 }
|
|
}
|
|
\cs_new_protected_nopar:Nn \__um_font_param:n
|
|
{ \__um_font_param:nnnnn { #1 } { 0 } { 0 } { 0 } { 0 } }
|
|
\cs_new_protected_nopar:Nn \__um_font_param_aux:NNN
|
|
{
|
|
\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 }
|
|
\cs_set:Nn \__um_fontdimen_to_percent:nN
|
|
{
|
|
\fp_eval:n { \dim_to_decimal_in_sp:n { \fontdimen #1 #2 } / 100 }
|
|
}
|
|
\cs_new:Nn \__um_fontdimen_pc_to_pt:nN
|
|
{
|
|
\fp_eval:n { \dim_to_decimal_in_sp:n { \fontdimen #1 #2 } / 100 * \f@size }
|
|
}
|
|
\cs_new:Nn \__um_mathstyle_scale:NnnN
|
|
{
|
|
\ifx#1\scriptstyle
|
|
#2 \__um_fontdimen_to_percent:nN {10} #4 #3
|
|
\else
|
|
\ifx#1\scriptscriptstyle
|
|
#2 \__um_fontdimen_to_percent:nN {11} #4 #3
|
|
\else
|
|
#2 #3
|
|
\fi
|
|
\fi
|
|
}
|
|
|
|
%%^^A%% um-code-mathmap.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Setup of symbol alphabets.
|
|
|
|
\__um_cs_new:Nn \__um_setup_alphabets:
|
|
{
|
|
\bool_if:NTF \g__um_init_bool { \__um_setup_alphabets_implicit: }
|
|
{
|
|
\seq_if_empty:NF \g__um_mathalph_seq { \__um_setup_alphabets_explicit: }
|
|
\clist_if_empty:NF \l__um_mathmap_charints_clist { \__um_setup_alphabets_inherit: }
|
|
}
|
|
}
|
|
\__um_cs_new:Nn \__um_setup_alphabets_implicit:
|
|
{
|
|
\__um_log:n {setup-implicit}
|
|
\seq_gset_eq:NN \g__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}
|
|
\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
|
|
\__um_mathalph_map:
|
|
\seq_if_empty:NF \l__um_missing_alph_seq { \__um_log:n { missing-alphabets } }
|
|
}
|
|
\__um_cs_new:Nn \__um_setup_alphabets_explicit:
|
|
{
|
|
\__um_log:n {setup-explicit}
|
|
\bool_set_false:N \l__um_implicit_alph_bool
|
|
\cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_noparse:nnn
|
|
\cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_noparse:nn
|
|
\__um_mathalph_map:
|
|
\seq_if_empty:NF \l__um_missing_alph_seq { \__um_log:n { missing-alphabets } }
|
|
}
|
|
\__um_cs_new:Nn \__um_setup_alphabets_inherit:
|
|
{
|
|
\seq_gclear:N \g__um_mathalph_seq
|
|
\seq_map_inline:Nn \g__um_default_mathalph_seq
|
|
{
|
|
\tl_set:No \l__um_style_tl { \use_i:nnn ##1 }
|
|
\clist_set:No \l__um_alphabet_clist { \use_ii:nnn ##1 }
|
|
|
|
\clist_map_inline:Nn \l__um_alphabet_clist
|
|
{
|
|
\clist_if_exist:cT {g__um_named_slots_ \l__um_style_tl _ ####1 _clist}
|
|
{
|
|
\clist_map_inline:cn {g__um_named_slots_ \l__um_style_tl _ ####1 _clist}
|
|
{
|
|
\clist_map_inline:Nn \l__um_mathmap_charints_clist
|
|
{
|
|
\__um_int_if_slot_in_range:nnT {################1} {########1}
|
|
{
|
|
\seq_gput_right:Nn \g__um_mathalph_seq {##1}
|
|
\clist_map_break:n { \clist_map_break:n { \clist_map_break: } }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
\cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_parse:nnn
|
|
\cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_parse:nn
|
|
\__um_mathalph_map:
|
|
}
|
|
\cs_set:Nn \__um_mathalph_map:
|
|
{
|
|
\seq_map_inline:Nn \g__um_mathalph_seq
|
|
{
|
|
\tl_set:No \l__um_style_tl { \use_i:nnn ##1 }
|
|
\clist_set:No \l__um_alphabet_clist { \use_ii:nnn ##1 }
|
|
\tl_set:No \l__um_remap_style_tl { \use_iii:nnn ##1 }
|
|
|
|
% If no set of alphabets is defined:
|
|
\clist_if_empty:NT \l__um_alphabet_clist
|
|
{
|
|
\cs_set_eq:NN \__um_maybe_init_alphabet:n \__um_init_alphabet:n
|
|
\prop_get:cnN { g__um_named_range_ \l__um_style_tl _prop }
|
|
{ default-alpha } \l__um_alphabet_clist
|
|
}
|
|
|
|
\__um_check_math_alphabet:
|
|
\__um_setup_math_alphabet:
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_check_math_alphabet:
|
|
{
|
|
\clist_map_inline:Nn \l__um_alphabet_clist
|
|
{
|
|
\tl_set:Nn \l__um_alphabet_tl {##1}
|
|
\__um_if_alphabet_exists:nnTF \l__um_style_tl \l__um_alphabet_tl
|
|
{
|
|
\str_if_eq:eeTF {\l__um_alphabet_tl} {misc}
|
|
{
|
|
\__um_maybe_init_alphabet:n \l__um_style_tl
|
|
\clist_map_break:
|
|
}
|
|
{
|
|
\__um_glyph_if_exist:NnT \g__um_curr_font_cmd_tl
|
|
{ \__um_to_usv:nn {\l__um_style_tl} {\l__um_alphabet_tl} }
|
|
{
|
|
\__um_maybe_init_alphabet:n \l__um_style_tl
|
|
\clist_map_break:
|
|
}
|
|
}
|
|
}
|
|
{
|
|
\msg_warning:nnx {unicode-math} {no-alphabet}
|
|
{ \l__um_style_tl / \l__um_alphabet_tl }
|
|
}
|
|
}
|
|
}
|
|
\__um_cs_new:Nn \__um_setup_math_alphabet:
|
|
{
|
|
\clist_map_inline:Nn \l__um_alphabet_clist
|
|
{
|
|
\tl_set:Nx \l__um_alphabet_tl { \tl_trim_spaces:n {##1} }
|
|
|
|
|
|
\__um_if_alphabet_exists:nnT {\l__um_style_tl} {\l__um_alphabet_tl}
|
|
{
|
|
\exp_args:No \tl_if_eq:nnTF \l__um_alphabet_tl {misc}
|
|
{
|
|
\__um_log:nx {setup-alph} {sym \l__um_style_tl~(\l__um_alphabet_tl)}
|
|
\__um_alphabet_config:nnn {\l__um_style_tl} {\l__um_alphabet_tl} {\l__um_remap_style_tl}
|
|
}
|
|
{
|
|
\__um_glyph_if_exist:NnTF \g__um_curr_font_cmd_tl { \__um_to_usv:nn {\l__um_remap_style_tl} {\l__um_alphabet_tl} }
|
|
{
|
|
\__um_log:nx {setup-alph} {sym \l__um_style_tl~(\l__um_alphabet_tl)}
|
|
\__um_alphabet_config:nnn {\l__um_style_tl} {\l__um_alphabet_tl} {\l__um_remap_style_tl}
|
|
}
|
|
{
|
|
\bool_if:NTF \l__um_implicit_alph_bool
|
|
{
|
|
\seq_put_right:Nx \l__um_missing_alph_seq
|
|
{
|
|
\@backslashchar sym \l__um_style_tl \space
|
|
(\tl_use:c{c__um_math_alphabet_name_ \l__um_alphabet_tl _tl})
|
|
}
|
|
}
|
|
{
|
|
\__um_alphabet_config:nnn {\l__um_style_tl} {\l__um_alphabet_tl} {up}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_new_alphabet_config:nnn
|
|
{
|
|
\prop_if_exist:cF {g__um_named_range_#1_prop}
|
|
{ \__um_warning:nnn {no-named-range} {#1} {#2} }
|
|
|
|
\prop_gput:cnn {g__um_named_range_#1_prop} { alpha_tl }
|
|
{
|
|
\prop_item:cn {g__um_named_range_#1_prop} { alpha_tl } {#2}
|
|
}
|
|
% Q: do I need to bother removing duplicates?
|
|
|
|
\cs_new:cn { __um_config_#1_#2:n }
|
|
{
|
|
\clist_gclear_new:c {g__um_named_slots_#1_#2_clist}
|
|
\tl_set:Nn \l__um_curr_named_slot { g__um_named_slots_#1_#2_clist }
|
|
#3
|
|
\clist_gremove_duplicates:c {g__um_named_slots_#1_#2_clist}
|
|
}
|
|
|
|
}
|
|
\cs_new:Nn \__um_alphabet_config:nnn
|
|
{
|
|
\use:c {__um_config_#1_#2:n} {#3}
|
|
}
|
|
\prg_new_conditional:Nnn \__um_if_alphabet_exists:nn {T,TF}
|
|
{
|
|
\cs_if_exist:cTF {__um_config_#1_#2:n}
|
|
\prg_return_true: \prg_return_false:
|
|
}
|
|
\cs_new:Nn \__um_map_char_noparse:nn
|
|
{
|
|
\__um_set_mathcode:nnnn {#1} {\mathalpha} {\l__um_symfont_label_tl} {#2}
|
|
}
|
|
\cs_new:Nn \__um_map_char_parse:nn
|
|
{
|
|
\__um_if_char_spec:nNT {#1} {\mathalpha}
|
|
{ \__um_map_char_noparse:nn {#1}{#2} }
|
|
}
|
|
\cs_new:Nn \__um_map_char_single:nnn
|
|
{
|
|
\__um_map_char_single:nn { \__um_to_usv:nn {#1} {#3} }
|
|
{ \__um_to_usv:nn {#2} {#3} }
|
|
}
|
|
\cs_set:Nn \__um_map_chars_range:nnn
|
|
{
|
|
\int_step_inline:nnnn {0} {1} {#1-1}
|
|
{ \__um_map_char_single:nn {#2+##1} {#3+##1} }
|
|
|
|
\clist_gput_right:cx { \l__um_curr_named_slot }
|
|
{ \int_eval:n { #3 } - \int_eval:n { #3 + #1-1 } }
|
|
}
|
|
\cs_new:Nn \__um_map_chars_range:nnnn
|
|
{
|
|
\__um_map_chars_range:nnn {#1} { \__um_to_usv:nn {#2} {#4} }
|
|
{ \__um_to_usv:nn {#3} {#4} }
|
|
}
|
|
\cs_set:Nn \__um_set_normal_char:nnn
|
|
{
|
|
\__um_usv_if_exist:nnT {#3} {#1}
|
|
{
|
|
\clist_map_inline:nn {#2}
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {normal} {#1} {##1} {#3}
|
|
\__um_map_char_single:nnn {##1} {#3} {#1}
|
|
|
|
\clist_gput_right:cx {\l__um_curr_named_slot}
|
|
{ \int_eval:n { \__um_to_usv:nn {#3} {#1} } }
|
|
}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_set_normal_Latin:nn
|
|
{
|
|
\clist_map_inline:nn {#1}
|
|
{
|
|
\__um_set_mathalphabet_Latin:nnn {normal} {##1} {#2}
|
|
\__um_map_chars_range:nnnn {26} {##1} {#2} {Latin}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_set_normal_latin:nn
|
|
{
|
|
\clist_map_inline:nn {#1}
|
|
{
|
|
\__um_set_mathalphabet_latin:nnn {normal} {##1} {#2}
|
|
\__um_map_chars_range:nnnn {26} {##1} {#2} {latin}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_set_normal_greek:nn
|
|
{
|
|
\clist_map_inline:nn {#1}
|
|
{
|
|
\__um_set_mathalphabet_greek:nnn {normal} {##1} {#2}
|
|
\__um_map_chars_range:nnnn {25} {##1} {#2} {greek}
|
|
\__um_map_char_single:nnn {##1} {#2} {epsilon}
|
|
\__um_map_char_single:nnn {##1} {#2} {vartheta}
|
|
\__um_map_char_single:nnn {##1} {#2} {varkappa}
|
|
\__um_map_char_single:nnn {##1} {#2} {phi}
|
|
\__um_map_char_single:nnn {##1} {#2} {varrho}
|
|
\__um_map_char_single:nnn {##1} {#2} {varpi}
|
|
\__um_set_mathalphabet_pos:nnnn {normal} {epsilon} {##1} {#2}
|
|
\__um_set_mathalphabet_pos:nnnn {normal} {vartheta} {##1} {#2}
|
|
\__um_set_mathalphabet_pos:nnnn {normal} {varkappa} {##1} {#2}
|
|
\__um_set_mathalphabet_pos:nnnn {normal} {phi} {##1} {#2}
|
|
\__um_set_mathalphabet_pos:nnnn {normal} {varrho} {##1} {#2}
|
|
\__um_set_mathalphabet_pos:nnnn {normal} {varpi} {##1} {#2}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_set_normal_Greek:nn
|
|
{
|
|
\clist_map_inline:nn {#1}
|
|
{
|
|
\__um_set_mathalphabet_Greek:nnn {normal} {##1} {#2}
|
|
\__um_map_chars_range:nnnn {25} {##1} {#2} {Greek}
|
|
\__um_map_char_single:nnn {##1} {#2} {varTheta}
|
|
\__um_set_mathalphabet_pos:nnnn {normal} {varTheta} {##1} {#2}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_set_normal_numbers:nn
|
|
{
|
|
\__um_set_mathalphabet_numbers:nnn {normal} {#1} {#2}
|
|
\__um_map_chars_range:nnnn {10} {#1} {#2} {num}
|
|
}
|
|
\cs_new:Nn \__um_mathmap_noparse:nnn
|
|
{
|
|
\tl_gput_right:cx { g__um_switchto_#1_tl }
|
|
{
|
|
\__um_set_mathcode:nnnn {#2} {\mathalpha} {\l__um_symfont_label_tl} {#3}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_mathmap_parse:nnn
|
|
{
|
|
\exp_args:NNx \clist_if_in:NnT \l__um_mathmap_charints_clist { \int_eval:n {#3} }
|
|
{
|
|
\__um_mathmap_noparse:nnn {#1} {#2} {#3}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_set_mathalphabet_char:nnnn
|
|
{
|
|
\__um_set_mathalphabet_char:nnn {#1} { \__um_to_usv:nn {#2} {#4} }
|
|
{ \__um_to_usv:nn {#3} {#4} }
|
|
}
|
|
\cs_new:Nn \__um_set_mathalph_range:nnnn
|
|
{
|
|
\int_step_inline:nnnn {0} {1} {#1-1}
|
|
{ \__um_set_mathalphabet_char:nnn {#2} { ##1 + #3 } { ##1 + #4 } }
|
|
}
|
|
\cs_new:Nn \__um_set_mathalph_range:nnnnn
|
|
{
|
|
\clist_gput_right:cx { \l__um_curr_named_slot }
|
|
{ \int_eval:n { \__um_to_usv:nn {#4} {#5} } - \int_eval:n { (#1-1)+\__um_to_usv:nn {#4} {#5} } }
|
|
|
|
\__um_set_mathalph_range:nnnn {#1} {#2} { \__um_to_usv:nn {#3} {#5} }
|
|
{ \__um_to_usv:nn {#4} {#5} }
|
|
}
|
|
\cs_new:Nn \__um_set_mathalphabet_pos:nnnn
|
|
{
|
|
\__um_usv_if_exist:nnT {#4} {#2}
|
|
{
|
|
\clist_map_inline:nn {#3}
|
|
{ \__um_set_mathalphabet_char:nnnn {#1} {##1} {#4} {#2} }
|
|
|
|
\clist_gput_right:cx {\l__um_curr_named_slot}
|
|
{ \int_eval:n { \__um_to_usv:nn {#4} {#2} } }
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_set_mathalphabet_numbers:nnn
|
|
{
|
|
\clist_map_inline:nn {#2}
|
|
{ \__um_set_mathalph_range:nnnnn {10} {#1} {##1} {#3} {num} }
|
|
}
|
|
\cs_new:Nn \__um_set_mathalphabet_Latin:nnn
|
|
{
|
|
\clist_map_inline:nn {#2}
|
|
{ \__um_set_mathalph_range:nnnnn {26} {#1} {##1} {#3} {Latin} }
|
|
}
|
|
\cs_new:Nn \__um_set_mathalphabet_latin:nnn
|
|
{
|
|
\clist_map_inline:nn {#2}
|
|
{
|
|
\__um_set_mathalph_range:nnnnn {26} {#1} {##1} {#3} {latin}
|
|
\__um_set_mathalphabet_char:nnnn {#1} {##1} {#3} {h}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_set_mathalphabet_Greek:nnn
|
|
{
|
|
\clist_map_inline:nn {#2}
|
|
{
|
|
\__um_set_mathalph_range:nnnnn {25} {#1} {##1} {#3} {Greek}
|
|
\__um_set_mathalphabet_char:nnnn {#1} {##1} {#3} {varTheta}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_set_mathalphabet_greek:nnn
|
|
{
|
|
\clist_map_inline:nn {#2}
|
|
{
|
|
\__um_set_mathalph_range:nnnnn {25} {#1} {##1} {#3} {greek}
|
|
\__um_set_mathalphabet_char:nnnn {#1} {##1} {#3} {epsilon}
|
|
\__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} {phi}
|
|
\__um_set_mathalphabet_char:nnnn {#1} {##1} {#3} {varrho}
|
|
\__um_set_mathalphabet_char:nnnn {#1} {##1} {#3} {varpi}
|
|
}
|
|
}
|
|
|
|
%%^^A%% um-code-sym-commands.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Definition of "math symbol alphabet" commands such as `\symbf` and co.
|
|
|
|
\__um_cs_new:Nn \__um_prepare_mathstyle:n
|
|
{
|
|
\seq_gput_right:Nn \g__um_mathstyles_seq {#1}
|
|
\__um_init_alphabet:n {#1}
|
|
\cs_set_protected:cpx {sym#1}
|
|
{
|
|
\__um_group_begin:
|
|
\exp_not:n
|
|
{
|
|
\mode_if_math:F { \exp_args:Nc \non@alpherr {sym#1} }
|
|
\tl_set:Nn \l__um_mathstyle_tl {#1}
|
|
}
|
|
\__um_switch_to:n {#1}
|
|
\__um_mathgroup_set:n {-1}
|
|
\__um_group_end:n
|
|
}
|
|
}
|
|
\__um_cs_new:Nn \__um_init_alphabet:n
|
|
{
|
|
\__um_log:nx {alph-initialise} {#1}
|
|
\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}
|
|
}
|
|
\__um_cs_new:Nn \__um_default_mathalph:nnn
|
|
{
|
|
\prop_new:c {g__um_named_range_#1_prop}
|
|
\seq_gput_right:Nn \g__um_default_mathalph_seq {{#1}{#2}{#3}}
|
|
\prop_gput:cnn { g__um_named_range_#1_prop } { default-alpha } {#2}
|
|
}
|
|
\__um_default_mathalph:nnn {up } {latin,Latin,greek,Greek,num,misc} {up }
|
|
\__um_default_mathalph:nnn {it } {latin,Latin,greek,Greek,misc} {it }
|
|
\__um_default_mathalph:nnn {bb } {latin,Latin,num,misc} {bb }
|
|
\__um_default_mathalph:nnn {bbit } {misc} {bbit }
|
|
\__um_default_mathalph:nnn {scr } {latin,Latin} {scr }
|
|
\__um_default_mathalph:nnn {cal } {Latin} {scr }
|
|
\__um_default_mathalph:nnn {bfcal } {Latin} {bfscr }
|
|
\__um_default_mathalph:nnn {frak } {latin,Latin} {frak }
|
|
\__um_default_mathalph:nnn {tt } {latin,Latin,num} {tt }
|
|
\__um_default_mathalph:nnn {sfup } {latin,Latin,num} {sfup }
|
|
\__um_default_mathalph:nnn {sfit } {latin,Latin} {sfit }
|
|
\__um_default_mathalph:nnn {bfup } {latin,Latin,greek,Greek,num,misc} {bfup }
|
|
\__um_default_mathalph:nnn {bfit } {latin,Latin,greek,Greek,misc} {bfit }
|
|
\__um_default_mathalph:nnn {bfscr } {latin,Latin} {bfscr }
|
|
\__um_default_mathalph:nnn {bffrak} {latin,Latin} {bffrak}
|
|
\__um_default_mathalph:nnn {bfsfup} {latin,Latin,greek,Greek,num,misc} {bfsfup}
|
|
\__um_default_mathalph:nnn {bfsfit} {latin,Latin,greek,Greek,misc} {bfsfit}
|
|
\clist_map_inline:nn
|
|
{
|
|
up, it, bfup, bfit, sfup, sfit, bfsfup, bfsfit, bfsf,
|
|
tt, bb, bbit, scr, bfscr, cal, bfcal, frak, bffrak,
|
|
normal, literal, sf, bf,
|
|
}
|
|
{
|
|
\__um_prepare_mathstyle:n {#1}
|
|
}
|
|
\clist_map_inline:nn
|
|
{ rm, it, bf, sf, tt }
|
|
{ \cs_set_eq:cc { mathtext #1 } { math #1 } }
|
|
\clist_map_inline:nn
|
|
{
|
|
normal, bb , bbit, scr, bfscr, cal, bfcal, frak, bffrak, tt,
|
|
bfup, bfit, sfup, sfit, bfsfup, bfsfit, bfsf
|
|
}
|
|
{
|
|
\cs_set:cpx { math #1 } { \exp_not:c { sym #1 } }
|
|
}
|
|
\AtBeginDocument { \__um_setup_mathtext: }
|
|
\__um_cs_new:Nn \__um_setup_mathtext:
|
|
{
|
|
\clist_map_inline:nn
|
|
{ rm, it, bf, sf, tt }
|
|
{
|
|
\cs_set_protected:cpx { math ##1 }
|
|
{
|
|
\exp_not:n { \bool_if:NTF } \exp_not:c { g__um_ math ##1 _text_bool}
|
|
{ \exp_not:c { mathtext ##1 } }
|
|
{ \exp_not:c { sym ##1 } }
|
|
}
|
|
}
|
|
}
|
|
\cs_set_protected:Npn \mathup { \mathrm }
|
|
\cs_set_protected:Npn \symrm { \symup }
|
|
|
|
%%^^A%% um-code-alphabets.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Definitions for setting up the "math symbol alphabets".
|
|
|
|
\__um_new_alphabet_config:nnn {up} {num}
|
|
{
|
|
\__um_set_normal_numbers:nn {up} {#1}
|
|
\__um_set_mathalphabet_numbers:nnn {up} {up} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {up} {Latin}
|
|
{
|
|
\bool_if:NTF \g__um_literal_bool { \__um_set_normal_Latin:nn {up} {#1} }
|
|
{
|
|
\bool_if:NT \g__um_upLatin_bool { \__um_set_normal_Latin:nn {up,it} {#1} }
|
|
}
|
|
\__um_set_mathalphabet_Latin:nnn {up} {up,it} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {literal} {up} {up}
|
|
\__um_set_mathalphabet_Latin:nnn {literal} {it} {it}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {up} {latin}
|
|
{
|
|
\bool_if:NTF \g__um_literal_bool { \__um_set_normal_latin:nn {up} {#1} }
|
|
{
|
|
\bool_if:NT \g__um_uplatin_bool
|
|
{
|
|
\__um_set_normal_latin:nn {up,it} {#1}
|
|
\__um_set_normal_char:nnn {h} {up,it} {#1}
|
|
\__um_set_normal_char:nnn {dotlessi} {up,it} {#1}
|
|
\__um_set_normal_char:nnn {dotlessj} {up,it} {#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_latin:nnn {up} {up,it}{#1}
|
|
\__um_set_mathalphabet_latin:nnn {literal} {up} {up}
|
|
\__um_set_mathalphabet_latin:nnn {literal} {it} {it}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {up} {Greek}
|
|
{
|
|
\bool_if:NTF \g__um_literal_bool { \__um_set_normal_Greek:nn {up}{#1} }
|
|
{
|
|
\bool_if:NT \g__um_upGreek_bool { \__um_set_normal_Greek:nn {up,it}{#1} }
|
|
}
|
|
\__um_set_mathalphabet_Greek:nnn {up} {up,it}{#1}
|
|
\__um_set_mathalphabet_Greek:nnn {literal} {up} {up}
|
|
\__um_set_mathalphabet_Greek:nnn {literal} {it} {it}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {up} {greek}
|
|
{
|
|
\bool_if:NTF \g__um_literal_bool { \__um_set_normal_greek:nn {up} {#1} }
|
|
{
|
|
\bool_if:NT \g__um_upgreek_bool
|
|
{
|
|
\__um_set_normal_greek:nn {up,it} {#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_greek:nnn {up} {up,it} {#1}
|
|
\__um_set_mathalphabet_greek:nnn {literal} {up} {up}
|
|
\__um_set_mathalphabet_greek:nnn {literal} {it} {it}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {up} {misc}
|
|
{
|
|
\bool_if:NTF \g__um_literal_Nabla_bool
|
|
{
|
|
\__um_set_normal_char:nnn {Nabla}{up}{up}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_upNabla_bool
|
|
{
|
|
\__um_set_normal_char:nnn {Nabla}{up,it}{up}
|
|
}
|
|
}
|
|
\bool_if:NTF \g__um_literal_partial_bool
|
|
{
|
|
\__um_set_normal_char:nnn {partial}{up}{up}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_uppartial_bool
|
|
{
|
|
\__um_set_normal_char:nnn {partial}{up,it}{up}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_pos:nnnn {up} {partial} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {up} {Nabla} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {up} {dotlessi} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {up} {dotlessj} {up,it} {#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {it} {Latin}
|
|
{
|
|
\bool_if:NTF \g__um_literal_bool { \__um_set_normal_Latin:nn {it} {#1} }
|
|
{
|
|
\bool_if:NF \g__um_upLatin_bool { \__um_set_normal_Latin:nn {up,it} {#1} }
|
|
}
|
|
\__um_set_mathalphabet_Latin:nnn {it} {up,it} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {it} {latin}
|
|
{
|
|
\bool_if:NTF \g__um_literal_bool
|
|
{
|
|
\__um_set_normal_latin:nn {it}{#1}
|
|
\__um_set_normal_char:nnn {h}{it}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_uplatin_bool
|
|
{
|
|
\__um_set_normal_latin:nn {up,it} {#1}
|
|
\__um_set_normal_char:nnn {h} {up,it} {#1}
|
|
\__um_set_normal_char:nnn {dotlessi} {up,it} {#1}
|
|
\__um_set_normal_char:nnn {dotlessj} {up,it} {#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_latin:nnn {it} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {it} {dotlessi} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {it} {dotlessj} {up,it} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {it} {Greek}
|
|
{
|
|
\bool_if:NTF \g__um_literal_bool
|
|
{
|
|
\__um_set_normal_Greek:nn {it} {#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_upGreek_bool { \__um_set_normal_Greek:nn {up,it} {#1} }
|
|
}
|
|
\__um_set_mathalphabet_Greek:nnn {it} {up,it} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {it} {greek}
|
|
{
|
|
\bool_if:NTF \g__um_literal_bool
|
|
{
|
|
\__um_set_normal_greek:nn {it} {#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_upgreek_bool { \__um_set_normal_greek:nn {it,up} {#1} }
|
|
}
|
|
\__um_set_mathalphabet_greek:nnn {it} {up,it} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {it} {misc}
|
|
{
|
|
\bool_if:NTF \g__um_literal_Nabla_bool
|
|
{
|
|
\__um_set_normal_char:nnn {Nabla} {it} {it}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_upNabla_bool
|
|
{
|
|
\__um_set_normal_char:nnn {Nabla} {up,it} {it}
|
|
}
|
|
}
|
|
\bool_if:NTF \g__um_literal_partial_bool
|
|
{
|
|
\__um_set_normal_char:nnn {partial} {it} {it}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_uppartial_bool
|
|
{
|
|
\__um_set_normal_char:nnn {partial} {up,it} {it}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_pos:nnnn {it} {partial} {up,it}{#1}
|
|
\__um_set_mathalphabet_pos:nnnn {it} {Nabla} {up,it}{#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {bb} {latin}
|
|
{
|
|
\__um_set_mathalphabet_latin:nnn {bb} {up,it} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bb} {Latin}
|
|
{
|
|
\__um_set_mathalphabet_Latin:nnn {bb} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bb} {C} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bb} {H} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bb} {N} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bb} {P} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bb} {Q} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bb} {R} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bb} {Z} {up,it} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bb} {num}
|
|
{
|
|
\__um_set_mathalphabet_numbers:nnn {bb} {up} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bb} {misc}
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bb} {Pi} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bb} {pi} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bb} {Gamma} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bb} {gamma} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bb} {summation} {up} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bbit} {misc}
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bbit} {D} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bbit} {d} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bbit} {e} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bbit} {i} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bbit} {j} {up,it} {#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {scr} {Latin}
|
|
{
|
|
\__um_set_mathalphabet_Latin:nnn {scr} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {scr} {B} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {scr} {E} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {scr} {F} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {scr} {H} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {scr} {I} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {scr} {L} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {scr} {M} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {scr} {R} {up,it} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {scr} {latin}
|
|
{
|
|
\__um_set_mathalphabet_latin:nnn {scr} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {scr} {e} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {scr} {g} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {scr} {o} {up,it} {#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {cal} {Latin}
|
|
{
|
|
\__um_set_mathalphabet_Latin:nnn {cal} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {cal} {B} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {cal} {E} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {cal} {F} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {cal} {H} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {cal} {I} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {cal} {L} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {cal} {M} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {cal} {R} {up,it} {#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {frak} {Latin}
|
|
{
|
|
\__um_set_mathalphabet_Latin:nnn {frak} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {frak} {C} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {frak} {H} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {frak} {I} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {frak} {R} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {frak} {Z} {up,it} {#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {frak} {latin}
|
|
{
|
|
\__um_set_mathalphabet_latin:nnn {frak} {up,it} {#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {sfup} {num}
|
|
{
|
|
\__um_set_mathalphabet_numbers:nnn {sf} {up} {#1}
|
|
\__um_set_mathalphabet_numbers:nnn {sfup} {up} {#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {sfup} {Latin}
|
|
{
|
|
\bool_if:NTF \g__um_sfliteral_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {sfup} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {sf} {up} {#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_upsans_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {sfup,sfit} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {sf} {up,it} {#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_Latin:nnn {sfup} {up,it} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {sfup} {latin}
|
|
{
|
|
\bool_if:NTF \g__um_sfliteral_bool
|
|
{
|
|
\__um_set_normal_latin:nn {sfup} {#1}
|
|
\__um_set_mathalphabet_latin:nnn {sf} {up} {#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_upsans_bool
|
|
{
|
|
\__um_set_normal_latin:nn {sfup,sfit} {#1}
|
|
\__um_set_mathalphabet_latin:nnn {sf} {up,it} {#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_latin:nnn {sfup} {up,it} {#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {sfit} {Latin}
|
|
{
|
|
\bool_if:NTF \g__um_sfliteral_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {sfit} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {sf} {it} {#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_upsans_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {sfup,sfit} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {sf} {up,it} {#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_Latin:nnn {sfit} {up,it} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {sfit} {latin}
|
|
{
|
|
\bool_if:NTF \g__um_sfliteral_bool
|
|
{
|
|
\__um_set_normal_latin:nn {sfit} {#1}
|
|
\__um_set_mathalphabet_latin:nnn {sf} {it}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_upsans_bool
|
|
{
|
|
\__um_set_normal_latin:nn {sfup,sfit} {#1}
|
|
\__um_set_mathalphabet_latin:nnn {sf} {up,it}{#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_latin:nnn {sfit} {up,it}{#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {tt} {num}
|
|
{
|
|
\__um_set_mathalphabet_numbers:nnn {tt} {up}{#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {tt} {Latin}
|
|
{
|
|
\__um_set_mathalphabet_Latin:nnn {tt} {up,it}{#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {tt} {latin}
|
|
{
|
|
\__um_set_mathalphabet_latin:nnn {tt} {up,it}{#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {bfit} {Latin}
|
|
{
|
|
\bool_if:NF \g__um_bfupLatin_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {bfup,bfit} {#1}
|
|
}
|
|
\__um_set_mathalphabet_Latin:nnn {bfit} {up,it}{#1}
|
|
\bool_if:NTF \g__um_bfliteral_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {bfit} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {bf} {it}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_bfupLatin_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {bfup,bfit} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {bf} {up,it}{#1}
|
|
}
|
|
}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfit} {latin}
|
|
{
|
|
\bool_if:NF \g__um_bfuplatin_bool
|
|
{
|
|
\__um_set_normal_latin:nn {bfup,bfit} {#1}
|
|
}
|
|
\__um_set_mathalphabet_latin:nnn {bfit} {up,it}{#1}
|
|
\bool_if:NTF \g__um_bfliteral_bool
|
|
{
|
|
\__um_set_normal_latin:nn {bfit} {#1}
|
|
\__um_set_mathalphabet_latin:nnn {bf} {it}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_bfuplatin_bool
|
|
{
|
|
\__um_set_normal_latin:nn {bfup,bfit} {#1}
|
|
\__um_set_mathalphabet_latin:nnn {bf} {up,it}{#1}
|
|
}
|
|
}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfit} {Greek}
|
|
{
|
|
\__um_set_mathalphabet_Greek:nnn {bfit} {up,it}{#1}
|
|
\bool_if:NTF \g__um_bfliteral_bool
|
|
{
|
|
\__um_set_normal_Greek:nn {bfit}{#1}
|
|
\__um_set_mathalphabet_Greek:nnn {bf} {it}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_bfupGreek_bool
|
|
{
|
|
\__um_set_normal_Greek:nn {bfup,bfit}{#1}
|
|
\__um_set_mathalphabet_Greek:nnn {bf} {up,it}{#1}
|
|
}
|
|
}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfit} {greek}
|
|
{
|
|
\__um_set_mathalphabet_greek:nnn {bfit} {up,it} {#1}
|
|
\bool_if:NTF \g__um_bfliteral_bool
|
|
{
|
|
\__um_set_normal_greek:nn {bfit} {#1}
|
|
\__um_set_mathalphabet_greek:nnn {bf} {it} {#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_bfupgreek_bool
|
|
{
|
|
\__um_set_normal_greek:nn {bfit,bfup} {#1}
|
|
\__um_set_mathalphabet_greek:nnn {bf} {up,it} {#1}
|
|
}
|
|
}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfit} {misc}
|
|
{
|
|
\bool_if:NTF \g__um_literal_Nabla_bool
|
|
{ \__um_set_normal_char:nnn {Nabla} {bfit} {#1} }
|
|
{
|
|
\bool_if:NF \g__um_upNabla_bool
|
|
{ \__um_set_normal_char:nnn {Nabla} {bfup,bfit} {#1} }
|
|
}
|
|
|
|
\bool_if:NTF \g__um_literal_partial_bool
|
|
{ \__um_set_normal_char:nnn {partial} {bfit} {#1} }
|
|
{
|
|
\bool_if:NF \g__um_uppartial_bool
|
|
{ \__um_set_normal_char:nnn {partial} {bfup,bfit} {#1} }
|
|
}
|
|
|
|
\__um_set_mathalphabet_pos:nnnn {bfit} {partial} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bfit} {Nabla} {up,it} {#1}
|
|
|
|
\bool_if:NTF \g__um_literal_partial_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bf} {partial} {it}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_uppartial_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bf} {partial} {up,it}{#1}
|
|
}
|
|
}
|
|
|
|
\bool_if:NTF \g__um_literal_Nabla_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bf} {Nabla} {it}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_upNabla_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bf} {Nabla} {up,it}{#1}
|
|
}
|
|
}
|
|
}
|
|
\__um_new_alphabet_config:nnn {bfup} {num}
|
|
{
|
|
\__um_set_mathalphabet_numbers:nnn {bf} {up} {#1}
|
|
\__um_set_mathalphabet_numbers:nnn {bfup} {up} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfup} {Latin}
|
|
{
|
|
\bool_if:NT \g__um_bfupLatin_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {bfup,bfit} {#1}
|
|
}
|
|
\__um_set_mathalphabet_Latin:nnn {bfup} {up,it} {#1}
|
|
\bool_if:NTF \g__um_bfliteral_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {bfup} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {bf} {up} {#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_bfupLatin_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {bfup,bfit} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {bf} {up,it} {#1}
|
|
}
|
|
}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfup} {latin}
|
|
{
|
|
\bool_if:NT \g__um_bfuplatin_bool
|
|
{
|
|
\__um_set_normal_latin:nn {bfup,bfit} {#1}
|
|
}
|
|
\__um_set_mathalphabet_latin:nnn {bfup} {up,it} {#1}
|
|
\bool_if:NTF \g__um_bfliteral_bool
|
|
{
|
|
\__um_set_normal_latin:nn {bfup} {#1}
|
|
\__um_set_mathalphabet_latin:nnn {bf} {up} {#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_bfuplatin_bool
|
|
{
|
|
\__um_set_normal_latin:nn {bfup,bfit} {#1}
|
|
\__um_set_mathalphabet_latin:nnn {bf} {up,it} {#1}
|
|
}
|
|
}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfup} {Greek}
|
|
{
|
|
\__um_set_mathalphabet_Greek:nnn {bfup} {up,it} {#1}
|
|
\bool_if:NTF \g__um_bfliteral_bool
|
|
{
|
|
\__um_set_normal_Greek:nn {bfup} {#1}
|
|
\__um_set_mathalphabet_Greek:nnn {bf} {up} {#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_bfupGreek_bool
|
|
{
|
|
\__um_set_normal_Greek:nn {bfup,bfit} {#1}
|
|
\__um_set_mathalphabet_Greek:nnn {bf} {up,it} {#1}
|
|
}
|
|
}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfup} {greek}
|
|
{
|
|
\__um_set_mathalphabet_greek:nnn {bfup} {up,it} {#1}
|
|
\bool_if:NTF \g__um_bfliteral_bool
|
|
{
|
|
\__um_set_normal_greek:nn {bfup} {#1}
|
|
\__um_set_mathalphabet_greek:nnn {bf} {up} {#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_bfupgreek_bool
|
|
{
|
|
\__um_set_normal_greek:nn {bfup,bfit} {#1}
|
|
\__um_set_mathalphabet_greek:nnn {bf} {up,it} {#1}
|
|
}
|
|
}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfup} {misc}
|
|
{
|
|
\bool_if:NTF \g__um_literal_Nabla_bool
|
|
{
|
|
\__um_set_normal_char:nnn {Nabla} {bfup} {#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_upNabla_bool
|
|
{
|
|
\__um_set_normal_char:nnn {Nabla} {bfup,bfit} {#1}
|
|
}
|
|
}
|
|
\bool_if:NTF \g__um_literal_partial_bool
|
|
{
|
|
\__um_set_normal_char:nnn {partial} {bfup} {#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_uppartial_bool
|
|
{
|
|
\__um_set_normal_char:nnn {partial} {bfup,bfit} {#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_pos:nnnn {bfup} {partial} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bfup} {Nabla} {up,it} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bfup} {digamma} {up} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bfup} {Digamma} {up} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bf} {digamma} {up} {#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bf} {Digamma} {up} {#1}
|
|
\bool_if:NTF \g__um_literal_partial_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bf} {partial} {up} {#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_uppartial_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bf} {partial} {up,it} {#1}
|
|
}
|
|
}
|
|
\bool_if:NTF \g__um_literal_Nabla_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bf} {Nabla} {up}{#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_upNabla_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bf} {Nabla} {up,it} {#1}
|
|
}
|
|
}
|
|
}
|
|
\__um_new_alphabet_config:nnn {bffrak} {Latin}
|
|
{
|
|
\__um_set_mathalphabet_Latin:nnn {bffrak} {up,it}{#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bffrak} {latin}
|
|
{
|
|
\__um_set_mathalphabet_latin:nnn {bffrak} {up,it}{#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {bfscr} {Latin}
|
|
{
|
|
\__um_set_mathalphabet_Latin:nnn {bfscr} {up,it}{#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {bfscr} {latin}
|
|
{
|
|
\__um_set_mathalphabet_latin:nnn {bfscr} {up,it}{#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {bfcal} {Latin}
|
|
{
|
|
\__um_set_mathalphabet_Latin:nnn {bfcal} {up,it}{#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {bfsfup} {num}
|
|
{
|
|
\__um_set_mathalphabet_numbers:nnn {bfsf} {up}{#1}
|
|
\__um_set_mathalphabet_numbers:nnn {bfsfup} {up}{#1}
|
|
}
|
|
\__um_new_alphabet_config:nnn {bfsfup} {Latin}
|
|
{
|
|
\bool_if:NTF \g__um_sfliteral_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {bfsfup} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {bfsf} {up}{#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_upsans_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {bfsfup,bfsfit} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {bfsf} {up,it}{#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_Latin:nnn {bfsfup} {up,it}{#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfsfup} {latin}
|
|
{
|
|
\bool_if:NTF \g__um_sfliteral_bool
|
|
{
|
|
\__um_set_normal_latin:nn {bfsfup} {#1}
|
|
\__um_set_mathalphabet_latin:nnn {bfsf} {up}{#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_upsans_bool
|
|
{
|
|
\__um_set_normal_latin:nn {bfsfup,bfsfit} {#1}
|
|
\__um_set_mathalphabet_latin:nnn {bfsf} {up,it}{#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_latin:nnn {bfsfup} {up,it}{#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfsfup} {Greek}
|
|
{
|
|
\bool_if:NTF \g__um_sfliteral_bool
|
|
{
|
|
\__um_set_normal_Greek:nn {bfsfup}{#1}
|
|
\__um_set_mathalphabet_Greek:nnn {bfsf} {up}{#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_upsans_bool
|
|
{
|
|
\__um_set_normal_Greek:nn {bfsfup,bfsfit}{#1}
|
|
\__um_set_mathalphabet_Greek:nnn {bfsf} {up,it}{#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_Greek:nnn {bfsfup} {up,it}{#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfsfup} {greek}
|
|
{
|
|
\bool_if:NTF \g__um_sfliteral_bool
|
|
{
|
|
\__um_set_normal_greek:nn {bfsfup} {#1}
|
|
\__um_set_mathalphabet_greek:nnn {bfsf} {up} {#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_upsans_bool
|
|
{
|
|
\__um_set_normal_greek:nn {bfsfup,bfsfit} {#1}
|
|
\__um_set_mathalphabet_greek:nnn {bfsf} {up,it} {#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_greek:nnn {bfsfup} {up,it} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfsfup} {misc}
|
|
{
|
|
\bool_if:NTF \g__um_literal_Nabla_bool
|
|
{
|
|
\__um_set_normal_char:nnn {Nabla}{bfsfup}{#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_upNabla_bool
|
|
{
|
|
\__um_set_normal_char:nnn {Nabla}{bfsfup,bfsfit}{#1}
|
|
}
|
|
}
|
|
\bool_if:NTF \g__um_literal_partial_bool
|
|
{
|
|
\__um_set_normal_char:nnn {partial}{bfsfup}{#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_uppartial_bool
|
|
{
|
|
\__um_set_normal_char:nnn {partial}{bfsfup,bfsfit}{#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_pos:nnnn {bfsfup} {partial} {up,it}{#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bfsfup} {Nabla} {up,it}{#1}
|
|
\bool_if:NTF \g__um_literal_partial_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bfsf} {partial} {up}{#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_uppartial_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bfsf} {partial} {up,it}{#1}
|
|
}
|
|
}
|
|
\bool_if:NTF \g__um_literal_Nabla_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bfsf} {Nabla} {up}{#1}
|
|
}
|
|
{
|
|
\bool_if:NT \g__um_upNabla_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bfsf} {Nabla} {up,it}{#1}
|
|
}
|
|
}
|
|
}
|
|
\__um_new_alphabet_config:nnn {bfsfit} {Latin}
|
|
{
|
|
\bool_if:NTF \g__um_sfliteral_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {bfsfit} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {bfsf} {it}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_upsans_bool
|
|
{
|
|
\__um_set_normal_Latin:nn {bfsfup,bfsfit} {#1}
|
|
\__um_set_mathalphabet_Latin:nnn {bfsf} {up,it}{#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_Latin:nnn {bfsfit} {up,it}{#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfsfit} {latin}
|
|
{
|
|
\bool_if:NTF \g__um_sfliteral_bool
|
|
{
|
|
\__um_set_normal_latin:nn {bfsfit} {#1}
|
|
\__um_set_mathalphabet_latin:nnn {bfsf} {it}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_upsans_bool
|
|
{
|
|
\__um_set_normal_latin:nn {bfsfup,bfsfit} {#1}
|
|
\__um_set_mathalphabet_latin:nnn {bfsf} {up,it}{#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_latin:nnn {bfsfit} {up,it}{#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfsfit} {Greek}
|
|
{
|
|
\bool_if:NTF \g__um_sfliteral_bool
|
|
{
|
|
\__um_set_normal_Greek:nn {bfsfit}{#1}
|
|
\__um_set_mathalphabet_Greek:nnn {bfsf} {it}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_upsans_bool
|
|
{
|
|
\__um_set_normal_Greek:nn {bfsfup,bfsfit}{#1}
|
|
\__um_set_mathalphabet_Greek:nnn {bfsf} {up,it}{#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_Greek:nnn {bfsfit} {up,it}{#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfsfit} {greek}
|
|
{
|
|
\bool_if:NTF \g__um_sfliteral_bool
|
|
{
|
|
\__um_set_normal_greek:nn {bfsfit} {#1}
|
|
\__um_set_mathalphabet_greek:nnn {bfsf} {it} {#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_upsans_bool
|
|
{
|
|
\__um_set_normal_greek:nn {bfsfup,bfsfit} {#1}
|
|
\__um_set_mathalphabet_greek:nnn {bfsf} {up,it} {#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_greek:nnn {bfsfit} {up,it} {#1}
|
|
}
|
|
|
|
\__um_new_alphabet_config:nnn {bfsfit} {misc}
|
|
{
|
|
\bool_if:NTF \g__um_literal_Nabla_bool
|
|
{
|
|
\__um_set_normal_char:nnn {Nabla}{bfsfit}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_upNabla_bool
|
|
{
|
|
\__um_set_normal_char:nnn {Nabla}{bfsfup,bfsfit}{#1}
|
|
}
|
|
}
|
|
\bool_if:NTF \g__um_literal_partial_bool
|
|
{
|
|
\__um_set_normal_char:nnn {partial}{bfsfit}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_uppartial_bool
|
|
{
|
|
\__um_set_normal_char:nnn {partial}{bfsfup,bfsfit}{#1}
|
|
}
|
|
}
|
|
\__um_set_mathalphabet_pos:nnnn {bfsfit} {partial} {up,it}{#1}
|
|
\__um_set_mathalphabet_pos:nnnn {bfsfit} {Nabla} {up,it}{#1}
|
|
\bool_if:NTF \g__um_literal_partial_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bfsf} {partial} {it}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_uppartial_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bfsf} {partial} {up,it}{#1}
|
|
}
|
|
}
|
|
\bool_if:NTF \g__um_literal_Nabla_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bfsf} {Nabla} {it}{#1}
|
|
}
|
|
{
|
|
\bool_if:NF \g__um_upNabla_bool
|
|
{
|
|
\__um_set_mathalphabet_pos:nnnn {bfsf} {Nabla} {up,it}{#1}
|
|
}
|
|
}
|
|
}
|
|
|
|
%%^^A%% um-code-primes.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% The definitions needed for the input of primes.
|
|
|
|
\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
|
|
}
|
|
\cs_new:Nn \__um_nprimes:Nn
|
|
{
|
|
\__um_superscript:n
|
|
{
|
|
#1
|
|
\prg_replicate:nn {#2-1} { \mskip \g__um_primekern_muskip #1 }
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_nprimes_select:nn
|
|
{
|
|
\int_case:nnF {#2}
|
|
{
|
|
{1} { \__um_superscript:n {#1} }
|
|
{2} {
|
|
\__um_glyph_if_exist:NnTF \g__um_prime_font_cmd_tl {"2033}
|
|
{ \__um_superscript:n {\__um_prime_double_mchar} }
|
|
{ \__um_nprimes:Nn #1 {#2} }
|
|
}
|
|
{3} {
|
|
\__um_glyph_if_exist:NnTF \g__um_prime_font_cmd_tl {"2034}
|
|
{ \__um_superscript:n {\__um_prime_triple_mchar} }
|
|
{ \__um_nprimes:Nn #1 {#2} }
|
|
}
|
|
{4} {
|
|
\__um_glyph_if_exist:NnTF \g__um_prime_font_cmd_tl {"2057}
|
|
{ \__um_superscript:n {\__um_prime_quad_mchar} }
|
|
{ \__um_nprimes:Nn #1 {#2} }
|
|
}
|
|
}
|
|
{
|
|
\__um_nprimes:Nn #1 {#2}
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_nbackprimes_select:nn
|
|
{
|
|
\int_case:nnF {#2}
|
|
{
|
|
{1} { \__um_superscript:n {#1} }
|
|
{2} {
|
|
\__um_glyph_if_exist:NnTF \g__um_prime_font_cmd_tl {"2036}
|
|
{ \__um_superscript:n {\__um_backprime_double_mchar} }
|
|
{ \__um_nprimes:Nn #1 {#2} }
|
|
}
|
|
{3} {
|
|
\__um_glyph_if_exist:NnTF \g__um_prime_font_cmd_tl {"2037}
|
|
{ \__um_superscript:n {\__um_backprime_triple_mchar} }
|
|
{ \__um_nprimes:Nn #1 {#2} }
|
|
}
|
|
}
|
|
{
|
|
\__um_nprimes:Nn #1 {#2}
|
|
}
|
|
}
|
|
\cs_new:Npn \__um_scan_prime:
|
|
{
|
|
\cs_set_eq:NN \__um_superscript:n \use:n
|
|
\int_zero:N \l__um_primecount_int
|
|
\__um_scanprime_collect:N \__um_prime_single_mchar
|
|
}
|
|
\cs_new:Npn \__um_scan_dprime:
|
|
{
|
|
\cs_set_eq:NN \__um_superscript:n \use:n
|
|
\int_set:Nn \l__um_primecount_int {1}
|
|
\__um_scanprime_collect:N \__um_prime_single_mchar
|
|
}
|
|
\cs_new:Npn \__um_scan_trprime:
|
|
{
|
|
\cs_set_eq:NN \__um_superscript:n \use:n
|
|
\int_set:Nn \l__um_primecount_int {2}
|
|
\__um_scanprime_collect:N \__um_prime_single_mchar
|
|
}
|
|
\cs_new:Npn \__um_scan_qprime:
|
|
{
|
|
\cs_set_eq:NN \__um_superscript:n \use:n
|
|
\int_set:Nn \l__um_primecount_int {3}
|
|
\__um_scanprime_collect:N \__um_prime_single_mchar
|
|
}
|
|
\cs_new:Npn \__um_scan_sup_prime:
|
|
{
|
|
\int_zero:N \l__um_primecount_int
|
|
\__um_scanprime_collect:N \__um_prime_single_mchar
|
|
}
|
|
\cs_new:Npn \__um_scan_sup_dprime:
|
|
{
|
|
\int_set:Nn \l__um_primecount_int {1}
|
|
\__um_scanprime_collect:N \__um_prime_single_mchar
|
|
}
|
|
\cs_new:Npn \__um_scan_sup_trprime:
|
|
{
|
|
\int_set:Nn \l__um_primecount_int {2}
|
|
\__um_scanprime_collect:N \__um_prime_single_mchar
|
|
}
|
|
\cs_new:Npn \__um_scan_sup_qprime:
|
|
{
|
|
\int_set:Nn \l__um_primecount_int {3}
|
|
\__um_scanprime_collect:N \__um_prime_single_mchar
|
|
}
|
|
\cs_new:Nn \__um_scanprime_collect:N
|
|
{
|
|
\int_incr:N \l__um_primecount_int
|
|
\peek_meaning_remove:NTF '
|
|
{ \__um_scanprime_collect:N #1 }
|
|
{
|
|
\peek_meaning_remove:NTF \__um_scan_prime:
|
|
{ \__um_scanprime_collect:N #1 }
|
|
{
|
|
\peek_meaning_remove:NTF ^^^^2032
|
|
{ \__um_scanprime_collect:N #1 }
|
|
{
|
|
\peek_meaning_remove:NTF \__um_scan_dprime:
|
|
{
|
|
\int_incr:N \l__um_primecount_int
|
|
\__um_scanprime_collect:N #1
|
|
}
|
|
{
|
|
\peek_meaning_remove:NTF ^^^^2033
|
|
{
|
|
\int_incr:N \l__um_primecount_int
|
|
\__um_scanprime_collect:N #1
|
|
}
|
|
{
|
|
\peek_meaning_remove:NTF \__um_scan_trprime:
|
|
{
|
|
\int_add:Nn \l__um_primecount_int {2}
|
|
\__um_scanprime_collect:N #1
|
|
}
|
|
{
|
|
\peek_meaning_remove:NTF ^^^^2034
|
|
{
|
|
\int_add:Nn \l__um_primecount_int {2}
|
|
\__um_scanprime_collect:N #1
|
|
}
|
|
{
|
|
\peek_meaning_remove:NTF \__um_scan_qprime:
|
|
{
|
|
\int_add:Nn \l__um_primecount_int {3}
|
|
\__um_scanprime_collect:N #1
|
|
}
|
|
{
|
|
\peek_meaning_remove:NTF ^^^^2057
|
|
{
|
|
\int_add:Nn \l__um_primecount_int {3}
|
|
\__um_scanprime_collect:N #1
|
|
}
|
|
{
|
|
\__um_nprimes_select:nn {#1} {\l__um_primecount_int}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
\cs_new:Npn \__um_scan_backprime:
|
|
{
|
|
\cs_set_eq:NN \__um_superscript:n \use:n
|
|
\int_zero:N \l__um_primecount_int
|
|
\__um_scanbackprime_collect:N \__um_backprime_single_mchar
|
|
}
|
|
\cs_new:Npn \__um_scan_backdprime:
|
|
{
|
|
\cs_set_eq:NN \__um_superscript:n \use:n
|
|
\int_set:Nn \l__um_primecount_int {1}
|
|
\__um_scanbackprime_collect:N \__um_backprime_single_mchar
|
|
}
|
|
\cs_new:Npn \__um_scan_backtrprime:
|
|
{
|
|
\cs_set_eq:NN \__um_superscript:n \use:n
|
|
\int_set:Nn \l__um_primecount_int {2}
|
|
\__um_scanbackprime_collect:N \__um_backprime_single_mchar
|
|
}
|
|
\cs_new:Npn \__um_scan_sup_backprime:
|
|
{
|
|
\int_zero:N \l__um_primecount_int
|
|
\__um_scanbackprime_collect:N \__um_backprime_single_mchar
|
|
}
|
|
\cs_new:Npn \__um_scan_sup_backdprime:
|
|
{
|
|
\int_set:Nn \l__um_primecount_int {1}
|
|
\__um_scanbackprime_collect:N \__um_backprime_single_mchar
|
|
}
|
|
\cs_new:Npn \__um_scan_sup_backtrprime:
|
|
{
|
|
\int_set:Nn \l__um_primecount_int {2}
|
|
\__um_scanbackprime_collect:N \__um_backprime_single_mchar
|
|
}
|
|
\cs_new:Nn \__um_scanbackprime_collect:N
|
|
{
|
|
\int_incr:N \l__um_primecount_int
|
|
\peek_meaning_remove:NTF `
|
|
{
|
|
\__um_scanbackprime_collect:N #1
|
|
}
|
|
{
|
|
\peek_meaning_remove:NTF \__um_scan_backprime:
|
|
{
|
|
\__um_scanbackprime_collect:N #1
|
|
}
|
|
{
|
|
\peek_meaning_remove:NTF ^^^^2035
|
|
{
|
|
\__um_scanbackprime_collect:N #1
|
|
}
|
|
{
|
|
\peek_meaning_remove:NTF \__um_scan_backdprime:
|
|
{
|
|
\int_incr:N \l__um_primecount_int
|
|
\__um_scanbackprime_collect:N #1
|
|
}
|
|
{
|
|
\peek_meaning_remove:NTF ^^^^2036
|
|
{
|
|
\int_incr:N \l__um_primecount_int
|
|
\__um_scanbackprime_collect:N #1
|
|
}
|
|
{
|
|
\peek_meaning_remove:NTF \__um_scan_backtrprime:
|
|
{
|
|
\int_add:Nn \l__um_primecount_int {2}
|
|
\__um_scanbackprime_collect:N #1
|
|
}
|
|
{
|
|
\peek_meaning_remove:NTF ^^^^2037
|
|
{
|
|
\int_add:Nn \l__um_primecount_int {2}
|
|
\__um_scanbackprime_collect:N #1
|
|
}
|
|
{
|
|
\__um_nbackprimes_select:nn {#1} {\l__um_primecount_int}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
\AtBeginDocument { \__um_define_prime_commands: \__um_define_prime_chars: }
|
|
\cs_new:Nn \__um_define_prime_commands:
|
|
{
|
|
\cs_set_eq:NN \prime \__um_prime_single_mchar
|
|
\cs_set_eq:NN \dprime \__um_prime_double_mchar
|
|
\cs_set_eq:NN \trprime \__um_prime_triple_mchar
|
|
\cs_set_eq:NN \qprime \__um_prime_quad_mchar
|
|
\cs_set_eq:NN \backprime \__um_backprime_single_mchar
|
|
\cs_set_eq:NN \backdprime \__um_backprime_double_mchar
|
|
\cs_set_eq:NN \backtrprime \__um_backprime_triple_mchar
|
|
}
|
|
\group_begin:
|
|
\char_set_catcode_active:N \'
|
|
\char_set_catcode_active:N \`
|
|
\char_set_catcode_active:n {"2032}
|
|
\char_set_catcode_active:n {"2033}
|
|
\char_set_catcode_active:n {"2034}
|
|
\char_set_catcode_active:n {"2057}
|
|
\char_set_catcode_active:n {"2035}
|
|
\char_set_catcode_active:n {"2036}
|
|
\char_set_catcode_active:n {"2037}
|
|
\cs_gset:Nn \__um_define_prime_chars:
|
|
{
|
|
\cs_set_eq:NN ' \__um_scan_sup_prime:
|
|
\cs_set_eq:NN ^^^^2032 \__um_scan_sup_prime:
|
|
\cs_set_eq:NN ^^^^2033 \__um_scan_sup_dprime:
|
|
\cs_set_eq:NN ^^^^2034 \__um_scan_sup_trprime:
|
|
\cs_set_eq:NN ^^^^2057 \__um_scan_sup_qprime:
|
|
\cs_set_eq:NN ` \__um_scan_sup_backprime:
|
|
\cs_set_eq:NN ^^^^2035 \__um_scan_sup_backprime:
|
|
\cs_set_eq:NN ^^^^2036 \__um_scan_sup_backdprime:
|
|
\cs_set_eq:NN ^^^^2037 \__um_scan_sup_backtrprime:
|
|
}
|
|
\group_end:
|
|
|
|
%%^^A%% um-code-sscript.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Setup for active chars needed to process subscript/superscript input chars.
|
|
|
|
\cs_new:Nn \__um_setup_active_superscript:nn
|
|
{
|
|
\prop_gput:Nxn \g__um_supers_prop { \int_eval:n {#1} } {#2}
|
|
\__um_mathactive_remap:nn {#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:
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_setup_active_subscript:nn
|
|
{
|
|
\prop_gput:Nxn \g__um_subs_prop { \int_eval:n {#1} } {#2}
|
|
\__um_mathactive_remap:nn {#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_cs_new:Nn \__um_scan_sscript:
|
|
{
|
|
\__um_scan_sscript:TF
|
|
{ \__um_scan_sscript: }
|
|
{ \__um_sub_or_super:n {\l__um_ss_chain_tl} }
|
|
}
|
|
\__um_cs_new:Nn \__um_scan_sscript:TF
|
|
{
|
|
\peek_N_type:TF
|
|
{
|
|
\group_align_safe_begin:
|
|
\__um_scan_sscript_aux:nnN {#1} {#2}
|
|
}
|
|
{#2}
|
|
}
|
|
\__um_cs_new:Nn \__um_scan_sscript_aux:nnN
|
|
{
|
|
\tl_set:Nx \l__um_tmpa_key_tl { \tl_to_str:n {#3} }
|
|
\prop_get:cxNTF {g__um_\l__um_tmpa_tl _prop}
|
|
{ \int_eval:n { \exp_after:wN ` \l__um_tmpa_key_tl } }
|
|
\l__um_tmpb_tl
|
|
{
|
|
\tl_put_right:NV \l__um_ss_chain_tl \l__um_tmpb_tl
|
|
\group_align_safe_end:
|
|
#1
|
|
}
|
|
{ \group_align_safe_end: #2 #3 }
|
|
}
|
|
\__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 {"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}
|
|
\__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 {"2095} {h}
|
|
\__um_setup_active_subscript:nn {"1D62} {i}
|
|
\__um_setup_active_subscript:nn {"2C7C} {j}
|
|
\__um_setup_active_subscript:nn {"2096} {k}
|
|
\__um_setup_active_subscript:nn {"2097} {l}
|
|
\__um_setup_active_subscript:nn {"2098} {m}
|
|
\__um_setup_active_subscript:nn {"2099} {n}
|
|
\__um_setup_active_subscript:nn {"2092} {o}
|
|
\__um_setup_active_subscript:nn {"209A} {p}
|
|
\__um_setup_active_subscript:nn {"1D63} {r}
|
|
\__um_setup_active_subscript:nn {"209B} {s}
|
|
\__um_setup_active_subscript:nn {"209C} {t}
|
|
\__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}
|
|
|
|
%%^^A%% um-code-compat.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Compatibility with 3rd party packages.
|
|
|
|
\__um_after_package:nNn {url} \__um_patch_url:
|
|
{
|
|
\tl_put_left:Nn \Url@FormatString { \__um_switch_to:n {literal} }
|
|
\tl_put_right:Nn \UrlSpecials
|
|
{
|
|
\do \` { \mathchar`\` }
|
|
\do \' { \mathchar`\' }
|
|
\do \$ { \mathchar`\$ }
|
|
\do \& { \mathchar`\& }
|
|
}
|
|
}
|
|
\__um_after_package:nNn { mathtools } \__um_patch_mathtools_B:
|
|
{
|
|
\cs_set_eq:NN \MToverbracket \overbracket
|
|
\cs_set_eq:NN \MTunderbracket \underbracket
|
|
|
|
\AtBeginDocument
|
|
{
|
|
\msg_warning:nn { unicode-math } { mathtools-overbracket }
|
|
|
|
\cs_set:Npn \downbracketfill ##1 ##2
|
|
{
|
|
\tl_set:Nn \l_MT_bracketheight_fdim {.27ex}
|
|
\downbracketend {##1} {##2}
|
|
\leaders \vrule \@height ##1 \@depth \z@ \hfill
|
|
\downbracketend {##1} {##2}
|
|
}
|
|
|
|
\cs_set:Npn \upbracketfill ##1 ##2
|
|
{
|
|
\tl_set:Nn \l_MT_bracketheight_fdim {.27ex}
|
|
\upbracketend {##1} {##2}
|
|
\leaders \vrule \@height \z@ \@depth ##1 \hfill
|
|
\upbracketend {##1} {##2}
|
|
}
|
|
|
|
\cs_set_eq:NN \Uoverbracket \overbracket
|
|
\cs_set_eq:NN \Uunderbracket \underbracket
|
|
\cs_set_eq:NN \overbracket \MToverbracket
|
|
\cs_set_eq:NN \underbracket \MTunderbracket
|
|
}
|
|
}
|
|
\__um_after_package:nNn { mathtools } \__um_patch_mathtools_C:
|
|
{
|
|
\msg_warning:nn { unicode-math } { mathtools-colon }
|
|
\DeclareDocumentCommand \dblcolon { } { \Colon }
|
|
\DeclareDocumentCommand \coloneqq { } { \coloneq }
|
|
\DeclareDocumentCommand \Coloneqq { } { \Coloneq }
|
|
\DeclareDocumentCommand \eqqcolon { } { \eqcolon }
|
|
}
|
|
|
|
%%^^A%% um-code-amsmath.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Compatibility with amsmath.
|
|
|
|
\tl_remove_once:Nn \@begindocumenthook
|
|
{
|
|
\mathchardef\std@minus\mathcode`\-\relax
|
|
\mathchardef\std@equal\mathcode`\=\relax
|
|
}
|
|
\AtBeginDocument
|
|
{
|
|
\Umathcharnumdef\std@minus\Umathcodenum`-
|
|
\Umathcharnumdef\std@equal\Umathcodenum`=
|
|
}
|
|
\cs_set:Npn \@cdots {\mathinner{\unicodecdots}}
|
|
\cs_set_eq:NN \dotsb@ \cdots
|
|
\cs_set_nopar:Npn \plainroot@ #1 \of #2
|
|
{
|
|
\bool_if:nTF
|
|
{
|
|
\__um_int_if_zero_p:n \uproot@ && \__um_int_if_zero_p:n \leftroot@
|
|
}
|
|
{
|
|
\Uroot \c__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
|
|
}
|
|
\cs_set_nopar:Npn \r@@t #1 #2
|
|
{
|
|
\hbox_set:Nn \l_tmpa_box
|
|
{
|
|
\c_math_toggle_token \m@th
|
|
#1 \mskip \uproot@ mu
|
|
\c_math_toggle_token
|
|
}
|
|
\Uroot \c__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 }
|
|
}
|
|
|
|
%%^^A%% um-code-epilogue.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
|
|
%%^^A%% Assorted definitions to close up.
|
|
|
|
\AtBeginDocument { \debug_suspend: \__um_resolve_greek: \debug_resume: }
|
|
\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,epsilon,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,phi,chi,psi,omega,
|
|
varTheta,varsigma,vartheta,varkappa,varrho,varpi,varepsilon,varphi
|
|
}
|
|
{
|
|
\tl_set:cx {##1} { \exp_not:c { mit ##1 } }
|
|
\tl_set:cx {up ##1} { \exp_not:N \symup \exp_not:c { ##1 } }
|
|
\tl_set:cx {it ##1} { \exp_not:N \symit \exp_not:c { ##1 } }
|
|
}
|
|
}
|
|
\AtBeginDocument{ \@ifpackageloaded { amsmath } { } { \__um_redefine_radical: } }
|
|
\cs_new:Nn \__um_redefine_radical:
|
|
{
|
|
\cs_set:Npn \root ##1 \of ##2
|
|
{
|
|
\Uroot \c__um_radical_sqrt_tl { ##1 } { ##2 }
|
|
}
|
|
}
|
|
\cs_new:Nn \__um_which_frac:nn
|
|
{
|
|
\bool_if:NTF \l__um_smallfrac_bool {\tfrac} {\frac} {#1} {#2}
|
|
}
|
|
\cs_new:Npn \__um_setup_active_frac:
|
|
{
|
|
\__um_mathactive_remap:nn {"2189} { \__um_which_frac:nn {0} {3} }
|
|
\__um_mathactive_remap:nn {"2152} { \__um_which_frac:nn {1} {10} }
|
|
\__um_mathactive_remap:nn {"2151} { \__um_which_frac:nn {1} {9} }
|
|
\__um_mathactive_remap:nn {"215B} { \__um_which_frac:nn {1} {8} }
|
|
\__um_mathactive_remap:nn {"2150} { \__um_which_frac:nn {1} {7} }
|
|
\__um_mathactive_remap:nn {"2159} { \__um_which_frac:nn {1} {6} }
|
|
\__um_mathactive_remap:nn {"2155} { \__um_which_frac:nn {1} {5} }
|
|
\__um_mathactive_remap:nn {"00BC} { \__um_which_frac:nn {1} {4} }
|
|
\__um_mathactive_remap:nn {"2153} { \__um_which_frac:nn {1} {3} }
|
|
\__um_mathactive_remap:nn {"215C} { \__um_which_frac:nn {3} {8} }
|
|
\__um_mathactive_remap:nn {"2156} { \__um_which_frac:nn {2} {5} }
|
|
\__um_mathactive_remap:nn {"00BD} { \__um_which_frac:nn {1} {2} }
|
|
\__um_mathactive_remap:nn {"2157} { \__um_which_frac:nn {3} {5} }
|
|
\__um_mathactive_remap:nn {"215D} { \__um_which_frac:nn {5} {8} }
|
|
\__um_mathactive_remap:nn {"2154} { \__um_which_frac:nn {2} {3} }
|
|
\__um_mathactive_remap:nn {"00BE} { \__um_which_frac:nn {3} {4} }
|
|
\__um_mathactive_remap:nn {"2158} { \__um_which_frac:nn {4} {5} }
|
|
\__um_mathactive_remap:nn {"215A} { \__um_which_frac:nn {5} {6} }
|
|
\__um_mathactive_remap:nn {"215E} { \__um_which_frac:nn {7} {8} }
|
|
}
|
|
\AtBeginDocument { \__um_setup_active_frac: }
|
|
\protected\def\to{\rightarrow}
|
|
\protected\def\le{\leq}
|
|
\protected\def\ge{\geq}
|
|
\protected\def\neq{\ne}
|
|
\protected\def\triangle{\mathord{\bigtriangleup}}
|
|
\protected\def\bigcirc{\mdlgwhtcircle}
|
|
\protected\def\circ{\vysmwhtcircle}
|
|
\protected\def\bullet{\smblkcircle}
|
|
\protected\def\mathyen{\yen}
|
|
\protected\def\mathsterling{\sterling}
|
|
\protected\def\diamond{\smwhtdiamond}
|
|
\protected\def\emptyset{\varnothing}
|
|
\protected\def\hbar{\hslash}
|
|
\protected\def\land{\wedge}
|
|
\protected\def\lor{\vee}
|
|
\protected\def\owns{\ni}
|
|
\protected\def\gets{\leftarrow}
|
|
\protected\def\mathring{\ocirc}
|
|
\protected\def\lnot{\neg}
|
|
\protected\def\longdivision{\longdivisionsign}
|
|
\protected\def\backepsilon{\upbackepsilon}
|
|
\protected\def\eth{\matheth}
|
|
\protected\def\dbkarow {\dbkarrow}
|
|
\protected\def\drbkarow{\drbkarrow}
|
|
\protected\def\hksearow{\hksearrow}
|
|
\protected\def\hkswarow{\hkswarrow}
|
|
\protected\def\smallint{\mathop{\textstyle\int}\limits}
|
|
\cs_set_eq:NN \latexe_underbar:n \underbar
|
|
\renewcommand\underbar
|
|
{
|
|
\mode_if_math:TF \mathunderbar \latexe_underbar:n
|
|
}
|
|
\@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{:} }
|
|
}
|
|
}
|
|
\protected\def\digamma{\updigamma}
|
|
\protected\def\Digamma{\upDigamma}
|
|
\cs_set_protected:Npn \| {\Vert}
|
|
\cs_set_protected:Npn \mathellipsis {\mathinner{\unicodeellipsis}}
|
|
\cs_set_protected:Npn \cdots {\mathinner{\unicodecdots}}
|
|
\cs_set_eq:NN \__um_text_slash: \slash
|
|
\cs_set_protected:Npn \slash
|
|
{
|
|
\mode_if_math:TF {\mathslash} {\__um_text_slash:}
|
|
}
|
|
\DeclareDocumentCommand \not {m}
|
|
{
|
|
\tl_set:Nx \l__um_not_token_name_tl { \cs_to_str:N #1 }
|
|
\tl_if_empty:NT \l__um_not_token_name_tl
|
|
{
|
|
\tl_set:Nx \l__um_not_token_name_tl { \token_to_str:N #1 }
|
|
}
|
|
\cs_if_exist:cTF { not \l__um_not_token_name_tl }
|
|
{
|
|
\use:c { not \l__um_not_token_name_tl }
|
|
}
|
|
{
|
|
\cs_if_exist:cTF { n \l__um_not_token_name_tl }
|
|
{
|
|
\use:c { n \l__um_not_token_name_tl }
|
|
}
|
|
{
|
|
\tl_if_eq:nnTF {#1} {$} { \notaccent{} } { \notaccent } #1
|
|
}
|
|
}
|
|
}
|
|
\DeclareDocumentCommand \NewNegationCommand {mm}
|
|
{
|
|
\__um_set_negation_command:Nnn \cs_new_protected:cpn {#1} {#2}
|
|
}
|
|
\DeclareDocumentCommand \RenewNegationCommand {mm}
|
|
{
|
|
\__um_set_negation_command:Nnn \cs_set_protected:cpn {#1} {#2}
|
|
}
|
|
\cs_set:Nn \__um_set_negation_command:Nnn
|
|
{
|
|
\tl_set:Nx \l__um_not_token_name_tl { \cs_to_str:N #2 }
|
|
\tl_if_empty:NT \l__um_not_token_name_tl
|
|
{
|
|
\tl_set:Nx \l__um_not_token_name_tl { \token_to_str:N #2 }
|
|
}
|
|
#1 { not \l__um_not_token_name_tl } { #3 }
|
|
}
|
|
\NewNegationCommand { = } { \neq }
|
|
\NewNegationCommand { < } { \nless }
|
|
\NewNegationCommand { > } { \ngtr }
|
|
\NewNegationCommand { \gets } { \nleftarrow }
|
|
\NewNegationCommand { \simeq } { \nsime }
|
|
\NewNegationCommand { \equal } { \ne }
|
|
\NewNegationCommand { \le } { \nleq }
|
|
\NewNegationCommand { \ge } { \ngeq }
|
|
\NewNegationCommand { \greater } { \ngtr }
|
|
\NewNegationCommand { \forksnot } { \forks }
|
|
\int_step_inline:nnnn {0} {1} {9}
|
|
{
|
|
\__um_mathactive_remap:nn {"FF10+#1} {\char\int_eval:n{`\0+#1}}
|
|
}
|
|
\int_step_inline:nnnn {0} {1} {26}
|
|
{
|
|
\__um_mathactive_remap:nn {"FF21+#1} {\char\int_eval:n{`\A+#1}}
|
|
\__um_mathactive_remap:nn {"FF41+#1} {\char\int_eval:n{`\a+#1}}
|
|
}
|
|
\cs_new:Nn \__um_undeclare_symbol:N
|
|
{
|
|
\cs_set_protected:Npn #1
|
|
{ \__um_error:nx {legacy-char-not-supported} { \token_to_str:N #1 } }
|
|
}
|
|
\__um_undeclare_symbol:N \arrowvert
|
|
\__um_undeclare_symbol:N \Arrowvert
|
|
\__um_undeclare_symbol:N \bracevert
|
|
\AtBeginDocument{\g__um_secret_hook_tl}
|
|
\endinput
|
|
|
|
|