summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-09-19 22:02:28 +0000
committerKarl Berry <karl@freefriends.org>2017-09-19 22:02:28 +0000
commit435c95be6f25ed57497eb521c9885bc0712e17bf (patch)
tree83bc4b2a5535e959e1917265be06bcef908bcbaf /Master/texmf-dist/tex/latex/l3kernel
parent25f52d925614aa8433200addac102a4b9a2dffe3 (diff)
l3 (19sep17)
git-svn-id: svn://tug.org/texlive/trunk@45340 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex250
-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.cls57
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvips.def12
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def12
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def27
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def8
9 files changed, 281 insertions, 97 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 55ca81971be..4e9108fafe9 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/07/19}%
+\def\ExplFileDate{2017/09/18}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -1552,6 +1552,36 @@
{ }
\__debug:TF
{
+ \exp_args:Nc \cs_set_protected:Npn { __debug_check-expressions_on: }
+ {
+ \cs_set:Npn \__debug_chk_expr:nNnN ##1##2
+ {
+ \exp_after:wN \__debug_chk_expr_aux:nNnN
+ \exp_after:wN { \tex_the:D ##2 ##1 \tex_relax:D }
+ ##2
+ }
+ }
+ \exp_args:Nc \cs_set_protected:Npn { __debug_check-expressions_off: }
+ { \cs_set:Npn \__debug_chk_expr:nNnN ##1##2##3##4 {##1} }
+ \use:c { __debug_check-expressions_off: }
+ \cs_set:Npn \__debug_chk_expr_aux:nNnN #1#2#3#4
+ {
+ \tl_if_empty:oF
+ {
+ \tex_romannumeral:D - 0
+ \exp_after:wN \use_none:n
+ \__int_value:w #3 #2 #1 \tex_relax:D
+ }
+ {
+ \__msg_kernel_expandable_error:nnnn
+ { kernel } { expr } {#4} {#1}
+ }
+ #1
+ }
+ }
+ { }
+\__debug:TF
+ {
\exp_args:Nc \cs_set_protected:Npn { __debug_log-functions_on: }
{
\cs_set_protected:Npn \__debug_log:x { \iow_log:x }
@@ -4763,10 +4793,12 @@
\cs_new_eq:NN \__int_eval_end: \tex_relax:D
\cs_new_eq:NN \if_int_odd:w \tex_ifodd:D
\cs_new_eq:NN \if_case:w \tex_ifcase:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_eval:n } }
\cs_new:Npn \int_eval:n #1
{ \__int_value:w \__int_eval:w #1 \__int_eval_end: }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_abs:n } }
\cs_new:Npn \int_abs:n #1
{
\__int_value:w \exp_after:wN \__int_abs:N
@@ -4775,7 +4807,11 @@
}
\cs_new:Npn \__int_abs:N #1
{ \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_max:nn }
+ { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_max:nn }
+ }
\cs_set:Npn \int_max:nn #1#2
{
\__int_value:w \exp_after:wN \__int_maxmin:wwN
@@ -4784,7 +4820,11 @@
>
\exp_stop_f:
}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_min:nn }
+ { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_min:nn }
+ }
\cs_set:Npn \int_min:nn #1#2
{
\__int_value:w \exp_after:wN \__int_maxmin:wwN
@@ -4801,7 +4841,11 @@
#2
\fi:
}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_div_truncate:nn }
+ { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_div_truncate:nn }
+ }
\cs_new:Npn \int_div_truncate:nn #1#2
{
\__int_value:w \__int_eval:w
@@ -4825,7 +4869,11 @@
}
\cs_new:Npn \int_div_round:nn #1#2
{ \__int_value:w \__int_eval:w ( #1 ) / ( #2 ) \__int_eval_end: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_mod:nn }
+ { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_mod:nn }
+ }
\cs_new:Npn \int_mod:nn #1#2
{
\__int_value:w \__int_eval:w \exp_after:wN \__int_mod:ww
@@ -4841,6 +4889,8 @@
\cs:w newcount \cs_end: #1
}
\cs_generate_variant:Nn \int_new:N { c }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_const:Nn } }
\cs_new_protected:Npn \int_const:Nn #1#2
{
\int_compare:nNnTF {#2} < \c_zero
@@ -4857,7 +4907,7 @@
{
\__chk_if_free_cs:N #1
\tex_global:D \__int_constdef:Nw #1 =
- \__int_eval:w (#2) \__int_eval_end:
+ \__int_eval:w #2 \__int_eval_end:
}
}
}
@@ -4895,10 +4945,12 @@
{ TF , T , F , p }
\prg_new_eq_conditional:NNn \int_if_exist:c \cs_if_exist:c
{ TF , T , F , p }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_add:Nn } }
\cs_new_protected:Npn \int_add:Nn #1#2
{ \tex_advance:D #1 by \__int_eval:w #2 \__int_eval_end: }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_sub:Nn } }
\cs_new_protected:Npn \int_sub:Nn #1#2
{ \tex_advance:D #1 by - \__int_eval:w #2 \__int_eval_end: }
\cs_new_protected:Npn \int_gadd:Nn
@@ -4921,7 +4973,8 @@
\cs_generate_variant:Nn \int_decr:N { c }
\cs_generate_variant:Nn \int_gincr:N { c }
\cs_generate_variant:Nn \int_gdecr:N { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_set:Nn } }
\cs_new_protected:Npn \int_set:Nn #1#2
{ #1 ~ \__int_eval:w #2 \__int_eval_end: }
\cs_new_protected:Npn \int_gset:Nn { \tex_global:D \int_set:Nn }
@@ -4997,7 +5050,12 @@
{ \__int_compare:nnN { \if_int_compare:w } {#3} > }
\cs_new:cpn { __int_compare_>=:NNw } #1#2#3 >=
{ \__int_compare:nnN { \if_int_compare:w } {#3} < }
-\__debug_patch_conditional_args:nNNpnn { { (#1) \__int_eval_end: } {#2} { (#3) } }
+\__debug_patch_conditional_args:nNNpnn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_compare:nNn }
+ { \__int_eval_end: #2 }
+ { \__debug_chk_expr:nNnN {#3} \__int_eval:w { } \int_compare:nNn }
+ }
\prg_new_conditional:Npnn \int_compare:nNn #1#2#3 { p , T , F , TF }
{
\if_int_compare:w \__int_eval:w #1 #2 \__int_eval:w #3 \__int_eval_end:
@@ -5035,7 +5093,8 @@
{ \__int_case:nw {#1} }
}
\cs_new_eq:NN \__int_case_end:nw \__prg_case_end:nw
-\__debug_patch_conditional_args:nNNpnn { { (#1) } }
+\__debug_patch_conditional_args:nNNpnn
+ { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_if_odd:n } }
\prg_new_conditional:Npnn \int_if_odd:n #1 { p , T , F , TF}
{
\if_int_odd:w \__int_eval:w #1 \__int_eval_end:
@@ -5044,7 +5103,8 @@
\prg_return_false:
\fi:
}
-\__debug_patch_conditional_args:nNNpnn { { (#1) } }
+\__debug_patch_conditional_args:nNNpnn
+ { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_if_even:n } }
\prg_new_conditional:Npnn \int_if_even:n #1 { p , T , F , TF}
{
\if_int_odd:w \__int_eval:w #1 \__int_eval_end:
@@ -5109,7 +5169,12 @@
\int_compare:nNnF {#1} #2 {#3}
{ \int_do_until:nNnn {#1} #2 {#3} {#4} }
}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } { (#3) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_step_function:nnnN }
+ { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_step_function:nnnN }
+ { \__debug_chk_expr:nNnN {#3} \__int_eval:w { } \int_step_function:nnnN }
+ }
\cs_new:Npn \int_step_function:nnnN #1#2#3
{
\exp_after:wN \__int_step:wwwN
@@ -6893,6 +6958,7 @@
}
\fi:
\group_end:
+\tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\ } { 12 } }
\cs_new_protected:Npn \token_new:Nn #1#2 { \cs_new_eq:NN #1 #2 }
\group_begin:
\__chk_if_free_cs:N \c_group_begin_token
@@ -8272,6 +8338,7 @@
'\iow_char:N\\debug_off:n'~only~accept~the~arguments~
'check-declarations',~'deprecation',~'log-functions',~not~'#1'.
}
+ \__msg_kernel_new:nnn { kernel } { expr } { '#2'~in~#1 }
\__msg_kernel_new:nnnn { kernel } { non-declared-variable }
{ The~variable~#1~has~not~been~declared~\msg_line_context:. }
{
@@ -8929,7 +8996,6 @@
\cs_new_protected:Npn \iow_term:n { \iow_now:Nn \c_term_iow }
\cs_new:Npn \iow_newline: { ^^J }
\cs_new_eq:NN \iow_char:N \cs_to_str:N
-\tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\ } { 12 } }
\int_new:N \l_iow_line_count_int
\int_set:Nn \l_iow_line_count_int { 78 }
\tl_new:N \l__iow_newline_tl
@@ -9317,7 +9383,8 @@
{ TF , T , F , p }
\prg_new_eq_conditional:NNn \dim_if_exist:c \cs_if_exist:c
{ TF , T , F , p }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_set:Nn } }
\cs_new_protected:Npn \dim_set:Nn #1#2
{ #1 ~ \__dim_eval:w #2 \__dim_eval_end: }
\cs_new_protected:Npn \dim_gset:Nn { \tex_global:D \dim_set:Nn }
@@ -9329,19 +9396,22 @@
\cs_new_protected:Npn \dim_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
\cs_generate_variant:Nn \dim_gset_eq:NN { c }
\cs_generate_variant:Nn \dim_gset_eq:NN { Nc , cc }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_add:Nn } }
\cs_new_protected:Npn \dim_add:Nn #1#2
{ \tex_advance:D #1 by \__dim_eval:w #2 \__dim_eval_end: }
\cs_new_protected:Npn \dim_gadd:Nn { \tex_global:D \dim_add:Nn }
\cs_generate_variant:Nn \dim_add:Nn { c }
\cs_generate_variant:Nn \dim_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_sub:Nn } }
\cs_new_protected:Npn \dim_sub:Nn #1#2
{ \tex_advance:D #1 by - \__dim_eval:w #2 \__dim_eval_end: }
\cs_new_protected:Npn \dim_gsub:Nn { \tex_global:D \dim_sub:Nn }
\cs_generate_variant:Nn \dim_sub:Nn { c }
\cs_generate_variant:Nn \dim_gsub:Nn { c }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_abs:n } }
\cs_new:Npn \dim_abs:n #1
{
\exp_after:wN \__dim_abs:N
@@ -9349,7 +9419,11 @@
}
\cs_new:Npn \__dim_abs:N #1
{ \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_max:nn }
+ { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_max:nn }
+ }
\cs_new:Npn \dim_max:nn #1#2
{
\dim_use:N \__dim_eval:w \exp_after:wN \__dim_maxmin:wwN
@@ -9358,7 +9432,11 @@
>
\__dim_eval_end:
}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_min:nn }
+ { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_min:nn }
+ }
\cs_new:Npn \dim_min:nn #1#2
{
\dim_use:N \__dim_eval:w \exp_after:wN \__dim_maxmin:wwN
@@ -9379,7 +9457,12 @@
{ \__dim_ratio:n {#1} / \__dim_ratio:n {#2} }
\cs_new:Npn \__dim_ratio:n #1
{ \__int_value:w \__dim_eval:w (#1) \__dim_eval_end: }
-\__debug_patch_conditional_args:nNNpnn { { (#1) \__dim_eval_end: } {#2} { (#3) } }
+\__debug_patch_conditional_args:nNNpnn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_compare:nNn }
+ { \__dim_eval_end: #2 }
+ { \__debug_chk_expr:nNnN {#3} \__dim_eval:w { } \dim_compare:nNn }
+ }
\prg_new_conditional:Npnn \dim_compare:nNn #1#2#3 { p , T , F , TF }
{
\if_dim:w \__dim_eval:w #1 #2 \__dim_eval:w #3 \__dim_eval_end:
@@ -9506,12 +9589,14 @@
\dim_compare:nNnF {#1} #2 {#3}
{ \dim_do_until:nNnn {#1} #2 {#3} {#4} }
}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_eval:n } }
\cs_new:Npn \dim_eval:n #1
{ \dim_use:N \__dim_eval:w #1 \__dim_eval_end: }
\cs_new_eq:NN \dim_use:N \tex_the:D
\cs_new:Npn \dim_use:c #1 { \tex_the:D \cs:w #1 \cs_end: }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_to_decimal:n } }
\cs_new:Npn \dim_to_decimal:n #1
{
\exp_after:wN
@@ -9529,7 +9614,8 @@
}
\cs_new:Npn \dim_to_decimal_in_bp:n #1
{ \dim_to_decimal:n { ( #1 ) * 800 / 803 } }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_to_decimal_in_sp:n } }
\cs_new:Npn \dim_to_decimal_in_sp:n #1
{ \int_eval:n { \__dim_eval:w #1 \__dim_eval_end: } }
\cs_new:Npn \dim_to_decimal_in_unit:nn #1#2
@@ -9580,7 +9666,8 @@
{ TF , T , F , p }
\prg_new_eq_conditional:NNn \skip_if_exist:c \cs_if_exist:c
{ TF , T , F , p }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_set:Nn } }
\cs_new_protected:Npn \skip_set:Nn #1#2
{ #1 ~ \etex_glueexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \skip_gset:Nn { \tex_global:D \skip_set:Nn }
@@ -9592,13 +9679,15 @@
\cs_new_protected:Npn \skip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
\cs_generate_variant:Nn \skip_gset_eq:NN { c }
\cs_generate_variant:Nn \skip_gset_eq:NN { Nc , cc }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_add:Nn } }
\cs_new_protected:Npn \skip_add:Nn #1#2
{ \tex_advance:D #1 by \etex_glueexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \skip_gadd:Nn { \tex_global:D \skip_add:Nn }
\cs_generate_variant:Nn \skip_add:Nn { c }
\cs_generate_variant:Nn \skip_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_sub:Nn } }
\cs_new_protected:Npn \skip_sub:Nn #1#2
{ \tex_advance:D #1 by - \etex_glueexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \skip_gsub:Nn { \tex_global:D \skip_sub:Nn }
@@ -9616,7 +9705,13 @@
}
\cs_set_protected:Npn \__cs_tmp:w #1
{
- \__debug_patch_conditional_args:nNNpnn { { (##1) } }
+ \__debug_patch_conditional_args:nNNpnn
+ {
+ {
+ \__debug_chk_expr:nNnN
+ {##1} \etex_glueexpr:D { } \skip_if_finite:n
+ }
+ }
\prg_new_conditional:Npnn \skip_if_finite:n ##1 { p , T , F , TF }
{
\exp_after:wN \__skip_if_finite:wwNw
@@ -9626,17 +9721,20 @@
\cs_new:Npn \__skip_if_finite:wwNw ##1 #1 ##2 ; ##3 ##4 \q_stop {##3}
}
\exp_args:No \__cs_tmp:w { \tl_to_str:n { fil } }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_eval:n } }
\cs_new:Npn \skip_eval:n #1
{ \skip_use:N \etex_glueexpr:D #1 \scan_stop: }
\cs_new_eq:NN \skip_use:N \tex_the:D
\cs_new:Npn \skip_use:c #1 { \tex_the:D \cs:w #1 \cs_end: }
\cs_new_eq:NN \skip_horizontal:N \tex_hskip:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_horizontal:n } }
\cs_new:Npn \skip_horizontal:n #1
{ \skip_horizontal:N \etex_glueexpr:D #1 \scan_stop: }
\cs_new_eq:NN \skip_vertical:N \tex_vskip:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_vertical:n } }
\cs_new:Npn \skip_vertical:n #1
{ \skip_vertical:N \etex_glueexpr:D #1 \scan_stop: }
\cs_generate_variant:Nn \skip_horizontal:N { c }
@@ -9682,7 +9780,14 @@
{ TF , T , F , p }
\prg_new_eq_conditional:NNn \muskip_if_exist:c \cs_if_exist:c
{ TF , T , F , p }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ {#1}
+ {
+ \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+ { \etex_mutoglue:D } \muskip_set:Nn
+ }
+ }
\cs_new_protected:Npn \muskip_set:Nn #1#2
{ #1 ~ \etex_muexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \muskip_gset:Nn { \tex_global:D \muskip_set:Nn }
@@ -9694,19 +9799,39 @@
\cs_new_protected:Npn \muskip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
\cs_generate_variant:Nn \muskip_gset_eq:NN { c }
\cs_generate_variant:Nn \muskip_gset_eq:NN { Nc , cc }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ {#1}
+ {
+ \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+ { \etex_mutoglue:D } \muskip_add:Nn
+ }
+ }
\cs_new_protected:Npn \muskip_add:Nn #1#2
{ \tex_advance:D #1 by \etex_muexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \muskip_gadd:Nn { \tex_global:D \muskip_add:Nn }
\cs_generate_variant:Nn \muskip_add:Nn { c }
\cs_generate_variant:Nn \muskip_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ {#1}
+ {
+ \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+ { \etex_mutoglue:D } \muskip_sub:Nn
+ }
+ }
\cs_new_protected:Npn \muskip_sub:Nn #1#2
{ \tex_advance:D #1 by - \etex_muexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \muskip_gsub:Nn { \tex_global:D \muskip_sub:Nn }
\cs_generate_variant:Nn \muskip_sub:Nn { c }
\cs_generate_variant:Nn \muskip_gsub:Nn { c }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ {
+ {
+ \__debug_chk_expr:nNnN {#1} \etex_muexpr:D
+ { \etex_mutoglue:D } \muskip_eval:n
+ }
+ }
\cs_new:Npn \muskip_eval:n #1
{ \muskip_use:N \etex_muexpr:D #1 \scan_stop: }
\cs_new_eq:NN \muskip_use:N \tex_the:D
@@ -14854,25 +14979,25 @@
\exp_stop_f:
}
\cs_new:Npn \__fp_pow_neg_case_aux:nnnnn #1#2#3#4#5
- { \__fp_pow_neg_case_aux:w #1 ; #2 #3 ; #4 #5 ; }
-\cs_new:Npn \__fp_pow_neg_case_aux:w #1 ; #2 ; #3 ;
{
\if_int_compare:w #1 > \c__fp_prec_int
-1
\else:
+ \__fp_decimate:nNnnnn { \c__fp_prec_int - #1 }
+ \__fp_pow_neg_case_aux:Nnnw
+ {#2} {#3} {#4} {#5}
+ \fi:
+ }
+\cs_new:Npn \__fp_pow_neg_case_aux:Nnnw #1#2#3#4 ;
+ {
+ \if_meaning:w 0 #1
\if_int_odd:w #3 \exp_stop_f:
- \if_int_compare:w #1 = \c__fp_prec_int
- 0
- \else:
- 1
- \fi:
+ 0
\else:
- \exp_after:wN \__fp_pow_neg_case_aux:w
- \__int_value:w \__int_eval:w #1 + 1 \exp_after:wN ;
- \__int_value:w \__int_eval:w (#2 + 1) / 2 - 1 \exp_after:wN ;
- \__int_value:w \__int_eval:w
- \if_int_odd:w #2 \exp_stop_f: 5000 0000 + \fi: #3 / 2 ;
+ -1
\fi:
+ \else:
+ 1
\fi:
}
%% File: l3fp-trig.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project
@@ -20177,9 +20302,9 @@
\cs_generate_variant:Nn \box_set_ht:Nn { c }
\cs_generate_variant:Nn \box_set_dp:Nn { c }
\cs_generate_variant:Nn \box_set_wd:Nn { c }
-\cs_new_eq:NN \box_use_clear:N \tex_box:D
+\cs_new_eq:NN \box_use_drop:N \tex_box:D
\cs_new_eq:NN \box_use:N \tex_copy:D
-\cs_generate_variant:Nn \box_use_clear:N { c }
+\cs_generate_variant:Nn \box_use_drop:N { c }
\cs_generate_variant:Nn \box_use:N { c }
\__debug_patch_args:nNNpn { { (#1) } {#2} }
\cs_new_protected:Npn \box_move_left:nn #1#2
@@ -20452,7 +20577,7 @@
\box_set_dp:Nn \l__box_internal_box { -\l__box_bottom_new_dim }
\box_set_wd:Nn \l__box_internal_box
{ \l__box_right_new_dim - \l__box_left_new_dim }
- \box_use:N \l__box_internal_box
+ \box_use_drop:N \l__box_internal_box
}
\cs_new_protected:Npn \__box_rotate_x:nnN #1#2#3
{
@@ -20683,7 +20808,7 @@
\hbox_to_wd:nn { \l__box_right_new_dim }
{
\tex_kern:D \l__box_right_new_dim
- \box_use:N \l__box_internal_box
+ \box_use_drop:N \l__box_internal_box
\tex_hss:D
}
}
@@ -20692,7 +20817,7 @@
\hbox:n
{
\tex_kern:D \c_zero_dim
- \box_use:N \l__box_internal_box
+ \box_use_drop:N \l__box_internal_box
\tex_hss:D
}
}
@@ -20705,6 +20830,12 @@
{ 2018-12-31 } { \box_resize_to_wd_and_ht_plus_dp:cnn }
\cs_new_protected:Npn \box_resize:cnn
{ \box_resize_to_wd_and_ht_plus_dp:cnn }
+\__debug_deprecation:nnNNpn
+ { 2018-12-31 } { \box_use_clear:N }
+\cs_new_protected:Npn \box_use_clear:N { \box_use_drop:N }
+\__debug_deprecation:nnNNpn
+ { 2018-12-31 } { \box_use_clear:c }
+\cs_new_protected:Npn \box_use_clear:c { \box_use_drop:c }
%% File: l3coffins.dtx Copyright(C) 2010-2017 The LaTeX3 Project
\box_new:N \l__coffin_internal_box
\dim_new:N \l__coffin_internal_dim
@@ -21277,7 +21408,7 @@
\mode_leave_vertical:
\__coffin_align:NnnNnnnnN \c_empty_coffin { H } { l }
#1 {#2} {#3} {#4} {#5} \l__coffin_aligned_coffin
- \box_use:N \l__coffin_aligned_coffin
+ \box_use_drop:N \l__coffin_aligned_coffin
}
\cs_generate_variant:Nn \coffin_typeset:Nnnnn { c }
\coffin_new:N \l__coffin_display_coffin
@@ -21394,7 +21525,7 @@
\prop_remove:Nn \l__coffin_display_poles_prop {##1}
\__coffin_display_handles_aux:nnnnnn {##1} ##2 {#2}
}
- \box_use:N \l__coffin_display_coffin
+ \box_use_drop:N \l__coffin_display_coffin
}
\cs_new_protected:Npn \__coffin_display_handles_aux:nnnnnn #1#2#3#4#5#6
{
@@ -22302,6 +22433,8 @@
{ \prg_return_false: }
}
\cs_new:Npn \sys_rand_seed: { \tex_the:D \pdftex_randomseed:D }
+\cs_if_exist:NF \pdftex_randomseed:D
+ { \cs_set:Npn \sys_rand_seed: { 0 } }
\__debug_patch_args:nNNpn { { (#1) } }
\cs_new_protected:Npn \sys_gset_rand_seed:n #1
{ \pdftex_setrandomseed:D \__int_eval:w #1 \__int_eval_end: }
@@ -23548,6 +23681,11 @@
}
}
\group_begin:
+ \char_set_catcode_active:N *
+ \char_set_lccode:nn { `* } { `\ }
+ \tex_lowercase:D { \tl_const:Nn \c_catcode_active_space_tl { * } }
+\group_end:
+\group_begin:
\cs_set_protected:Npn \__peek_tmp:w #1 \q_stop
{
\cs_new_protected:Npn \__peek_execute_branches_N_type:
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index a73f34c362b..a84caf1da12 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/07/19}%
+\def\ExplFileDate{2017/09/18}%
\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 0aad65f46ce..86cc90262ad 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/07/19}%
+\def\ExplFileDate{2017/09/18}%
\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 f65fc2134c6..9040af56ff9 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
@@ -20,11 +20,15 @@
%%
%% File: l3doc.dtx Copyright (C) 1990-2017 The LaTeX3 project
\RequirePackage{expl3,xparse,calc}
-\ProvidesExplClass{l3doc}{2017/07/19}{}
+\ProvidesExplClass{l3doc}{2017/09/18}{}
{L3 Experimental documentation class}
\clist_new:N \g_docinput_clist
\seq_new:N \g_doc_functions_seq
\seq_new:N \g_doc_macros_seq
+\bool_new:N \l__codedoc_detect_internals_bool
+\bool_set_true:N \l__codedoc_detect_internals_bool
+\tl_new:N \l__codedoc_detect_internals_tl
+\tl_new:N \l__codedoc_detect_internals_cs_tl
\coffin_new:N \l__codedoc_output_coffin
\coffin_new:N \l__codedoc_functions_coffin
\coffin_new:N \l__codedoc_descr_coffin
@@ -123,8 +127,19 @@
{ \prg_return_true: }
}
\cs_generate_variant:Nn \__codedoc_if_almost_str:nT { V }
+\cs_new_protected:Npn \__codedoc_trim_right:Nn #1#2
+ {
+ \cs_set:Npn \__codedoc_tmp:w ##1 #2 ##2 \q_stop { \exp_not:n {##1} }
+ \tl_set:Nx #1 { \exp_after:wN \__codedoc_tmp:w #1 #2 \q_stop }
+ }
+\cs_generate_variant:Nn \__codedoc_trim_right:Nn { No }
\cs_new_protected:Npn \__codedoc_replace_at_at:N #1
{
+ \bool_if:NT \l__codedoc_in_implementation_bool
+ {
+ \bool_if:NT \l__codedoc_detect_internals_bool
+ { \__codedoc_detect_internals:N #1 }
+ }
\tl_if_empty:NF \g__codedoc_module_name_tl
{
\exp_args:NNo \__codedoc_replace_at_at_aux:Nn
@@ -141,6 +156,36 @@
\tl_replace_all:Nnn #1 { @ @ } { _ _ #2 }
\tl_replace_all:Nnn #1 { \token_to_str:N a a } { @ @ }
}
+\group_begin:
+ \char_set_catcode_active:N \^^M
+ \cs_new_protected:Npn \__codedoc_detect_internals:N #1
+ {
+ \tl_set_eq:NN \l__codedoc_detect_internals_tl #1
+ \tl_replace_all:Non \l__codedoc_detect_internals_tl { \token_to_str:N _ } { _ }
+ \seq_set_split:NnV \l__codedoc_tmpa_seq { _ _ } \l__codedoc_detect_internals_tl
+ \seq_pop_left:NN \l__codedoc_tmpa_seq \l__codedoc_detect_internals_tl
+ \seq_map_variable:NNn \l__codedoc_tmpa_seq \l__codedoc_detect_internals_tl
+ {
+ \__codedoc_trim_right:No \l__codedoc_detect_internals_tl
+ \c_catcode_active_space_tl
+ \__codedoc_trim_right:Nn \l__codedoc_detect_internals_tl ^^M
+ \tl_set_eq:NN \l__codedoc_detect_internals_cs_tl \l__codedoc_detect_internals_tl
+ \__codedoc_trim_right:Nn \l__codedoc_detect_internals_tl _
+ \__codedoc_trim_right:Nn \l__codedoc_detect_internals_tl :
+ \__codedoc_trim_right:No \l__codedoc_detect_internals_tl { \token_to_str:N : }
+ \tl_if_empty:NF \l__codedoc_detect_internals_tl
+ {
+ \str_if_eq:NNF \l__codedoc_detect_internals_tl \g__codedoc_module_name_tl
+ {
+ \msg_warning:nnxxx { l3doc } { foreign-internal }
+ { \tl_to_str:N \l__codedoc_detect_internals_cs_tl }
+ { \tl_to_str:N \l__codedoc_detect_internals_tl }
+ { \tl_to_str:N \g__codedoc_module_name_tl }
+ }
+ }
+ }
+ }
+\group_end:
\cs_new:Npn \__codedoc_signature_base_form:n #1
{ \__codedoc_signature_base_form_aux:n #1 \q_stop }
\cs_new:Npn \__codedoc_signature_base_form_aux:n #1
@@ -310,6 +355,12 @@
The~'syntax'~environment~should~only~be~used~once~in~
a~'function'~environment.
}
+\msg_new:nnn { l3doc } { foreign-internal }
+ {
+ A~control~sequence~of~the~form~'...__#1'~was~used.~
+ It~should~only~be~used~in~the~module~'#2'
+ \tl_if_empty:nF {#3} { ,~not~in~'#3' } .
+ }
\DeclareOption { a5paper } { \@latexerr { Option~not~supported } { } }
\DeclareOption { full }
{
@@ -939,7 +990,7 @@
\cs_new_protected:Npn \__codedoc_function_assemble:
{
\hcoffin_set:Nn \l__codedoc_syntax_coffin
- { \box_use_clear:N \g__codedoc_syntax_box }
+ { \box_use_drop:N \g__codedoc_syntax_box }
\bool_if:NTF \l__codedoc_long_name_bool
{
\coffin_join:NnnNnnnn
@@ -1106,7 +1157,7 @@
{
\begin{quote}
\mode_leave_vertical:
- \box_use_clear:N \g__codedoc_syntax_box
+ \box_use_drop:N \g__codedoc_syntax_box
\end{quote}
}
}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
index 60886d1f6c7..5bfce1cc6ed 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
@@ -27,7 +27,7 @@
\@ifpackageloaded { color }
{
\cs_new_protected:Npn \__driver_color_pickup:
- { \tl_set_eq:NN \l__color_current_tl \current@color }
+ { \tl_set:Nx \l__color_current_tl { \current@color } }
}
{ \cs_new_protected:Npn \__driver_color_pickup: { } }
}
@@ -155,11 +155,11 @@
(#1)
\bool_lazy_or:nnT
{ \l__image_interpolate_bool }
- { ! \tl_if_empty_p:N \l__imge_decode_tl }
+ { ! \tl_if_empty_p:N \l__image_decode_tl }
{
<<
- \tl_if_empty:NF \l__imge_decode_tl
- { /Decode~[ \l__imge_decode_tl ] }
+ \tl_if_empty:NF \l__image_decode_tl
+ { /Decode~[ \l__image_decode_tl ] }
\bool_if:NT \l__image_interpolate_bool
{ /Interpolate~true> }
>>
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
index 727fbcbd454..eed9fcf2658 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
@@ -27,7 +27,7 @@
\@ifpackageloaded { color }
{
\cs_new_protected:Npn \__driver_color_pickup:
- { \tl_set_eq:NN \l__color_current_tl \current@color }
+ { \tl_set:Nx \l__color_current_tl { \current@color } }
}
{ \cs_new_protected:Npn \__driver_color_pickup: { } }
}
@@ -379,12 +379,10 @@
\tex_special:D { ps::~72~Resolution~div~72~VResolution~div~neg~scale }
\tex_special:D { ps::~magscale~{1~DVImag~div~dup~scale}~if }
\tex_special:D { ps::~l3x~neg~l3y~neg~translate }
- \group_begin:
- \box_set_wd:Nn #1 { 0pt }
- \box_set_ht:Nn #1 { 0pt }
- \box_set_dp:Nn #1 { 0pt }
- \box_use:N #1
- \group_end:
+ \box_set_wd:Nn #1 { 0pt }
+ \box_set_ht:Nn #1 { 0pt }
+ \box_set_dp:Nn #1 { 0pt }
+ \box_use:N #1
\tex_special:D { ps::[begin] }
\__driver_scope_end:
}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
index f9bf990c499..df5c3f262fb 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
@@ -27,7 +27,7 @@
\@ifpackageloaded { color }
{
\cs_new_protected:Npn \__driver_color_pickup:
- { \tl_set_eq:NN \l__color_current_tl \current@color }
+ { \tl_set:Nx \l__color_current_tl { \current@color } }
}
{ \cs_new_protected:Npn \__driver_color_pickup: { } }
}
@@ -440,12 +440,10 @@
transform="scale(-1,1)~translate({?x},{?y})~scale(-1,-1)"
>
}
- \group_begin:
- \box_set_wd:Nn #1 { 0pt }
- \box_set_ht:Nn #1 { 0pt }
- \box_set_dp:Nn #1 { 0pt }
- \box_use:N #1
- \group_end:
+ \box_set_wd:Nn #1 { 0pt }
+ \box_set_ht:Nn #1 { 0pt }
+ \box_set_dp:Nn #1 { 0pt }
+ \box_use:N #1
\__driver_literal:n { </g> }
\__driver_scope_end:
}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
index bb94bd8e8ac..8590bc67530 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
@@ -28,24 +28,23 @@
{
\cs_new_protected:Npn \__driver_color_pickup:
{
- \tl_set:Nx \l__color_current_tl
- {
- \exp_after:wN \exp_after:wN\exp_after:wN
- \__driver_color_pickup_aux:w \exp_after:wN
- \current@color \c_space_tl 0 ~ 0 ~ 0 \q_stop
- }
+ \exp_last_unbraced:Nx \__driver_color_pickup_aux:w
+ { \current@color } ~ 0 ~ 0 ~ 0 \q_stop
}
\cs_new:Npn \__driver_color_pickup_aux:w #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \q_stop
{
- \str_if_eq:nnTF {#2} { g }
- { gray ~ #1 }
+ \tl_set:Nx \l__color_current_tl
{
- \str_if_eq:nnTF {#4} { rg }
- { rgb ~ #1 ~ #2 ~ #3 }
+ \str_if_eq:nnTF {#2} { g }
+ { gray ~ #1 }
{
- \str_if_eq:nnTF {#5} { k }
- { cmyk ~ #1 ~ #2 ~ #3 ~ #4 }
- { gray ~ #1 }
+ \str_if_eq:nnTF {#4} { rg }
+ { rgb ~ #1 ~ #2 ~ #3 }
+ {
+ \str_if_eq:nnTF {#5} { k }
+ { cmyk ~ #1 ~ #2 ~ #3 ~ #4 }
+ { gray ~ #1 }
+ }
}
}
}
@@ -127,7 +126,7 @@
\cs_new_protected:Npn \__driver_box_use_rotate:Nn #1#2
{
\__driver_scope_begin:
- \box_set_wd:Nn #1 \c_zero_dim
+ \box_set_wd:Nn #1 { 0pt }
\fp_set:Nn \l__driver_cos_fp { round ( cosd ( #2 ) , 5 ) }
\fp_compare:nNnT \l__driver_cos_fp = \c_zero_fp
{ \fp_zero:N \l__driver_cos_fp }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
index f66bc633b4c..31bd085b8b1 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
@@ -27,7 +27,7 @@
\@ifpackageloaded { color }
{
\cs_new_protected:Npn \__driver_color_pickup:
- { \tl_set_eq:NN \l__color_current_tl \current@color }
+ { \tl_set:Nx \l__color_current_tl { \current@color } }
}
{ \cs_new_protected:Npn \__driver_color_pickup: { } }
}
@@ -140,11 +140,11 @@
(#1)
\bool_lazy_or:nnT
{ \l__image_interpolate_bool }
- { ! \tl_if_empty_p:N \l__imge_decode_tl }
+ { ! \tl_if_empty_p:N \l__image_decode_tl }
{
<<
- \tl_if_empty:NF \l__imge_decode_tl
- { /Decode~[ \l__imge_decode_tl ] }
+ \tl_if_empty:NF \l__image_decode_tl
+ { /Decode~[ \l__image_decode_tl ] }
\bool_if:NT \l__image_interpolate_bool
{ /Interpolate~true> }
>>