texlive[59981] Master/texmf-dist: semantex (18jul21)

commits+karl at tug.org commits+karl at tug.org
Sun Jul 18 22:25:17 CEST 2021


Revision: 59981
          http://tug.org/svn/texlive?view=revision&revision=59981
Author:   karl
Date:     2021-07-18 22:25:16 +0200 (Sun, 18 Jul 2021)
Log Message:
-----------
semantex (18jul21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/semantex/semantex.pdf
    trunk/Master/texmf-dist/doc/latex/semantex/semantex.tex
    trunk/Master/texmf-dist/tex/latex/semantex/semantex.sty
    trunk/Master/texmf-dist/tex/latex/semantex/stripsemantex.sty

Modified: trunk/Master/texmf-dist/doc/latex/semantex/semantex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/semantex/semantex.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/semantex/semantex.tex	2021-07-18 20:25:02 UTC (rev 59980)
+++ trunk/Master/texmf-dist/doc/latex/semantex/semantex.tex	2021-07-18 20:25:16 UTC (rev 59981)
@@ -42,7 +42,7 @@
 	
 \usepackage[nameinlink]{cleveref}
 
-\title{Seman\!\TeX: semantic, keyval-based mathematics (v0.507)}
+\title{Seman\!\TeX: semantic, keyval-based mathematics (v0.508)}
 \date{\today}
 \author{Sebastian Ørsted (\href{mailto:sorsted at gmail.com}{sorsted at gmail.com})}
 
@@ -3120,6 +3120,17 @@
 	Another interesting possibility is the command~\lstinline!\ekvparse! from the package~\lstinline!expkv!. This choice will only affect keys for objects and classes,
 	\emph{not} keys for use inside~\lstinline!\SemantexSetup!.
 	
+	\item \mylst!single key parser={$\<command\>$}!
+
+	Sets the single key parser function to~\<command\>.
+	The single key parser is the command that parses the content of the argument
+	when you have applied the setting \mylst!arg keyval=single keys!.
+	The \<command\> must take two arguments:
+	\mylst!$\<command\>\<function\>${$\<comma list\>$}!.
+	The \<function\> must take one argument and will be applied
+	to each entry in the \<comma list\>.
+	By default, this key has been set to the \LaTeX3 command~\mylst!\clist_map_function:nN! (but with the arguments in reverse order).
+	
 	\item \mylst!semtex file={$\values\<true|\default{false}\>$}!
 	
 	When turned on, a \lstinline!.semtex! file will be created while processing the document.
@@ -3540,14 +3551,21 @@
 	\item
 	\mylst!parse options={$\<keys\>$}!
 	
-	Adds the \<keys\> to the parse options.
+	Adds the \<keys\> to the parse options, i.e.~adds it to the key \mylst!parse code!.
 	
 	\item
 	\mylst!parse!
 	
-	Invokes the parse routine.
+	Invokes the parse routine, i.e.~runs the key \mylst!parse code! and then empties
+	the contents of that key.
 	
 	\item
+	\mylst!parse code!
+	
+	The key where the parse options are stored. It is emptied when the parse
+	routine is invoked.
+	
+	\item
 	\mylst!math class={$\<command\>$}!
 	
 	Sets the \TeX\ math class to be~\<command\>.

Modified: trunk/Master/texmf-dist/tex/latex/semantex/semantex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/semantex/semantex.sty	2021-07-18 20:25:02 UTC (rev 59980)
+++ trunk/Master/texmf-dist/tex/latex/semantex/semantex.sty	2021-07-18 20:25:16 UTC (rev 59981)
@@ -1,5 +1,5 @@
 \RequirePackage{xparse,l3keys2e,leftindex,semtex}
-\ProvidesExplPackage{semantex}{2021/07/04}{0.507}{}
+\ProvidesExplPackage{semantex}{2021/07/18}{0.508}{}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %															%
@@ -12,11 +12,15 @@
 
 
 \cs_set_eq:NN \semantex_keyval_parse:NNn \keyval_parse:NNn
+\cs_set:Npn \semantex_singlekey_parse:Nn#1#2 { \clist_map_function:nN { #2 } #1 }
 
+
 \keys_define:nn { semantex }
 {
 	keyval~parser .code:n = \cs_set_eq:NN \semantex_keyval_parse:NNn #1,
 	keyval~parser .value_required:n = true,
+	single~key~parser .code:n = \cs_set_eq:NN \semantex_singlekey_parse:Nn #1,
+	single~key~parser .value_required:n = true,
 	semtex~file .choice:,
 	semtex~file / true .code:n = \semantex_turn_semtex_file_on:,
 	semtex~file / false .code:n = \semantex_turn_semtex_file_off:,
@@ -2879,6 +2883,7 @@
 
 \cs_new_protected:Npn \semantex_keys_set_x:nn#1#2
 {
+	% This key should no longer be used.
 	\cs_set_eq:NN\l__semantex_keys_set_old_this_temp_cs:\semantex_this:
 	\cs_set:Nn\semantex_this:{#1}
 	% The central command for doing expanded keyval setup
@@ -2904,6 +2909,7 @@
 
 \cs_new_protected:Npn \semantex_arg_keys_set_x:nn#1#2
 {
+	% This key should no longer be used.
 	% The central command for doing expanded keyval setup for the argument
 	% #1 = object
 	% #2 = keys
@@ -2913,7 +2919,7 @@
 		{ #2 }
 }
 
-\cs_generate_variant:Nn \clist_map_function:nN { nc }
+\cs_generate_variant:Nn \semantex_singlekey_parse:Nn { cn }
 
 \cs_new_protected:Npn \semantex_arg_singlekeys_set:nn#1#2
 {
@@ -2920,9 +2926,17 @@
 	% This command is necessary because you sometimes want to only allow singlekeys
 	% and not valuekeys in arguments (for instance, if you allow valuekeys, anything
 	% containing an equality sign will die horribly in the argument of any object)
-	\clist_map_function:nc {#2} { __semantex_data_cs_#1_arg_singlekey:n }
+	\semantex_singlekey_parse:cn { __semantex_data_cs_#1_arg_singlekey:n } { #2 }
 }
 
+\cs_new_protected:Npn \semantex_arg_singlekeys_set_x:nn#1#2
+{
+	% This command is necessary because you sometimes want to only allow singlekeys
+	% and not valuekeys in arguments (for instance, if you allow valuekeys, anything
+	% containing an equality sign will die horribly in the argument of any object)
+	\semantex_singlekey_parse:cn { __semantex_data_cs_#1_arg_singlekey_x:n } {#2}
+}
+
 \DeclareDocumentCommand\SetupClass{mm}{ % a user-level command for setting up the object
 	% #1 = class
 	% #2 = setup
@@ -3692,7 +3706,7 @@
 			\semantex_preprocess_arg_keys_x:nN { #3 } #4
 		}
 		{ arg~keys~set~x }{
-			\semantex_preprocess_arg_keys_x:nN { #3 } #4\textbf{}
+			\semantex_preprocess_arg_keys_x:nN { #3 } #4
 		}
 		{ set~arg~single~keys }{
 			\semantex_preprocess_arg_singlekeys:nN { #3 } #4
@@ -4851,6 +4865,7 @@
 
 \cs_new_protected:Npn \semantex_clear_singlekey:nn#1#2
 {
+	% Note that this is strictly different from undefining the key.
 	\cs_set_protected:cpo { __semantex_data_cs_custom_singlekey_#1_\tl_trim_spaces:n{#2}:n } ##1
 	{
 		% do nothing
@@ -5718,7 +5733,7 @@
 	{
 		\__semantex_preprocess_arg_singlekey:nnN { ####1 } { ##1 } #2
 	}
-	\clist_map_function:nN { #1 } \l__semantex_preprocess_arg_singlekey_temp_cs:n
+	\semantex_singlekey_parse:Nn \l__semantex_preprocess_arg_singlekey_temp_cs:n { #1 }
 }
 
 
@@ -5810,7 +5825,7 @@
 	{
 		\__semantex_preprocess_arg_singlekey_x:nnN { ####1 } { ##1 } #2
 	}
-	\clist_map_function:nN { #1 } \l__semantex_preprocess_arg_singlekey_x_temp_cs:n
+	\semantex_singlekey_parse:Nn \l__semantex_preprocess_arg_singlekey_x_temp_cs:n { #1 }
 }
 
 
@@ -6809,18 +6824,78 @@
 \cs_new:Npn\SemantexDataGet#1{\semantex_data_tl_get:nn{\semantex_this:}{\tl_trim_spaces:n{#1}}}
 \cs_new:Npn\SemantexDataGetExpNot#1{\semantex_data_tl_get_exp_not:nn{\semantex_this:}{\tl_trim_spaces:n{#1}}}
 \cs_new_protected:Npn\SemantexDataClear#1{\semantex_data_tl_clear:nn{\semantex_this:}{\tl_trim_spaces:n{#1}}}
-\cs_new_protected:Npn\SemantexSetKeys#1{\semantex_keys_set:on{\semantex_this:}{#1}}
-\cs_new_protected:Npn\SemantexKeysSet#1{\semantex_keys_set:on{\semantex_this:}{#1}}
-\cs_new_protected:Npn\SemantexSetKeysx#1{\semantex_keys_set_x:on{\semantex_this:}{#1}}
-\cs_new_protected:Npn\SemantexKeysSetx#1{\semantex_keys_set_x:on{\semantex_this:}{#1}}
-\cs_new_protected:Npn\SemantexSetArgKeys#1{\semantex_arg_keys_set:nn { \semantex_this: } { #1 }}
-\cs_new_protected:Npn\SemantexArgKeysSet#1{\semantex_arg_keys_set:nn { \semantex_this: } { #1 }}
-\cs_new_protected:Npn\SemantexSetArgKeysx#1{\semantex_arg_keys_set_x:nn { \semantex_this: } { #1 }}
-\cs_new_protected:Npn\SemantexArgKeysSetx#1{\semantex_arg_keys_set_x:nn { \semantex_this: } { #1 }}
-\cs_new_protected:Npn\SemantexSetArgSingleKeys#1{\semantex_arg_singlekeys_set:nn { \semantex_this: } { #1 } }
-\cs_new_protected:Npn\SemantexArgSingleKeysSet#1{\semantex_arg_singlekeys_set:nn { \semantex_this: } { #1 } }
-\cs_new_protected:Npn\SemantexSetArgSingleKeysx#1{\semantex_arg_singlekeys_set_x:nn { \semantex_this: } { #1 } }
-\cs_new_protected:Npn\SemantexArgSingleKeysSetx#1{\semantex_arg_singlekeys_set_x:nn { \semantex_this: } { #1 } }
+\cs_new_protected:Npn\SemantexSetKeys#1{
+	\tl_set:Nn\l__semantex_keys_set_temp_tl{}
+	\semantex_preprocess_keys:nN { #1 } \l__semantex_keys_set_temp_tl
+	\exp_args:NNo\cs_set:Nn\l__semantex_keys_set_temp_cs:n{\l__semantex_keys_set_temp_tl}
+	\l__semantex_keys_set_temp_cs:n { \semantex_this: }
+}
+\cs_new_protected:Npn\SemantexKeysSet#1{
+	\tl_set:Nn\l__semantex_keys_set_temp_tl{}
+	\semantex_preprocess_keys:nN { #1 } \l__semantex_keys_set_temp_tl
+	\exp_args:NNo\cs_set:Nn\l__semantex_keys_set_temp_cs:n{\l__semantex_keys_set_temp_tl}
+	\l__semantex_keys_set_temp_cs:n { \semantex_this: }
+}
+\cs_new_protected:Npn\SemantexSetKeysx#1{
+	\tl_set:Nn\l__semantex_keys_set_x_temp_tl{}
+	\semantex_preprocess_keys_x:nN { #1 } \l__semantex_keys_set_x_temp_tl
+	\exp_args:NNo\cs_set:Nn\l__semantex_keys_set_x_temp_cs:n{\l__semantex_keys_set_x_temp_tl}
+	\l__semantex_keys_set_x_temp_cs:n { \semantex_this: }
+}
+\cs_new_protected:Npn\SemantexKeysSetx#1{
+	\tl_set:Nn\l__semantex_keys_set_x_temp_tl{}
+	\semantex_preprocess_keys_x:nN { #1 } \l__semantex_keys_set_x_temp_tl
+	\exp_args:NNo\cs_set:Nn\l__semantex_keys_set_x_temp_cs:n{\l__semantex_keys_set_x_temp_tl}
+	\l__semantex_keys_set_x_temp_cs:n { \semantex_this: }
+}
+\cs_new_protected:Npn\SemantexSetArgKeys#1{
+	\tl_set:Nn\l__semantex_arg_keys_set_temp_tl{}
+	\semantex_preprocess_arg_keys:nN { #1 } \l__semantex_arg_keys_set_temp_tl
+	\exp_args:NNo\cs_set:Nn\l__semantex_arg_keys_set_temp_cs:n{\l__semantex_arg_keys_set_temp_tl}
+	\l__semantex_arg_keys_set_temp_cs:n { \semantex_this: }
+}
+\cs_new_protected:Npn\SemantexArgKeysSet#1{
+	\tl_set:Nn\l__semantex_arg_keys_set_temp_tl{}
+	\semantex_preprocess_arg_keys:nN { #1 } \l__semantex_arg_keys_set_temp_tl
+	\exp_args:NNo\cs_set:Nn\l__semantex_arg_keys_set_temp_cs:n{\l__semantex_arg_keys_set_temp_tl}
+	\l__semantex_arg_keys_set_temp_cs:n { \semantex_this: }
+}
+\cs_new_protected:Npn\SemantexSetArgKeysx#1{
+	\tl_set:Nn\l__semantex_arg_keys_set_x_temp_tl{}
+	\semantex_preprocess_arg_keys_x:nN { #1 } \l__semantex_arg_keys_set_x_temp_tl
+	\exp_args:NNo\cs_set:Nn\l__semantex_arg_keys_set_x_temp_cs:n{\l__semantex_arg_keys_set_x_temp_tl}
+	\l__semantex_arg_keys_set_x_temp_cs:n { \semantex_this: }
+}
+\cs_new_protected:Npn\SemantexArgKeysSetx#1{
+	\tl_set:Nn\l__semantex_arg_keys_set_x_temp_tl{}
+	\semantex_preprocess_arg_keys_x:nN { #1 } \l__semantex_arg_keys_set_x_temp_tl
+	\exp_args:NNo\cs_set:Nn\l__semantex_arg_keys_set_x_temp_cs:n{\l__semantex_arg_keys_set_x_temp_tl}
+	\l__semantex_arg_keys_set_x_temp_cs:n { \semantex_this: }
+}
+\cs_new_protected:Npn\SemantexSetArgSingleKeys#1{
+	\tl_set:Nn\l__semantex_arg_singlekeys_set_temp_tl{}
+	\semantex_preprocess_arg_singlekeys:nN { #1 } \l__semantex_arg_singlekeys_set_temp_tl
+	\exp_args:NNo\cs_set:Nn\l__semantex_arg_singlekeys_set_temp_cs:n{\l__semantex_arg_singlekeys_set_temp_tl}
+	\l__semantex_arg_singlekeys_set_temp_cs:n { \semantex_this: }
+}
+\cs_new_protected:Npn\SemantexArgSingleKeysSet#1{
+	\tl_set:Nn\l__semantex_arg_singlekeys_set_temp_tl{}
+	\semantex_preprocess_arg_singlekeys:nN { #1 } \l__semantex_arg_singlekeys_set_temp_tl
+	\exp_args:NNo\cs_set:Nn\l__semantex_arg_singlekeys_set_temp_cs:n{\l__semantex_arg_singlekeys_set_temp_tl}
+	\l__semantex_arg_singlekeys_set_temp_cs:n { \semantex_this: }
+}
+\cs_new_protected:Npn\SemantexSetArgSingleKeysx#1{
+	\tl_set:Nn\l__semantex_arg_singlekeys_set_x_temp_tl{}
+	\semantex_preprocess_arg_singlekeys_x:nN { #1 } \l__semantex_arg_singlekeys_set_x_temp_tl
+	\exp_args:NNo\cs_set:Nn\l__semantex_arg_singlekeys_set_x_temp_cs:n{\l__semantex_arg_singlekeys_set_x_temp_tl}
+	\l__semantex_arg_singlekeys_set_x_temp_cs:n { \semantex_this: }
+}
+\cs_new_protected:Npn\SemantexArgSingleKeysSetx#1{
+	\tl_set:Nn\l__semantex_arg_singlekeys_set_x_temp_tl{}
+	\semantex_preprocess_arg_singlekeys_x:nN { #1 } \l__semantex_arg_singlekeys_set_x_temp_tl
+	\exp_args:NNo\cs_set:Nn\l__semantex_arg_singlekeys_set_x_temp_cs:n{\l__semantex_arg_singlekeys_set_x_temp_tl}
+	\l__semantex_arg_singlekeys_set_x_temp_cs:n { \semantex_this: }
+}
 \cs_new_protected:Npn\SemantexSetOneArgSingleKey#1{\semantex_arg_singlekey:nn { \semantex_this: } { #1 } }
 \cs_new_protected:Npn\SemantexOneSingleArgKeySet#1{\semantex_arg_singlekey:nn { \semantex_this: } { #1 } }
 \cs_new_protected:Npn\SemantexSetOneArgSingleKeyx#1{\semantex_arg_singlekey_x:nn { \semantex_this: } { #1 } }
@@ -7251,10 +7326,38 @@
 		{data~clear}{
 			execute={ \semantex_data_tl_clear:nn { ##1 } { \tl_trim_spaces:n { #1 } } },
 		},
-		{keys~set}{ execute={ \semantex_keys_set:nn { ##1 } { #1 } } },
-		{set~keys}{ execute={ \semantex_keys_set:nn { ##1 } { #1 } } },
-		{keys~set~x}{ execute={ \semantex_keys_set_x:nn { ##1 } { #1 } } },
-		{set~keys~x}{ execute={ \semantex_keys_set_x:nn { ##1 } { #1 } } },
+		{keys~set}{
+			execute={
+				\tl_set:Nn\l__semantex_keys_set_temp_tl{}
+				\semantex_preprocess_keys:nN { #1 } \l__semantex_keys_set_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_keys_set_temp_cs:n{\l__semantex_keys_set_temp_tl}
+				\l__semantex_keys_set_temp_cs:n { ##1 }
+			},
+		},
+		{set~keys}{
+			execute={
+				\tl_set:Nn\l__semantex_keys_set_temp_tl{}
+				\semantex_preprocess_keys:nN { #1 } \l__semantex_keys_set_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_keys_set_temp_cs:n{\l__semantex_keys_set_temp_tl}
+				\l__semantex_keys_set_temp_cs:n { ##1 }
+			},
+		},
+		{keys~set~x}{
+			execute={
+				\tl_set:Nn\l__semantex_keys_set_x_temp_tl{}
+				\semantex_preprocess_keys_x:nN { #1 } \l__semantex_keys_set_x_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_keys_set_x_temp_cs:n{\l__semantex_keys_set_x_temp_tl}
+				\l__semantex_keys_set_x_temp_cs:n { ##1 }
+			},
+		},
+		{set~keys~x}{
+			execute={
+				\tl_set:Nn\l__semantex_keys_set_x_temp_tl{}
+				\semantex_preprocess_keys_x:nN { #1 } \l__semantex_keys_set_x_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_keys_set_x_temp_cs:n{\l__semantex_keys_set_x_temp_tl}
+				\l__semantex_keys_set_x_temp_cs:n { ##1 }
+			},
+		},
 		{bool~provide}{
 			execute={
 				\semantex_data_bool_provide:nn { ##1 } { \tl_trim_spaces:n { #1 } }
@@ -7632,14 +7735,70 @@
 		{clear~post~arg}{ execute={ \semantex_data_tl_clear:nn { ##1 } { post~arg } } },
 	},
 	define~keys[1]={
-		{set~arg~keys}{ execute={ \semantex_arg_keys_set:nn { ##1 } { #1 } } },
-		{arg~keys~set}{ execute={ \semantex_arg_keys_set:nn { ##1 } { #1 } } },
-		{set~arg~keys~x}{ execute={ \semantex_arg_keys_set_x:nn { ##1 } { #1 } } },
-		{arg~keys~set~x}{ execute={ \semantex_arg_keys_set_x:nn { ##1 } { #1 } } },
-		{set~arg~single~keys}{ execute={ \semantex_arg_singlekeys_set:nn { ##1 } { #1 } } },
-		{arg~single~keys~set}{ execute={ \semantex_arg_singlekeys_set:nn { ##1 } { #1 } } },
-		{set~arg~single~keys~x}{ execute={ \semantex_arg_singlekeys_set_x:nn { ##1 } { #1 } } },
-		{arg~single~keys~set~x}{ execute={ \semantex_arg_singlekeys_set_x:nn { ##1 } { #1 } } },
+		{set~arg~keys}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_keys_set_temp_tl{}
+				\semantex_preprocess_arg_keys:nN { #1 } \l__semantex_arg_keys_set_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_keys_set_temp_cs:n{\l__semantex_arg_keys_set_temp_tl}
+				\l__semantex_arg_keys_set_temp_cs:n { ##1 }
+			},
+		},
+		{arg~keys~set}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_keys_set_temp_tl{}
+				\semantex_preprocess_arg_keys:nN { #1 } \l__semantex_arg_keys_set_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_keys_set_temp_cs:n{\l__semantex_arg_keys_set_temp_tl}
+				\l__semantex_arg_keys_set_temp_cs:n { ##1 }
+			},
+		},
+		{set~arg~keys~x}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_keys_set_x_temp_tl{}
+				\semantex_preprocess_arg_keys_x:nN { #1 } \l__semantex_arg_keys_set_x_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_keys_set_x_temp_cs:n{\l__semantex_arg_keys_set_x_temp_tl}
+				\l__semantex_arg_keys_set_x_temp_cs:n { ##1 }
+			},
+		},
+		{arg~keys~set~x}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_keys_set_x_temp_tl{}
+				\semantex_preprocess_arg_keys_x:nN { #1 } \l__semantex_arg_keys_set_x_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_keys_set_x_temp_cs:n{\l__semantex_arg_keys_set_x_temp_tl}
+				\l__semantex_arg_keys_set_x_temp_cs:n { ##1 }
+			},
+		},
+		{set~arg~single~keys}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_singlekeys_set_temp_tl{}
+				\semantex_preprocess_arg_singlekeys:nN { #1 } \l__semantex_arg_singlekeys_set_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_singlekeys_set_temp_cs:n{\l__semantex_arg_singlekeys_set_temp_tl}
+				\l__semantex_arg_singlekeys_set_temp_cs:n { ##1 }
+			},
+		},
+		{arg~single~keys~set}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_singlekeys_set_temp_tl{}
+				\semantex_preprocess_arg_singlekeys:nN { #1 } \l__semantex_arg_singlekeys_set_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_singlekeys_set_temp_cs:n{\l__semantex_arg_singlekeys_set_temp_tl}
+				\l__semantex_arg_singlekeys_set_temp_cs:n { ##1 }
+			},
+		},
+		{set~arg~single~keys~x}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_singlekeys_set_x_temp_tl{}
+				\semantex_preprocess_arg_singlekeys_x:nN { #1 } \l__semantex_arg_singlekeys_set_x_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_singlekeys_set_x_temp_cs:n{\l__semantex_arg_singlekeys_set_x_temp_tl}
+				\l__semantex_arg_singlekeys_set_x_temp_cs:n { ##1 }
+			},
+		},
+		{arg~single~keys~set~x}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_singlekeys_set_x_temp_tl{}
+				\semantex_preprocess_arg_singlekeys_x:nN { #1 } \l__semantex_arg_singlekeys_set_x_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_singlekeys_set_x_temp_cs:n{\l__semantex_arg_singlekeys_set_x_temp_tl}
+				\l__semantex_arg_singlekeys_set_x_temp_cs:n { ##1 }
+			},
+		},
 		{set~one~arg~single~key}{ execute={ \semantex_arg_singlekey:nn { ##1 } { #1 } } },
 		{one~arg~single~key~set}{ execute={ \semantex_arg_singlekey:nn { ##1 } { #1 } } },
 		{set~one~arg~single~key~x}{ execute={ \semantex_arg_singlekey_x:nn { ##1 } { #1 } } },
@@ -9009,18 +9168,102 @@
 	% Argument keyval interface
 	define~arg~keys[1]={
 		{execute}{execute={#1}},
-		{set~keys}{ execute={ \semantex_keys_set:nn { ##1 } { #1 } } },
-		{keys~set}{ execute={ \semantex_keys_set:nn { ##1 } { #1 } } },
-		{set~keys~x}{ execute={ \semantex_keys_set_x:nn { ##1 } { #1 } } },
-		{keys~set~x}{ execute={ \semantex_keys_set_x:nn { ##1 } { #1 } } },
-		{set~arg~keys}{ execute={ \semantex_arg_keys_set:nn { ##1 } { #1 } } },
-		{arg~keys~set}{ execute={ \semantex_arg_keys_set:nn { ##1 } { #1 } } },
-		{set~arg~keys~x}{ execute={ \semantex_arg_keys_set_x:nn { ##1 } { #1 } } },
-		{arg~keys~set~x}{ execute={ \semantex_arg_keys_set_x:nn { ##1 } { #1 } } },
-		{set~arg~single~keys}{ execute={ \semantex_arg_singlekeys_set:nn { ##1 } { #1 } } },
-		{arg~single~keys~set}{ execute={ \semantex_arg_singlekeys_set:nn { ##1 } { #1 } } },
-		{set~arg~single~keys~x}{ execute={ \semantex_arg_singlekeys_set_x:nn { ##1 } { #1 } } },
-		{arg~single~keys~set~x}{ execute={ \semantex_arg_singlekeys_set_x:nn { ##1 } { #1 } } },
+		{keys~set}{
+			execute={
+				\tl_set:Nn\l__semantex_keys_set_temp_tl{}
+				\semantex_preprocess_keys:nN { #1 } \l__semantex_keys_set_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_keys_set_temp_cs:n{\l__semantex_keys_set_temp_tl}
+				\l__semantex_keys_set_temp_cs:n { ##1 }
+			},
+		},
+		{set~keys}{
+			execute={
+				\tl_set:Nn\l__semantex_keys_set_temp_tl{}
+				\semantex_preprocess_keys:nN { #1 } \l__semantex_keys_set_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_keys_set_temp_cs:n{\l__semantex_keys_set_temp_tl}
+				\l__semantex_keys_set_temp_cs:n { ##1 }
+			},
+		},
+		{keys~set~x}{
+			execute={
+				\tl_set:Nn\l__semantex_keys_set_x_temp_tl{}
+				\semantex_preprocess_keys_x:nN { #1 } \l__semantex_keys_set_x_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_keys_set_x_temp_cs:n{\l__semantex_keys_set_x_temp_tl}
+				\l__semantex_keys_set_x_temp_cs:n { ##1 }
+			},
+		},
+		{set~keys~x}{
+			execute={
+				\tl_set:Nn\l__semantex_keys_set_x_temp_tl{}
+				\semantex_preprocess_keys_x:nN { #1 } \l__semantex_keys_set_x_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_keys_set_x_temp_cs:n{\l__semantex_keys_set_x_temp_tl}
+				\l__semantex_keys_set_x_temp_cs:n { ##1 }
+			},
+		},
+		{set~arg~keys}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_keys_set_temp_tl{}
+				\semantex_preprocess_arg_keys:nN { #1 } \l__semantex_arg_keys_set_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_keys_set_temp_cs:n{\l__semantex_arg_keys_set_temp_tl}
+				\l__semantex_arg_keys_set_temp_cs:n { ##1 }
+			},
+		},
+		{arg~keys~set}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_keys_set_temp_tl{}
+				\semantex_preprocess_arg_keys:nN { #1 } \l__semantex_arg_keys_set_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_keys_set_temp_cs:n{\l__semantex_arg_keys_set_temp_tl}
+				\l__semantex_arg_keys_set_temp_cs:n { ##1 }
+			},
+		},
+		{set~arg~keys~x}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_keys_set_x_temp_tl{}
+				\semantex_preprocess_arg_keys_x:nN { #1 } \l__semantex_arg_keys_set_x_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_keys_set_x_temp_cs:n{\l__semantex_arg_keys_set_x_temp_tl}
+				\l__semantex_arg_keys_set_x_temp_cs:n { ##1 }
+			},
+		},
+		{arg~keys~set~x}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_keys_set_x_temp_tl{}
+				\semantex_preprocess_arg_keys_x:nN { #1 } \l__semantex_arg_keys_set_x_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_keys_set_x_temp_cs:n{\l__semantex_arg_keys_set_x_temp_tl}
+				\l__semantex_arg_keys_set_x_temp_cs:n { ##1 }
+			},
+		},
+		{set~arg~single~keys}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_singlekeys_set_temp_tl{}
+				\semantex_preprocess_arg_singlekeys:nN { #1 } \l__semantex_arg_singlekeys_set_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_singlekeys_set_temp_cs:n{\l__semantex_arg_singlekeys_set_temp_tl}
+				\l__semantex_arg_singlekeys_set_temp_cs:n { ##1 }
+			},
+		},
+		{arg~single~keys~set}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_singlekeys_set_temp_tl{}
+				\semantex_preprocess_arg_singlekeys:nN { #1 } \l__semantex_arg_singlekeys_set_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_singlekeys_set_temp_cs:n{\l__semantex_arg_singlekeys_set_temp_tl}
+				\l__semantex_arg_singlekeys_set_temp_cs:n { ##1 }
+			},
+		},
+		{set~arg~single~keys~x}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_singlekeys_set_x_temp_tl{}
+				\semantex_preprocess_arg_singlekeys_x:nN { #1 } \l__semantex_arg_singlekeys_set_x_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_singlekeys_set_x_temp_cs:n{\l__semantex_arg_singlekeys_set_x_temp_tl}
+				\l__semantex_arg_singlekeys_set_x_temp_cs:n { ##1 }
+			},
+		},
+		{arg~single~keys~set~x}{
+			execute={
+				\tl_set:Nn\l__semantex_arg_singlekeys_set_x_temp_tl{}
+				\semantex_preprocess_arg_singlekeys_x:nN { #1 } \l__semantex_arg_singlekeys_set_x_temp_tl
+				\exp_args:NNo\cs_set:Nn\l__semantex_arg_singlekeys_set_x_temp_cs:n{\l__semantex_arg_singlekeys_set_x_temp_tl}
+				\l__semantex_arg_singlekeys_set_x_temp_cs:n { ##1 }
+			},
+		},
 		{set~one~arg~single~key}{ execute={ \semantex_arg_singlekey:nn { ##1 } { #1 } } },
 		{one~arg~single~key~set}{ execute={ \semantex_arg_singlekey:nn { ##1 } { #1 } } },
 		{set~one~arg~single~key~x}{ execute={ \semantex_arg_singlekey_x:nn { ##1 } { #1 } } },

Modified: trunk/Master/texmf-dist/tex/latex/semantex/stripsemantex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/semantex/stripsemantex.sty	2021-07-18 20:25:02 UTC (rev 59980)
+++ trunk/Master/texmf-dist/tex/latex/semantex/stripsemantex.sty	2021-07-18 20:25:16 UTC (rev 59981)
@@ -1,5 +1,5 @@
 \RequirePackage{xparse}
-\ProvidesExplPackage{stripsemantex}{2021/07/04}{0.507}{}
+\ProvidesExplPackage{stripsemantex}{2021/07/18}{0.508}{}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %																		%



More information about the tex-live-commits mailing list.