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/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.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3doc.cls37
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def57
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvips.def71
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def10
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def75
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def57
-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
14 files changed, 546 insertions, 171 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index ee3ce0a28f8..cf7dd09bf49 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -63,7 +63,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2018 The LaTeX3 Project
-\def\ExplFileDate{2018-08-23}%
+\def\ExplFileDate{2018-09-24}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -961,6 +961,10 @@
\__kernel_primitive:NN \automatichyphenpenalty
\tex_automatichyphenpenalty:D
\__kernel_primitive:NN \begincsname \tex_begincsname:D
+ \__kernel_primitive:NN \bodydir \tex_bodydir:D
+ \__kernel_primitive:NN \bodydirection \tex_bodydirection:D
+ \__kernel_primitive:NN \boxdir \tex_boxdir:D
+ \__kernel_primitive:NN \boxdirection \tex_boxdirection:D
\__kernel_primitive:NN \breakafterdirmode \tex_breakafterdirmode:D
\__kernel_primitive:NN \catcodetable \tex_catcodetable:D
\__kernel_primitive:NN \clearmarks \tex_clearmarks:D
@@ -969,12 +973,14 @@
\tex_crampedscriptscriptstyle:D
\__kernel_primitive:NN \crampedscriptstyle \tex_crampedscriptstyle:D
\__kernel_primitive:NN \crampedtextstyle \tex_crampedtextstyle:D
+ \__kernel_primitive:NN \csstring \tex_csstring:D
\__kernel_primitive:NN \directlua \tex_directlua:D
\__kernel_primitive:NN \dviextension \tex_dviextension:D
\__kernel_primitive:NN \dvifeedback \tex_dvifeedback:D
\__kernel_primitive:NN \dvivariable \tex_dvivariable:D
\__kernel_primitive:NN \etoksapp \tex_etoksapp:D
\__kernel_primitive:NN \etokspre \tex_etokspre:D
+ \__kernel_primitive:NN \exceptionpenalty \tex_exceptionpenalty:D
\__kernel_primitive:NN \explicithyphenpenalty \tex_explicithyphenpenalty:D
\__kernel_primitive:NN \expanded \tex_expanded:D
\__kernel_primitive:NN \explicitdiscretionary \tex_explicitdiscretionary:D
@@ -987,16 +993,34 @@
\__kernel_primitive:NN \hyphenationmin \tex_hyphenationmin:D
\__kernel_primitive:NN \hyphenpenaltymode \tex_hyphenpenaltymode:D
\__kernel_primitive:NN \gleaders \tex_gleaders:D
+ \__kernel_primitive:NN \ifcondition \tex_ifcondition:D
+ \__kernel_primitive:NN \immediateassigned \tex_immediateassigned:D
+ \__kernel_primitive:NN \immediateassignment \tex_immediateassignment:D
\__kernel_primitive:NN \initcatcodetable \tex_initcatcodetable:D
\__kernel_primitive:NN \lastnamedcs \tex_lastnamedcs:D
\__kernel_primitive:NN \latelua \tex_latelua:D
+ \__kernel_primitive:NN \lateluafunction \tex_lateluafunction:D
+ \__kernel_primitive:NN \leftghost \tex_leftghost:D
\__kernel_primitive:NN \letcharcode \tex_letcharcode:D
+ \__kernel_primitive:NN \linedir \tex_linedir:D
+ \__kernel_primitive:NN \linedirection \tex_linedirection:D
+ \__kernel_primitive:NN \localbrokenpenalty \tex_localbrokenpenalty:D
+ \__kernel_primitive:NN \localinterlinepenalty \tex_localinterlinepenalty:D
+ \__kernel_primitive:NN \luabytecode \tex_luabytecode:D
+ \__kernel_primitive:NN \luabytecodecall \tex_luabytecodecall:D
+ \__kernel_primitive:NN \luacopyinputnodes \tex_luacopyinputnodes:D
+ \__kernel_primitive:NN \luadef \tex_luadef:D
+ \__kernel_primitive:NN \localleftbox \tex_localleftbox:D
+ \__kernel_primitive:NN \localrightbox \tex_localrightbox:D
\__kernel_primitive:NN \luaescapestring \tex_luaescapestring:D
\__kernel_primitive:NN \luafunction \tex_luafunction:D
+ \__kernel_primitive:NN \luafunctioncall \tex_luafunctioncall:D
\__kernel_primitive:NN \luatexbanner \tex_luatexbanner:D
\__kernel_primitive:NN \luatexrevision \tex_luatexrevision:D
\__kernel_primitive:NN \luatexversion \tex_luatexversion:D
\__kernel_primitive:NN \mathdelimitersmode \tex_mathdelimitersmode:D
+ \__kernel_primitive:NN \mathdir \tex_mathdir:D
+ \__kernel_primitive:NN \mathdirection \tex_mathdirection:D
\__kernel_primitive:NN \mathdisplayskipmode \tex_mathdisplayskipmode:D
\__kernel_primitive:NN \matheqnogapstep \tex_matheqnogapstep:D
\__kernel_primitive:NN \mathnolimitsmode \tex_mathnolimitsmode:D
@@ -1005,6 +1029,7 @@
\__kernel_primitive:NN \mathrulesfam \tex_mathrulesfam:D
\__kernel_primitive:NN \mathscriptsmode \tex_mathscriptsmode:D
\__kernel_primitive:NN \mathscriptboxmode \tex_mathscriptboxmode:D
+ \__kernel_primitive:NN \mathscriptcharmode \tex_mathscriptcharmode:D
\__kernel_primitive:NN \mathstyle \tex_mathstyle:D
\__kernel_primitive:NN \mathsurroundmode \tex_mathsurroundmode:D
\__kernel_primitive:NN \mathsurroundskip \tex_mathsurroundskip:D
@@ -1015,9 +1040,13 @@
\__kernel_primitive:NN \novrule \tex_novrule:D
\__kernel_primitive:NN \outputbox \tex_outputbox:D
\__kernel_primitive:NN \pagebottomoffset \tex_pagebottomoffset:D
+ \__kernel_primitive:NN \pagedir \tex_pagedir:D
+ \__kernel_primitive:NN \pagedirection \tex_pagedirection:D
\__kernel_primitive:NN \pageleftoffset \tex_pageleftoffset:D
\__kernel_primitive:NN \pagerightoffset \tex_pagerightoffset:D
\__kernel_primitive:NN \pagetopoffset \tex_pagetopoffset:D
+ \__kernel_primitive:NN \pardir \tex_pardir:D
+ \__kernel_primitive:NN \pardirection \tex_pardirection:D
\__kernel_primitive:NN \pdfextension \tex_pdfextension:D
\__kernel_primitive:NN \pdffeedback \tex_pdffeedback:D
\__kernel_primitive:NN \pdfvariable \tex_pdfvariable:D
@@ -1028,6 +1057,7 @@
\__kernel_primitive:NN \preexhyphenchar \tex_preexhyphenchar:D
\__kernel_primitive:NN \prehyphenchar \tex_prehyphenchar:D
\__kernel_primitive:NN \prerelpenalty \tex_prerelpenalty:D
+ \__kernel_primitive:NN \rightghost \tex_rightghost:D
\__kernel_primitive:NN \savecatcodetable \tex_savecatcodetable:D
\__kernel_primitive:NN \scantextokens \tex_scantextokens:D
\__kernel_primitive:NN \setfontid \tex_setfontid:D
@@ -1038,23 +1068,12 @@
\__kernel_primitive:NN \suppressoutererror \tex_suppressoutererror:D
\__kernel_primitive:NN \suppressprimitiveerror
\tex_suppressprimitiveerror:D
+ \__kernel_primitive:NN \textdir \tex_textdir:D
+ \__kernel_primitive:NN \textdirection \tex_textdirection:D
\__kernel_primitive:NN \toksapp \tex_toksapp:D
\__kernel_primitive:NN \tokspre \tex_tokspre:D
\__kernel_primitive:NN \tpack \tex_tpack:D
\__kernel_primitive:NN \vpack \tex_vpack:D
- \__kernel_primitive:NN \bodydir \tex_bodydir:D
- \__kernel_primitive:NN \boxdir \tex_boxdir:D
- \__kernel_primitive:NN \leftghost \tex_leftghost:D
- \__kernel_primitive:NN \linedir \tex_linedir:D
- \__kernel_primitive:NN \localbrokenpenalty \tex_localbrokenpenalty:D
- \__kernel_primitive:NN \localinterlinepenalty \tex_localinterlinepenalty:D
- \__kernel_primitive:NN \localleftbox \tex_localleftbox:D
- \__kernel_primitive:NN \localrightbox \tex_localrightbox:D
- \__kernel_primitive:NN \mathdir \tex_mathdir:D
- \__kernel_primitive:NN \pagedir \tex_pagedir:D
- \__kernel_primitive:NN \pardir \tex_pardir:D
- \__kernel_primitive:NN \rightghost \tex_rightghost:D
- \__kernel_primitive:NN \textdir \tex_textdir:D
\__kernel_primitive:NN \adjustspacing \tex_adjustspacing:D
\__kernel_primitive:NN \copyfont \tex_copyfont:D
\__kernel_primitive:NN \draftmode \tex_draftmode:D
@@ -10130,6 +10149,7 @@
\cs_generate_variant:Nn \__kernel_msg_expandable_error:nnnn { nnff }
\cs_generate_variant:Nn \__kernel_msg_expandable_error:nnn { nnf }
%% File: l3file.dtx Copyright (C) 1990-2018 The LaTeX3 Project
+\tl_new:N \l__ior_internal_tl
\int_const:Nn \c_term_ior { 16 }
\seq_new:N \g__ior_streams_seq
\tl_new:N \l__ior_stream_tl
@@ -10268,7 +10288,6 @@
\__ior_map_inline_loop:NNN #1#2#3
}
}
-\tl_new:N \l__ior_internal_tl
\int_const:Nn \c_log_iow { -1 }
\int_const:Nn \c_term_iow
{
@@ -10665,6 +10684,7 @@
{ \tl_if_empty:NF #1 { \exp_after:wN \__iow_wrap_trim:w #1 \q_stop } }
\exp_last_unbraced:NNNNo
\cs_new:Npn \__iow_wrap_trim:w #1 \c_catcode_other_space_tl \q_stop {#1}
+\tl_new:N \l__file_internal_tl
\ior_new:N \g__file_internal_ior
\str_new:N \g_file_curr_dir_str
\str_new:N \g_file_curr_ext_str
@@ -10694,7 +10714,6 @@
{ \exp_after:wN \__file_tmp:w \@currnamestack }
\group_end:
\seq_new:N \g__file_record_seq
-\tl_new:N \l__file_tmp_tl
\str_new:N \l__file_base_name_str
\str_new:N \l__file_full_name_str
\str_new:N \l__file_dir_str
@@ -10707,14 +10726,14 @@
\group_begin:
\seq_map_inline:Nn \l_char_active_seq
{
- \tl_set:Nx \l__file_tmp_tl { \iow_char:N ##1 }
- \char_set_active_eq:NN ##1 \l__file_tmp_tl
+ \tl_set:Nx \l__file_internal_tl { \iow_char:N ##1 }
+ \char_set_active_eq:NN ##1 \l__file_internal_tl
}
- \tl_set:Nx \l__file_tmp_tl {#1}
- \tl_set:Nx \l__file_tmp_tl
- { \tl_to_str:N \l__file_tmp_tl }
+ \tl_set:Nx \l__file_internal_tl {#1}
+ \tl_set:Nx \l__file_internal_tl
+ { \tl_to_str:N \l__file_internal_tl }
\exp_args:NNNV \group_end:
- \str_set:Nn #2 \l__file_tmp_tl
+ \str_set:Nn #2 \l__file_internal_tl
}
\cs_new_protected:Npn \__file_name_quote:nN #1#2
{
@@ -10815,8 +10834,8 @@
\cs_new_eq:NN \__kernel_file_input_push:n \__file_input_push:n
\cs_new_protected:Npn \__file_input_pop:
{
- \seq_gpop:NN \g__file_stack_seq \l__file_tmp_tl
- \exp_after:wN \__file_input_pop:nnn \l__file_tmp_tl
+ \seq_gpop:NN \g__file_stack_seq \l__file_internal_tl
+ \exp_after:wN \__file_input_pop:nnn \l__file_internal_tl
}
\cs_new_eq:NN \__kernel_file_input_pop: \__file_input_pop:
\cs_new_protected:Npn \__file_input_pop:nnn #1#2#3
@@ -12371,42 +12390,45 @@
\cs:w \c__keys_code_root_tl \l_keys_path_tl \exp_after:wN \cs_end:
\exp_after:wN { \l_keys_value_tl }
}
- { \__keys_execute_unknown: }
- }
-\cs_new_protected:Npn \__keys_execute_unknown:
- {
- \bool_if:NTF \l__keys_only_known_bool
- { \__keys_store_unused: }
{
- \cs_if_exist:cTF
- { \c__keys_inherit_root_tl \__keys_parent:o \l_keys_path_tl }
+ \bool_if:NTF \l__keys_only_known_bool
+ { \__keys_store_unused: }
{
- \clist_map_inline:cn
+ \cs_if_exist:cTF
{ \c__keys_inherit_root_tl \__keys_parent:o \l_keys_path_tl }
- {
- \cs_if_exist:cT
- { \c__keys_code_root_tl ##1 / \l_keys_key_tl }
- {
- \cs:w \c__keys_code_root_tl ##1 / \l_keys_key_tl
- \exp_after:wN \cs_end: \exp_after:wN
- { \l_keys_value_tl }
- \clist_map_break:
- }
- }
+ { \__keys_execute_inherit: }
+ { \__keys_execute_unknown: }
}
+ }
+ }
+\cs_new_protected:Npn \__keys_execute_inherit:
+ {
+ \clist_map_inline:cn
+ { \c__keys_inherit_root_tl \__keys_parent:o \l_keys_path_tl }
+ {
+ \cs_if_exist:cT
+ { \c__keys_code_root_tl ##1 / \l_keys_key_tl }
{
- \cs_if_exist:cTF
- { \c__keys_code_root_tl \l__keys_module_tl / unknown }
- {
- \cs:w \c__keys_code_root_tl \l__keys_module_tl / unknown
- \exp_after:wN \cs_end: \exp_after:wN { \l_keys_value_tl }
- }
- {
- \__kernel_msg_error:nnxx { kernel } { key-unknown }
- { \l_keys_path_tl } { \l__keys_module_tl }
- }
+ \cs:w \c__keys_code_root_tl ##1 / \l_keys_key_tl
+ \exp_after:wN \cs_end: \exp_after:wN
+ { \l_keys_value_tl }
+ \clist_map_break:n { \use_none:n }
}
- }
+ }
+ \__keys_execute_unknown:
+ }
+\cs_new_protected:Npn \__keys_execute_unknown:
+ {
+ \cs_if_exist:cTF
+ { \c__keys_code_root_tl \l__keys_module_tl / unknown }
+ {
+ \cs:w \c__keys_code_root_tl \l__keys_module_tl / unknown
+ \exp_after:wN \cs_end: \exp_after:wN { \l_keys_value_tl }
+ }
+ {
+ \__kernel_msg_error:nnxx { kernel } { key-unknown }
+ { \l_keys_path_tl } { \l__keys_module_tl }
+ }
}
\cs_new:Npn \__keys_execute:nn #1#2
{
@@ -24737,18 +24759,11 @@
\group_end:
}
%% File: l3candidates.dtx Copyright (C) 2012-2018 The LaTeX3 Project
-\cs_new_protected:Npx \mode_leave_vertical:
+\cs_new_protected:Npn \mode_leave_vertical:
{
- \cs_if_exist:NTF \tex_quitvmode:D
- { \tex_quitvmode:D }
- {
- \exp_not:n
- {
- \if_mode_vertical:
- \exp_after:wN \tex_indent:D
- \fi:
- }
- }
+ \if_mode_vertical:
+ \exp_after:wN \tex_indent:D
+ \fi:
}
\cs_new_protected:Npn \box_clip:N #1
{ \hbox_set:Nn #1 { \driver_box_use_clip:N #1 } }
@@ -27014,6 +27029,53 @@
{ \__peek_token_generic:NNT \__peek_execute_branches_N_type: \scan_stop: }
\cs_new_protected:Npn \peek_N_type:F
{ \__peek_token_generic:NNF \__peek_execute_branches_N_type: \scan_stop: }
+\tl_new:N \l__peek_collect_tl
+\cs_new_protected:Npn \peek_catcode_collect_inline:Nn
+ { \__peek_collect:NNn \__peek_execute_branches_catcode: }
+\cs_new_protected:Npn \peek_charcode_collect_inline:Nn
+ { \__peek_collect:NNn \__peek_execute_branches_charcode: }
+\cs_new_protected:Npn \peek_meaning_collect_inline:Nn
+ { \__peek_collect:NNn \__peek_execute_branches_meaning: }
+\cs_new_protected:Npn \__peek_collect:NNn #1#2#3
+ {
+ \group_align_safe_begin:
+ \cs_set_eq:NN \l__peek_search_token #2
+ \tl_set:Nn \l__peek_search_tl {#2}
+ \tl_clear:N \l__peek_collect_tl
+ \cs_set:Npn \__peek_false:w
+ { \exp_args:No \__peek_false_aux:n \l__peek_collect_tl }
+ \cs_set:Npn \__peek_false_aux:n ##1
+ {
+ \group_align_safe_end:
+ #3
+ }
+ \cs_set_eq:NN \__peek_true:w \__peek_collect_true:w
+ \cs_set:Npn \__peek_true_aux:w { \peek_after:Nw #1 }
+ \__peek_true_aux:w
+ }
+\cs_new_protected:Npn \__peek_collect_true:w
+ {
+ \if_case:w
+ \if_catcode:w \exp_not:N \l_peek_token { 1 \exp_stop_f: \fi:
+ \if_catcode:w \exp_not:N \l_peek_token } 2 \exp_stop_f: \fi:
+ \if_meaning:w \l_peek_token \c_space_token 3 \exp_stop_f: \fi:
+ 0 \exp_stop_f:
+ \exp_after:wN \__peek_collect:N
+ \or: \__peek_collect_remove:nw { \c_group_begin_token }
+ \or: \__peek_collect_remove:nw { \c_group_end_token }
+ \or: \__peek_collect_remove:nw { ~ }
+ \fi:
+ }
+\cs_new_protected:Npn \__peek_collect:N #1
+ {
+ \tl_put_right:Nn \l__peek_collect_tl {#1}
+ \__peek_true_aux:w
+ }
+\cs_new_protected:Npn \__peek_collect_remove:nw #1
+ {
+ \tl_put_right:Nn \l__peek_collect_tl {#1}
+ \exp_after:wN \__peek_true_remove:w
+ }
%% File: l3deprecation.dtx (C) Copyright 2017-2018 The LaTeX3 Project
\cs_new_protected:Npn \__kernel_deprecation_error:Nnn #1#2#3
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 373507a4c79..f2b84f74d19 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-2018 The LaTeX3 Project
-\def\ExplFileDate{2018-08-23}%
+\def\ExplFileDate{2018-09-24}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\def\tempa{LaTeX2e}%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index 6c3b94acfda..5252ad1cbe0 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-2018 The LaTeX3 Project
-\def\ExplFileDate{2018-08-23}%
+\def\ExplFileDate{2018-09-24}%
\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 3247d6f568c..f796c9937a9 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
@@ -57,6 +57,8 @@
\bool_new:N \g__codedoc_checkfunc_bool
\bool_new:N \g__codedoc_checktest_bool
\bool_new:N \g__codedoc_kernel_bool
+\bool_new:N \g__codedoc_cs_break_bool
+\bool_gset_true:N \g__codedoc_cs_break_bool
\tl_new:N \l__codedoc_tmpa_tl
\tl_new:N \l__codedoc_tmpb_tl
\int_new:N \l__codedoc_tmpa_int
@@ -416,6 +418,10 @@
{ \bool_gset_false:N \g__codedoc_lmodern_bool }
\DeclareOption { lm-default }
{ \bool_gset_true:N \g__codedoc_lmodern_bool }
+\DeclareOption { cs-break-off }
+ { \bool_gset_false:N \g__codedoc_cs_break_bool }
+\DeclareOption { cs-break-nohyphen }
+ { \PassOptionsToPackage{nohyphen}{underscore} }
\DeclareOption* { \PassOptionsToClass { \CurrentOption } { article } }
\ExecuteOptions { full, kernel, nocheck, nochecktest, lm-default }
\PassOptionsToClass { a4paper } { article }
@@ -446,9 +452,9 @@
pifont,
textcomp,
trace,
- underscore,
csquotes,
fancyvrb,
+ underscore,
verbatim
}
\raggedbottom
@@ -686,18 +692,23 @@
\tl_replace_all:Nno \l__codedoc_cmd_tl { _ } \l__codedoc_tmpb_tl
}
\mode_if_math:T { \mbox }
- {
- \verbatim@font
- \__codedoc_if_almost_str:VT \l__codedoc_cmd_tl
- {
- \tl_set:Nx \l__codedoc_cmd_tl { \tl_to_str:N \l__codedoc_cmd_tl }
- \tl_replace_all:Non \l__codedoc_cmd_tl
- { \token_to_str:N _ } { \_ }
- }
- \tl_replace_all:Nnn \l__codedoc_cmd_tl { ~ } { \@xobeysp }
- \l__codedoc_cmd_tl
- \@
- }
+ {
+ \verbatim@font
+ \__codedoc_if_almost_str:VT \l__codedoc_cmd_tl
+ {
+ \tl_set:Nx \l__codedoc_cmd_tl { \tl_to_str:N \l__codedoc_cmd_tl }
+ \bool_if:NT \g__codedoc_cs_break_bool
+ {
+ \regex_replace_all:nnN
+ {([^\\])_([^\_])}
+ {\1\c{BreakableUnderscore}\2}
+ \l__codedoc_cmd_tl
+ }
+ }
+ \tl_replace_all:Nnn \l__codedoc_cmd_tl { ~ } { \@xobeysp }
+ \l__codedoc_cmd_tl
+ \@
+ }
\bool_if:NF \l__codedoc_cmd_noindex_bool
{
\quark_if_no_value:NF \l__codedoc_cmd_index_tl
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
index e4dc5a16b41..cf97021907a 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
@@ -20,7 +20,7 @@
%%
%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
\ProvidesExplFile
- {l3dvidpfmx.def}{2018-08-23}{}
+ {l3dvidpfmx.def}{2018-09-24}{}
{L3 Experimental driver: dvipdfmx}
\cs_new_eq:NN \__driver_literal:e \tex_special:D
\cs_new_protected:Npn \__driver_literal:n #1
@@ -68,7 +68,7 @@
{ rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
}
\cs_new_protected:Npn \driver_color_spot:nn #1#2
- { \__driver_color_select:n { \c_space_tl #1 } }
+ { \__driver_color_select:n { #1 } }
\cs_new_protected:Npn \__driver_color_select:n #1
{
\__driver_literal:n { color~push~ #1 }
@@ -208,6 +208,59 @@
}
}
}
+\int_new:N \g__driver_pdf_object_int
+\prop_new:N \g__driver_pdf_object_prop
+\cs_new_protected:Npn \driver_pdf_object_new:nn #1#2
+ {
+ \int_gincr:N \g__driver_pdf_object_int
+ \int_const:cn
+ { g__driver_pdf_object_ \tl_to_str:n {#1} _int }
+ { \g__driver_pdf_object_int }
+ \prop_gput:Nnn \g__driver_pdf_object_prop {#1} {#2}
+ }
+\cs_new:Npn \driver_pdf_object_ref:n #1
+ { @l3obj \int_use:c { g__driver_pdf_object_ \tl_to_str:n {#1} _int } }
+\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2
+ {
+ \exp_args:Nx \__driver_pdf_object_write:nnn
+ { \prop_item:Nn \g__driver_pdf_object_prop {#1} } {#1} {#2}
+ }
+\cs_new_protected:Npn \__driver_pdf_object_write:nnn #1#2#3
+ { \use:c { __driver_pdf_object_write_ #1 :nn } {#2} {#3} }
+\cs_new_protected:Npn \__driver_pdf_object_write_array:nn #1#2
+ {
+ \__driver_literal:x
+ {
+ pdf:obj ~ \driver_pdf_object_ref:n {#1} ~
+ [ ~ \exp_not:n {#2} ~ ]
+ }
+ }
+\cs_new_protected:Npn \__driver_pdf_object_write_dict:nn #1#2
+ {
+ \__driver_literal:x
+ {
+ pdf:obj ~ \driver_pdf_object_ref:n {#1} ~
+ << ~ \exp_not:n {#2} ~ >>
+ }
+ }
+\cs_new_protected:Npn \__driver_pdf_object_write_fstream:nn #1#2
+ { \__driver_pdf_object_write_stream:nnnn { f } {#1} #2 }
+\cs_new_protected:Npn \__driver_pdf_object_write_stream:nn #1#2
+ { \__driver_pdf_object_write_stream:nnnn { } {#1} #2 }
+\cs_new_protected:Npn \__driver_pdf_object_write_stream:nnnn #1#2#3#4
+ {
+ \__driver_literal:x
+ {
+ pdf: #1 stream ~ \driver_pdf_object_ref:n {#2} ~
+ ( \exp_not:n {#4} ) ~ << \exp_not:n {#3} >>
+
+ }
+ }
+\cs_new_protected:Npn \driver_pdf_compresslevel:n #1
+ { \__driver_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } }
+\cs_new_protected:Npn \driver_pdf_objects_enable: { }
+\cs_new_protected:Npn \driver_pdf_objects_disable:
+ { \__driver_literal:n { dvipdfmx:config~C~0x40 } }
\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_pdf:n
\cs_generate_variant:Nn \__driver_draw_literal:n { x }
\cs_new_protected:Npn \driver_draw_begin:
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
index 920c8628651..6c8e6f89389 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
@@ -20,7 +20,7 @@
%%
%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
\ProvidesExplFile
- {l3dvips.def}{2018-08-23}{}
+ {l3dvips.def}{2018-09-24}{}
{L3 Experimental driver: dvips}
\cs_new_eq:NN \__driver_literal:e \tex_special:D
\cs_new_protected:Npn \__driver_literal:n #1
@@ -68,7 +68,7 @@
{ rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
}
\cs_new_protected:Npn \driver_color_spot:nn #1#2
- { \__driver_color_select:n { \c_space_tl #1 } }
+ { \__driver_color_select:n { #1 } }
\cs_new_protected:Npn \__driver_color_select:n #1
{
\__driver_literal:n { color~push~ #1 }
@@ -394,6 +394,73 @@
\__driver_draw_literal:n { [begin] }
\__driver_draw_literal:n { @beginspecial }
}
+\int_new:N \g__driver_pdf_object_int
+\prop_new:N \g__driver_pdf_object_prop
+\cs_new_protected:Npn \driver_pdf_object_new:nn #1#2
+ {
+ \int_gincr:N \g__driver_pdf_object_int
+ \int_const:cn
+ { g__driver_pdf_object_ \tl_to_str:n {#1} _int }
+ { \g__driver_pdf_object_int }
+ \prop_gput:Nnn \g__driver_pdf_object_prop {#1} {#2}
+ }
+\cs_new:Npn \driver_pdf_object_ref:n #1
+ { { l3obj \int_use:c { g__driver_pdf_object_ \tl_to_str:n {#1} _int } } }
+\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2
+ {
+ \__driver_literal_postscript:x
+ {
+ mark ~ /_objdef ~ \driver_pdf_object_ref:n {#1} ~
+ /type
+ \str_case_e:nn
+ { \prop_item:Nn \g__driver_pdf_object_prop {#1} }
+ {
+ { array } { /array }
+ { dict } { /dict }
+ { fstream } { /stream }
+ { stream } { /stream }
+ }
+ /OBJ ~ pdfmark
+ }
+ \use:c
+ { __driver_pdf_object_write_ \prop_item:Nn \g__driver_pdf_object_prop {#1} :nn }
+ {#1} {#2}
+ }
+\cs_new_protected:Npn \__driver_pdf_object_write_array:nn #1#2
+ {
+ \__driver_literal_postscript:x
+ {
+ mark ~ \driver_pdf_object_ref:n {#1} ~
+ [ ~ \exp_not:n {#2} ~ ] ~ /PUTINTERVAL ~ pdfmark
+ }
+ }
+\cs_new_protected:Npn \__driver_pdf_object_write_dict:nn #1#2
+ {
+ \__driver_literal_postscript:x
+ {
+ mark ~ \driver_pdf_object_ref:n {#1} ~
+ << ~ \exp_not:n {#2} ~ >> ~ /PUT ~ pdfmark
+ }
+ }
+\cs_new_protected:Npn \__driver_pdf_object_write_stream:nn #1#2
+ {
+ \exp_args:Nx
+ \__driver_pdf_object_write_stream:nnn
+ { \driver_pdf_object_ref:n {#1} }
+ #2
+ }
+\cs_new_protected:Npn \__driver_pdf_object_write_stream:nnn #1#2#3
+ {
+ \__driver_literal_postscript:n
+ {
+ [nobreak] ~
+ mark ~ #1 ~ ( #3 ) ~ /PUT ~ pdfmark ~
+ mark ~ #1 ~ << #2 >> ~ /PUT ~ pdfmark
+ }
+ }
+\cs_new_protected:Npn \driver_pdf_compresslevel:n #1 { }
+\cs_new_protected:Npn \driver_pdf_objects_enable: { }
+\cs_new_protected:Npn \driver_pdf_objects_disable: { }
%%
%%
%% End of file `l3dvips.def'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
index 32d4f658f60..467baf479fb 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
@@ -20,7 +20,7 @@
%%
%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
\ProvidesExplFile
- {l3dvisvgm.def}{2018-08-23}{}
+ {l3dvisvgm.def}{2018-09-24}{}
{L3 Experimental driver: dvisvgm}
\cs_new_eq:NN \__driver_literal:e \tex_special:D
\cs_new_protected:Npn \__driver_literal:n #1
@@ -68,7 +68,7 @@
{ rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
}
\cs_new_protected:Npn \driver_color_spot:nn #1#2
- { \__driver_color_select:n { \c_space_tl #1 } }
+ { \__driver_color_select:n { #1 } }
\cs_new_protected:Npn \__driver_color_select:n #1
{
\__driver_literal:n { color~push~ #1 }
@@ -186,6 +186,12 @@
\cs_new_eq:NN \__driver_image_include_jpg:n \__driver_image_include_png:n
\cs_new:Npn \__driver_image_include_bitmap_quote:w #1 " #2 " #3 \q_stop
{ #1#2 }
+\cs_new_protected:Npn \driver_pdf_object_new:n #1 { }
+\cs_new:Npn \driver_pdf_object_ref:n #1 { }
+\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2 { }
+\cs_new_protected:Npn \driver_pdf_compresslevel:n #1 { }
+\cs_new_protected:Npn \driver_pdf_objects_enable: { }
+\cs_new_protected:Npn \driver_pdf_objects_disable: { }
\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_svg:n
\cs_generate_variant:Nn \__driver_draw_literal:n { x }
\cs_new_protected:Npn \driver_draw_begin:
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
index be271f63788..0435270fb92 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
@@ -20,7 +20,7 @@
%%
%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
\ProvidesExplFile
- {l3pdfmode.def}{2018-08-23}{}
+ {l3pdfmode.def}{2018-09-24}{}
{L3 Experimental driver: PDF mode}
\cs_new_eq:NN \__driver_literal:e \tex_special:D
\cs_new_protected:Npn \__driver_literal:n #1
@@ -264,6 +264,79 @@
}
\cs_new_eq:NN \__driver_image_include_pdf:n \__driver_image_include_jpg:n
\cs_new_eq:NN \__driver_image_include_png:n \__driver_image_include_jpg:n
+\prop_new:N \g__driver_pdf_object_prop
+\group_begin:
+ \cs_set_protected:Npn \__driver_tmp:w #1#2
+ {
+ \cs_new_protected:Npx \driver_pdf_object_new:nn ##1##2
+ {
+ #1 reserveobjnum ~
+ \int_const:cn
+ { g__driver_pdf_object_ \exp_not:N \tl_to_str:n {##1} _int }
+ {#2}
+ \prop_gput:Nnn \exp_not:N \g__driver_pdf_object_prop {##1} {##2}
+ }
+ }
+ \cs_if_exist:NTF \tex_pdfextension:D
+ {
+ \__driver_tmp:w
+ { \tex_pdfextension:D obj ~ }
+ { \tex_pdffeedback:D lastobj \scan_stop: }
+ }
+ { \__driver_tmp:w { \tex_pdfobj:D } { \tex_pdflastobj:D } }
+\group_end:
+\cs_new:Npn \driver_pdf_object_ref:n #1
+ { \int_use:c { g__driver_pdf_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R }
+\group_begin:
+ \cs_set_protected:Npn \__driver_tmp:w #1
+ {
+ \cs_new_protected:Npn \driver_pdf_object_write:nn ##1##2
+ {
+ \tex_immediate:D #1 useobjnum ~
+ \int_use:c
+ { g__driver_pdf_object_ \tl_to_str:n {##1} _int }
+ \str_case_e:nn
+ { \prop_item:Nn \g__driver_pdf_object_prop {##1} }
+ {
+ { array } { { [ ~ \exp_not:n {##2} ~ ] } }
+ { dict } { { << ~ \exp_not:n {##2} ~ >> } }
+ { fstream }
+ {
+ stream ~ attr ~ { \__driver_exp_not_i:nn ##2 } ~
+ file ~ { \__driver_exp_not_ii:nn ##2 }
+ }
+ { stream }
+ {
+ stream ~ attr ~ { \__driver_exp_not_i:nn ##2 } ~
+ { \__driver_exp_not_ii:nn ##2 }
+ }
+ }
+ }
+ }
+ \cs_if_exist:NTF \tex_pdfextension:D
+ { \__driver_tmp:w { \tex_pdfextension:D obj ~ } }
+ { \__driver_tmp:w { \tex_pdfobj:D } }
+\group_end:
+\cs_new:Npn \__driver_exp_not_i:nn #1#2 { \exp_not:n {#1} }
+\cs_new:Npn \__driver_exp_not_ii:nn #1#2 { \exp_not:n {#2} }
+\cs_new_protected:Npx \driver_pdf_compresslevel:n #1
+ {
+ \cs_if_exist:NTF \tex_pdfcompresslevel:D
+ { \tex_pdfcompresslevel:D }
+ { \tex_pdfvariable:D compresslevel }
+ \exp_not:N \int_value:w \exp_not:N \int_eval:n {#1} \scan_stop:
+ }
+\cs_new_protected:Npn \driver_pdf_objects_enable:
+ { \__driver_pdf_objectlevel:n { 2 } }
+\cs_new_protected:Npn \driver_pdf_objects_disable:
+ { \__driver_pdf_objectlevel:n { 0 } }
+\cs_new_protected:Npx \__driver_pdf_objectlevel:n #1
+ {
+ \cs_if_exist:NTF \tex_pdfobjcompresslevel:D
+ { \tex_pdfobjcompresslevel:D }
+ { \tex_pdfvariable:D objcompresslevel }
+ #1 \scan_stop:
+ }
\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_pdf:n
\cs_generate_variant:Nn \__driver_draw_literal:n { x }
\cs_new_protected:Npn \driver_draw_begin:
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
index afaabad8519..d1e6c9c80d0 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
@@ -20,7 +20,7 @@
%%
%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
\ProvidesExplFile
- {l3xdvidpfmx.def}{2018-08-23}{}
+ {l3xdvidpfmx.def}{2018-09-24}{}
{L3 Experimental driver: xdvipdfmx}
\cs_new_eq:NN \__driver_literal:e \tex_special:D
\cs_new_protected:Npn \__driver_literal:n #1
@@ -68,7 +68,7 @@
{ rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
}
\cs_new_protected:Npn \driver_color_spot:nn #1#2
- { \__driver_color_select:n { \c_space_tl #1 } }
+ { \__driver_color_select:n { #1 } }
\cs_new_protected:Npn \__driver_color_select:n #1
{
\__driver_literal:n { color~push~ #1 }
@@ -193,6 +193,59 @@
}
}
}
+\int_new:N \g__driver_pdf_object_int
+\prop_new:N \g__driver_pdf_object_prop
+\cs_new_protected:Npn \driver_pdf_object_new:nn #1#2
+ {
+ \int_gincr:N \g__driver_pdf_object_int
+ \int_const:cn
+ { g__driver_pdf_object_ \tl_to_str:n {#1} _int }
+ { \g__driver_pdf_object_int }
+ \prop_gput:Nnn \g__driver_pdf_object_prop {#1} {#2}
+ }
+\cs_new:Npn \driver_pdf_object_ref:n #1
+ { @l3obj \int_use:c { g__driver_pdf_object_ \tl_to_str:n {#1} _int } }
+\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2
+ {
+ \exp_args:Nx \__driver_pdf_object_write:nnn
+ { \prop_item:Nn \g__driver_pdf_object_prop {#1} } {#1} {#2}
+ }
+\cs_new_protected:Npn \__driver_pdf_object_write:nnn #1#2#3
+ { \use:c { __driver_pdf_object_write_ #1 :nn } {#2} {#3} }
+\cs_new_protected:Npn \__driver_pdf_object_write_array:nn #1#2
+ {
+ \__driver_literal:x
+ {
+ pdf:obj ~ \driver_pdf_object_ref:n {#1} ~
+ [ ~ \exp_not:n {#2} ~ ]
+ }
+ }
+\cs_new_protected:Npn \__driver_pdf_object_write_dict:nn #1#2
+ {
+ \__driver_literal:x
+ {
+ pdf:obj ~ \driver_pdf_object_ref:n {#1} ~
+ << ~ \exp_not:n {#2} ~ >>
+ }
+ }
+\cs_new_protected:Npn \__driver_pdf_object_write_fstream:nn #1#2
+ { \__driver_pdf_object_write_stream:nnnn { f } {#1} #2 }
+\cs_new_protected:Npn \__driver_pdf_object_write_stream:nn #1#2
+ { \__driver_pdf_object_write_stream:nnnn { } {#1} #2 }
+\cs_new_protected:Npn \__driver_pdf_object_write_stream:nnnn #1#2#3#4
+ {
+ \__driver_literal:x
+ {
+ pdf: #1 stream ~ \driver_pdf_object_ref:n {#2} ~
+ ( \exp_not:n {#4} ) ~ << \exp_not:n {#3} >>
+
+ }
+ }
+\cs_new_protected:Npn \driver_pdf_compresslevel:n #1
+ { \__driver_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } }
+\cs_new_protected:Npn \driver_pdf_objects_enable: { }
+\cs_new_protected:Npn \driver_pdf_objects_disable:
+ { \__driver_literal:n { dvipdfmx:config~C~0x40 } }
\cs_new_protected:Npn \__driver_image_getbb_jpg:n #1
{
\int_zero:N \l_image_page_int
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~>~ }