summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3packages
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3packages')
-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.sty206
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty2
5 files changed, 132 insertions, 82 deletions
diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
index aea02783a52..00afbb1d7aa 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}{2018-08-23}{}
+\ProvidesExplPackage{l3keys2e}{2018-09-24}{}
{LaTeX2e option processing using LaTeX3 keys}
\cs_generate_variant:Nn \clist_put_right:Nn { Nv }
\cs_generate_variant:Nn \keys_if_exist:nnT { nx }
diff --git a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
index cc364a280c1..3c2cf74d5ca 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
@@ -33,7 +33,7 @@
\endinput
}
\RequirePackage{xparse}
-\ProvidesExplPackage{xfp}{2018-08-23}{}
+\ProvidesExplPackage{xfp}{2018-09-24}{}
{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 3a5e7940987..12cac2d08a9 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}{2018-08-23}{}
+\ProvidesExplPackage{xfrac}{2018-09-24}{}
{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 82ae71afa2c..4c7ef80fcfb 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
@@ -36,7 +36,7 @@
}%
\endinput
}
-\ProvidesExplPackage{xparse}{2018-08-23}{}
+\ProvidesExplPackage{xparse}{2018-09-24}{}
{L3 Experimental document command parser}
\tl_new:N \l__xparse_arg_spec_tl
\tl_new:N \l__xparse_args_tl
@@ -58,9 +58,9 @@
\tl_new:N \l__xparse_fn_code_tl
\tl_new:N \l__xparse_function_tl
\bool_new:N \l__xparse_grab_expandably_bool
+\bool_new:N \l__xparse_obey_spaces_bool
\tl_new:N \l__xparse_last_delimiters_tl
\bool_new:N \l__xparse_long_bool
-\bool_new:N \l__xparse_ignore_spaces_bool
\int_new:N \l__xparse_m_args_int
\int_new:N \l__xparse_mandatory_args_int
\bool_new:N \l__xparse_prefixed_bool
@@ -68,6 +68,7 @@
\tl_new:N \l__xparse_process_one_tl
\bool_new:N \l__xparse_process_some_bool
\tl_new:N \l__xparse_signature_tl
+\bool_new:N \l__xparse_some_obey_spaces_bool
\bool_new:N \l__xparse_some_long_bool
\bool_new:N \l__xparse_some_short_bool
\prop_new:N \l__xparse_tmp_prop
@@ -362,10 +363,11 @@
\tl_clear:N \l__xparse_last_delimiters_tl
\tl_clear:N \l__xparse_arg_spec_tl
\bool_set_true:N \l__xparse_grab_expandably_bool
+ \bool_set_false:N \l__xparse_obey_spaces_bool
\bool_set_false:N \l__xparse_long_bool
+ \bool_set_false:N \l__xparse_some_obey_spaces_bool
\bool_set_false:N \l__xparse_some_long_bool
\bool_set_false:N \l__xparse_some_short_bool
- \bool_set_false:N \l__xparse_ignore_spaces_bool
\__xparse_normalize_arg_spec_loop:n #1
\q_recursion_tail \q_recursion_tail \q_recursion_tail \q_recursion_stop
\int_compare:nNnT \l__xparse_current_arg_int > 9
@@ -443,7 +445,12 @@
\cs_new_protected:cpn { __xparse_normalize_type_+:w } #1
{
\quark_if_recursion_tail_stop_do:nn {#1} { \__xparse_bad_arg_spec:wn }
- \tl_put_right:Nn \l__xparse_arg_spec_tl { + }
+ \bool_if:NT \l__xparse_long_bool
+ {
+ \__kernel_msg_error:nnxx { xparse } { two-markers }
+ { \iow_char:N \\ \l__xparse_function_tl } { + }
+ \__xparse_bad_def:wn
+ }
\bool_set_true:N \l__xparse_long_bool
\int_decr:N \l__xparse_current_arg_int
\__xparse_normalize_arg_spec_loop:n {#1}
@@ -451,7 +458,14 @@
\cs_new_protected:cpn { __xparse_normalize_type_!:w } #1
{
\quark_if_recursion_tail_stop_do:nn {#1} { \__xparse_bad_arg_spec:wn }
- \tl_put_right:Nn \l__xparse_arg_spec_tl { ! }
+ \bool_if:NT \l__xparse_obey_spaces_bool
+ {
+ \__kernel_msg_error:nnxx { xparse } { two-markers }
+ { \iow_char:N \\ \l__xparse_function_tl } { ! }
+ \__xparse_bad_def:wn
+ }
+ \bool_set_true:N \l__xparse_obey_spaces_bool
+ \bool_set_true:N \l__xparse_some_obey_spaces_bool
\int_decr:N \l__xparse_current_arg_int
\__xparse_normalize_arg_spec_loop:n {#1}
}
@@ -499,26 +513,27 @@
{
\quark_if_recursion_tail_stop_do:Nn #1 { \__xparse_bad_arg_spec:wn }
\__xparse_single_char_check:n {#1}
- \tl_put_right:Nn \l__xparse_arg_spec_tl { t #1 }
+ \tl_put_right:Nx \l__xparse_arg_spec_tl
+ {
+ \bool_if:NT \l__xparse_obey_spaces_bool { ! }
+ t \exp_not:n {#1}
+ }
\tl_put_right:Nn \l__xparse_last_delimiters_tl {#1}
\bool_set_false:N \l__xparse_grab_expandably_bool
+ \bool_set_false:N \l__xparse_obey_spaces_bool
\bool_set_false:N \l__xparse_long_bool
\__xparse_normalize_arg_spec_loop:n
}
\cs_new_protected:Npn \__xparse_normalize_type_l:w
{
\__xparse_normalize_check_lu:N l
- \__xparse_add_arg_spec:n { l }
- \int_incr:N \l__xparse_mandatory_args_int
- \tl_clear:N \l__xparse_last_delimiters_tl
+ \__xparse_add_arg_spec_mandatory:n { l }
\__xparse_normalize_arg_spec_loop:n
}
\cs_new_protected:Npn \__xparse_normalize_type_m:w
{
\__xparse_delimiter_check:nnn { } { m } { \iow_char:N \{ }
- \__xparse_add_arg_spec:n { m }
- \int_incr:N \l__xparse_mandatory_args_int
- \tl_clear:N \l__xparse_last_delimiters_tl
+ \__xparse_add_arg_spec_mandatory:n { m }
\__xparse_normalize_arg_spec_loop:n
}
\cs_new_protected:Npn \__xparse_normalize_type_R:w #1#2#3
@@ -527,27 +542,21 @@
\__xparse_single_char_check:n {#1}
\__xparse_single_char_check:n {#2}
\__xparse_delimiter_check:nnn {#1} { R/r } { \tl_to_str:n {#1} }
- \__xparse_add_arg_spec:n { R #1 #2 {#3} }
- \int_incr:N \l__xparse_mandatory_args_int
- \tl_clear:N \l__xparse_last_delimiters_tl
\bool_set_false:N \l__xparse_grab_expandably_bool
+ \__xparse_add_arg_spec_mandatory:n { R #1 #2 {#3} }
\__xparse_normalize_arg_spec_loop:n
}
\cs_new_protected:Npn \__xparse_normalize_type_u:w #1
{
\quark_if_recursion_tail_stop_do:nn {#1} { \__xparse_bad_arg_spec:wn }
\__xparse_normalize_check_lu:N u
- \__xparse_add_arg_spec:n { u {#1} }
- \int_incr:N \l__xparse_mandatory_args_int
- \tl_clear:N \l__xparse_last_delimiters_tl
+ \__xparse_add_arg_spec_mandatory:n { u {#1} }
\__xparse_normalize_arg_spec_loop:n
}
\cs_new_protected:Npn \__xparse_normalize_type_v:w
{
\__xparse_normalize_check_gv:N v
- \__xparse_add_arg_spec:n { v }
- \int_incr:N \l__xparse_mandatory_args_int
- \tl_clear:N \l__xparse_last_delimiters_tl
+ \__xparse_add_arg_spec_mandatory:n { v }
\__xparse_normalize_arg_spec_loop:n
}
\cs_new_protected:Npn \__xparse_single_char_check:n #1
@@ -628,14 +637,32 @@
\bool_if:NTF \l__xparse_long_bool
{ \bool_set_true:N \l__xparse_some_long_bool }
{ \bool_set_true:N \l__xparse_some_short_bool }
+ \tl_put_right:Nx \l__xparse_arg_spec_tl
+ {
+ \bool_if:NT \l__xparse_long_bool { + }
+ \bool_if:NT \l__xparse_obey_spaces_bool { ! }
+ \exp_not:n {#1}
+ }
\bool_set_false:N \l__xparse_long_bool
- \tl_put_right:Nn \l__xparse_arg_spec_tl {#1}
+ \bool_set_false:N \l__xparse_obey_spaces_bool
+ }
+\cs_new_protected:Npn \__xparse_add_arg_spec_mandatory:n #1
+ {
+ \bool_if:NT \l__xparse_some_obey_spaces_bool
+ {
+ \__kernel_msg_error:nnxx { xparse } { non-trailing-obey-spaces }
+ { \iow_char:N \\ \l__xparse_function_tl } { \tl_to_str:n {#1} }
+ \__xparse_bad_def:wn
+ }
+ \int_incr:N \l__xparse_mandatory_args_int
+ \tl_clear:N \l__xparse_last_delimiters_tl
+ \__xparse_add_arg_spec:n {#1}
}
\cs_new_protected:Npn \__xparse_prepare_signature:n #1
{
\int_zero:N \l__xparse_current_arg_int
\bool_set_false:N \l__xparse_long_bool
- \bool_set_false:N \l__xparse_ignore_spaces_bool
+ \bool_set_false:N \l__xparse_obey_spaces_bool
\int_zero:N \l__xparse_m_args_int
\bool_set_false:N \l__xparse_defaults_bool
\tl_clear:N \l__xparse_defaults_tl
@@ -671,7 +698,7 @@
\cs_new_protected:cpn { __xparse_add_type_!:w }
{
\__xparse_flush_m_args:
- \bool_set_true:N \l__xparse_ignore_spaces_bool
+ \bool_set_true:N \l__xparse_obey_spaces_bool
\bool_set_true:N \l__xparse_prefixed_bool
\__xparse_prepare_signature_bypass:N
}
@@ -766,15 +793,7 @@
}
\cs_new_protected:Npn \__xparse_add_grabber_mandatory:N #1
{
- \tl_put_right:Nx \l__xparse_signature_tl
- {
- \exp_not:c
- { __xparse_grab_ #1 \bool_if:NT \l__xparse_long_bool { _long } :w }
- }
- \bool_set_false:N \l__xparse_long_bool
- \tl_put_right:Nx \l__xparse_process_all_tl
- { { \exp_not:o \l__xparse_process_one_tl } }
- \tl_clear:N \l__xparse_process_one_tl
+ \__xparse_add_grabber_optional:N #1
\int_decr:N \l__xparse_mandatory_args_int
}
\cs_new_protected:Npn \__xparse_add_grabber_optional:N #1
@@ -785,15 +804,12 @@
{
__xparse_grab_ #1
\bool_if:NT \l__xparse_long_bool { _long }
- \bool_lazy_and:nnT
- { \l__xparse_ignore_spaces_bool }
- { \int_compare_p:nNn \l__xparse_mandatory_args_int = 0 }
- { _ignore_spaces }
+ \bool_if:NT \l__xparse_obey_spaces_bool { _obey_spaces }
:w
}
}
\bool_set_false:N \l__xparse_long_bool
- \bool_set_false:N \l__xparse_ignore_spaces_bool
+ \bool_set_false:N \l__xparse_obey_spaces_bool
\tl_put_right:Nx \l__xparse_process_all_tl
{ { \exp_not:o \l__xparse_process_one_tl } }
\tl_clear:N \l__xparse_process_one_tl
@@ -953,22 +969,28 @@
}
\cs_new_protected:Npn \__xparse_grab_D:w #1#2#3 \__xparse_run_code:
{
- \__xparse_grab_D_aux:NNnNn #1 #2 {#3} \cs_set_protected_nopar:Npn
- { _ignore_spaces }
+ \__xparse_grab_D_aux:NNnNN #1 #2 {#3} \cs_set_protected_nopar:Npn
+ \__xparse_peek_nonspace_remove:NTF
}
\cs_new_protected:Npn \__xparse_grab_D_long:w #1#2#3 \__xparse_run_code:
{
- \__xparse_grab_D_aux:NNnNn #1 #2 {#3} \cs_set_protected:Npn
- { _ignore_spaces }
+ \__xparse_grab_D_aux:NNnNN #1 #2 {#3} \cs_set_protected:Npn
+ \__xparse_peek_nonspace_remove:NTF
+ }
+\cs_new_protected:Npn \__xparse_grab_D_obey_spaces:w #1#2#3 \__xparse_run_code:
+ {
+ \__xparse_grab_D_aux:NNnNN #1 #2 {#3} \cs_set_protected_nopar:Npn
+ \peek_meaning_remove:NTF
}
-\cs_new_protected:Npn \__xparse_grab_D_ignore_spaces:w #1#2#3 \__xparse_run_code:
- { \__xparse_grab_D_aux:NNnNn #1 #2 {#3} \cs_set_protected_nopar:Npn { } }
-\cs_new_protected:Npn \__xparse_grab_D_long_ignore_spaces:w #1#2#3 \__xparse_run_code:
- { \__xparse_grab_D_aux:NNnNn #1 #2 {#3} \cs_set_protected:Npn { } }
-\cs_new_protected:Npn \__xparse_grab_D_aux:NNnNn #1#2#3#4#5
+\cs_new_protected:Npn \__xparse_grab_D_long_obey_spaces:w #1#2#3 \__xparse_run_code:
+ {
+ \__xparse_grab_D_aux:NNnNN #1 #2 {#3} \cs_set_protected:Npn
+ \peek_meaning_remove:NTF
+ }
+\cs_new_protected:Npn \__xparse_grab_D_aux:NNnNN #1#2#3#4#5
{
\__xparse_grab_D_aux:NNnN #1#2 {#3} #4
- \use:c { peek_meaning_remove #5 :NTF } #1
+ #5 #1
{ \__xparse_grab_D_call:Nw #1 }
{ \__xparse_add_arg:o \c_novalue_tl }
}
@@ -1043,34 +1065,34 @@
}
\cs_new_protected:Npn \__xparse_grab_E:w #1#2 \__xparse_run_code:
{
- \__xparse_grab_E:nnNn {#1} {#2}
+ \__xparse_grab_E:nnNN {#1} {#2}
\cs_set_protected_nopar:Npn
- { _ignore_spaces }
+ \__xparse_peek_nonspace_remove:NTF
}
\cs_new_protected:Npn \__xparse_grab_E_long:w #1#2 \__xparse_run_code:
{
- \__xparse_grab_E:nnNn {#1} {#2}
+ \__xparse_grab_E:nnNN {#1} {#2}
\cs_set_protected:Npn
- { _ignore_spaces }
+ \__xparse_peek_nonspace_remove:NTF
}
-\cs_new_protected:Npn \__xparse_grab_E_ignore_spaces:w #1#2 \__xparse_run_code:
+\cs_new_protected:Npn \__xparse_grab_E_obey_spaces:w #1#2 \__xparse_run_code:
{
- \__xparse_grab_E:nnNn {#1} {#2}
+ \__xparse_grab_E:nnNN {#1} {#2}
\cs_set_protected_nopar:Npn
- { }
+ \peek_meaning_remove:NTF
}
-\cs_new_protected:Npn \__xparse_grab_E_long_ignore_spaces:w #1#2 \__xparse_run_code:
+\cs_new_protected:Npn \__xparse_grab_E_long_obey_spaces:w #1#2 \__xparse_run_code:
{
- \__xparse_grab_E:nnNn {#1} {#2}
+ \__xparse_grab_E:nnNN {#1} {#2}
\cs_set_protected:Npn
- { }
+ \peek_meaning_remove:NTF
}
-\cs_new_protected:Npn \__xparse_grab_E:nnNn #1#2#3#4
+\cs_new_protected:Npn \__xparse_grab_E:nnNN #1#2#3#4
{
\exp_after:wN #3 \l__xparse_fn_tl ##1##2##3
{
\prop_put:Nnn \l__xparse_tmp_prop {##1} {##3}
- \__xparse_grab_E_loop:nnN {#4} { } ##2 \q_recursion_stop
+ \__xparse_grab_E_loop:NnN #4 { } ##2 \q_recursion_stop
}
\prop_clear:N \l__xparse_tmp_prop
\tl_set:Nn \l__xparse_signature_tl {#2}
@@ -1085,38 +1107,45 @@
}
\l__xparse_signature_tl \__xparse_run_code:
}
- \__xparse_grab_E_loop:nnN {#4} { } #1 \q_recursion_tail \q_recursion_stop
+ \__xparse_grab_E_loop:NnN #4 { } #1 \q_recursion_tail \q_recursion_stop
}
-\cs_new_protected:Npn \__xparse_grab_E_loop:nnN #1#2#3#4 \q_recursion_stop
+\cs_new_protected:Npn \__xparse_grab_E_loop:NnN #1#2#3#4 \q_recursion_stop
{
\cs_if_eq:NNTF #3 \q_recursion_tail
{ \__xparse_grab_E_finalise: }
{
- \use:c { peek_meaning_remove #1 :NTF } #3
+ #1 #3
{ \l__xparse_fn_tl #3 {#2#4} }
- { \__xparse_grab_E_loop:nnN {#1} {#2#3} #4 \q_recursion_stop }
+ { \__xparse_grab_E_loop:NnN #1 {#2#3} #4 \q_recursion_stop }
}
}
\cs_new_protected:Npn \__xparse_grab_E_finalise: { }
\cs_new_protected:Npn \__xparse_grab_G:w #1 \__xparse_run_code:
{
- \__xparse_grab_G_aux:nNn {#1} \cs_set_protected_nopar:Npn
- { _ignore_spaces }
+ \__xparse_grab_G_aux:nNN {#1} \cs_set_protected_nopar:Npn
+ \__xparse_peek_nonspace:NTF
}
\cs_new_protected:Npn \__xparse_grab_G_long:w #1 \__xparse_run_code:
{
- \__xparse_grab_G_aux:nNn {#1} \cs_set_protected:Npn { _ignore_spaces }
+ \__xparse_grab_G_aux:nNN {#1} \cs_set_protected:Npn
+ \__xparse_peek_nonspace:NTF
+ }
+\cs_new_protected:Npn \__xparse_grab_G_obey_spaces:w #1 \__xparse_run_code:
+ {
+ \__xparse_grab_G_aux:nNN {#1} \cs_set_protected_nopar:Npn
+ \peek_meaning:NTF
}
-\cs_new_protected:Npn \__xparse_grab_G_ignore_spaces:w #1 \__xparse_run_code:
- { \__xparse_grab_G_aux:nNn {#1} \cs_set_protected_nopar:Npn { } }
-\cs_new_protected:Npn \__xparse_grab_G_long_ignore_spaces:w #1 \__xparse_run_code:
- { \__xparse_grab_G_aux:nNn {#1} \cs_set_protected:Npn { } }
-\cs_new_protected:Npn \__xparse_grab_G_aux:nNn #1#2#3
+\cs_new_protected:Npn \__xparse_grab_G_long_obey_spaces:w #1 \__xparse_run_code:
+ {
+ \__xparse_grab_G_aux:nNN {#1} \cs_set_protected:Npn
+ \peek_meaning:NTF
+ }
+\cs_new_protected:Npn \__xparse_grab_G_aux:nNN #1#2#3
{
\tl_set:Nn \l__xparse_signature_tl {#1}
\exp_after:wN #2 \l__xparse_fn_tl ##1
{ \__xparse_add_arg:n {##1} }
- \use:c { peek_meaning #3 :NTF } \c_group_begin_token
+ #3 \c_group_begin_token
{ \l__xparse_fn_tl }
{ \__xparse_add_arg:o \c_novalue_tl }
}
@@ -1211,7 +1240,7 @@
\cs_new_protected:Npn \__xparse_grab_R_aux:NNnN #1#2#3#4
{
\__xparse_grab_D_aux:NNnN #1 #2 {#3} #4
- \peek_meaning_remove_ignore_spaces:NTF #1
+ \__xparse_peek_nonspace_remove:NTF #1
{ \__xparse_grab_D_call:Nw #1 }
{
\__kernel_msg_error:nnxx { xparse } { missing-required }
@@ -1221,11 +1250,9 @@
}
}
\cs_new_protected:Npn \__xparse_grab_t:w
- { \__xparse_grab_t_aux:NNw \peek_meaning_remove_ignore_spaces:NTF }
-\cs_new_eq:NN \__xparse_grab_t_long:w \__xparse_grab_t:w
-\cs_new_protected:Npn \__xparse_grab_t_ignore_spaces:w
+ { \__xparse_grab_t_aux:NNw \__xparse_peek_nonspace_remove:NTF }
+\cs_new_protected:Npn \__xparse_grab_t_obey_spaces:w
{ \__xparse_grab_t_aux:NNw \peek_meaning_remove:NTF }
-\cs_new_eq:NN \__xparse_grab_t_long_ignore_spaces:w \__xparse_grab_t_ignore_spaces:w
\cs_new_protected:Npn \__xparse_grab_t_aux:NNw #1#2#3 \__xparse_run_code:
{
\tl_set:Nn \l__xparse_signature_tl {#3}
@@ -1810,6 +1837,16 @@
}
}
\cs_new:Npn \__xparse_cmd_if_xparse_aux:w #1 ~ #2 \q_stop {#1}
+\cs_new_protected:Npn \__xparse_peek_nonspace:NTF
+ { \__xparse_peek_nonspace_aux:nNNTF { } \peek_meaning:NTF }
+\cs_new_protected:Npn \__xparse_peek_nonspace_remove:NTF
+ { \__xparse_peek_nonspace_aux:nNNTF { } \peek_meaning_remove:NTF }
+\cs_new_protected:Npn \__xparse_peek_nonspace_aux:nNNTF #1#2#3#4#5
+ {
+ \peek_meaning_remove:NTF \c_space_token
+ { \__xparse_peek_nonspace_aux:nNNTF { #1 ~ } #2 #3 {#4} {#5} }
+ { #2 #3 { #4 } { #5 #1 } }
+ }
\__kernel_msg_new:nnnn { xparse } { bad-arg-spec }
{ Bad~argument~specification~'#2'~for~command~'#1'. }
{
@@ -1898,6 +1935,13 @@
The~current~command~'#1'~expects~an~argument~starting~with~'#2'.~
LaTeX~did~not~find~it,~and~will~insert~a~default~value~to~be~processed.
}
+\__kernel_msg_new:nnnn { xparse } { non-trailing-obey-spaces }
+ { Prefix~'!'~used~before~mandatory~argument~'#2'~of~command~'#1'. }
+ {
+ The~prefix~'!'~can~only~apply~to~trailing~optional~arguments.
+ \\ \\
+ LaTeX~will~ignore~this~entire~definition.
+ }
\__kernel_msg_new:nnnn { xparse } { non-xparse-command }
{ Command~'#1'~not~defined~using~xparse. }
{
@@ -1959,6 +2003,12 @@
This~cannot~be~implemented. \\ \\
LaTeX~will~ignore~this~entire~definition.
}
+\__kernel_msg_new:nnnn { xparse } { two-markers }
+ { Two~'#2'~apply~to~the~same~argument~in~argument~specification~of~command~'#1'. }
+ {
+ The~argument~specification~provided~has~two~markers~'#2'~applying~
+ to~the~same~argument;~these~are~redundant.
+ }
\__kernel_msg_new:nnnn { xparse } { unknown-argument-type }
{ Unknown~argument~type~'#2'~for~the~command~'#1'. }
{
diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
index 912ddd9a897..b233a8b362f 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
@@ -36,7 +36,7 @@
}%
\endinput
}
-\ProvidesExplPackage{xtemplate}{2018-08-23}{}
+\ProvidesExplPackage{xtemplate}{2018-09-24}{}
{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~>~ }