summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-11-14 21:07:53 +0000
committerKarl Berry <karl@freefriends.org>2017-11-14 21:07:53 +0000
commit8c82df0007c957004cc2268b49ccf3ceca914f58 (patch)
treeae29044a1727ceb31a488437f43cde1a31e6e007 /Master/texmf-dist/tex/latex
parent4bd2a337b834181c967e774caddf57b3f747e127 (diff)
l3 (14nov17)
git-svn-id: svn://tug.org/texlive/trunk@45802 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex192
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.lua2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3doc.cls4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def37
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvips.def37
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def37
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def61
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def37
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty77
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty6
15 files changed, 387 insertions, 125 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 4e9108fafe9..a4bfbf009c9 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -62,7 +62,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileDate{2017/09/18}%
+\def\ExplFileDate{2017/11/14}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -1247,6 +1247,36 @@
\tex_let:D \tex_input:D \@@input
\tex_let:D \tex_italiccorrection:D \@@italiccorr
\tex_let:D \tex_underline:D \@@underline
+ \etex_ifdefined:D \@@shipout
+ \tex_let:D \tex_shipout:D \@@shipout
+ \tex_fi:D
+ \tex_begingroup:D
+ \tex_edef:D \l_tmpa_tl { \tex_string:D \shipout }
+ \tex_edef:D \l_tmpb_tl { \tex_meaning:D \shipout }
+ \tex_ifx:D \l_tmpa_tl \l_tmpb_tl
+ \tex_else:D
+ \tex_expandafter:D \@tfor \tex_expandafter:D \@tempa \tex_string:D :=
+ \CROP@shipout
+ \dup@shipout
+ \GPTorg@shipout
+ \LL@shipout
+ \mem@oldshipout
+ \opem@shipout
+ \pgfpages@originalshipout
+ \pr@shipout
+ \Shipout
+ \verso@orig@shipout
+ \do
+ {
+ \tex_edef:D \l_tmpb_tl
+ { \tex_expandafter:D \tex_meaning:D \@tempa }
+ \tex_ifx:D \l_tmpa_tl \l_tmpb_tl
+ \tex_global:D \tex_expandafter:D \tex_let:D
+ \tex_expandafter:D \tex_shipout:D \@tempa
+ \tex_fi:D
+ }
+ \tex_fi:D
+ \tex_endgroup:D
\tex_let:D \pdftex_tracingfonts:D \tex_undefined:D
\etex_ifdefined:D \pdftracingfonts
\tex_let:D \pdftex_tracingfonts:D \pdftracingfonts
@@ -2800,6 +2830,15 @@
\prg_new_eq_conditional:NNn \tl_if_exist:N \cs_if_exist:N { TF , T , F , p }
\prg_new_eq_conditional:NNn \tl_if_exist:c \cs_if_exist:c { TF , T , F , p }
\tl_const:Nn \c_empty_tl { }
+\group_begin:
+\tex_lccode:D `A = `-
+\tex_lccode:D `N = `N
+\tex_lccode:D `V = `V
+\tex_lowercase:D
+ {
+ \group_end:
+ \tl_const:Nn \c_novalue_tl { ANoValue- }
+ }
\tl_const:Nn \c_space_tl { ~ }
\__debug_patch:nnNNpn { \__debug_chk_var_exist:N #1 } { }
\cs_new_protected:Npn \tl_set:Nn #1#2
@@ -3164,6 +3203,23 @@
\cs_generate_variant:Nn \tl_if_in:nnT { V , o , no }
\cs_generate_variant:Nn \tl_if_in:nnF { V , o , no }
\cs_generate_variant:Nn \tl_if_in:nnTF { V , o , no }
+\use:x
+ {
+ \prg_new_conditional:Npnn \exp_not:N \tl_if_novalue:n ##1
+ { T , F , TF }
+ {
+ \exp_not:N \str_if_eq:onTF
+ {
+ \exp_not:N \__tl_if_novalue:w ? ##1 { }
+ \c_novalue_tl
+ }
+ { ? { } \c_novalue_tl }
+ { \exp_not:N \prg_return_true: }
+ { \exp_not:N \prg_return_false: }
+ }
+ \cs_new:Npn \exp_not:N \__tl_if_novalue:w ##1 \c_novalue_tl
+ {##1}
+ }
\cs_new:Npn \tl_if_single_p:N { \exp_args:No \tl_if_single_p:n }
\cs_new:Npn \tl_if_single:NT { \exp_args:No \tl_if_single:nT }
\cs_new:Npn \tl_if_single:NF { \exp_args:No \tl_if_single:nF }
@@ -3303,6 +3359,7 @@
{ \exp_not:o { \use_none:nn #2 } }
\cs_new:Npn \tl_trim_spaces:n #1
{ \__tl_trim_spaces:nn { \q_mark #1 } \exp_not:o }
+\cs_generate_variant:Nn \tl_trim_spaces:n { o }
\cs_new_protected:Npn \tl_trim_spaces:N #1
{ \tl_set:Nx #1 { \exp_args:No \tl_trim_spaces:n {#1} } }
\cs_new_protected:Npn \tl_gtrim_spaces:N #1
@@ -3633,6 +3690,10 @@
\cs_new_eq:NN \str_gset_eq:NN \tl_gset_eq:NN
\cs_generate_variant:Nn \str_set_eq:NN { c , Nc , cc }
\cs_generate_variant:Nn \str_gset_eq:NN { c , Nc , cc }
+\cs_new_eq:NN \str_concat:NNN \tl_concat:NNN
+\cs_new_eq:NN \str_gconcat:NNN \tl_gconcat:NNN
+\cs_generate_variant:Nn \str_concat:NNN { ccc }
+\cs_generate_variant:Nn \str_gconcat:NNN { ccc }
\group_begin:
\cs_set_protected:Npn \__str_tmp:n #1
{
@@ -3654,6 +3715,58 @@
{ gput_right }
{ }
\group_end:
+\cs_new_protected:Npn \str_replace_once:Nnn
+ { \__str_replace:NNNnn \prg_do_nothing: \tl_set:Nx }
+\cs_new_protected:Npn \str_greplace_once:Nnn
+ { \__str_replace:NNNnn \prg_do_nothing: \tl_gset:Nx }
+\cs_new_protected:Npn \str_replace_all:Nnn
+ { \__str_replace:NNNnn \__str_replace_next:w \tl_set:Nx }
+\cs_new_protected:Npn \str_greplace_all:Nnn
+ { \__str_replace:NNNnn \__str_replace_next:w \tl_gset:Nx }
+\cs_generate_variant:Nn \str_replace_once:Nnn { c }
+\cs_generate_variant:Nn \str_greplace_once:Nnn { c }
+\cs_generate_variant:Nn \str_replace_all:Nnn { c }
+\cs_generate_variant:Nn \str_greplace_all:Nnn { c }
+\cs_new_protected:Npn \__str_replace:NNNnn #1#2#3#4#5
+ {
+ \tl_if_empty:nTF {#4}
+ {
+ \__msg_kernel_error:nnx { kernel } { empty-search-pattern } {#5}
+ }
+ {
+ \use:x
+ {
+ \exp_not:n { \__str_replace_aux:NNNnnn #1 #2 #3 }
+ { \tl_to_str:N #3 }
+ { \tl_to_str:n {#4} } { \tl_to_str:n {#5} }
+ }
+ }
+ }
+\cs_new_protected:Npn \__str_replace_aux:NNNnnn #1#2#3#4#5#6
+ {
+ \cs_set:Npn \__str_replace_next:w ##1 #5 { ##1 #6 #1 }
+ #2 #3
+ {
+ \__str_replace_next:w
+ #4
+ \use_none_delimit_by_q_stop:w
+ #5
+ \q_stop
+ }
+ }
+\cs_new_eq:NN \__str_replace_next:w ?
+\cs_new_protected:Npn \str_remove_once:Nn #1#2
+ { \str_replace_once:Nnn #1 {#2} { } }
+\cs_new_protected:Npn \str_gremove_once:Nn #1#2
+ { \str_greplace_once:Nnn #1 {#2} { } }
+\cs_generate_variant:Nn \str_remove_once:Nn { c }
+\cs_generate_variant:Nn \str_gremove_once:Nn { c }
+\cs_new_protected:Npn \str_remove_all:Nn #1#2
+ { \str_replace_all:Nnn #1 {#2} { } }
+\cs_new_protected:Npn \str_gremove_all:Nn #1#2
+ { \str_greplace_all:Nnn #1 {#2} { } }
+\cs_generate_variant:Nn \str_remove_all:Nn { c }
+\cs_generate_variant:Nn \str_gremove_all:Nn { c }
\prg_new_eq_conditional:NNn \str_if_exist:N \tl_if_exist:N { p , T , F , TF }
\prg_new_eq_conditional:NNn \str_if_exist:c \tl_if_exist:c { p , T , F , TF }
\prg_new_eq_conditional:NNn \str_if_empty:N \tl_if_empty:N { p , T , F , TF }
@@ -3717,6 +3830,21 @@
\cs_generate_variant:Nn \str_if_eq:NNF { c , Nc , cc }
\cs_generate_variant:Nn \str_if_eq:NNTF { c , Nc , cc }
\cs_generate_variant:Nn \str_if_eq_p:NN { c , Nc , cc }
+\prg_new_protected_conditional:Npnn \str_if_in:Nn #1#2 { T , F , TF }
+ {
+ \use:x
+ { \tl_if_in:nnTF { \tl_to_str:N #1 } { \tl_to_str:n {#2} } }
+ { \prg_return_true: } { \prg_return_false: }
+ }
+\cs_generate_variant:Nn \str_if_in:NnT { c }
+\cs_generate_variant:Nn \str_if_in:NnF { c }
+\cs_generate_variant:Nn \str_if_in:NnTF { c }
+\prg_new_protected_conditional:Npnn \str_if_in:nn #1#2 { T , F , TF }
+ {
+ \use:x
+ { \tl_if_in:nnTF { \tl_to_str:n {#1} } { \tl_to_str:n {#2} } }
+ { \prg_return_true: } { \prg_return_false: }
+ }
\cs_new:Npn \str_case:nn #1#2
{
\exp:w
@@ -3778,6 +3906,54 @@
{ \__str_case_x:nw {#1} }
}
\cs_new_eq:NN \__str_case_end:nw \__prg_case_end:nw
+\cs_new:Npn \str_map_function:nN #1#2
+ {
+ \exp_after:wN \__str_map_function:Nn \exp_after:wN #2
+ \etex_detokenize:n {#1}
+ \q_recursion_tail
+ \__prg_break_point:Nn \str_map_break: { }
+ }
+\cs_new:Npn \str_map_function:NN
+ { \exp_args:No \str_map_function:nN }
+\cs_new:Npn \__str_map_function:Nn #1#2
+ {
+ \__quark_if_recursion_tail_break:nN {#2} \str_map_break:
+ #1 {#2} \__str_map_function:Nn #1
+ }
+\cs_generate_variant:Nn \str_map_function:NN { c }
+\cs_new_protected:Npn \str_map_inline:nn #1#2
+ {
+ \int_gincr:N \g__prg_map_int
+ \cs_gset_protected:cpn
+ { __prg_map_ \int_use:N \g__prg_map_int :w } ##1 {#2}
+ \exp_args:Nc \__str_map_function:Nn
+ { __prg_map_ \int_use:N \g__prg_map_int :w }
+ #1 \q_recursion_tail
+ \__prg_break_point:Nn \str_map_break: { \int_gdecr:N \g__prg_map_int }
+ }
+\cs_new_protected:Npn \str_map_inline:Nn
+ { \exp_args:No \str_map_inline:nn }
+\cs_generate_variant:Nn \str_map_inline:Nn { c }
+\cs_new_protected:Npn \str_map_variable:nNn #1#2#3
+ {
+ \__str_map_variable:Nnn #2 {#3} #1
+ \q_recursion_tail
+ \__prg_break_point:Nn \str_map_break: { }
+ }
+\cs_new_protected:Npn \str_map_variable:NNn
+ { \exp_args:No \str_map_variable:nNn }
+\cs_new_protected:Npn \__str_map_variable:Nnn #1#2#3
+ {
+ \str_set:Nn #1 {#3}
+ \__quark_if_recursion_tail_break:NN #1 \str_map_break:
+ \use:n {#2}
+ \__str_map_variable:Nnn #1 {#2}
+ }
+\cs_generate_variant:Nn \str_map_variable:NNn { c }
+\cs_new:Npn \str_map_break:
+ { \__prg_map_break:Nn \str_map_break: { } }
+\cs_new:Npn \str_map_break:n
+ { \__prg_map_break:Nn \str_map_break: }
\cs_new:Npn \__str_to_other:n #1
{
\exp_after:wN \__str_to_other_loop:w
@@ -3785,7 +3961,7 @@
}
\group_begin:
\tex_lccode:D `\* = `\ %
-\tex_lccode:D `\A = `\A
+\tex_lccode:D `\A = `\A %
\tex_lowercase:D
{
\group_end:
@@ -3808,7 +3984,7 @@
}
\group_begin:
\tex_lccode:D `\* = `\ %
-\tex_lccode:D `\A = `\A
+\tex_lccode:D `\A = `\A %
\tex_lowercase:D
{
\group_end:
@@ -10691,12 +10867,7 @@
}
}
\cs_new:Npn \__keys_remove_spaces:n #1
- {
- \exp_after:wN \__keys_remove_spaces:w \tl_to_str:n {#1}
- \use_none:nn ? ~
- }
-\cs_new:Npn \__keys_remove_spaces:w #1 ~
- { #1 \__keys_remove_spaces:w }
+ { \tl_trim_spaces:o { \tl_to_str:n {#1} } }
\prg_new_conditional:Npnn \keys_if_exist:nn #1#2 { p , T , F , TF }
{
\cs_if_exist:cTF
@@ -21659,7 +21830,8 @@
}
\cs_new_protected:Npn \color_ensure_current:
{
- \__driver_color_ensure_current:
+ \__driver_color_pickup:N \l__color_current_tl
+ \__driver_color_select:V \l__color_current_tl
\group_insert_after:N \__driver_color_reset:
}
\tl_new:N \l__color_current_tl
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index a84caf1da12..7c8e09b787a 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 Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileDate{2017/09/18}%
+\def\ExplFileDate{2017/11/14}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\def\tempa{LaTeX2e}%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.lua b/Master/texmf-dist/tex/latex/l3kernel/expl3.lua
index ca496b495c9..c9b04b10d65 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.lua
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.lua
@@ -57,7 +57,7 @@ l3kernel.charcat = charcat
local function filemdfivesum(name)
local file = kpse_find(name, "tex", true)
if file then
- local f = open(file, "r")
+ local f = open(file, "rb")
if f then
local data = f:read("*a")
escapehex(md5_sum(data))
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index 86cc90262ad..ca4498c864a 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 Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileDate{2017/09/18}%
+\def\ExplFileDate{2017/11/14}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
index 9040af56ff9..3b94767ca26 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
@@ -20,7 +20,7 @@
%%
%% File: l3doc.dtx Copyright (C) 1990-2017 The LaTeX3 project
\RequirePackage{expl3,xparse,calc}
-\ProvidesExplClass{l3doc}{2017/09/18}{}
+\ProvidesExplClass{l3doc}{2017/11/14}{}
{L3 Experimental documentation class}
\clist_new:N \g_docinput_clist
\seq_new:N \g_doc_functions_seq
@@ -678,7 +678,7 @@
{ \l__codedoc_index_key_tl }
{ \l__codedoc_index_macro_tl }
{ \l__codedoc_index_module_tl }
- { }
+ { usage }
\l__codedoc_index_internal_bool
}
}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
index 5bfce1cc6ed..ab0a0fbc664 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
@@ -22,20 +22,45 @@
\ProvidesExplFile
{l3dvidpfmx.def}{2017/03/18}{}
{L3 Experimental driver: dvipdfmx}
+\cs_new_protected:Npn \__driver_color_pickup:N #1 { }
\AtBeginDocument
{
\@ifpackageloaded { color }
{
- \cs_new_protected:Npn \__driver_color_pickup:
- { \tl_set:Nx \l__color_current_tl { \current@color } }
+ \cs_set_protected:Npn \__driver_color_pickup:N #1
+ {
+ \exp_args:NV \tl_if_head_is_space:nTF \current@color
+ {
+ \tl_set:Nx #1
+ {
+ spot ~
+ \exp_after:wN \use:n \current@color \c_space_tl 1
+ }
+ }
+ { \exp_after:wN \__driver_color_pickup_aux:w \current@color \q_stop #1 }
+ }
+ \cs_new_protected:Npn \__driver_color_pickup_aux:w #1 ~ #2 \q_stop #3
+ { \tl_set:Nn #3 { #1 ~ #2 } }
}
- { \cs_new_protected:Npn \__driver_color_pickup: { } }
+ { }
}
-\cs_new_protected:Npn \__driver_color_ensure_current:
+\cs_new_protected:Npn \__driver_color_select:n #1
{
- \__driver_color_pickup:
- \tex_special:D { color~push~\l__color_current_tl }
+ \tex_special:D
+ {
+ color~push~
+ \cs_if_exist_use:cF
+ { __driver_color_convert_ \__driver_convert_model:w #1 \q_stop :n }
+ { \use:n }
+ {#1}
+ }
}
+\cs_generate_variant:Nn \__driver_color_select:n { V }
+\cs_new:Npn \__driver_convert_model:w #1 ~ #2 \q_stop {#1}
+\cs_new:Npn \__driver_color_convert_spot:n #1
+ { \__driver_color_convert_spot:w #1 \q_stop }
+\cs_new:Npn \__driver_color_convert_spot:w #1 ~ #2 ~ #3 \q_stop
+ { \c_space_tl #2 }
\cs_new_protected:Npn \__driver_color_reset:
{ \tex_special:D { color~pop } }
\cs_new_protected:Npn \__driver_literal:n #1
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
index eed9fcf2658..046edf1d5a7 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
@@ -22,20 +22,45 @@
\ProvidesExplFile
{l3dvips.def}{2017/03/18}{}
{L3 Experimental driver: dvips}
+\cs_new_protected:Npn \__driver_color_pickup:N #1 { }
\AtBeginDocument
{
\@ifpackageloaded { color }
{
- \cs_new_protected:Npn \__driver_color_pickup:
- { \tl_set:Nx \l__color_current_tl { \current@color } }
+ \cs_set_protected:Npn \__driver_color_pickup:N #1
+ {
+ \exp_args:NV \tl_if_head_is_space:nTF \current@color
+ {
+ \tl_set:Nx #1
+ {
+ spot ~
+ \exp_after:wN \use:n \current@color \c_space_tl 1
+ }
+ }
+ { \exp_after:wN \__driver_color_pickup_aux:w \current@color \q_stop #1 }
+ }
+ \cs_new_protected:Npn \__driver_color_pickup_aux:w #1 ~ #2 \q_stop #3
+ { \tl_set:Nn #3 { #1 ~ #2 } }
}
- { \cs_new_protected:Npn \__driver_color_pickup: { } }
+ { }
}
-\cs_new_protected:Npn \__driver_color_ensure_current:
+\cs_new_protected:Npn \__driver_color_select:n #1
{
- \__driver_color_pickup:
- \tex_special:D { color~push~\l__color_current_tl }
+ \tex_special:D
+ {
+ color~push~
+ \cs_if_exist_use:cF
+ { __driver_color_convert_ \__driver_convert_model:w #1 \q_stop :n }
+ { \use:n }
+ {#1}
+ }
}
+\cs_generate_variant:Nn \__driver_color_select:n { V }
+\cs_new:Npn \__driver_convert_model:w #1 ~ #2 \q_stop {#1}
+\cs_new:Npn \__driver_color_convert_spot:n #1
+ { \__driver_color_convert_spot:w #1 \q_stop }
+\cs_new:Npn \__driver_color_convert_spot:w #1 ~ #2 ~ #3 \q_stop
+ { \c_space_tl #2 }
\cs_new_protected:Npn \__driver_color_reset:
{ \tex_special:D { color~pop } }
\cs_new_protected:Npn \__driver_literal:n #1
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
index df5c3f262fb..c3a180544da 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
@@ -22,20 +22,45 @@
\ProvidesExplFile
{l3dvisvgm.def}{2017/03/18}{}
{L3 Experimental driver: dvisvgm}
+\cs_new_protected:Npn \__driver_color_pickup:N #1 { }
\AtBeginDocument
{
\@ifpackageloaded { color }
{
- \cs_new_protected:Npn \__driver_color_pickup:
- { \tl_set:Nx \l__color_current_tl { \current@color } }
+ \cs_set_protected:Npn \__driver_color_pickup:N #1
+ {
+ \exp_args:NV \tl_if_head_is_space:nTF \current@color
+ {
+ \tl_set:Nx #1
+ {
+ spot ~
+ \exp_after:wN \use:n \current@color \c_space_tl 1
+ }
+ }
+ { \exp_after:wN \__driver_color_pickup_aux:w \current@color \q_stop #1 }
+ }
+ \cs_new_protected:Npn \__driver_color_pickup_aux:w #1 ~ #2 \q_stop #3
+ { \tl_set:Nn #3 { #1 ~ #2 } }
}
- { \cs_new_protected:Npn \__driver_color_pickup: { } }
+ { }
}
-\cs_new_protected:Npn \__driver_color_ensure_current:
+\cs_new_protected:Npn \__driver_color_select:n #1
{
- \__driver_color_pickup:
- \tex_special:D { color~push~\l__color_current_tl }
+ \tex_special:D
+ {
+ color~push~
+ \cs_if_exist_use:cF
+ { __driver_color_convert_ \__driver_convert_model:w #1 \q_stop :n }
+ { \use:n }
+ {#1}
+ }
}
+\cs_generate_variant:Nn \__driver_color_select:n { V }
+\cs_new:Npn \__driver_convert_model:w #1 ~ #2 \q_stop {#1}
+\cs_new:Npn \__driver_color_convert_spot:n #1
+ { \__driver_color_convert_spot:w #1 \q_stop }
+\cs_new:Npn \__driver_color_convert_spot:w #1 ~ #2 ~ #3 \q_stop
+ { \c_space_tl #2 }
\cs_new_protected:Npn \__driver_color_reset:
{ \tex_special:D { color~pop } }
\cs_new_protected:Npn \__driver_literal:n #1
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
index 8590bc67530..981badea00d 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
@@ -22,59 +22,68 @@
\ProvidesExplFile
{l3pdfmode.def}{2017/03/18}{}
{L3 Experimental driver: PDF mode}
+\cs_new_protected:Npn \__driver_color_pickup:N #1 { }
\AtBeginDocument
{
\@ifpackageloaded { color }
{
- \cs_new_protected:Npn \__driver_color_pickup:
+ \cs_set_protected:Npn \__driver_color_pickup:N #1
{
\exp_last_unbraced:Nx \__driver_color_pickup_aux:w
- { \current@color } ~ 0 ~ 0 ~ 0 \q_stop
+ { \current@color } ~ 0 ~ 0 ~ 0 \q_stop #1
}
- \cs_new:Npn \__driver_color_pickup_aux:w #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \q_stop
+ \cs_new_protected:Npn \__driver_color_pickup_aux:w
+ #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \q_stop #7
{
- \tl_set:Nx \l__color_current_tl
+ \str_if_eq:nnTF {#2} { g }
+ { \tl_set:Nn #7 { gray ~ #1 } }
{
- \str_if_eq:nnTF {#2} { g }
- { gray ~ #1 }
+ \str_if_eq:nnTF {#4} { rg }
+ { \tl_set:Nn #7 { rgb ~ #1 ~ #2 ~ #3 } }
{
- \str_if_eq:nnTF {#4} { rg }
- { rgb ~ #1 ~ #2 ~ #3 }
- {
- \str_if_eq:nnTF {#5} { k }
- { cmyk ~ #1 ~ #2 ~ #3 ~ #4 }
- { gray ~ #1 }
- }
+ \str_if_eq:nnTF {#5} { k }
+ { \tl_set:Nn #7 { cmyk ~ #1 ~ #2 ~ #3 ~ #4 } }
+ {
+ \str_if_eq:nnTF {#2} { cs }
+ {
+ \tl_set:Nx #7 { spot ~ \use_none:n #1 ~ #5 }
+ }
+ {
+ \tl_set:Nn #7 { gray ~ 0 }
+ }
+ }
}
}
}
}
- { \cs_new_protected:Npn \__driver_color_pickup: { } }
+ { }
}
\int_new:N \l__driver_color_stack_int
-\cs_new_protected:Npx \__driver_color_ensure_current:
+\cs_new_protected:Npx \__driver_color_select:n #1
{
- \exp_not:N \__driver_color_pickup:
\cs_if_exist:NTF \luatex_pdfextension:D
{ \luatex_pdfextension:D colorstack }
{ \pdftex_pdfcolorstack:D }
\exp_not:N \l__driver_color_stack_int push
{
- \exp_not:N \exp_after:wN
\exp_not:N \__driver_color_convert:w
- \exp_not:N \l__color_current_tl
- \c_space_tl 0 ~ 0 ~ 0
+ #1
\exp_not:N \q_stop
}
}
-\cs_new:Npn \__driver_color_convert:w #1 ~
- { \use:c { __driver_color_convert_ #1 :w } }
-\cs_new:Npn \__driver_color_convert_gray:w #1 ~ #2 \q_stop
+\cs_generate_variant:Nn \__driver_color_select:n { V }
+\cs_new:Npn \__driver_color_convert:w #1 ~ #2 \q_stop
+ { \use:c { __driver_color_convert_ #1 :w } #2 \q_stop }
+\cs_new:Npn \__driver_color_convert_gray:w #1 \q_stop
{ #1 ~ g ~ #1 ~ G }
-\cs_new:Npn \__driver_color_convert_cmyk:w #1 ~ #2 ~ #3 ~ #4 ~#5 \q_stop
- { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K }
-\cs_new:Npn \__driver_color_convert_rgb:w #1 ~ #2 ~ #3 ~ #4 \q_stop
- { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG }
+\cs_new:Npn \__driver_color_convert_cmyk:w #1 \q_stop
+ { #1 ~ k ~ #1 ~ K }
+\cs_new:Npn \__driver_color_convert_rgb:w #1 \q_stop
+ { #1 ~ rg ~ #1 ~ RG }
+\cs_new:Npn \__driver_color_convert_spot:w #1 ~ #2 \q_stop
+ {
+ /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ sc ~ #2 ~ SC
+ }
\cs_new_protected:Npx \__driver_color_reset:
{
\cs_if_exist:NTF \luatex_pdfextension:D
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
index 31bd085b8b1..228038f2c43 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
@@ -22,20 +22,45 @@
\ProvidesExplFile
{l3xdvidpfmx.def}{2017/03/18}{}
{L3 Experimental driver: xdvipdfmx}
+\cs_new_protected:Npn \__driver_color_pickup:N #1 { }
\AtBeginDocument
{
\@ifpackageloaded { color }
{
- \cs_new_protected:Npn \__driver_color_pickup:
- { \tl_set:Nx \l__color_current_tl { \current@color } }
+ \cs_set_protected:Npn \__driver_color_pickup:N #1
+ {
+ \exp_args:NV \tl_if_head_is_space:nTF \current@color
+ {
+ \tl_set:Nx #1
+ {
+ spot ~
+ \exp_after:wN \use:n \current@color \c_space_tl 1
+ }
+ }
+ { \exp_after:wN \__driver_color_pickup_aux:w \current@color \q_stop #1 }
+ }
+ \cs_new_protected:Npn \__driver_color_pickup_aux:w #1 ~ #2 \q_stop #3
+ { \tl_set:Nn #3 { #1 ~ #2 } }
}
- { \cs_new_protected:Npn \__driver_color_pickup: { } }
+ { }
}
-\cs_new_protected:Npn \__driver_color_ensure_current:
+\cs_new_protected:Npn \__driver_color_select:n #1
{
- \__driver_color_pickup:
- \tex_special:D { color~push~\l__color_current_tl }
+ \tex_special:D
+ {
+ color~push~
+ \cs_if_exist_use:cF
+ { __driver_color_convert_ \__driver_convert_model:w #1 \q_stop :n }
+ { \use:n }
+ {#1}
+ }
}
+\cs_generate_variant:Nn \__driver_color_select:n { V }
+\cs_new:Npn \__driver_convert_model:w #1 ~ #2 \q_stop {#1}
+\cs_new:Npn \__driver_color_convert_spot:n #1
+ { \__driver_color_convert_spot:w #1 \q_stop }
+\cs_new:Npn \__driver_color_convert_spot:w #1 ~ #2 ~ #3 \q_stop
+ { \c_space_tl #2 }
\cs_new_protected:Npn \__driver_color_reset:
{ \tex_special:D { color~pop } }
\cs_new_protected:Npn \__driver_literal:n #1
diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
index a994028c128..bbac837377c 100644
--- a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
@@ -19,8 +19,8 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3keys2e.dtx (C) Copyright 2009,2011-2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/09/18]
-\@ifpackagelater{expl3}{2017/09/18}
+\RequirePackage{expl3}[2017/11/14]
+\@ifpackagelater{expl3}{2017/11/14}
{}
{%
\PackageError{l3keys2e}{Support package l3kernel too old}
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{l3keys2e}{2017/09/18}{}
+\ProvidesExplPackage{l3keys2e}{2017/11/14}{}
{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 542e0ab69ef..00dd9d47c91 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
@@ -19,8 +19,8 @@
%% and all files in that bundle must be distributed together.
%%
%% File: xfp.dtx (C) Copyright 2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/09/18]
-\@ifpackagelater{expl3}{2017/09/18}
+\RequirePackage{expl3}[2017/11/14]
+\@ifpackagelater{expl3}{2017/11/14}
{}
{%
\PackageError{xfp}{Support package l3kernel too old}
@@ -33,7 +33,7 @@
\endinput
}
\RequirePackage{xparse}
-\ProvidesExplPackage{xfp}{2017/09/18}{}
+\ProvidesExplPackage{xfp}{2017/11/14}{}
{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 a14dec2c0e4..0f74a741190 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
@@ -20,8 +20,8 @@
%%
%% File: xfrac.dtx Copyright (C) 2004, 2008-2010 Morten Hoegholm
%% (C) 2011,2012,2014-2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/09/18]
-\@ifpackagelater{expl3}{2017/09/18}
+\RequirePackage{expl3}[2017/11/14]
+\@ifpackagelater{expl3}{2017/11/14}
{}
{%
\PackageError{xfrac}{Support package l3kernel too old}
@@ -34,7 +34,7 @@
\endinput
}
\RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate}
-\ProvidesExplPackage{xfrac}{2017/09/18}{}
+\ProvidesExplPackage{xfrac}{2017/11/14}{}
{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 812f8863e59..b6b5fed0410 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
@@ -23,8 +23,8 @@
%% (C) Copyright 2004-2008 Frank Mittelbach,
%% The LaTeX3 Project
%% (C) Copyright 2009-2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/09/18]
-\@ifpackagelater{expl3}{2017/09/18}
+\RequirePackage{expl3}[2017/11/14]
+\@ifpackagelater{expl3}{2017/11/14}
{}
{%
\PackageError{xparse}{Support package l3kernel too old}
@@ -36,10 +36,8 @@
}%
\endinput
}
-\ProvidesExplPackage{xparse}{2017/09/18}{}
+\ProvidesExplPackage{xparse}{2017/11/14}{}
{L3 Experimental document command parser}
-\tl_const:Nx \c__xparse_no_value_tl
- { \char_generate:nn { `\- } { 11 } NoValue- }
\tl_new:N \l__xparse_arg_spec_tl
\tl_new:N \l__xparse_args_tl
\tl_new:N \l__xparse_args_i_tl
@@ -290,7 +288,7 @@
{
\exp_not:N \exp_not:n
{
- \__xparse_if_no_value:nTF {#2}
+ \tl_if_novalue:nTF {#2}
{ \exp_not:o {#3} }
{ \exp_not:n { ## #1 } }
}
@@ -309,7 +307,7 @@
\cs_new_protected:Npn \__xparse_args_process_loop:nn #1#2
{
\tl_set:Nn \ProcessedArgument {#1}
- \__xparse_if_no_value:nF {#1}
+ \tl_if_novalue:nF {#1}
{ \tl_map_function:nN {#2} \__xparse_args_process_aux:n }
\tl_put_right:No \l__xparse_args_ii_tl
{ \exp_after:wN { \ProcessedArgument } }
@@ -349,7 +347,7 @@
}
\cs_new:Npn \__xparse_end_expandable_defaults:nnw #1#2
{
- \__xparse_if_no_value:nTF {#2}
+ \tl_if_novalue:nTF {#2}
{ \exp_args:No \__xparse_end_expandable_defaults:nw {#1} }
{ \__xparse_end_expandable_defaults:nw {#2} }
}
@@ -425,7 +423,7 @@
\cs_new_protected:Npn \__xparse_normalize_type_s:w
{ \__xparse_normalize_type_t:w * }
}
-\exp_args:No \__xparse_tmp:w { \c__xparse_no_value_tl }
+\exp_args:No \__xparse_tmp:w { \c_novalue_tl }
\cs_new_protected:cpn { __xparse_normalize_type_>:w } #1#2
{
\quark_if_recursion_tail_stop_do:nn {#2} { \__xparse_bad_arg_spec:wn }
@@ -733,7 +731,7 @@
\cs_new_protected:Npn \__xparse_add_type_v:w
{
\__xparse_flush_m_args:
- \exp_args:No \__xparse_add_default:n \c__xparse_no_value_tl
+ \exp_args:No \__xparse_add_default:n \c_novalue_tl
\__xparse_add_grabber_mandatory:N v
\__xparse_prepare_signature:N
}
@@ -782,7 +780,7 @@
}
\cs_new_protected:Npn \__xparse_add_default:n #1
{
- \__xparse_if_no_value:nTF {#1}
+ \tl_if_novalue:nTF {#1}
{ \__xparse_add_default: }
{
\int_incr:N \l__xparse_current_arg_int
@@ -793,7 +791,7 @@
\cs_new_protected:Npn \__xparse_add_default:
{
\int_incr:N \l__xparse_current_arg_int
- \tl_put_right:Nn \l__xparse_defaults_tl { \c__xparse_no_value_tl }
+ \tl_put_right:Nn \l__xparse_defaults_tl { \c_novalue_tl }
}
\cs_new_protected:Npn \__xparse_add_default_E:nn #1#2
{
@@ -854,7 +852,7 @@
{ \exp_not:o \l__xparse_tmpb_tl }
{
\prg_replicate:nn { \tl_count:n {#1} }
- { { \c__xparse_no_value_tl } }
+ { { \c_novalue_tl } }
}
}
\__xparse_prepare_signature:N
@@ -952,7 +950,7 @@
\__xparse_grab_D_aux:NNnN #1#2 {#3} #4
\use:c { peek_meaning_remove #5 :NTF } #1
{ \__xparse_grab_D_call:Nw #1 }
- { \__xparse_add_arg:o \c__xparse_no_value_tl }
+ { \__xparse_add_arg:o \c_novalue_tl }
}
\cs_new_protected:Npn \__xparse_grab_D_aux:NNnN #1#2#3#4
{
@@ -1061,7 +1059,7 @@
\tl_map_inline:nn {#1}
{
\prop_get:NnNF \l__xparse_tmp_prop {####1} \l__xparse_tmpb_tl
- { \tl_set_eq:NN \l__xparse_tmpb_tl \c__xparse_no_value_tl }
+ { \tl_set_eq:NN \l__xparse_tmpb_tl \c_novalue_tl }
\tl_put_right:Nx \l__xparse_args_tl
{ { \exp_not:V \l__xparse_tmpb_tl } }
}
@@ -1100,7 +1098,7 @@
{ \__xparse_add_arg:n {##1} }
\use:c { peek_meaning #3 :NTF } \c_group_begin_token
{ \l__xparse_fn_tl }
- { \__xparse_add_arg:o \c__xparse_no_value_tl }
+ { \__xparse_add_arg:o \c_novalue_tl }
}
\cs_new_protected:Npn \__xparse_grab_l:w #1 \__xparse_run_code:
{ \__xparse_grab_l_aux:nN {#1} \cs_set_protected_nopar:Npn }
@@ -1199,7 +1197,7 @@
\__msg_kernel_error:nnxx { xparse } { missing-required }
{ \exp_after:wN \token_to_str:N \l__xparse_fn_tl }
{ \token_to_str:N #1 }
- \__xparse_add_arg:o \c__xparse_no_value_tl
+ \__xparse_add_arg:o \c_novalue_tl
}
}
\cs_new_protected:Npn \__xparse_grab_t:w
@@ -1356,14 +1354,14 @@
{ \exp_after:wN \token_to_str:N \l__xparse_fn_tl }
{ \tl_to_str:N \l__xparse_v_arg_tl }
{ \tl_to_str:n {#1} }
- \__xparse_add_arg:o \c__xparse_no_value_tl
+ \__xparse_add_arg:o \c_novalue_tl
}
{
\__msg_kernel_error:nnxxx { xparse } { verbatim-tokenized }
{ \exp_after:wN \token_to_str:N \l__xparse_fn_tl }
{ \tl_to_str:N \l__xparse_v_arg_tl }
{ \tl_to_str:n {#1} }
- \__xparse_add_arg:o \c__xparse_no_value_tl
+ \__xparse_add_arg:o \c_novalue_tl
}
}
\cs_new_protected:Npn \__xparse_grab_v_aux_put:N #1
@@ -1403,7 +1401,7 @@
{ ##4 {#1} \q__xparse ##5 ##6 {##7} }
}
}
-\exp_args:No \__xparse_tmp:w { \c__xparse_no_value_tl }
+\exp_args:No \__xparse_tmp:w { \c_novalue_tl }
\cs_new:Npn \__xparse_expandable_grab_D:NNNwNNnnn #1#2#3#4 \q__xparse #5#6#7#8#9
{
\exp_args:Nof \__xparse_expandable_grab_D:nnNNNwNN
@@ -1455,7 +1453,7 @@
{ ##3 {#1} \q__xparse ##4 ##5 {##6} }
}
}
-\exp_args:No \__xparse_tmp:w { \c__xparse_no_value_tl }
+\exp_args:No \__xparse_tmp:w { \c_novalue_tl }
\cs_new:Npn \__xparse_expandable_grab_D_alt:NNwn #1#2#3 \q__xparse #4
{
\tl_if_blank:oTF { \use_none:n #4 }
@@ -1487,7 +1485,7 @@
\quark_if_nil:NTF #4
{ \__xparse_expandable_grab_E_end:nnw {#1} {#3} }
{
- \__xparse_if_no_value:nTF {#8}
+ \tl_if_novalue:nTF {#8}
{ \str_if_eq:onTF { #4 { } #1 #5 } {#5} }
{ \use_ii:nn }
{ \__xparse_expandable_grab_E_find:w { #2 #4 #5 #6 } {#3} ~ }
@@ -1535,7 +1533,7 @@
}
}
}
-\exp_args:No \__xparse_tmp:w { \c__xparse_no_value_tl }
+\exp_args:No \__xparse_tmp:w { \c_novalue_tl }
\cs_new:Npn \__xparse_expandable_grab_R_alt:w #1 \q__xparse #2#3
{ #2 { \__xparse_expandable_grab_R_alt_aux:NNnwNn #1 \q__xparse #2#3 } }
\cs_set_protected:Npn \__xparse_tmp:w #1
@@ -1561,7 +1559,7 @@
}
}
}
-\exp_args:No \__xparse_tmp:w { \c__xparse_no_value_tl }
+\exp_args:No \__xparse_tmp:w { \c_novalue_tl }
\cs_new:Npn \__xparse_expandable_grab_t:w #1 \q__xparse #2#3
{ #2 { \__xparse_expandable_grab_t_aux:NNwn #1 \q__xparse #2 #3 } }
\cs_new:Npn \__xparse_expandable_grab_t_aux:NNwn #1#2#3 \q__xparse #4#5#6
@@ -1644,7 +1642,7 @@
\tl_put_right:Nx \ProcessedArgument
{
\prg_replicate:nn { #2 + 1 - (#1) }
- { { \exp_not:V \c__xparse_no_value_tl } }
+ { { \exp_not:V \c_novalue_tl } }
}
}
}
@@ -1718,23 +1716,6 @@
{ \tl_show:N \ArgumentSpecification }
{ \__xparse_get_arg_spec_error:n {#1} }
}
-\use:x
- {
- \prg_new_conditional:Npnn \exp_not:N \__xparse_if_no_value:n ##1
- { T , F , TF }
- {
- \exp_not:N \str_if_eq:onTF
- {
- \exp_not:N \__xparse_if_value_aux:w ? ##1 { }
- \c__xparse_no_value_tl
- }
- { ? { } \c__xparse_no_value_tl }
- { \exp_not:N \prg_return_true: }
- { \exp_not:N \prg_return_false: }
- }
- \cs_new:Npn \exp_not:N \__xparse_if_value_aux:w ##1 \c__xparse_no_value_tl
- {##1}
- }
\cs_new_protected:Npn \__xparse_check_definable:nNT #1
{ \exp_args:Nx \__xparse_check_definable_aux:nN { \tl_trim_spaces:n {#1} } }
\group_begin:
@@ -2131,12 +2112,12 @@
\cs_new_eq:NN \IfBooleanTF \bool_if:NTF
\cs_new_eq:NN \IfBooleanT \bool_if:NT
\cs_new_eq:NN \IfBooleanF \bool_if:NF
-\cs_new_eq:NN \IfNoValueF \__xparse_if_no_value:nF
-\cs_new_eq:NN \IfNoValueT \__xparse_if_no_value:nT
-\cs_new_eq:NN \IfNoValueTF \__xparse_if_no_value:nTF
-\cs_new:Npn \IfValueF { \__xparse_if_no_value:nT }
-\cs_new:Npn \IfValueT { \__xparse_if_no_value:nF }
-\cs_new:Npn \IfValueTF #1#2#3 { \__xparse_if_no_value:nTF {#1} {#3} {#2} }
+\cs_new_eq:NN \IfNoValueF \tl_if_novalue:nF
+\cs_new_eq:NN \IfNoValueT \tl_if_novalue:nT
+\cs_new_eq:NN \IfNoValueTF \tl_if_novalue:nTF
+\cs_new:Npn \IfValueF { \tl_if_novalue:nT }
+\cs_new:Npn \IfValueT { \tl_if_novalue:nF }
+\cs_new:Npn \IfValueTF #1#2#3 { \tl_if_novalue:nTF {#1} {#3} {#2} }
\tl_new:N \ProcessedArgument
\cs_new_eq:NN \ReverseBoolean \__xparse_bool_reverse:N
\cs_new_eq:NN \SplitArgument \__xparse_split_argument:nnn
diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
index 897feae9d8a..5da4faae5da 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
@@ -23,8 +23,8 @@
%% (C) Copyright 2004-2010 Frank Mittelbach,
%% The LaTeX3 Project
%% (C) Copyright 2011-2016 The LaTeX3 Project
-\RequirePackage{expl3}[2017/09/18]
-\@ifpackagelater{expl3}{2017/09/18}
+\RequirePackage{expl3}[2017/11/14]
+\@ifpackagelater{expl3}{2017/11/14}
{}
{%
\PackageError{xtemplate}{Support package l3kernel too old}
@@ -36,7 +36,7 @@
}%
\endinput
}
-\ProvidesExplPackage{xtemplate}{2017/09/18}{}
+\ProvidesExplPackage{xtemplate}{2017/11/14}{}
{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~>~ }