summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-08-26 21:05:47 +0000
committerKarl Berry <karl@freefriends.org>2019-08-26 21:05:47 +0000
commitbfd55e1fa306b0e1c0db5fc689fb45b81d5da0c8 (patch)
tree7abd27cdb5a328a0ba00c48698439588ec5edab8 /Master/texmf-dist/tex
parent69257bb16c7433813887ca515263e76c85c6c0e9 (diff)
l3 (26aug19)
git-svn-id: svn://tug.org/texlive/trunk@51962 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def10
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def10
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty46
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty153
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty3
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex136
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty2
16 files changed, 220 insertions, 162 deletions
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
index 3614e4f9437..d69ffae6bf7 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
@@ -462,7 +462,7 @@
\prop_gput:Nnn \g__pdf_backend_object_prop {#1} {#2}
}
\cs_new:Npn \__pdf_backend_object_ref:n #1
- { @pdf.obj \int_use:c { g__pdf_backend_object_ \tl_to_str:n {#1} _int } }
+ { @pdf.obj \int_use:c { c__pdf_backend_object_ \tl_to_str:n {#1} _int } }
\cs_new_protected:Npn \__pdf_backend_object_write:nn #1#2
{
\exp_args:Nx \__pdf_backend_object_write:nnn
@@ -627,15 +627,15 @@
\bool_if:nF {#1}
{ \__kernel_backend_literal:n { dvipdfmx:config~C~0x40 } }
}
-\cs_new_protected:Npn \__pdf_backend_version_major:n #1
+\cs_new_protected:Npn \__pdf_backend_version_major_gset:n #1
{
\cs_gset:Npx \__pdf_backend_version_major: { \int_eval:n {#1} }
- \__kernel_backend_literal:x { pdf:majorversion \__pdf_backend_version_major: }
+ \__kernel_backend_literal:x { pdf:majorversion~ \__pdf_backend_version_major: }
}
-\cs_new_protected:Npn \__pdf_backend_version_minor:n #1
+\cs_new_protected:Npn \__pdf_backend_version_minor_gset:n #1
{
\cs_gset:Npx \__pdf_backend_version_minor: { \int_eval:n {#1} }
- \__kernel_backend_literal:x { pdf:minorversion \__pdf_backend_version_minor: }
+ \__kernel_backend_literal:x { pdf:minorversion~ \__pdf_backend_version_minor: }
}
\cs_new:Npn \__pdf_backend_version_major: { 1 }
\cs_new:Npn \__pdf_backend_version_minor: { 5 }
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def
index 2a4fee00222..b89b0625e46 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def
@@ -508,7 +508,7 @@
\prop_gput:Nnn \g__pdf_backend_object_prop {#1} {#2}
}
\cs_new:Npn \__pdf_backend_object_ref:n #1
- { @pdf.obj \int_use:c { g__pdf_backend_object_ \tl_to_str:n {#1} _int } }
+ { @pdf.obj \int_use:c { c__pdf_backend_object_ \tl_to_str:n {#1} _int } }
\cs_new_protected:Npn \__pdf_backend_object_write:nn #1#2
{
\exp_args:Nx \__pdf_backend_object_write:nnn
@@ -673,15 +673,15 @@
\bool_if:nF {#1}
{ \__kernel_backend_literal:n { dvipdfmx:config~C~0x40 } }
}
-\cs_new_protected:Npn \__pdf_backend_version_major:n #1
+\cs_new_protected:Npn \__pdf_backend_version_major_gset:n #1
{
\cs_gset:Npx \__pdf_backend_version_major: { \int_eval:n {#1} }
- \__kernel_backend_literal:x { pdf:majorversion \__pdf_backend_version_major: }
+ \__kernel_backend_literal:x { pdf:majorversion~ \__pdf_backend_version_major: }
}
-\cs_new_protected:Npn \__pdf_backend_version_minor:n #1
+\cs_new_protected:Npn \__pdf_backend_version_minor_gset:n #1
{
\cs_gset:Npx \__pdf_backend_version_minor: { \int_eval:n {#1} }
- \__kernel_backend_literal:x { pdf:minorversion \__pdf_backend_version_minor: }
+ \__kernel_backend_literal:x { pdf:minorversion~ \__pdf_backend_version_minor: }
}
\cs_new:Npn \__pdf_backend_version_major: { 1 }
\cs_new:Npn \__pdf_backend_version_minor: { 5 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
index 8bd62620334..775b61d6fba 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
@@ -20,7 +20,7 @@
%%
%% File: l3benchmark.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3benchmark}{2019-07-01}{}
+\ProvidesExplPackage{l3benchmark}{2019-08-25}{}
{L3 Experimental benchmarking}
\sys_if_engine_luatex:TF
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty b/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty
index cffe3a07e4d..cafae3fb78c 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty
@@ -20,7 +20,7 @@
%%
%% File: l3cctab.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3cctab}{2019-07-01}{}
+\ProvidesExplPackage{l3cctab}{2019-08-25}{}
{L3 Experimental category code tables}
\int_new:N \g__cctab_allocate_int
\int_gset:Nn \g__cctab_allocate_int { -1 }
@@ -68,7 +68,7 @@
}
\cs_new_protected:Npn \cctab_new:N #1
{
- \int_gadd:Nn \g__cctab_allocate_int { 1 }
+ \int_gadd:Nn \g__cctab_allocate_int { 2 }
\int_const:Nn #1 { \g__cctab_allocate_int }
\intarray_new:cn { g__cctab_ \int_use:N #1 _cctab } { 256 }
\int_step_inline:nn { 256 }
@@ -89,7 +89,7 @@
}
\cs_new_protected:Npn \cctab_begin:N #1
{
- \int_gadd:Nn \g__cctab_stack_int { 1 }
+ \int_gadd:Nn \g__cctab_stack_int { 2 }
\int_compare:nNnT \g__cctab_stack_int > \c_max_register_int
{ \__kernel_msg_fatal:nn { kernel } { cctab-stack-full } }
\cs_if_exist:cF { g__cctab_ \int_use:N \g__cctab_stack_int _cctab }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
index 8450eb9e1ee..2af48f55f15 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
@@ -20,7 +20,7 @@
%%
%% File: l3color.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3color}{2019-07-01}{}
+\ProvidesExplPackage{l3color}{2019-08-25}{}
{L3 Experimental color support}
\tl_new:N \l__color_internal_tl
\prg_new_conditional:Npnn \__color_if_defined:n #1 { T, F, TF }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
index 5b152e2b9b3..b91028c3d68 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
@@ -28,7 +28,7 @@
%%
%% File: l3draw.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3draw}{2019-07-01}{}
+\ProvidesExplPackage{l3draw}{2019-08-25}{}
{L3 Experimental core drawing support}
\RequirePackage { l3color }
%% File: l3draw-boxes.dtx
@@ -440,23 +440,23 @@
{ \__draw_path_arc_auxiii:nn }
{
\__draw_point_transform_noshift:n
- { \draw_point_polar:nnn { #1 #4 90 } {#7} {#8} }
+ { \draw_point_polar:nnn {#7} {#8} { #1 #4 90 } }
}
\__draw_point_process:nnn
{ \__draw_path_arc_auxiv:nnnn }
{
\draw_point_transform:n
- { \draw_point_polar:nnn {#1} {#5} {#6} }
+ { \draw_point_polar:nnn {#5} {#6} {#1} }
}
{
\draw_point_transform:n
- { \draw_point_polar:nnn {#2} {#5} {#6} }
+ { \draw_point_polar:nnn {#5} {#6} {#2} }
}
\__draw_point_process:nn
{ \__draw_path_arc_auxv:nn }
{
\__draw_point_transform_noshift:n
- { \draw_point_polar:nnn { #2 #4 -90 } {#7} {#8} }
+ { \draw_point_polar:nnn {#7} {#8} { #2 #4 -90 } }
}
\exp_after:wN \__draw_path_curveto:nnnnnn \l__draw_path_tmp_tl
\fp_set:Nn \l__draw_path_arc_delta_fp { abs ( #2 - #3 ) }
@@ -854,9 +854,9 @@
\cs_generate_variant:Nn \__draw_point_to_dim_aux:n { f }
\cs_new:Npn \__draw_point_to_dim_aux:w ( #1 , ~ #2 ) { #1pt , #2pt }
\cs_new:Npn \draw_point_polar:nn #1#2
- { \draw_point_polar:nnn {#1} {#2} {#2} }
+ { \draw_point_polar:nnn {#1} {#1} {#2} }
\cs_new:Npn \draw_point_polar:nnn #1#2#3
- { \__draw_draw_polar:fnn { \fp_eval:n {#1} } {#2} {#3} }
+ { \__draw_draw_polar:fnn { \fp_eval:n {#3} } {#1} {#2} }
\cs_new:Npn \__draw_draw_polar:nnn #1#2#3
{ \__draw_point_to_dim:n { cosd(#1) * (#2) , sind(#1) * (#3) } }
\cs_generate_variant:Nn \__draw_draw_polar:nnn { f }
@@ -864,8 +864,18 @@
{ \__draw_point_process:nn { \__draw_point_unit_vector:nn } {#1} }
\cs_new:Npn \__draw_point_unit_vector:nn #1#2
{
- \__draw_point_to_dim:n
- { ( #1 , #2 ) / (sqrt(#1 * #1 + #2 * #2)) }
+ \exp_args:Nf \__draw_point_unit_vector:nnn
+ { \fp_eval:n { (sqrt(#1 * #1 + #2 * #2)) } }
+ {#1} {#2}
+ }
+\cs_new:Npn \__draw_point_unit_vector:nnn #1#2#3
+ {
+ \fp_compare:nNnTF {#1} = \c_zero_fp
+ { 0pt, 1pt }
+ {
+ \__draw_point_to_dim:n
+ { ( #2 , #3 ) / #1 }
+ }
}
\cs_new:Npn \draw_point_intersect_lines:nnnn #1#2#3#4
{
@@ -1129,9 +1139,9 @@
}
\cs_generate_variant:Nn \__draw_point_vec:nnn { fff }
\cs_new:Npn \draw_point_vec_polar:nn #1#2
- { \draw_point_vec_polar:nnn {#1} {#2} {#2} }
+ { \draw_point_vec_polar:nnn {#1} {#1} {#2} }
\cs_new:Npn \draw_point_vec_polar:nnn #1#2#3
- { \__draw_draw_vec_polar:fnn { \fp_eval:n {#1} } {#2} {#3} }
+ { \__draw_draw_vec_polar:fnn { \fp_eval:n {#3} } {#1} {#2} }
\cs_new:Npn \__draw_draw_vec_polar:nnn #1#2#3
{
\__draw_point_to_dim:n
@@ -1514,8 +1524,9 @@
{ \token_if_eq_meaning_p:NN #4 \__draw_softpath_close_op:nn }
}
{
- \__draw_softpath_round_calc:nnnNnn
- \__draw_softpath_round_loop:Nnn {#5} {#6}
+ \__draw_softpath_round_calc:NnnNnn
+ \__draw_softpath_round_loop:Nnn
+ {#5} {#6}
}
{
\token_if_eq_meaning:NNTF #4 \__draw_softpath_roundpoint_op:nn
@@ -1528,12 +1539,13 @@
\cs_new_protected:Npn \__draw_softpath_round_roundpoint:NnnNnnNnn
#1#2#3#4#5#6#7#8#9
{
- \__draw_softpath_round_calc:nnnNnn
+ \__draw_softpath_round_calc:NnnNnn
\__draw_softpath_round_loop:Nnn
- {#8} {#9} #1 {#2} {#3}
+ {#8} {#9}
+ #1 {#2} {#3}
#4 {#5} {#6} #7 {#8} {#9}
}
-\cs_new_protected:Npn \__draw_softpath_round_calc:nnnNnn #1#2#3#4#5#6
+\cs_new_protected:Npn \__draw_softpath_round_calc:NnnNnn #1#2#3#4#5#6
{
\tl_set:Nx \l__draw_softpath_curve_end_tl
{
@@ -1596,7 +1608,7 @@
{
\use:x
{
- \__draw_softpath_round_calc:nnnNnn
+ \__draw_softpath_round_calc:NnnNnn
{
\tl_set:Nx \exp_not:N \l__draw_softpath_move_tl
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
index 1e171d1d2ee..656410d8554 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
@@ -20,7 +20,7 @@
%%
%% File: l3graphics.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3graphics}{2019-07-01}{}
+\ProvidesExplPackage{l3graphics}{2019-08-25}{}
{L3 Experimental graphics inclusion support}
\ior_new:N \l__graphics_tmp_ior
\tl_new:N \l__graphics_tmp_tl
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty
index f2d48731832..90852e95139 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty
@@ -20,7 +20,7 @@
%%
%% File: l3pdf.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3pdf}{2019-07-01}{}
+\ProvidesExplPackage{l3pdf}{2019-08-25}{}
{L3 Experimental core PDF support}
\bool_new:N \g__pdf_init_bool
\cs_if_exist:NT \documentclass
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
index 554ebefd793..caa70c099ae 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
@@ -20,7 +20,7 @@
%%
%% File: l3str-format.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-format}{2019-07-01}{}
+\ProvidesExplPackage{l3str-format}{2019-08-25}{}
{L3 Experimental string formatting}
\cs_generate_variant:Nn \use:nn { nf }
\cs_generate_variant:Nn \use:nnn { fnf }
@@ -286,23 +286,23 @@
{#3} #5
}
\cs_new:Npn \fp_format:nn #1
- { \exp_args:Nf \__str_format_fp:nn { \__fp_parse:n {#1} } }
+ { \exp_args:Nf \__str_format_fp:nn { \fp_to_tl:n {#1} } }
\cs_new:Npn \__str_format_fp:nn #1#2
{
\tl_to_str:f
{
- \exp_last_unbraced:Nf \__str_format_fp:NNNnnNw
+ \exp_last_unbraced:Nf \__str_format_fp:NNNnnNn
{ \__str_format_parse:n {#2} }
- #1
+ {#1}
}
}
-\cs_new:Npn \__str_format_fp:NNNnnNw
- #1#2#3#4#5#6 \s__fp \__fp_chk:w #7 #8
+\cs_new:Npn \__str_format_fp:NNNnnNn
+ #1#2#3#4#5#6#7
{
\token_if_eq_charcode:NNTF #2 ?
{ \__str_format_put:nw { #1 > } }
{ \__str_format_put:nw { #1 #2 } }
- \token_if_eq_meaning:NNTF 2 #8
+ \tl_if_head_eq_charcode:nNTF {#7} -
{ \__str_format_put:nw { - } }
{
\str_case:nnF {#3}
@@ -314,123 +314,128 @@
}
\__str_format_put:nw { {#4} }
\tl_if_empty:nTF {#5}
- { \__str_format_put:nw { { 6} } }
+ {
+ \token_if_eq_meaning:NNTF #6 ?
+ { \__str_format_put:nw { { } } }
+ { \__str_format_put:nw { { 6} } }
+ }
{ \__str_format_put:nw { {#5} } }
\str_case:nnF {#6}
{
- { e } { \__str_format_fp:wnnnNNw \__str_format_fp_e:wn }
- { f } { \__str_format_fp:wnnnNNw \__str_format_fp_f:wn }
- { g } { \__str_format_fp:wnnnNNw \__str_format_fp_g:wn }
- { ? } { \__str_format_fp:wnnnNNw \__str_format_fp_g:wn }
+ { e } { \__str_format_fp:wnnnNNn \__str_format_fp_e:nn }
+ { f } { \__str_format_fp:wnnnNNn \__str_format_fp_f:nn }
+ { g } { \__str_format_fp:wnnnNNn \__str_format_fp_g:nn }
+ { ? } { \__str_format_fp:wnnnNNn \__str_format_fp_g:nn }
}
{
\__kernel_msg_expandable_error:nnnn
{ str } { invalid-style-format } {#6} { fp }
- \__str_format_fp:wnnnNNw \__str_format_fp_g:wn
+ \__str_format_fp:wnnnNNn \__str_format_fp_g:nn
}
- \s_stop
- \s__fp \__fp_chk:w #7 #8
+ \s_stop {#7}
}
-\cs_new:Npn \__str_format_fp:wnnnNNw
- #1 \s_stop #2 #3 #4 #5#6 #7 ;
+\cs_new:Npn \__str_format_fp:wnnnNNn
+ #1 \s_stop #2 #3 #4 #5#6 #7
{
\exp_args:Nc \exp_args:Nf
{ __str_format_align_#6:nnnN }
- { #1 #7 ; {#2} }
+ { #1 {#7} {#2} }
{#4}
{#3} #5
}
-\cs_new:Npn \__str_format_fp_round:wn #1 ; #2
- { \__fp_parse:n { round ( #1; , #2 - \__fp_exponent:w #1; ) } }
-\cs_new:Npn \__str_format_fp_e:wn \s__fp \__fp_chk:w #1#2#3 ; #4
+\cs_new:Npn \__str_format_fp_round:nn #1 #2
+ { \fp_to_tl:n { abs ( round ( #1 , #2 - logb(#1) - 1 ) ) } }
+\cs_new:Npn \__str_format_fp_e:nn #1#2
+ {
+ \exp_args:Nf \__str_format_fp_e_aux:nn
+ { \__str_format_fp_round:nn {#1} { #2 + 1 } }
+ {#2}
+ }
+\cs_new:Npn \__str_format_fp_e_aux:nn #1#2
{
- \int_case:nnF {#1}
+ \str_case:nnF {#1}
{
- { 0 } { \use:nf { 0 . } { \prg_replicate:nn {#4} { 0 } } e 0 }
- { 2 } { inf }
- { 3 } { nan }
+ { inf } { inf }
+ { nan } { nan }
}
{
- \exp_last_unbraced:Nf \__str_format_fp_e_aux:wn
- { \__str_format_fp_round:wn \s__fp \__fp_chk:w #1#2#3 ; { #4 + 1 } }
- {#4}
+ \exp_last_unbraced:Nf \__str_format_fp_e_aux:wwn
+ { \fp_to_scientific:n {#1} } ;
+ {#2}
}
}
-\cs_new:Npn \__str_format_fp_e_aux:wn
- \s__fp \__fp_chk:w #1#2 #3 #4#5#6#7 ; #8
+\cs_new:Npn \__str_format_fp_e_aux:wwn #1 . #2 e #3 ; #4
{
- \__str_format_put:fw { \int_eval:n { #3 - 1 } }
- \__str_format_put:nw { e }
- \int_compare:nNnTF {#8} > \c__fp_prec_int
+ \__str_format_put:nw { e #3 }
+ \int_compare:nNnTF {#4} < \c__fp_prec_int
{
- \__str_format_put:fw { \prg_replicate:nn { #8 - \c__fp_prec_int + 1 } {0} }
- \__str_format_put:fw { \use_none:n #4#5#6#7 }
+ \__str_format_put:fw { \str_range:nnn { #2 } { 1 } { #4 } }
+ \__str_format_put:nw { #1 . }
}
{
\__str_format_put:fw
- { \str_range:nnn { #4#5#6#7 0 } { 2 } { #8 + 1 } }
+ { \prg_replicate:nn { #4 - \c__fp_prec_int + 1 } { 0 } }
+ \__str_format_put:nw { #1 . #2 }
}
- \__str_format_put:fw { \use_i:nnnn #4 . }
\use_none:n \s_stop
}
-\cs_new:Npn \__str_format_fp_f:wn \s__fp \__fp_chk:w #1#2#3 ; #4
+\cs_new:Npn \__str_format_fp_f:nn #1#2
+ {
+ \exp_args:Nf \__str_format_fp_f_aux:nn
+ { \fp_to_tl:n { abs ( round ( #1 , #2 ) ) } }
+ {#2}
+ }
+\cs_new:Npn \__str_format_fp_f_aux:nn #1#2
{
- \int_case:nnF {#1}
+ \str_case:nnF {#1}
{
- {0} { \use:nf { 0 . } { \prg_replicate:nn {#4} { 0 } } }
- {2} { inf }
- {3} { nan }
+ { inf } { inf }
+ { nan } { nan }
}
{
\exp_last_unbraced:Nf \__str_format_fp_f_aux:wwwn
- {
- \fp_to_decimal:n
- { abs ( round ( \s__fp \__fp_chk:w #1#2#3 ; , #4 ) ) }
- }
- . . ;
- {#4}
+ { \fp_to_decimal:n {#1} } . . ; {#2}
}
}
\cs_new:Npn \__str_format_fp_f_aux:wwwn #1 . #2 . #3 ; #4
{
- \use:nf
- { #1 . #2 }
+ \use:nf { #1 . #2 }
{ \prg_replicate:nn { #4 - \__str_count:n {#2} } {0} }
}
-\cs_new:Npn \__str_format_fp_g:wn \s__fp \__fp_chk:w #1#2 ; #3
+\cs_new:Npn \__str_format_fp_g:nn #1#2
{
- \int_case:nnF {#1}
+ \tl_if_empty:nTF {#2} { \fp_to_tl:n { abs(#1) } }
{
- {0} { 0 }
- {2} { inf }
- {3} { nan }
- }
- {
- \exp_last_unbraced:Nf \__str_format_fp_g_aux:wn
- {
- \__str_format_fp_round:wn \s__fp \__fp_chk:w #1#2 ;
- { \int_max:nn {1} {#3} }
- }
- { \int_max:nn {1} {#3} }
+ \exp_args:Nf \__str_format_fp_g_aux:nn
+ { \__str_format_fp_round:nn {#1} { \int_max:nn {1} {#2} } }
+ { \int_max:nn {1} {#2} }
}
}
-\cs_new:Npn \__str_format_fp_g_aux:wn #1; #2
+\cs_new:Npn \__str_format_fp_g_aux:nn #1#2
{
- \int_compare:nNnTF { \__fp_exponent:w #1; } < { -3 }
- { \__str_format_to_scientific:n }
+ \str_case:nnF {#1}
+ {
+ { 0 } { 0 }
+ { inf } { inf }
+ { nan } { nan }
+ }
{
- \int_compare:nNnTF { \__fp_exponent:w #1; } > {#2}
- { \__str_format_to_scientific:n }
- { \fp_to_decimal:n }
+ \fp_compare:nTF { 1e-4 <= #1 < 1e#2 }
+ { \fp_to_decimal:n {#1} }
+ {
+ \exp_last_unbraced:Nf \__str_format_fp_trim:w
+ { \fp_to_scientific:n {#1} }
+ }
}
- { \__fp_set_sign_o:w 0 #1; @ \prg_do_nothing: }
}
-\cs_new:Npn \__str_format_to_scientific:n
+\cs_new:Npn \__str_format_fp_trim:w #1 e
{
- \exp_after:wN \__str_format_fp_trim:w
- \exp:w \exp_end_continue_f:w \fp_to_scientific:n
+ \__str_format_fp_trim_loop:w #1
+ ; \__str_format_fp_trim_loop:w 0; \__str_format_fp_trim_dot:w .; \s_stop e
}
-\cs_new:Npn \__str_format_fp_trim:w #1 e { \__fp_trim_zeros:w #1 ; e }
+\cs_new:Npn \__str_format_fp_trim_loop:w #1 0; #2 { #2 #1 ; #2 }
+\cs_new:Npn \__str_format_fp_trim_dot:w #1 .; { \__str_format_fp_trim_end:w #1 ; }
+\cs_new:Npn \__str_format_fp_trim_end:w #1 ; #2 \s_stop { #1 }
\__kernel_msg_new:nnn { str } { invalid-format }
{ Invalid~format~'#1'. }
\__kernel_msg_new:nnn { str } { invalid-align-format }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
index 8faf0a47e3e..18b14319662 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty
@@ -20,7 +20,7 @@
%%
%% File: l3sys-shell.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3sys-shell}{2019-07-01}{}
+\ProvidesExplPackage{l3sys-shell}{2019-08-25}{}
{L3 Experimental system shell functions}
\cs_new:Npn \__sys_path_to_win:n #1
{
@@ -145,6 +145,7 @@
\char_set_catcode_other:N \exp_not:N \~
\char_set_catcode_other:N \exp_not:N \%
\char_set_catcode_space:N \exp_not:N \ %
+ \tex_endlinechar:D -1 \scan_stop:
}
\exp_not:N \l__sys_tmp_tl
\str_set:NV #1 \exp_not:N \l__sys_tmp_tl
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
index 7d5cc5f41ad..29ec2eea2a8 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
@@ -20,7 +20,7 @@
%%
%% File: xcoffins.dtx
\RequirePackage{xparse}
-\ProvidesExplPackage{xcoffins}{2019-07-01}{}
+\ProvidesExplPackage{xcoffins}{2019-08-25}{}
{L3 Experimental design level coffins}
\keys_define:nn { coffin }
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
index a1d11afafd0..7fd199e0207 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{l3galley}{2019-07-01}{}
+\ProvidesExplPackage{l3galley}{2019-08-25}{}
{L3 Experimental galley code}
\int_new:N \l__galley_tmp_int
\seq_new:N \g__galley_tmpa_seq
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
index e0b6277744e..79506e9cda8 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
@@ -20,7 +20,7 @@
%%
%% File: xgalley.dtx
\RequirePackage{xparse}
-\ProvidesExplPackage{xgalley}{2019-07-01}{}
+\ProvidesExplPackage{xgalley}{2019-08-25}{}
{L3 Experimental galley}
\RequirePackage{xparse,xtemplate,l3galley}
\clist_new:N \l__galley_tmpa_clist
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 3f68d30e8b9..85d7a37dc7f 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -65,7 +65,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2019-08-14}%
+\def\ExplFileDate{2019-08-25}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -4264,22 +4264,21 @@
\cs_generate_variant:Nn \tl_gput_right:No { c }
\cs_generate_variant:Nn \tl_gput_right:Nx { c }
\tl_const:Nx \c__tl_rescan_marker_tl { : \token_to_str:N : }
-\cs_new_protected:Npn \tl_set_rescan:Nnn
- { \__tl_set_rescan:NNnn \tl_set:No }
-\cs_new_protected:Npn \tl_gset_rescan:Nnn
- { \__tl_set_rescan:NNnn \tl_gset:No }
\cs_new_protected:Npn \tl_rescan:nn #1#2
{
\tl_set_rescan:Nnn \l__tl_internal_a_tl {#1} {#2}
\exp_after:wN \tl_clear:N \exp_after:wN \l__tl_internal_a_tl
\l__tl_internal_a_tl
}
+\cs_new_protected:Npn \tl_set_rescan:Nnn
+ { \__tl_set_rescan:NNnn \tl_set:No }
+\cs_new_protected:Npn \tl_gset_rescan:Nnn
+ { \__tl_set_rescan:NNnn \tl_gset:No }
\cs_new_protected:Npn \__tl_set_rescan:NNnn #1#2#3#4
{
\group_begin:
\if_false: { \fi:
\int_set_eq:NN \tex_tracingnesting:D \c_zero_int
- \exp_args:No \tex_everyeof:D { \c__tl_rescan_marker_tl }
\int_compare:nNnT \tex_endlinechar:D = { 32 }
{ \int_set:Nn \tex_endlinechar:D { -1 } }
\int_set_eq:NN \tex_newlinechar:D \tex_endlinechar:D
@@ -4289,6 +4288,7 @@
}
\cs_new_protected:Npn \__tl_set_rescan_multi:nNN #1#2#3
{
+ \exp_args:No \tex_everyeof:D { \c__tl_rescan_marker_tl }
\exp_after:wN \__tl_rescan:NNw
\exp_after:wN #2
\exp_after:wN #3
@@ -4325,7 +4325,8 @@
\int_compare:nNnTF
{ \char_value_catcode:n {#1} / 2 } = 6
{
- \exp_args:Nf \__tl_set_rescan_single_aux:nnNN
+ \exp_args:Nof \__tl_set_rescan_single_aux:nnnNN
+ \c__tl_rescan_marker_tl
{ \char_generate:nn {#1} { \char_value_catcode:n {#1} } }
}
{
@@ -4337,20 +4338,28 @@
{ \__tl_set_rescan_multi:nNN }
}
}
-\cs_new_protected:Npn \__tl_set_rescan_single_aux:nnNN #1#2#3#4
+\cs_new_protected:Npn \__tl_set_rescan_single_aux:nnnNN #1#2#3#4#5
{
- \exp_args:Nno \use:nn
- { \cs_set:Npn \__tl_rescan:NNw ##1##2##3 #1 }
- \c__tl_rescan_marker_tl
+ \tex_everyeof:D
+ {
+ #1 \use_none:n
+ #2 #1 { \exp:w \__tl_set_rescan_single_aux:w }
+ \q_stop
+ }
+ \cs_set:Npn \__tl_rescan:NNw ##1##2##3 #2 #1 ##4 ##5 \q_stop
{
\group_end:
- ##1 ##2 { \use_none:n ##3 }
+ ##1 ##2 { ##4 ##3 }
}
\exp_after:wN \__tl_rescan:NNw
- \exp_after:wN #3
\exp_after:wN #4
- \tex_scantokens:D { #1 #2 #1 }
+ \exp_after:wN #5
+ \tex_scantokens:D { #2 #3 #2 }
}
+\exp_args:Nno \use:nn
+ { \cs_new:Npn \__tl_set_rescan_single_aux:w #1 }
+ \c__tl_rescan_marker_tl #2
+ { \use_i:nn \exp_end: #1 }
\cs_new_protected:Npn \tl_replace_once:Nnn
{ \__tl_replace:NnNNNnn \q_mark ? \__tl_replace_wrap:w \tl_set:Nx }
\cs_new_protected:Npn \tl_greplace_once:Nnn
@@ -4631,8 +4640,8 @@
{ \exp_args:No \tl_map_variable:nNn }
\cs_new_protected:Npn \__tl_map_variable:Nnn #1#2#3
{
+ \quark_if_recursion_tail_break:nN {#3} \tl_map_break:
\tl_set:Nn #1 {#3}
- \quark_if_recursion_tail_break:NN #1 \tl_map_break:
\use:n {#2}
\__tl_map_variable:Nnn #1 {#2}
}
@@ -8166,8 +8175,8 @@
}
\cs_new_protected:Npn \__clist_map_variable:Nnw #1#2#3,
{
+ \quark_if_recursion_tail_stop:n {#3}
\tl_set:Nn #1 {#3}
- \quark_if_recursion_tail_stop:N #1
\use:n {#2}
\__clist_map_variable:Nnw #1 {#2}
}
@@ -9062,55 +9071,63 @@
\prop_new:N \l_tmpb_prop
\prop_new:N \g_tmpa_prop
\prop_new:N \g_tmpb_prop
+\prop_new:N \l__prop_internal_prop
\cs_new_protected:Npn \prop_set_from_keyval:Nn #1#2
- { \tl_set:Nx #1 { \__prop_from_keyval:n {#2} } }
+ {
+ \prop_clear:N \l__prop_internal_prop
+ \__prop_from_keyval:n {#2}
+ \prop_set_eq:NN #1 \l__prop_internal_prop
+ \prop_clear:N \l__prop_internal_prop
+ }
\cs_generate_variant:Nn \prop_set_from_keyval:Nn { c }
\cs_new_protected:Npn \prop_gset_from_keyval:Nn #1#2
- { \tl_gset:Nx #1 { \__prop_from_keyval:n {#2} } }
+ {
+ \prop_clear:N \l__prop_internal_prop
+ \__prop_from_keyval:n {#2}
+ \prop_gset_eq:NN #1 \l__prop_internal_prop
+ \prop_clear:N \l__prop_internal_prop
+ }
\cs_generate_variant:Nn \prop_gset_from_keyval:Nn { c }
\cs_new_protected:Npn \prop_const_from_keyval:Nn #1#2
- { \tl_const:Nx #1 { \__prop_from_keyval:n {#2} } }
+ {
+ \prop_clear:N \l__prop_internal_prop
+ \__prop_from_keyval:n {#2}
+ \tl_const:Nx #1 { \exp_not:o \l__prop_internal_prop }
+ \prop_clear:N \l__prop_internal_prop
+ }
\cs_generate_variant:Nn \prop_const_from_keyval:Nn { c }
-\cs_new:Npn \__prop_from_keyval:n #1
+\cs_new_protected:Npn \__prop_from_keyval:n #1
{
- \s__prop
- \__prop_from_keyval_loop:w \q_mark #1 ,
+ \__prop_from_keyval_loop:w \prg_do_nothing: #1 ,
\q_recursion_tail , \q_recursion_stop
}
-\cs_new:Npn \__prop_from_keyval_loop:w #1 ,
+\cs_new_protected:Npn \__prop_from_keyval_loop:w #1 ,
{
- \quark_if_recursion_tail_stop:o { \use_none:n #1 }
+ \quark_if_recursion_tail_stop:o {#1}
\__prop_from_keyval_split:Nw \__prop_from_keyval_key:n
- #1 = = \q_stop { \use_none:n #1 }
- \__prop_from_keyval_loop:w \q_mark
+ #1 = = \q_stop {#1}
+ \__prop_from_keyval_loop:w \prg_do_nothing:
}
-\cs_new:Npn \__prop_from_keyval_split:Nw #1#2 =
- {
- \tl_trim_spaces_apply:oN { \use_none:n #2 } #1
- \q_nil
- }
-\cs_new:Npn \__prop_from_keyval_key:n #1
- { \__prop_from_keyval_key:w #1 }
-\cs_new:Npn \__prop_from_keyval_key:w #1 \q_nil #2 \q_stop
+\cs_new_protected:Npn \__prop_from_keyval_split:Nw #1#2 =
+ { \tl_trim_spaces_apply:oN {#2} #1 }
+\cs_new_protected:Npn \__prop_from_keyval_key:n #1
+ { \__prop_from_keyval_key:w #1 \q_nil }
+\cs_new_protected:Npn \__prop_from_keyval_key:w #1 \q_nil #2 \q_stop
{
\__prop_from_keyval_split:Nw \__prop_from_keyval_value:n
- \q_mark #2 \q_stop {#1}
+ \prg_do_nothing: #2 \q_stop {#1}
}
-\cs_new:Npn \__prop_from_keyval_value:n #1
- { \__prop_from_keyval_value:w #1 }
-\cs_new:Npn \__prop_from_keyval_value:w #1 \q_nil #2 \q_stop #3#4
+\cs_new_protected:Npn \__prop_from_keyval_value:n #1
+ { \__prop_from_keyval_value:w #1 \q_nil }
+\cs_new_protected:Npn \__prop_from_keyval_value:w #1 \q_nil #2 \q_stop #3#4
{
\tl_if_empty:nF { #3 #1 #2 }
{
\str_if_eq:nnTF {#2} { = }
+ { \prop_put:Nnn \l__prop_internal_prop {#3} {#1} }
{
- \exp_not:N \__prop_pair:wn \tl_to_str:n {#3}
- \s__prop { \exp_not:n {#1} }
- }
- {
- \__kernel_msg_expandable_error:nnf
- { kernel } { prop-keyval }
- { \exp_after:wN \exp_stop_f: #4 }
+ \__kernel_msg_error:nnx { kernel } { prop-keyval }
+ { \exp_not:o {#4} }
}
}
}
@@ -13393,6 +13410,13 @@
}
\cs_new:Npn \__fp_neg_sign:N #1
{ \__fp_int_eval:w 2 - #1 \__fp_int_eval_end: }
+\cs_new:Npn \__fp_kind:w #1
+ {
+ \__fp_if_type_fp:NTwFw
+ #1 \__fp_use_ii_until_s:nnw
+ \s__fp { \__fp_use_i_until_s:nw 4 }
+ \q_stop
+ }
\cs_new:Npn \__fp_sanitize:Nw #1 #2;
{
\if_case:w
@@ -14102,9 +14126,17 @@
{
\__fp_small_int:wTF #3; { \__fp_round:Nwn #1#2; }
{
- \__fp_invalid_operation_tl_o:ff
- { \__fp_round_name_from_cs:N #1 }
- { \__fp_array_to_clist:n { #2; #3; } }
+ \if:w 3 \__fp_kind:w #3 ;
+ \exp_after:wN \use_i:nn
+ \else:
+ \exp_after:wN \use_ii:nn
+ \fi:
+ { \exp_after:wN \c_nan_fp }
+ {
+ \__fp_invalid_operation_tl_o:ff
+ { \__fp_round_name_from_cs:N #1 }
+ { \__fp_array_to_clist:n { #2; #3; } }
+ }
}
}
\cs_new:Npn \__fp_round:Nwn #1 \s__fp \__fp_chk:w #2#3#4; #5
@@ -15606,6 +15638,14 @@
{ \__fp_parse_function:NNN \__fp_minmax_o:Nw 0 }
\prg_new_eq_conditional:NNn \fp_if_exist:N \cs_if_exist:N { TF , T , F , p }
\prg_new_eq_conditional:NNn \fp_if_exist:c \cs_if_exist:c { TF , T , F , p }
+\prg_new_conditional:Npnn \fp_if_nan:n #1 { TF , T , F , p }
+ {
+ \if:w 3 \exp_last_unbraced:Nf \__fp_kind:w { \__fp_parse:n {#1} }
+ \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+ }
\prg_new_conditional:Npnn \fp_compare:n #1 { p , T , F , TF }
{
\exp_after:wN \__fp_compare_return:w
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 39282cf677f..0d3472387e4 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2019-08-14}%
+\def\ExplFileDate{2019-08-25}%
\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 6c57f37fa8c..70baa6b0d20 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2019-08-14}%
+\def\ExplFileDate{2019-08-25}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%