summaryrefslogtreecommitdiff
path: root/macros/unicodetex/latex/unicode-math/um-code-amsmath.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/unicodetex/latex/unicode-math/um-code-amsmath.dtx')
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-amsmath.dtx173
1 files changed, 173 insertions, 0 deletions
diff --git a/macros/unicodetex/latex/unicode-math/um-code-amsmath.dtx b/macros/unicodetex/latex/unicode-math/um-code-amsmath.dtx
new file mode 100644
index 0000000000..ee1f0642bc
--- /dev/null
+++ b/macros/unicodetex/latex/unicode-math/um-code-amsmath.dtx
@@ -0,0 +1,173 @@
+%%^^A%% um-code-amsmath.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
+%%^^A%% Compatibility with amsmath.
+
+% \section{Compatibility with \pkg{amsmath}}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% Since the mathcode of |`\-| is greater than eight bits, this piece of |\AtBeginDocument| code from \pkg{amsmath} dies if we try and set the maths font in the preamble:
+% \begin{macrocode}
+ \tl_remove_once:Nn \@begindocumenthook
+ {
+ \mathchardef\std@minus\mathcode`\-\relax
+ \mathchardef\std@equal\mathcode`\=\relax
+ }
+ \AtBeginDocument
+ {
+ \Umathcharnumdef\std@minus\Umathcodenum`-
+ \Umathcharnumdef\std@equal\Umathcodenum`=
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \cs_set:Npn \@cdots {\mathinner{\unicodecdots}}
+ \cs_set_eq:NN \dotsb@ \cdots
+% \end{macrocode}
+% This isn't as clever as the \pkg{amsmath} definition but I think it works:
+% \begin{macrocode}
+%<*XE>
+ \def \resetMathstrut@
+ {%
+ \setbox\z@\hbox{$($}%)
+ \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@
+ }
+% \end{macrocode}
+% The |subarray| environment uses inappropriate font dimensions.
+% \begin{macrocode}
+ \cs_set:Npn \subarray #1
+ {
+ \vcenter
+ \c_group_begin_token
+ \Let@
+ \restore@math@cr
+ \default@tag
+ \skip_set:Nn \baselineskip
+ {
+ \@@_stack_num_up:N \scriptstyle
+ + \@@_stack_denom_down:N \scriptstyle
+ }
+ \lineskip \@@_stack_vgap:N \scriptstyle
+ \lineskiplimit \lineskip
+ \ialign
+ \c_group_begin_token
+ \token_if_eq_meaning:NNT c #1 { \hfil }
+ \c_math_toggle_token
+ \m@th
+ \scriptstyle
+ \c_parameter_token \c_parameter_token
+ \c_math_toggle_token
+ \hfil
+ \crcr
+ }
+%</XE>
+% \end{macrocode}
+% The roots need a complete rework.
+% \begin{macrocode}
+%<*LU>
+ \cs_set_nopar:Npn \plainroot@ #1 \of #2
+ {
+ \bool_if:nTF
+ {
+ \@@_int_if_zero_p:n \uproot@ && \@@_int_if_zero_p:n \leftroot@
+ }
+ {
+ \Uroot \c_@@_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
+ }
+%</LU>
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \cs_set_nopar:Npn \r@@@@t #1 #2
+%<*LU>
+ {
+ \hbox_set:Nn \l_tmpa_box
+ {
+ \c_math_toggle_token \m@th
+ #1 \mskip \uproot@ mu
+ \c_math_toggle_token
+ }
+ \Uroot \c_@@_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 }
+ }
+%</LU>
+%<*XE>
+ {
+ \hbox_set:Nn \l_tmpa_box
+ {
+ \c_math_toggle_token \m@th
+ #1 \sqrtsign { #2 }
+ \c_math_toggle_token
+ }
+ \hbox_set:Nn \l_tmpb_box
+ {
+ \c_math_toggle_token \m@th
+ #1 \mskip \uproot@ mu
+ \c_math_toggle_token
+ }
+ \mkern -\leftroot@ mu
+ \@@_mathstyle_scale:NnnN #1 { \kern } { \fontdimen 63 \g_@@_sqrt_font_cmd_tl } \g_@@_sqrt_font_cmd_tl
+ \box_move_up:nn
+ {
+ \box_wd:N \l_tmpb_box + (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box)
+ * \number \fontdimen 65 \g_@@_sqrt_font_cmd_tl / 100
+ }
+ { \box_use:N \rootbox }
+ \@@_mathstyle_scale:NnnN #1 { \kern } { \fontdimen 64 \g_@@_sqrt_font_cmd_tl } \g_@@_sqrt_font_cmd_tl
+ \mkern \leftroot@ mu
+ \box_use_drop:N \l_tmpa_box
+ }
+%</XE>
+% \end{macrocode}
+%
+% \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
+% ------------------------------------------------
+%
+% ©/