diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/unicode-math/um-code-mathtext.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/unicode-math/um-code-mathtext.dtx | 92 |
1 files changed, 59 insertions, 33 deletions
diff --git a/Master/texmf-dist/source/latex/unicode-math/um-code-mathtext.dtx b/Master/texmf-dist/source/latex/unicode-math/um-code-mathtext.dtx index 9cdbb3b6add..c576d63770b 100644 --- a/Master/texmf-dist/source/latex/unicode-math/um-code-mathtext.dtx +++ b/Master/texmf-dist/source/latex/unicode-math/um-code-mathtext.dtx @@ -1,4 +1,5 @@ %%^^A%% um-code-mathtext.dtx -- part of UNICODE-MATH <wspr.io/unicode-math> +%%^^A%% The "math text" commands such as `\mathbf` and co. % \section{Maths text commands} % @@ -11,38 +12,37 @@ % \begin{macro}{\@@_setmathfontface:Nnn} % \begin{macrocode} \keys_define:nn {@@_mathface} - { - version .code:n = - { \tl_set:Nn \l_@@_mversion_tl {#1} } - } + { + version .tl_set:N = \l_@@_mversion_tl + } % \end{macrocode} % % \begin{macrocode} \cs_set:Nn \@@_setmathfontface:Nnn - { - \tl_clear:N \l_@@_mversion_tl + { + \tl_clear:N \l_@@_mversion_tl - \keys_set_known:nnN {@@_mathface} {#2} \l_@@_keyval_clist + \keys_set_known:nnN {@@_mathface} {#2} \l_@@_keyval_clist - \exp_args:Nnx \fontspec_set_family:Nxn \l_@@_tmpa_tl - { ItalicFont={}, BoldFont={}, \exp_not:V \l_@@_keyval_clist } {#3} + \exp_args:Nnx \fontspec_set_family:Nxn \l_@@_tmpa_tl + { ItalicFont={}, BoldFont={}, \exp_not:V \l_@@_keyval_clist } {#3} - \tl_if_empty:NT \l_@@_mversion_tl - { - \tl_set:Nn \l_@@_mversion_tl {normal} - \DeclareMathAlphabet #1 {\g_fontspec_encoding_tl} {\l_@@_tmpa_tl} {\mddefault} {\updefault} - } + \tl_if_empty:NT \l_@@_mversion_tl + { + \tl_set:Nn \l_@@_mversion_tl {normal} + \DeclareMathAlphabet #1 {\g_fontspec_encoding_tl} {\l_@@_tmpa_tl} {\mddefault} {\updefault} + } - \SetMathAlphabet #1 {\l_@@_mversion_tl} {\g_fontspec_encoding_tl} {\l_@@_tmpa_tl} {\mddefault} {\updefault} + \SetMathAlphabet #1 {\l_@@_mversion_tl} {\g_fontspec_encoding_tl} {\l_@@_tmpa_tl} {\mddefault} {\updefault} - % integrate with fontspec's \setmathrm etc: - \tl_case:Nn #1 - { - \mathrm { \cs_set_eq:NN \g__fontspec_mathrm_tl \l_@@_tmpa_tl } - \mathsf { \cs_set_eq:NN \g__fontspec_mathsf_tl \l_@@_tmpa_tl } - \mathtt { \cs_set_eq:NN \g__fontspec_mathtt_tl \l_@@_tmpa_tl } - } - } + % integrate with fontspec's \setmathrm etc: + \tl_case:Nn #1 + { + \mathrm { \cs_set_eq:NN \g__fontspec_mathrm_tl \l_@@_tmpa_tl } + \mathsf { \cs_set_eq:NN \g__fontspec_mathsf_tl \l_@@_tmpa_tl } + \mathtt { \cs_set_eq:NN \g__fontspec_mathtt_tl \l_@@_tmpa_tl } + } + } % \end{macrocode} % \end{macro} % @@ -54,6 +54,7 @@ % While we could now re-activate the way that \pkg{fontspec} does the following, because we can now change maths fonts whenever it's better to define new commands in \pkg{unicode-math} to define the \cs{mathXYZ} fonts. % % \subsubsection{Text font} +% % \begin{macrocode} \cs_generate_variant:Nn \tl_if_eq:nnT {o} \cs_set:Nn \__fontspec_setmainfont_hook:nn @@ -62,31 +63,29 @@ { %<XE> \fontspec_set_family:Nnn \g__fontspec_mathrm_tl {#1} {#2} %<LU> \fontspec_set_family:Nnn \g__fontspec_mathrm_tl {Renderer=Basic,#1} {#2} - \SetMathAlphabet\mathrm{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\updefault - \SetMathAlphabet\mathit{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\itdefault - \SetMathAlphabet\mathbf{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\bfdefault\updefault + \__fontspec_setmathrm_hook:nn {#1} {#2} } } - +% \end{macrocode} +% \begin{macrocode} \cs_set:Nn \__fontspec_setsansfont_hook:nn { \tl_if_eq:onT {\g__fontspec_mathsf_tl} {\sfdefault} { %<XE> \fontspec_set_family:Nnn \g__fontspec_mathsf_tl {#1} {#2} %<LU> \fontspec_set_family:Nnn \g__fontspec_mathsf_tl {Renderer=Basic,#1} {#2} - \SetMathAlphabet\mathsf{normal}\g_fontspec_encoding_tl\g__fontspec_mathsf_tl\mddefault\updefault - \SetMathAlphabet\mathsf{bold} \g_fontspec_encoding_tl\g__fontspec_mathsf_tl\bfdefault\updefault + \__fontspec_setmathsf_hook:nn {#1} {#2} } } - +% \end{macrocode} +% \begin{macrocode} \cs_set:Nn \__fontspec_setmonofont_hook:nn { \tl_if_eq:onT {\g__fontspec_mathtt_tl} {\ttdefault} { %<XE> \fontspec_set_family:Nnn \g__fontspec_mathtt_tl {#1} {#2} %<LU> \fontspec_set_family:Nnn \g__fontspec_mathtt_tl {Renderer=Basic,#1} {#2} - \SetMathAlphabet\mathtt{normal}\g_fontspec_encoding_tl\g__fontspec_mathtt_tl\mddefault\updefault - \SetMathAlphabet\mathtt{bold} \g_fontspec_encoding_tl\g__fontspec_mathtt_tl\bfdefault\updefault + \__fontspec_setmathtt_hook:nn {#1} {#2} } } % \end{macrocode} @@ -100,17 +99,23 @@ \SetMathAlphabet\mathit{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\itdefault \SetMathAlphabet\mathbf{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\bfdefault\updefault } +% \end{macrocode} +% \begin{macrocode} \cs_set:Nn \__fontspec_setboldmathrm_hook:nn { \SetMathAlphabet\mathrm{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\mddefault\updefault \SetMathAlphabet\mathbf{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\bfdefault\updefault \SetMathAlphabet\mathit{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\mddefault\itdefault } +% \end{macrocode} +% \begin{macrocode} \cs_set:Nn \__fontspec_setmathsf_hook:nn { \SetMathAlphabet\mathsf{normal}\g_fontspec_encoding_tl\g__fontspec_mathsf_tl\mddefault\updefault \SetMathAlphabet\mathsf{bold} \g_fontspec_encoding_tl\g__fontspec_mathsf_tl\bfdefault\updefault } +% \end{macrocode} +% \begin{macrocode} \cs_set:Nn \__fontspec_setmathtt_hook:nn { \SetMathAlphabet\mathtt{normal}\g_fontspec_encoding_tl\g__fontspec_mathtt_tl\mddefault\updefault @@ -118,6 +123,27 @@ } % \end{macrocode} % +% I can't quite remember the logic behind the following two. +% +% If \pkg{fontspec} has been loaded and \verb|\setmathsf| (etc) run, this +% syncs things up: +% \begin{macrocode} +\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 {} {} } +% \end{macrocode} +% +% I suppose this is to make things work if neither fontspec or unicode-math +% load any fonts: (I should check that) +% \begin{macrocode} +\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 {} {} } + } +% \end{macrocode} +% % \begin{macrocode} %</package> % \end{macrocode} @@ -133,7 +159,7 @@ % the conditions of the LaTeX Project Public License, version 1.3c or higher % (your choice): <http://www.latex-project.org/lppl/>. % ------------------------------------------------ -% Copyright 2006-2017 Will Robertson, LPPL "maintainer" +% Copyright 2006-2018 Will Robertson, LPPL "maintainer" % Copyright 2010-2017 Philipp Stephani % Copyright 2011-2017 Joseph Wright % Copyright 2012-2015 Khaled Hosny |