summaryrefslogtreecommitdiff
path: root/macros/unicodetex/latex/unicode-math/um-code-variables.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/unicodetex/latex/unicode-math/um-code-variables.dtx')
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-variables.dtx257
1 files changed, 257 insertions, 0 deletions
diff --git a/macros/unicodetex/latex/unicode-math/um-code-variables.dtx b/macros/unicodetex/latex/unicode-math/um-code-variables.dtx
new file mode 100644
index 0000000000..840b1ebec5
--- /dev/null
+++ b/macros/unicodetex/latex/unicode-math/um-code-variables.dtx
@@ -0,0 +1,257 @@
+%%^^A%% um-code-variables.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
+%%^^A%% Declaration of all code-level variables used in the package.
+
+% \section{Variable initialisation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+%
+% \subsection{bool}
+%
+% True if using a proper OpenType font with unicode maths
+% \begin{macrocode}
+\bool_new:N \g_@@_ot_math_bool
+% \end{macrocode}
+%
+% Set when \cs{setmathfont} is run to trap the problem of no main font defined.
+% \begin{macrocode}
+\bool_new:N \g_@@_main_font_defined_bool
+% \end{macrocode}
+%
+% \begin{macrocode}
+\bool_new:N \g_@@_init_bool
+\bool_new:N \l_@@_implicit_alph_bool
+% \end{macrocode}
+% For \opt{math-style}:
+% \begin{macrocode}
+\bool_new:N \g_@@_literal_bool
+\bool_new:N \g_@@_upLatin_bool
+\bool_new:N \g_@@_uplatin_bool
+\bool_new:N \g_@@_upGreek_bool
+\bool_new:N \g_@@_upgreek_bool
+% \end{macrocode}
+% For \opt{bold-style}:
+% \begin{macrocode}
+\bool_new:N \g_@@_bfliteral_bool
+\bool_new:N \g_@@_bfupLatin_bool
+\bool_new:N \g_@@_bfuplatin_bool
+\bool_new:N \g_@@_bfupGreek_bool
+\bool_new:N \g_@@_bfupgreek_bool
+% \end{macrocode}
+% For \opt{sans-style}:
+% \begin{macrocode}
+\bool_new:N \g_@@_upsans_bool
+\bool_new:N \g_@@_sfliteral_bool
+% \end{macrocode}
+% For assorted package options:
+% \begin{macrocode}
+\bool_new:N \g_@@_upNabla_bool
+\bool_new:N \g_@@_uppartial_bool
+\bool_new:N \g_@@_literal_Nabla_bool
+\bool_new:N \g_@@_literal_partial_bool
+\bool_new:N \l_@@_smallfrac_bool
+\bool_new:N \g_@@_literal_colon_bool
+\bool_new:N \g_@@_mathrm_text_bool
+\bool_new:N \g_@@_mathit_text_bool
+\bool_new:N \g_@@_mathbf_text_bool
+\bool_new:N \g_@@_mathsf_text_bool
+\bool_new:N \g_@@_mathtt_text_bool
+% \end{macrocode}
+%
+% \subsection{int}
+%
+% \begin{macrocode}
+\int_new:N \g_@@_fam_int
+\int_new:N \g_@@_fonts_used_int
+\int_new:N \l_@@_primecount_int
+% \end{macrocode}
+%
+% \subsection{tl}
+%
+% \begin{macrocode}
+\tl_if_exist:NF \g_@@_secret_hook_tl { \tl_new:N \g_@@_secret_hook_tl }
+% \end{macrocode}
+%
+% For displaying in warning messages, etc.:
+% \begin{macrocode}
+\tl_const:Nn \c_@@_math_alphabet_name_latin_tl {Latin,~lowercase}
+\tl_const:Nn \c_@@_math_alphabet_name_Latin_tl {Latin,~uppercase}
+\tl_const:Nn \c_@@_math_alphabet_name_greek_tl {Greek,~lowercase}
+\tl_const:Nn \c_@@_math_alphabet_name_Greek_tl {Greek,~uppercase}
+\tl_const:Nn \c_@@_math_alphabet_name_num_tl {Numerals}
+\tl_const:Nn \c_@@_math_alphabet_name_misc_tl {Misc.}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\tl_new:N \l_@@_style_tl
+\tl_new:N \l_@@_family_tl
+\tl_new:N \l_@@_alphabet_tl
+\tl_new:N \l_@@_fontname_tl
+\tl_new:N \l_@@_symfont_label_tl
+\tl_new:N \l_@@_remap_style_tl
+\tl_new:N \l_@@_fam_two_tl
+\tl_new:N \l_@@_fam_three_tl
+\tl_new:N \l_@@_curr_named_slot
+% \end{macrocode}
+%
+% \begin{macrocode}
+\tl_new:N \l_@@_tmpa_tl
+\tl_new:N \l_@@_tmpb_tl
+\tl_new:N \l_@@_tmpc_tl
+\tl_new:N \l_@@_mathstyle_tl
+\tl_new:N \l_@@_radicals_tl
+\tl_new:N \l_@@_nolimits_tl
+\tl_new:N \l_@@_trial_family_tl
+\tl_new:N \l_@@_ss_chain_tl
+\tl_new:N \l_@@_tmpa_key_tl
+% \end{macrocode}
+%
+% Used to store the font switch for the \cs{operator@font}.
+% \begin{macrocode}
+\tl_new:N \g_@@_operator_mathfont_tl
+% \end{macrocode}
+%
+% \begin{macrocode}
+\tl_new:N \g_@@_slash_delimiter_usv
+\tl_new:N \g_@@_mathparam_settings_tl
+\tl_new:N \l_@@_mathtable_tl
+\tl_new:N \g_@@_mathtable_tl
+\tl_new:N \g_@@_fontname_tl
+\tl_new:N \g_@@_mversion_tl
+\tl_new:N \g_@@_symfont_tl
+\tl_new:N \l_@@_font_keyval_tl
+\tl_new:N \g_@@_family_tl
+\tl_new:N \g_@@_style_tl
+\tl_new:N \g_@@_remap_style_tl
+\tl_new:N \l_@@_not_token_name_tl
+\tl_new:N \g_@@_curr_font_cmd_tl
+\tl_new:N \g_@@_sqrt_font_cmd_tl
+\tl_new:N \g_@@_prime_font_cmd_tl
+% \end{macrocode}
+%
+% \begin{macro}{\g_@@_mathparam_store_tl}
+% Used to store and restore the math parameters used in Lua\TeX.
+% This is done to `save' the values of the \emph{first} (or main)
+% maths font loaded, rather than (as per Lua\TeX\ defaults) the last.
+% \begin{macrocode}
+%<*LU>
+\tl_new:N \g_@@_mathparam_store_tl
+%</LU>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{clist}
+%
+% \begin{macrocode}
+\clist_new:N \g_@@_char_nrange_clist
+\clist_new:N \g_@@_unknown_keys_clist
+\clist_new:N \g_@@_alphabet_clist
+\clist_new:N \l_@@_mathmap_charints_clist
+\clist_new:N \l_@@_unknown_keys_clist
+\clist_new:N \l_@@_keyval_clist
+\clist_new:N \l_@@_alphabet_clist
+% \end{macrocode}
+%
+% \begin{macrocode}
+\clist_new:N \g_@@_bad_alpha_clist
+\clist_gput_right:Nx \g_@@_bad_alpha_clist { \tl_to_str:n {bf} }
+\clist_gput_right:Nx \g_@@_bad_alpha_clist { \tl_to_str:n {sf} }
+\clist_gput_right:Nx \g_@@_bad_alpha_clist { \tl_to_str:n {bfsf} }
+% \end{macrocode}
+%
+% \subsection{seq}
+%
+% \begin{macrocode}
+\seq_new:N \l_@@_missing_alph_seq
+\seq_new:N \g_@@_mathalph_seq
+\seq_new:N \g_@@_char_range_seq
+\seq_new:N \g_@@_mclass_range_seq
+% \end{macrocode}
+%
+% \begin{macro}{\g_@@_mathclasses_seq}
+% Every math class.
+% \begin{macrocode}
+\seq_new:N \g_@@_mathclasses_seq
+\seq_gset_from_clist:Nn \g_@@_mathclasses_seq
+ {
+ \mathord,\mathalpha,\mathbin,\mathrel,\mathpunct,
+ \mathop,
+ \mathopen,\mathclose,
+ \mathfence,\mathover,\mathunder,
+ \mathaccent,\mathaccentoverlay,\mathbotaccent,\mathaccentwide,\mathbotaccentwide
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\g_@@_default_mathalph_seq}
+% This sequence stores the alphabets in each math style.
+% \begin{macrocode}
+\seq_new:N \g_@@_default_mathalph_seq
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\g_@@_mathstyles_seq}
+% This is every `math style' known to \pkg{unicode-math}.
+% A named range is such as "bfit" and "sfit", which are also math styles (with \cs{symbfit} and \cs{symsfit}).
+% `Mathstyles' are a superset of named ranges and also include commands such as \cs{symbf} and \cs{symsf}.
+%
+% N.B. for parsing purposes `named ranges' are defined as strings!
+% \begin{macrocode}
+\seq_new:N \g_@@_mathstyles_seq
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{prop}
+%
+% \begin{macrocode}
+\prop_new:N \g_@@_supers_prop
+\prop_new:N \g_@@_subs_prop
+% \end{macrocode}
+%
+% \subsection{muskip}
+%
+% \begin{macrocode}
+\muskip_new:N \g_@@_primekern_muskip
+\muskip_gset:Nn \g_@@_primekern_muskip { -\thinmuskip/2 }% arbitrary
+% \end{macrocode}
+%
+% \subsection{fp}
+%
+% \begin{macrocode}
+\fp_new:N \g_@@_size_tfsf_fp
+\fp_new:N \g_@@_size_sfssf_fp
+% \end{macrocode}
+%
+% \subsection{quark}
+%
+% \begin{macro}{\q_unicode_math}
+% Used as a flag within control sequences to check they're recognised by the package.
+% \begin{macrocode}
+\quark_new:N \q_unicode_math
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+
+\endinput
+
+% /©
+%
+% ------------------------------------------------
+% 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-2019 Will Robertson, LPPL "maintainer"
+% Copyright 2010-2017 Philipp Stephani
+% Copyright 2011-2017 Joseph Wright
+% Copyright 2012-2015 Khaled Hosny
+% ------------------------------------------------
+%
+% ©/