summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/unicode-math/um-code-mathtext.dtx
diff options
context:
space:
mode:
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.dtx92
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