summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty43
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex196
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.ltx2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty76
19 files changed, 172 insertions, 179 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
index 933d7bba7fd..4ae4d86161f 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
@@ -20,7 +20,7 @@
%%
%% File: l3benchmark.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3benchmark}{2021-08-27}{}
+\ProvidesExplPackage{l3benchmark}{2021-11-12}{}
{L3 Experimental benchmarking}
\fp_new:N \g_benchmark_duration_target_fp
\fp_gset:Nn \g_benchmark_duration_target_fp { 1 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty b/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty
index 96effe254fe..b6984dc454c 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3bitset.dtx
-\ProvidesExplPackage{l3bitset}{2021-08-27}{}
+\ProvidesExplPackage{l3bitset}{2021-11-12}{}
{L3 Experimental bitset support}
\cs_new_protected:Npn \bitset_new:N #1
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
index 619596801dc..4a5d2b8eb92 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
@@ -28,7 +28,7 @@
%%
%% File: l3draw.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3draw}{2021-08-27}{}
+\ProvidesExplPackage{l3draw}{2021-11-12}{}
{L3 Experimental core drawing support}
\scan_new:N \s__draw_mark
\scan_new:N \s__draw_stop
@@ -963,6 +963,47 @@
{ #6 + #4 * #1 + #2 * #3 * #5 , #7 + #5 * #1 + -1 * #2 * #3 * #4 }
}
\cs_generate_variant:Nn \__draw_point_intersect_circles_auxvii:nnnnnnn { fff }
+\cs_new:Npn \draw_point_intersect_line_circle:nnnnn #1#2#3#4#5
+ {
+ \__draw_point_process:nnnn
+ { \__draw_point_intersect_line_circle_auxi:nnnnnnnn {#4} {#5} }
+ {#1} {#2} {#3}
+ }
+\cs_new:Npn \__draw_point_intersect_line_circle_auxi:nnnnnnnn #1#2#3#4#5#6#7#8
+ {
+ \__draw_point_intersect_line_circle_auxii:fnnnnnnn
+ { \fp_eval:n {#1} } {#3} {#4} {#5} {#6} {#7} {#8} {#2}
+ }
+\cs_new:Npn \__draw_point_intersect_line_circle_auxii:nnnnnnnn #1#2#3#4#5#6#7#8
+ {
+ \__draw_point_intersect_line_circle_auxiii:fffnnnnn
+ { \fp_eval:n { (#4-#2)*(#4-#2)+(#5-#3)*(#5-#3) } }
+ { \fp_eval:n { 2*((#4-#2)*(#2-#6)+(#5-#3)*(#3-#7)) } }
+ { \fp_eval:n { (#6*#6+#7*#7)+(#2*#2+#3*#3)-(2*(#6*#2+#7*#3))-(#1*#1) } }
+ {#2} {#3} {#4} {#5} {#8}
+ }
+\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxii:nnnnnnnn { f }
+\cs_new:Npn \__draw_point_intersect_line_circle_auxiii:nnnnnnnn #1#2#3#4#5#6#7#8
+ {
+ \__draw_point_intersect_line_circle_auxiv:ffnnnnnn
+ { \fp_eval:n { #2 * #2 - 4 * #1 * #3 } }
+ { \int_if_odd:nTF {#8} { 1 } { -1 } }
+ {#1} {#2} {#4} {#5} {#6} {#7}
+ }
+\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxiii:nnnnnnnn { fff }
+\cs_new:Npn \__draw_point_intersect_line_circle_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8
+ {
+ \__draw_point_intersect_line_circle_auxv:fnnnn
+ { \fp_eval:n { (-1 * #4 + #2 * sqrt(#1)) / (2 * #3) } }
+ {#5} {#6} {#7} {#8}
+ }
+\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxiv:nnnnnnnn { ff }
+\cs_new:Npn \__draw_point_intersect_line_circle_auxv:nnnnn #1#2#3#4#5
+ {
+ \draw_point:n
+ { #2 + #1 * (#4 - #2), #3 + #1 * (#5 - #3) }
+ }
+\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxv:nnnnn { f }
\cs_new:Npn \draw_point_interpolate_line:nnn #1#2#3
{
\__draw_point_process:nnn
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
index b01be499824..913a74aaa7f 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
@@ -20,7 +20,7 @@
%%
%% File: l3graphics.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3graphics}{2021-08-27}{}
+\ProvidesExplPackage{l3graphics}{2021-11-12}{}
{L3 Experimental graphics inclusion support}
\ior_new:N \l__graphics_tmp_ior
\tl_new:N \l__graphics_tmp_tl
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty b/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
index f131b24753e..25a405a27f5 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty
@@ -20,7 +20,7 @@
%%
%% File: l3opacity.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3opacity}{2021-08-27}{}
+\ProvidesExplPackage{l3opacity}{2021-11-12}{}
{L3 Experimental opacity support}
\cs_new_protected:Npn \opacity_select:n #1
{ \__opacity_select:nN {#1} \__opacity_backend_select:n }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
index da52a3b082a..3f2bb4309a7 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
@@ -20,7 +20,7 @@
%%
%% File: l3str-format.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-format}{2021-08-27}{}
+\ProvidesExplPackage{l3str-format}{2021-11-12}{}
{L3 Experimental string formatting}
\cs_generate_variant:Nn \use:nn { nf }
\cs_generate_variant:Nn \use:nnn { fnf }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
index 14753c8cd24..d0d5e2bca72 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
@@ -20,7 +20,7 @@
%%
%% File: l3sys-shell.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3sys-shell}{2021-08-27}{}
+\ProvidesExplPackage{l3sys-shell}{2021-11-12}{}
{L3 Experimental system shell functions}
\scan_new:N \s__sys_stop
\quark_new:N \q__sys_nil
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
index 97edbff9cd9..38442e8587f 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: xcoffins.dtx
-\ProvidesExplPackage{xcoffins}{2021-08-27}{}
+\ProvidesExplPackage{xcoffins}{2021-11-12}{}
{L3 Experimental design level coffins}
\keys_define:nn { coffin }
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
index aa9975fc5c7..07ab8d0ab38 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{l3galley}{2021-08-27}{}
+\ProvidesExplPackage{l3galley}{2021-11-12}{}
{L3 Experimental galley code}
\int_new:N \l__galley_tmp_int
\seq_new:N \g__galley_tmpa_seq
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
index 0f4b7f5fb8d..b4ac834f378 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: xgalley.dtx
-\ProvidesExplPackage{xgalley}{2021-08-27}{}
+\ProvidesExplPackage{xgalley}{2021-11-12}{}
{L3 Experimental galley}
\RequirePackage{xtemplate,l3galley}
\clist_new:N \l__galley_tmpa_clist
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 65bd533c8b8..acd7546557c 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -70,7 +70,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2021-10-18}%
+\def\ExplFileDate{2021-11-12}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -4962,23 +4962,20 @@
}
\prg_new_conditional:Npnn \str_if_eq:nn #1#2 { p , T , F , TF }
{
- \if_int_compare:w
- \__str_if_eq:nn { \exp_not:n {#1} } { \exp_not:n {#2} }
- = \c_zero_int
+ \if:w 0 \__str_if_eq:nn { \exp_not:n {#1} } { \exp_not:n {#2} }
\prg_return_true: \else: \prg_return_false: \fi:
}
\prg_generate_conditional_variant:Nnn \str_if_eq:nn
{ V , v , o , nV , no , VV , nv } { p , T , F , TF }
\prg_new_conditional:Npnn \str_if_eq:ee #1#2 { p , T , F , TF }
{
- \if_int_compare:w \__str_if_eq:nn {#1} {#2} = \c_zero_int
+ \if:w 0 \__str_if_eq:nn {#1} {#2}
\prg_return_true: \else: \prg_return_false: \fi:
}
\prg_new_conditional:Npnn \str_if_eq:NN #1#2 { p , TF , T , F }
{
- \if_int_compare:w
- \__str_if_eq:nn { \tl_to_str:N #1 } { \tl_to_str:N #2 }
- = \c_zero_int \prg_return_true: \else: \prg_return_false: \fi:
+ \if:w 0 \__str_if_eq:nn { \tl_to_str:N #1 } { \tl_to_str:N #2 }
+ \prg_return_true: \else: \prg_return_false: \fi:
}
\prg_generate_conditional_variant:Nnn \str_if_eq:NN
{ c , Nc , cc } { T , F , TF , p }
@@ -7117,12 +7114,13 @@
\fi:
}
\prg_generate_conditional_variant:Nnn \bool_if:N { c } { p , T , F , TF }
+\cs_new:Npn \bool_to_str:N #1 { \bool_if:NTF #1 { true } { false } }
+\cs_generate_variant:Nn \bool_to_str:N { c }
+\cs_new:Npn \bool_to_str:n #1 { \bool_if:nTF {#1} { true } { false } }
\cs_new_protected:Npn \bool_show:n
- { \msg_show_eval:Nn \__bool_to_str:n }
+ { \msg_show_eval:Nn \bool_to_str:n }
\cs_new_protected:Npn \bool_log:n
- { \msg_log_eval:Nn \__bool_to_str:n }
-\cs_new:Npn \__bool_to_str:n #1
- { \bool_if:nTF {#1} { true } { false } }
+ { \msg_log_eval:Nn \bool_to_str:n }
\cs_new_protected:Npn \bool_show:N { \__bool_show:NN \tl_show:n }
\cs_generate_variant:Nn \bool_show:N { c }
\cs_new_protected:Npn \bool_log:N { \__bool_show:NN \tl_log:n }
@@ -9493,83 +9491,51 @@
\cs_new_protected:Npn \__prop_concat:NNNN #1#2#3#4
{
\prop_set_eq:NN \l__prop_internal_prop #3
- \prop_map_tokens:Nn #4 { \prop_put:Nnn \l__prop_internal_prop }
+ \prop_map_inline:Nn #4 { \prop_put:Nnn \l__prop_internal_prop {##1} {##2} }
#1 #2 \l__prop_internal_prop
}
-\cs_new_protected:Npn \prop_set_from_keyval:Nn #1#2
+\cs_new_protected:Npn \prop_set_from_keyval:Nn #1
{
- \prop_clear:N \l__prop_internal_prop
- \__prop_from_keyval:n {#2}
- \prop_set_eq:NN #1 \l__prop_internal_prop
- \prop_clear:N \l__prop_internal_prop
+ \prop_clear:N #1
+ \prop_put_from_keyval:Nn #1
}
\cs_generate_variant:Nn \prop_set_from_keyval:Nn { c }
-\cs_new_protected:Npn \prop_gset_from_keyval:Nn #1#2
+\cs_new_protected:Npn \prop_gset_from_keyval:Nn #1
{
- \prop_clear:N \l__prop_internal_prop
- \__prop_from_keyval:n {#2}
- \prop_gset_eq:NN #1 \l__prop_internal_prop
- \prop_clear:N \l__prop_internal_prop
+ \prop_gclear:N #1
+ \prop_gput_from_keyval:Nn #1
}
\cs_generate_variant:Nn \prop_gset_from_keyval:Nn { c }
\cs_new_protected:Npn \prop_const_from_keyval:Nn #1#2
{
- \prop_clear:N \l__prop_internal_prop
- \__prop_from_keyval:n {#2}
+ \prop_set_from_keyval:Nn \l__prop_internal_prop {#2}
\tl_const:Nx #1 { \exp_not:o \l__prop_internal_prop }
\prop_clear:N \l__prop_internal_prop
}
\cs_generate_variant:Nn \prop_const_from_keyval:Nn { c }
-\cs_new_protected:Npn \prop_put_from_keyval:Nn #1#2
+\cs_new_protected:Npn \prop_put_from_keyval:Nn
{
- \prop_set_eq:NN \l__prop_internal_prop #1
- \__prop_from_keyval:n {#2}
- \prop_set_eq:NN #1 \l__prop_internal_prop
- \prop_clear:N \l__prop_internal_prop
+ \bool_if:NTF \l__kernel_keyval_allow_blank_keys_bool
+ { \__prop_keyval_parse:NNNn \c_true_bool }
+ { \__prop_keyval_parse:NNNn \c_false_bool }
+ \prop_put:Nnn
}
\cs_generate_variant:Nn \prop_put_from_keyval:Nn { c }
-\cs_new_protected:Npn \prop_gput_from_keyval:Nn #1#2
+\cs_new_protected:Npn \prop_gput_from_keyval:Nn
{
- \prop_set_eq:NN \l__prop_internal_prop #1
- \__prop_from_keyval:n {#2}
- \prop_gset_eq:NN #1 \l__prop_internal_prop
- \prop_clear:N \l__prop_internal_prop
+ \bool_if:NTF \l__kernel_keyval_allow_blank_keys_bool
+ { \__prop_keyval_parse:NNNn \c_true_bool }
+ { \__prop_keyval_parse:NNNn \c_false_bool }
+ \prop_gput:Nnn
}
\cs_generate_variant:Nn \prop_gput_from_keyval:Nn { c }
-\cs_new_protected:Npn \__prop_from_keyval:n #1
- {
- \__prop_from_keyval_loop:w \prg_do_nothing: #1 ,
- \q__prop_recursion_tail , \q__prop_recursion_stop
- }
-\cs_new_protected:Npn \__prop_from_keyval_loop:w #1 ,
- {
- \__prop_if_recursion_tail_stop:o {#1}
- \__prop_from_keyval_split:Nw \__prop_from_keyval_key:n
- #1 = = \s__prop_stop {#1}
- \__prop_from_keyval_loop:w \prg_do_nothing:
- }
-\cs_new_protected:Npn \__prop_from_keyval_split:Nw #1#2 =
- { \tl_trim_spaces_apply:oN {#2} #1 }
-\cs_new_protected:Npn \__prop_from_keyval_key:n #1
- { \__prop_from_keyval_key:w #1 \s__prop_mark }
-\cs_new_protected:Npn \__prop_from_keyval_key:w #1 \s__prop_mark #2 \s__prop_stop
+\cs_new_protected:Npn \__prop_missing_eq:n
+ { \msg_error:nnn { prop } { prop-keyval } }
+\cs_new_protected:Npn \__prop_keyval_parse:NNNn #1#2#3#4
{
- \__prop_from_keyval_split:Nw \__prop_from_keyval_value:n
- \prg_do_nothing: #2 \s__prop_stop {#1}
- }
-\cs_new_protected:Npn \__prop_from_keyval_value:n #1
- { \__prop_from_keyval_value:w #1 \s__prop_mark }
-\cs_new_protected:Npn \__prop_from_keyval_value:w #1 \s__prop_mark #2 \s__prop_stop #3#4
- {
- \tl_if_single:nTF {#2}
- { \prop_put:Nnn \l__prop_internal_prop {#3} {#1} }
- {
- \tl_if_empty:nF { #3 #1 #2 }
- {
- \msg_error:nnx { prop } { prop-keyval }
- { \exp_not:o {#4} }
- }
- }
+ \bool_set_eq:NN \l__kernel_keyval_allow_blank_keys_bool \c_true_bool
+ \keyval_parse:nnn \__prop_missing_eq:n { #2 #3 } {#4}
+ \bool_set_eq:NN \l__kernel_keyval_allow_blank_keys_bool #1
}
\cs_new_protected:Npn \__prop_split:NnTF #1#2
{ \exp_args:NNo \__prop_split_aux:NnTF #1 { \tl_to_str:n {#2} } }
@@ -10640,7 +10606,7 @@
\msg_new:nnn { prg } { negative-replication }
{ Negative~argument~for~\iow_char:N\\prg_replicate:nn. }
\msg_new:nnn { prop } { prop-keyval }
- { Missing/extra~'='~in~'#1'~(in~'..._keyval:Nn') }
+ { Missing~'='~in~'#1'~(in~'..._keyval:Nn') }
\msg_new:nnn { kernel } { unknown-comparison }
{ Relation~'#1'~not~among~=,<,>,==,!=,<=,>=. }
\msg_new:nnn { kernel } { zero-step }
@@ -12776,6 +12742,7 @@
\scan_new:N \s__keyval_mark
\scan_new:N \s__keyval_stop
\scan_new:N \s__keyval_tail
+\bool_new:N \l__kernel_keyval_allow_blank_keys_bool
\group_begin:
\cs_set_protected:Npn \__keyval_tmp:w #1#2
{
@@ -12946,9 +12913,11 @@
\cs_new:Npn \__keyval_if_recursion_tail:w \s__keyval_mark #1 \s__keyval_tail { }
\cs_new:Npn \__keyval_blank_true:w \s__keyval_mark \s__keyval_stop \__keyval_trim:nN #1 \__keyval_key:nn
{ \__keyval_loop_other:nnw }
-\cs_new:Npn \__keyval_blank_key_error:w #1 \__keyval_loop_other:nnw
+\cs_new:Npn \__keyval_blank_key_error:w \s__keyval_mark \s__keyval_stop #1 \__keyval_loop_other:nnw
{
- \msg_expandable_error:nn { keyval } { blank-key-name }
+ \bool_if:NTF \l__kernel_keyval_allow_blank_keys_bool
+ { #1 }
+ { \msg_expandable_error:nn { keyval } { blank-key-name } }
\__keyval_loop_other:nnw
}
\msg_new:nnn { keyval } { misplaced-equals-sign }
@@ -13316,7 +13285,7 @@
}
{
\msg_error:nnx { keys }
- { property-boolean-values-only }
+ { boolean-values-only }
{ .value_ #1 :n }
}
}
@@ -13489,6 +13458,22 @@
{ \__keys_variable_set_required:NnnN #1 { skip } { g } n }
\cs_new_protected:cpn { \c__keys_props_root_str .skip_gset:c } #1
{ \__keys_variable_set_required:cnnN {#1} { skip } { g } n }
+\cs_new_protected:cpn { \c__keys_props_root_str .str_set:N } #1
+ { \__keys_variable_set:NnnN #1 { str } { } n }
+\cs_new_protected:cpn { \c__keys_props_root_str .str_set:c } #1
+ { \__keys_variable_set:cnnN {#1} { str } { } n }
+\cs_new_protected:cpn { \c__keys_props_root_str .str_set_x:N } #1
+ { \__keys_variable_set:NnnN #1 { str } { } x }
+\cs_new_protected:cpn { \c__keys_props_root_str .str_set_x:c } #1
+ { \__keys_variable_set:cnnN {#1} { str } { } x }
+\cs_new_protected:cpn { \c__keys_props_root_str .str_gset:N } #1
+ { \__keys_variable_set:NnnN #1 { str } { g } n }
+\cs_new_protected:cpn { \c__keys_props_root_str .str_gset:c } #1
+ { \__keys_variable_set:cnnN {#1} { str } { g } n }
+\cs_new_protected:cpn { \c__keys_props_root_str .str_gset_x:N } #1
+ { \__keys_variable_set:NnnN #1 { str } { g } x }
+\cs_new_protected:cpn { \c__keys_props_root_str .str_gset_x:c } #1
+ { \__keys_variable_set:cnnN {#1} { str } { g } x }
\cs_new_protected:cpn { \c__keys_props_root_str .tl_set:N } #1
{ \__keys_variable_set:NnnN #1 { tl } { } n }
\cs_new_protected:cpn { \c__keys_props_root_str .tl_set:c } #1
@@ -15782,9 +15767,7 @@
{
\if_catcode:w \scan_stop: \exp_not:N #1
\if_meaning:w \scan_stop: #1
- \if_int_compare:w
- \__fp_str_if_eq:nn { \s__fp } { \exp_not:N #1 }
- = \c_zero_int
+ \if:w 0 \__fp_str_if_eq:nn { \s__fp } { \exp_not:N #1 }
0
\msg_expandable_error:nnn
{ fp } { after-e } { floating~point~ }
@@ -15796,9 +15779,7 @@
\prg_return_false:
\fi:
\else:
- \if_int_compare:w
- \__fp_str_if_eq:nn { \int_value:w #1 } { \tex_the:D #1 }
- = \c_zero_int
+ \if:w 0 \__fp_str_if_eq:nn { \int_value:w #1 } { \tex_the:D #1 }
\int_value:w #1
\else:
0
@@ -16084,9 +16065,7 @@
\cs_new:Npn \__fp_parse_infix:NN #1 #2
{
\if_catcode:w \scan_stop: \exp_not:N #2
- \if_int_compare:w
- \__fp_str_if_eq:nn { \s__fp_expr_mark } { \exp_not:N #2 }
- = \c_zero_int
+ \if:w 0 \__fp_str_if_eq:nn { \s__fp_expr_mark } { \exp_not:N #2 }
\exp_after:wN \exp_after:wN
\exp_after:wN \__fp_parse_infix_mark:NNN
\else:
@@ -16128,9 +16107,7 @@
\cs_new:Npn \__fp_parse_infix_after_paren:NN #1 #2
{
\if_catcode:w \scan_stop: \exp_not:N #2
- \if_int_compare:w
- \__fp_str_if_eq:nn { \s__fp_expr_mark } { \exp_not:N #2 }
- = \c_zero_int
+ \if:w 0 \__fp_str_if_eq:nn { \s__fp_expr_mark } { \exp_not:N #2 }
\exp_after:wN \exp_after:wN
\exp_after:wN \__fp_parse_infix_mark:NNN
\else:
@@ -18769,8 +18746,7 @@
\cs_new:Npn \__fp_pow_normal_o:ww
\s__fp \__fp_chk:w 1 #1#2#3; \s__fp \__fp_chk:w #4#5
{
- \if_int_compare:w \__fp_str_if_eq:nn { #2 #3 }
- { 1 {1000} {0000} {0000} {0000} } = \c_zero_int
+ \if:w 0 \__fp_str_if_eq:nn { #2 #3 } { 1 {1000} {0000} {0000} {0000} }
\if_int_compare:w #4 #1 = 32 \exp_stop_f:
\exp_after:wN \__fp_case_return_ii_o:ww
\fi:
@@ -27973,18 +27949,18 @@
\tl_set:Nx #4
{
\cs_if_exist:cTF { __color_convert_ #1 _ #2 :w }
- { \use:c { __color_convert_ #1 _ #2 :w } #3 ~ 0 ~ 0 ~ 0 \s__color_stop }
+ { \use:c { __color_convert_ #1 _ #2 :w } #3 \s__color_stop }
{ \use:c { c__color_fallback_ #2 _tl } }
}
}
\cs_generate_variant:Nn \__color_convert:nnnN { nV , nnV }
-\cs_new:Npn \__color_convert_gray_rgb:w #1 ~ #2 \s__color_stop
+\cs_new:Npn \__color_convert_gray_rgb:w #1 \s__color_stop
{ #1 ~ #1 ~ #1 }
-\cs_new:Npn \__color_convert_gray_cmyk:w #1 ~ #2 \s__color_stop
+\cs_new:Npn \__color_convert_gray_cmyk:w #1 \s__color_stop
{ 0 ~ 0 ~ 0 ~ \fp_eval:n { 1 - #1 } }
-\cs_new:Npn \__color_convert_rgb_gray:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop
+\cs_new:Npn \__color_convert_rgb_gray:w #1 ~ #2 ~ #3 \s__color_stop
{ \fp_eval:n { 0.3 * #1 + 0.59 * #2 + 0.11 * #3 } }
-\cs_new:Npn \__color_convert_rgb_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop
+\cs_new:Npn \__color_convert_rgb_cmyk:w #1 ~ #2 ~ #3 \s__color_stop
{
\exp_args:Nf \__color_convert_rgb_cmyk:nnnn
{ \fp_eval:n { min ( 1 - #1 , 1 - #2 , 1 - #3 ) } } {#1} {#2} {#3}
@@ -27996,9 +27972,9 @@
\fp_eval:n { min ( 1 , max ( 0 , 1 - #4 - #1 ) ) } \c_space_tl
#1
}
-\cs_new:Npn \__color_convert_cmyk_gray:w #1 ~ #2 ~ #3 ~ #4 ~ #5 \s__color_stop
+\cs_new:Npn \__color_convert_cmyk_gray:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop
{ \fp_eval:n { 1 - min ( 1 , 0.3 * #1 + 0.59 * #2 + 0.11 * #3 + #4 ) } }
-\cs_new:Npn \__color_convert_cmyk_rgb:w #1 ~ #2 ~ #3 ~ #4 ~ #5 \s__color_stop
+\cs_new:Npn \__color_convert_cmyk_rgb:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop
{
\fp_eval:n { 1 - min ( 1 , #1 + #4 ) } \c_space_tl
\fp_eval:n { 1 - min ( 1 , #2 + #4 ) } \c_space_tl
@@ -28636,7 +28612,10 @@
{
\fp_compare:nNnTF {#1} = { 0 }
{ 00 }
- { \int_to_Hex:n { \fp_to_int:n { #1 * 255 } } }
+ {
+ \fp_compare:nNnT { #1 * 255 } < { 16 } { 0 }
+ \int_to_Hex:n { \fp_to_int:n { #1 * 255 } }
+ }
}
\cs_new_protected:cpn { __color_export_space-sep-rgb:Nw } #1#2 \s__color_stop
{ \tl_set:Nn #1 {#2} }
@@ -28791,7 +28770,7 @@
}
\cs_new_protected:Npn \__color_model_separation_cmyk:nnnnnn #1#2#3#4#5#6
{
- \cs_new:cpn { __color_convert_ #1 _cmyk:w } ##1 ~ ##2 \s__color_stop
+ \cs_new:cpn { __color_convert_ #1 _cmyk:w } ##1 \s__color_stop
{
\fp_eval:n {##1 * #3} ~
\fp_eval:n {##1 * #4} ~
@@ -28806,7 +28785,7 @@
}
\cs_new_protected:Npn \__color_model_separation_rgb:nnnnnn #1#2#3#4#5#6
{
- \cs_new:cpn { __color_convert_ #1 _rgb:w } ##1 ~ ##2 \s__color_stop
+ \cs_new:cpn { __color_convert_ #1 _rgb:w } ##1 \s__color_stop
{
\fp_eval:n {##1 * #3} ~
\fp_eval:n {##1 * #4} ~
@@ -28820,16 +28799,16 @@
}
\cs_new_protected:Npn \__color_model_separation_gray:nnnnnn #1#2#3#4#5#6
{
- \cs_new:cpn { __color_convert_ #1 _cmyk:w } ##1 ~ ##2 \s__color_stop
+ \cs_new:cpn { __color_convert_ #1 _cmyk:w } ##1 \s__color_stop
{
\fp_eval:n {##1 * #3} ~
\fp_eval:n {##1 * #3} ~
\fp_eval:n {##1 * #3} ~
\fp_eval:n {##1 * #3}
}
- \cs_new:cpn { __color_convert_ #1 _gray:w } ##1 ~ ##2 \s__color_stop
+ \cs_new:cpn { __color_convert_ #1 _gray:w } ##1 \s__color_stop
{ \fp_eval:n {##1 * #3} }
- \cs_new:cpn { __color_convert_ #1 _rgb:w } ##1 ~ ##2 \s__color_stop
+ \cs_new:cpn { __color_convert_ #1 _rgb:w } ##1 \s__color_stop
{
\fp_eval:n {##1 * #3} ~
\fp_eval:n {##1 * #3} ~
@@ -28840,11 +28819,11 @@
}
\cs_new_protected:Npn \__color_model_convert:nnn #1#2#3
{
- \cs_new:cpx { __color_convert_ #1 _ #3 :w } ##1 ~ ##2 \s__color_stop
+ \cs_new:cpx { __color_convert_ #1 _ #3 :w } ##1 \s__color_stop
{
\exp_not:N \exp_args:NNe \exp_not:N \use:nn
\exp_not:c { __color_convert_ #2 _ #3 :w }
- { \exp_not:c { __color_convert_ #1 _ #2 :w } ##1 ~ ##2 \s__color_stop }
+ { \exp_not:c { __color_convert_ #1 _ #2 :w } ##1 \s__color_stop }
\c_space_tl \exp_not:N \s__color_stop
}
}
@@ -28865,11 +28844,11 @@
\tl_if_exist:cTF { c__color_model_whitepoint_CIELAB_ #1 _tl }
{
\__color_backend_separation_init_CIELAB:nnn {#1} {#3} { #4 ~ #5 ~ #6 }
- \cs_new:cpn { __color_convert_ #2 _cmyk:w } ##1 ~ ##2 \s__color_stop
+ \cs_new:cpn { __color_convert_ #2 _cmyk:w } ##1 \s__color_stop
{ 0 ~ 0 ~ 0 ~ 1 }
- \cs_new:cpn { __color_convert_ #2 _rgb:w } ##1 ~ ##2 \s__color_stop
+ \cs_new:cpn { __color_convert_ #2 _rgb:w } ##1 \s__color_stop
{ 1 ~ 1 ~ 1 }
- \cs_new:cpn { __color_convert_ #2 _gray:w } ##1 ~ ##2 \s__color_stop
+ \cs_new:cpn { __color_convert_ #2 _gray:w } ##1 \s__color_stop
{ 1 }
}
{
@@ -29047,7 +29026,7 @@
\prop_get:NnN \g__color_alternative_values_prop {##1}
\l__color_value_tl
\exp_after:wN \__color_model_devicen_transform:w
- \l__color_value_tl , 0 , 0 , 0 \s__color_stop {#1} {#2}
+ \l__color_value_tl , 0 , 0 , 0 , \s__color_stop {#1} {#2}
}
\tl_put_right:Nx \l__color_internal_tl
{
@@ -29085,7 +29064,7 @@
{ \__color_model_devicen_transform:nnn {#5} { 1 } {#1} }
\cs_new_protected:cpn { __color_model_devicen_transform_3:nnnnn } #1#2#3#4#5
{
- \clist_map_inline { #1 , #2 , #3 }
+ \clist_map_inline:nn { #1 , #2 , #3 }
{ \__color_model_devicen_transform:nnn {#5} { 3 } {##1} }
}
\cs_new_protected:cpn { __color_model_devicen_transform_4:nnnnn } #1#2#3#4#5
@@ -29137,8 +29116,9 @@
{
\exp_not:c { __color_convert_devicen_ #2 : \prg_replicate:nn {#3} { n } w }
\prg_replicate:nn {#3} { { 1 } }
- ##1 \exp_not:N \s__color_mark
+ ##1 ~ \exp_not:N \s__color_mark
\clist_map_function:nN {#4} \__color_model_devicen_convert:n
+ {}
\exp_not:N \s__color_stop
}
}
@@ -29220,7 +29200,7 @@
\cs_new:Npn \__color_convert_devicen_rgb:nnnw
#1#2#3#4 ~ #5 \s__color_mark #6#7 \s__color_stop
{
- \__color_convert_devicen_cmyk:nnnnnn {#4} {#1} {#2} {#3} #6
+ \__color_convert_devicen_rgb:nnnnnnn {#4} {#1} {#2} {#3} #6
#5 \s__color_mark #7 \s__color_stop
}
\cs_new:Npn \__color_convert_devicen_rgb:nnnnnnn #1#2#3#4#5#6#7
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 3d1e1a7dd99..3e0a8141cb7 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2021-10-18}%
+\def\ExplFileDate{2021-11-12}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\catcode`\_=11
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
index 64ef124ddf7..b581aa5d546 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2021-10-18}%
+\def\ExplFileDate{2021-11-12}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\catcode`\_=11
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index a76be7b8562..068438f51d7 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2021-10-18}%
+\def\ExplFileDate{2021-11-12}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%
diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
index b98278e301a..7cd68c95998 100644
--- a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{l3keys2e}{2021-08-27}{}
+\ProvidesExplPackage{l3keys2e}{2021-11-12}{}
{LaTeX2e option processing using LaTeX3 keys}
\cs_if_exist:NT \ProcessKeysOptions
{ \file_input_stop: }
diff --git a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
index 06dd1db9e51..56ee80febaa 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{xfp}{2021-08-27}{}
+\ProvidesExplPackage{xfp}{2021-11-12}{}
{L3 Floating point unit}
\NewExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} }
\NewExpandableDocumentCommand \inteval { m } { \int_eval:n {#1} }
diff --git a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
index 4273d2e8807..33a82a10a75 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
@@ -34,7 +34,7 @@
\endinput
}
\RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate}
-\ProvidesExplPackage{xfrac}{2021-08-27}{}
+\ProvidesExplPackage{xfrac}{2021-11-12}{}
{L3 Experimental split-level fractions}
\keys_define:nn { xfrac }
{
diff --git a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
index 1dcf1ecb4b9..9e84418e118 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
@@ -60,7 +60,7 @@
}
}
\ExplSyntaxOff
-\ProvidesExplPackage{xparse}{2021-08-27}{}
+\ProvidesExplPackage{xparse}{2021-11-12}{}
{L3 Experimental document command parser}
\clist_new:N \l__cmd_options_clist
\DeclareOption* { \clist_put_right:NV \l__cmd_options_clist \CurrentOption }
@@ -153,6 +153,10 @@
{ \exp_not:c { \l__cmd_expandable_aux_name_tl } }
\__cmd_prepare_signature:N
}
+\cs_new_protected:Npn \__cmd_copy_grabber_u:w #1 #2 #3
+ { \__cmd_copy_grabber_D:w {#1} {#2} {#3} { } { } }
+\tl_const:Nn \c__cmd_show_type_u_tl { 3 }
+\tl_const:Nn \c__cmd_show_type_G_tl { 3 }
\cs_new_protected:Npn \__cmd_grab_G:w #1 \__cmd_run_code:
{
\__cmd_grab_G_aux:nNN {#1} \cs_set_protected_nopar:Npn
diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
index 81e7dbb1072..ed9eda1608d 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{xtemplate}{2021-08-27}{}
+\ProvidesExplPackage{xtemplate}{2021-11-12}{}
{L3 Experimental prototype document functions}
\tl_const:Nn \c__xtemplate_code_root_tl { template~code~>~ }
\tl_const:Nn \c__xtemplate_defaults_root_tl { template~defaults~>~ }
@@ -313,7 +313,7 @@
\seq_put_right:No \l__xtemplate_key_order_seq \l__xtemplate_key_name_tl
\str_if_eq:onT \l__xtemplate_keytype_tl { choice }
{
- \clist_if_in:NnT \l__xtemplate_keytype_arg_tl { unknown }
+ \exp_args:No \clist_if_in:nnT \l__xtemplate_keytype_arg_tl { unknown }
{ \msg_error:nn { xtemplate } { choice-unknown-reserved } }
}
}
@@ -413,59 +413,27 @@
\cs_new_protected:Npn \__xtemplate_store_value_code:n #1
{ \prop_put:Non \l__xtemplate_values_prop \l__xtemplate_key_name_tl {#1} }
\cs_new_eq:NN \__xtemplate_store_value_choice:n \__xtemplate_store_value_code:n
-\cs_new_eq:NN \__xtemplate_store_value_commalist:n \__xtemplate_store_value_code:n
\cs_new_eq:NN \__xtemplate_store_value_function:n \__xtemplate_store_value_code:n
\cs_new_eq:NN \__xtemplate_store_value_instance:n \__xtemplate_store_value_code:n
-\cs_new_eq:NN \__xtemplate_store_value_real:n \__xtemplate_store_value_code:n
-\cs_new_eq:NN \__xtemplate_store_value_tokenlist:n \__xtemplate_store_value_code:n
-\cs_new_protected:Npn \__xtemplate_store_value_integer:n #1
- {
- \__xtemplate_if_eval_now:nTF {#1}
- {
- \int_set:Nn \l__xtemplate_tmp_int {#1}
- \prop_put:NVV \l__xtemplate_values_prop \l__xtemplate_key_name_int
- \l__xtemplate_tmp_int
- }
- {
- \prop_put:Non \l__xtemplate_values_prop \l__xtemplate_key_name_tl {#1}
- }
- }
-\cs_new_protected:Npn \__xtemplate_store_value_length:n #1
- {
- \__xtemplate_if_eval_now:nTF {#1}
- {
- \dim_set:Nn \l__xtemplate_tmp_dim {#1}
- \prop_put:NVV \l__xtemplate_values_prop \l__xtemplate_key_name_tl
- \l__xtemplate_tmp_dim
- }
- {
- \prop_put:Non \l__xtemplate_values_prop \l__xtemplate_key_name_tl {#1}
- }
- }
-\cs_new_protected:Npn \__xtemplate_store_value_muskip:n #1
- {
- \__xtemplate_if_eval_now:nTF {#1}
- {
- \muskip_set:Nn \l__xtemplate_tmp_muskip {#1}
- \prop_put:NVV \l__xtemplate_values_prop \l__xtemplate_key_name_tl
- \l__xtemplate_tmp_muskip
- }
- {
- \prop_put:Non \l__xtemplate_values_prop \l__xtemplate_key_name_tl {#1}
- }
- }
-\cs_new_protected:Npn \__xtemplate_store_value_skip:n #1
- {
- \__xtemplate_if_eval_now:nTF {#1}
- {
- \skip_set:Nn \l__xtemplate_tmp_skip {#1}
- \prop_put:NVV \l__xtemplate_values_prop \l__xtemplate_key_name_tl
- \l__xtemplate_tmp_skip
- }
- {
- \prop_put:Non \l__xtemplate_values_prop \l__xtemplate_key_name_tl {#1}
- }
- }
+\cs_new_protected:Npn \__xtemplate_store_value_aux:Nn #1#2
+ {
+ \__xtemplate_if_eval_now:nTF {#2}
+ { \prop_put:NVx \l__xtemplate_values_prop \l__xtemplate_key_name_tl { #1 {#2} } }
+ { \prop_put:Non \l__xtemplate_values_prop \l__xtemplate_key_name_tl {#2} }
+ }
+\cs_new_protected:Npn \__xtemplate_store_value_integer:n
+ { \__xtemplate_store_value_aux:Nn \int_eval:n }
+\cs_new_protected:Npn \__xtemplate_store_value_length:n
+ { \__xtemplate_store_value_aux:Nn \dim_eval:n }
+\cs_new_protected:Npn \__xtemplate_store_value_muskip:n
+ { \__xtemplate_store_value_aux:Nn \muskip_eval:n }
+\cs_new_protected:Npn \__xtemplate_store_value_real:n
+ { \__xtemplate_store_value_aux:Nn \fp_eval:n }
+\cs_new_protected:Npn \__xtemplate_store_value_skip:n
+ { \__xtemplate_store_value_aux:Nn \skip_eval:n }
+\cs_new_protected:Npn \__xtemplate_store_value_tokenlist:n
+ { \__xtemplate_store_value_aux:Nn \use:n }
+\cs_new_eq:NN \__xtemplate_store_value_commalist:n \__xtemplate_store_value_tokenlist:n
\cs_new_protected:Npn \__xtemplate_declare_template_code:nnnnn #1#2#3#4#5
{
\__xtemplate_execute_if_type_exist:nT {#1}
@@ -582,7 +550,7 @@
}
\cs_new_protected:Npn \__xtemplate_implement_choices:n #1
{
- \clist_set_eq:NN \l__xtemplate_tmp_clist \l__xtemplate_keytype_arg_tl
+ \clist_set:No \l__xtemplate_tmp_clist { \l__xtemplate_keytype_arg_tl }
\prop_put:Non \l__xtemplate_vars_prop \l__xtemplate_key_name_tl { }
\keyval_parse:NNn
\__xtemplate_implement_choice_elt:n \__xtemplate_implement_choice_elt:nn