summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/mathcommand/mathcommand.sty82
1 files changed, 79 insertions, 3 deletions
diff --git a/Master/texmf-dist/tex/latex/mathcommand/mathcommand.sty b/Master/texmf-dist/tex/latex/mathcommand/mathcommand.sty
index 95389e7d4c5..5aa4c03ae66 100644
--- a/Master/texmf-dist/tex/latex/mathcommand/mathcommand.sty
+++ b/Master/texmf-dist/tex/latex/mathcommand/mathcommand.sty
@@ -19,10 +19,10 @@
%% LaTeX version 1999/12/01 or later.
%%
\usepackage{expl3}
-\ProvidesExplPackage{mathcommand}{2019/07/03}{1.02}{}
+\ProvidesExplPackage{mathcommand}{2019/12/06}{1.03}{}
%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
-\RequirePackage{expl3}
+\RequirePackage{expl3,l3keys2e}
\RequirePackage{etoolbox}
\RequirePackage{xparse}
@@ -355,7 +355,7 @@
\__xparse_check_definable:nNT {#2} \storecommand
{
\cs_if_exist:NTF#2{
- \cs_set_eq:cN{\__mathcommand_prefix_store_tl\cs_to_str:N#2}#2
+ \cs_set_eq:cN{#1\cs_to_str:N#2}#2
}
{
\PackageError{mathcommand}
@@ -577,6 +577,82 @@
{#1}
}{#1}
}
+\bool_new:N\__mathcommand_disabled_error_bool
+\bool_set_true:N\__mathcommand_disabled_error_bool
+\bool_new:N\__mathcommand_disabled_suggest_original_bool
+\bool_set_true:N\__mathcommand_disabled_suggest_original_bool
+\bool_new:N\__mathcommand_force_enabled_bool
+\bool_set_false:N\__mathcommand_force_enabled_bool
+\cs_new:Nn\__mathcommand_to_disabled_help_tl:N
+ {mathcommand_disabled_help_\cs_to_str:N#1_tl}
+\cs_new:Nn\__mathcommand_error:nn
+{ \msg_new:nnn{mathcommand}{#1}{#2}
+ \msg_error:nn{mathcommand}{#1}
+}
+\cs_new:Nn\__mathcommand_dc_error:n
+{ \msg_new:nnn{mathcommand}{disabled~command}{#1}
+ \msg_error:nn{mathcommand}{disabled~command}
+}
+\cs_new:Nn\__mathcommand_dc_warning:n
+{ \msg_set:nnn{mathcommand}{disabled~command}{#1}
+ \msg_warning:nn{mathcommand}{disabled~command}
+}
+\cs_new:Nn\mathcommand_disabled_error:N
+{ \bool_if:NTF\__mathcommand_disabled_error_bool
+ {\exp_args:Nx\__mathcommand_dc_error:n}
+ {\exp_args:Nx\__mathcommand_dc_warning:n}
+ {\exp_not:n{\\The~command~\string#1~is~disabled.~Instead:\\ }
+ \bool_if:NT\__mathcommand_disabled_suggest_original_bool
+ {Use~\exp_not:c{\__mathcommand_to_storetl:N#1} for~the~original~macro.}
+ \exp_not:v{\__mathcommand_to_disabled_help_tl:N#1}}
+}
+\msg_new:nnn{mathcommand}{unknown~command}
+ {\\The~control~sequence~#1 is~not~defined \\Origin~macro:~#2}
+\NewDocumentCommand\disablecommand{m}{
+ \tl_map_function:nN{#1}\mathcommand_disablecommand:N
+}
+
+\cs_new:Nn\mathcommand_disablecommand:N
+ { \cs_if_exist:NTF#1{
+ \__xparse_check_definable:nNT#1\disablecommand
+ {\tl_if_exist:cTF{\__mathcommand_to_disabled_help_tl:N#1}
+ {}
+ {\storecommand#1
+ \tl_new:c{\__mathcommand_to_disabled_help_tl:N#1}
+ \renewcommand#1
+ {\bool_if:NF
+ \__mathcommand_force_enabled_bool
+ {\mathcommand_disabled_error:N#1}
+ \use:c{\__mathcommand_to_storetl:N#1}}}
+ }
+ }{
+ \msg_error:nnnn{mathcommand}{unknown~command}{#1}{\disablecommand}
+ }
+}
+\NewDocumentCommand\suggestcommand{mm}
+ { \cs_if_exist:NTF#1{
+ \cs_if_exist:cTF{\__mathcommand_to_disabled_help_tl:N#1}{
+ \tl_put_right:cx{\__mathcommand_to_disabled_help_tl:N#1}{\exp_not:N\\\tl_to_str:n{#2}}
+ }{
+ \__mathcommand_error:nn{command~not~disabled}
+ {\\\string\suggestcommand :~Command~#1~has~not~been~disabled.}
+ }
+ }
+ { \__mathcommand_error:nn{unknown~command}
+ {\\\string\suggestcommand :~Unknown~command~#1.}
+ }
+}
+\keys_define:nn { mathcommand }{
+ disabled .multichoice:,
+ disabled / silent .code:n = {\bool_set_true:N\__mathcommand_force_enabled_bool },
+ disabled / error .code:n = {\bool_set_false:N\__mathcommand_force_enabled_bool
+ \bool_set_true:N\__mathcommand_disabled_error_bool},
+ disabled / warning .code:n = {\bool_set_false:N\__mathcommand_force_enabled_bool
+ \bool_set_false:N\__mathcommand_disabled_error_bool},
+}
+\ProcessKeysOptions { mathcommand } % Parses the option list
+\NewDocumentCommand\mathcommandconfigure{ m }
+ {\keys_set:nn{ mathcommand}{ #1} }
\ExplSyntaxOff
\endinput