From bb24aab36b14425d5408e5c0c889c83a70cc7a5a Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 19 May 2020 03:03:34 +0000 Subject: CTAN sync 202005190303 --- macros/latex/contrib/l3experimental/CHANGELOG.md | 8 +- macros/latex/contrib/l3experimental/README.md | 4 +- .../latex/contrib/l3experimental/l3benchmark.dtx | 4 +- .../latex/contrib/l3experimental/l3benchmark.pdf | Bin 314019 -> 314627 bytes macros/latex/contrib/l3experimental/l3cctab.dtx | 4 +- macros/latex/contrib/l3experimental/l3cctab.pdf | Bin 337341 -> 337933 bytes macros/latex/contrib/l3experimental/l3color.dtx | 87 +++++++++++---------- macros/latex/contrib/l3experimental/l3color.pdf | Bin 349685 -> 350289 bytes .../latex/contrib/l3experimental/l3draw-boxes.dtx | 2 +- .../latex/contrib/l3experimental/l3draw-code.pdf | Bin 624175 -> 625771 bytes .../latex/contrib/l3experimental/l3draw-layers.dtx | 2 +- .../latex/contrib/l3experimental/l3draw-paths.dtx | 2 +- .../latex/contrib/l3experimental/l3draw-points.dtx | 18 ++--- .../latex/contrib/l3experimental/l3draw-scopes.dtx | 2 +- .../contrib/l3experimental/l3draw-softpath.dtx | 18 ++--- .../latex/contrib/l3experimental/l3draw-state.dtx | 16 ++-- .../contrib/l3experimental/l3draw-transforms.dtx | 2 +- macros/latex/contrib/l3experimental/l3draw.dtx | 29 ++++++- macros/latex/contrib/l3experimental/l3draw.pdf | Bin 491117 -> 491703 bytes macros/latex/contrib/l3experimental/l3galley.dtx | 6 +- macros/latex/contrib/l3experimental/l3galley.pdf | Bin 385522 -> 386128 bytes macros/latex/contrib/l3experimental/l3graphics.dtx | 23 ++++-- macros/latex/contrib/l3experimental/l3graphics.pdf | Bin 362861 -> 363473 bytes macros/latex/contrib/l3experimental/l3pdf-code.pdf | Bin 277030 -> 278894 bytes macros/latex/contrib/l3experimental/l3pdf.dtx | 41 +++++++--- macros/latex/contrib/l3experimental/l3pdf.pdf | Bin 349545 -> 351156 bytes .../latex/contrib/l3experimental/l3str-format.dtx | 50 ++++++------ .../latex/contrib/l3experimental/l3str-format.pdf | Bin 344664 -> 345275 bytes .../latex/contrib/l3experimental/l3sys-shell.dtx | 39 ++++++--- .../latex/contrib/l3experimental/l3sys-shell.pdf | Bin 311429 -> 312114 bytes macros/latex/contrib/l3experimental/xcoffins.dtx | 4 +- macros/latex/contrib/l3experimental/xcoffins.pdf | Bin 372664 -> 373261 bytes macros/latex/contrib/l3experimental/xgalley.dtx | 8 +- macros/latex/contrib/l3experimental/xgalley.pdf | Bin 285447 -> 286048 bytes 34 files changed, 228 insertions(+), 141 deletions(-) (limited to 'macros/latex/contrib/l3experimental') diff --git a/macros/latex/contrib/l3experimental/CHANGELOG.md b/macros/latex/contrib/l3experimental/CHANGELOG.md index ccdcd90dfe..f457a0069d 100644 --- a/macros/latex/contrib/l3experimental/CHANGELOG.md +++ b/macros/latex/contrib/l3experimental/CHANGELOG.md @@ -7,6 +7,11 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2020-05-18] + +### Added +- `\pdf_object_if_exist:n(TF)` + ## [2020-01-12] ### Changed @@ -122,7 +127,8 @@ this project uses date-based 'snapshot' version identifiers. - New `l3color` module using `xcolor`-like expression syntax - New `l3draw` module, based on `pgf` layer of the TikZ system -[Unreleased]: https://github.com/latex3/latex3/compare/2020-01-12...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2020-05-18...HEAD +[2020-05-18]: https://github.com/latex3/latex3/compare/2020-01-12...2020-05-18 [2020-01-12]: https://github.com/latex3/latex3/compare/2019-10-11...2020-01-12 [2019-10-11]: https://github.com/latex3/latex3/compare/2019-09-28...2019-10-11 [2019-09-28]: https://github.com/latex3/latex3/compare/2019-09-19...2019-09-28 diff --git a/macros/latex/contrib/l3experimental/README.md b/macros/latex/contrib/l3experimental/README.md index 4202fb71e6..fd1dc7c09e 100644 --- a/macros/latex/contrib/l3experimental/README.md +++ b/macros/latex/contrib/l3experimental/README.md @@ -1,7 +1,7 @@ Experimental LaTeX3 Concepts ============================ -Release 2020-01-12 +Release 2020-05-18 Overview -------- @@ -142,6 +142,6 @@ the [LaTeX-L list](#Discussion) should be used. ----- -

Copyright (C) 1998-2011,2015-2020 The LaTeX3 Project
+

Copyright (C) 1998-2004,2008-2012,2014-2020 The LaTeX3 Project
http://latex-project.org/
All rights reserved.

diff --git a/macros/latex/contrib/l3experimental/l3benchmark.dtx b/macros/latex/contrib/l3experimental/l3benchmark.dtx index 5383ac4624..9794e24e5f 100644 --- a/macros/latex/contrib/l3experimental/l3benchmark.dtx +++ b/macros/latex/contrib/l3experimental/l3benchmark.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -130,7 +130,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3benchmark}{2020-01-12}{} +\ProvidesExplPackage{l3benchmark}{2020-05-18}{} {L3 Experimental benchmarking} % % \end{macrocode} diff --git a/macros/latex/contrib/l3experimental/l3benchmark.pdf b/macros/latex/contrib/l3experimental/l3benchmark.pdf index 1fd8c716f3..a63753aa45 100644 Binary files a/macros/latex/contrib/l3experimental/l3benchmark.pdf and b/macros/latex/contrib/l3experimental/l3benchmark.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3cctab.dtx b/macros/latex/contrib/l3experimental/l3cctab.dtx index f7418e117f..51bbf90bf0 100644 --- a/macros/latex/contrib/l3experimental/l3cctab.dtx +++ b/macros/latex/contrib/l3experimental/l3cctab.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -171,7 +171,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3cctab}{2020-01-12}{} +\ProvidesExplPackage{l3cctab}{2020-05-18}{} {L3 Experimental category code tables} % % \end{macrocode} diff --git a/macros/latex/contrib/l3experimental/l3cctab.pdf b/macros/latex/contrib/l3experimental/l3cctab.pdf index 00a402e93e..ecdbbe7152 100644 Binary files a/macros/latex/contrib/l3experimental/l3cctab.pdf and b/macros/latex/contrib/l3experimental/l3cctab.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3color.dtx b/macros/latex/contrib/l3experimental/l3color.dtx index de6616acf3..9438e8110f 100644 --- a/macros/latex/contrib/l3experimental/l3color.dtx +++ b/macros/latex/contrib/l3experimental/l3color.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -243,7 +243,7 @@ % \cs{color_parse:nN} \Arg{color expression} \Arg{tl} % \end{syntax} % Parses the \meta{color expression} as described above, and sets the -% \meta{tl} the the equivalent \meta{core color representation} +% \meta{tl} to the equivalent \meta{core color representation} % (used at the backend level and based on \texttt{dvips} color % representation). % \end{function} @@ -267,7 +267,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3color}{2020-01-12}{} +\ProvidesExplPackage{l3color}{2020-05-18}{} {L3 Experimental color support} % % \end{macrocode} @@ -300,6 +300,13 @@ % \end{macrocode} % \end{variable} % +% \begin{variable}{\s_@@_mark} +% Internal scan marks. \cs{s_@@_stop} is already defined in \pkg{l3color-base}. +% \begin{macrocode} +\scan_new:N \s_@@_mark +% \end{macrocode} +% \end{variable} +% % \subsection{Utility functions} % % \begin{macro}[int, TF, EXP]{\@@_if_defined:n} @@ -328,10 +335,10 @@ \@@_extract:NNw \exp_after:wN \exp_after:wN \exp_after:wN #2 \exp_after:wN \exp_after:wN \exp_after:wN #3 - \cs:w l_@@_named_ #1 _tl \cs_end: \q_stop + \cs:w l_@@_named_ #1 _tl \cs_end: \s_@@_stop } \cs_generate_variant:Nn \@@_extract:nNN { V } -\cs_new_protected:Npn \@@_extract:NNw #1#2 #3 ~ #4 \q_stop +\cs_new_protected:Npn \@@_extract:NNw #1#2 #3 ~ #4 \s_@@_stop { \tl_set:Nn #1 {#3} \tl_set:Nn #2 {#4} @@ -366,18 +373,18 @@ \str_if_eq:nnT {#1} { spot } % TO DO!!! { } \tl_set:Nx #4 - { \use:c { @@_convert_ #1 _ #2 :w } #3 ~ 0 ~ 0 ~ 0 \q_stop } + { \use:c { @@_convert_ #1 _ #2 :w } #3 ~ 0 ~ 0 ~ 0 \s_@@_stop } } \cs_generate_variant:Nn \@@_convert:nnnN { nnV } -\cs_new:Npn \@@_convert_gray_rgb:w #1 ~ #2 \q_stop +\cs_new:Npn \@@_convert_gray_rgb:w #1 ~ #2 \s_@@_stop { #1 ~ #1 ~ #1 } -\cs_new:Npn \@@_convert_gray_cmyk:w #1 ~ #2 \q_stop +\cs_new:Npn \@@_convert_gray_cmyk:w #1 ~ #2 \s_@@_stop { 0 ~ 0 ~ 0 ~ \fp_eval:n { 1 - #1 } } % \end{macrocode} % These rather odd values are based on \textsc{ntsc} television: the set are % used for the |cmyk| conversion. % \begin{macrocode} -\cs_new:Npn \@@_convert_rgb_gray:w #1 ~ #2 ~ #3 ~ #4 \q_stop +\cs_new:Npn \@@_convert_rgb_gray:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop { \fp_eval:n { 0.3 * #1 + 0.59 * #2 + 0.11 * #3 } } % \end{macrocode} % The conversion from |rgb| to |cmyk| is the most complex: a two-step @@ -387,7 +394,7 @@ % Moreover, as the likelihood of anyone using a non-unitary matrix here is % tiny, we simplify and treat those two concepts as no-ops. % \begin{macrocode} -\cs_new:Npn \@@_convert_rgb_cmyk:w #1 ~ #2 ~ #3 ~ #4 \q_stop +\cs_new:Npn \@@_convert_rgb_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop { \exp_args:Nf \@@_convert_rgb_cmyk:nnnn { \fp_eval:n { min ( 1 - #1 , 1 - #2 , 1 - #3 ) } } {#1} {#2} {#3} @@ -399,9 +406,9 @@ \fp_eval:n { min ( 1 , max ( 0 , 1 - #4 - #1 ) ) } \c_space_tl #1 } -\cs_new:Npn \@@_convert_cmyk_gray:w #1 ~ #2 ~ #3 ~ #4 ~ #5 \q_stop +\cs_new:Npn \@@_convert_cmyk_gray:w #1 ~ #2 ~ #3 ~ #4 ~ #5 \s_@@_stop { \fp_eval:n { 1 - min ( 1 , 0.3 * #1 + 0.59 * #2 + 0.11 * #3 + #4 ) } } -\cs_new:Npn \@@_convert_cmyk_rgb:w #1 ~ #2 ~ #3 ~ #4 ~ #5 \q_stop +\cs_new:Npn \@@_convert_cmyk_rgb:w #1 ~ #2 ~ #3 ~ #4 ~ #5 \s_@@_stop { \fp_eval:n { 1 - min ( 1 , #1 + #4 ) } \c_space_tl \fp_eval:n { 1 - min ( 1 , #2 + #4 ) } \c_space_tl @@ -464,10 +471,10 @@ { \tl_if_exist:cTF { l_@@_named_ #1 _tl } { \tl_set_eq:Nc #2 { l_@@_named_ #1 _tl } } - { \@@_parse:Nw #2#1 ! \q_stop } + { \@@_parse:Nw #2#1 ! \s_@@_stop } \@@_check_model:N #2 } -\cs_new_protected:Npn \@@_parse:Nw #1#2 ! #3 \q_stop +\cs_new_protected:Npn \@@_parse:Nw #1#2 ! #3 \s_@@_stop { \@@_if_defined:nTF {#2} { @@ -489,7 +496,7 @@ { \group_begin: \@@_extract:nNN {#2} \l_@@_model_tl \l_@@_value_tl - \@@_parse_loop:w #3 ! ! ! ! \q_stop + \@@_parse_loop:w #3 ! ! ! ! \s_@@_stop \tl_set:Nx \l_@@_internal_tl { \l_@@_model_tl \c_space_tl \l_@@_value_tl } \exp_args:NNNV \group_end: @@ -507,7 +514,7 @@ % sorted out by checking if we have further data to process: in contrast % to \pkg{xcolor}, we don't allow |!!| so the test can be simplified. % \begin{macrocode} -\cs_new_protected:Npn \@@_parse_loop:w #1 ! #2 ! #3 ! #4 ! #5 \q_stop +\cs_new_protected:Npn \@@_parse_loop:w #1 ! #2 ! #3 ! #4 ! #5 \s_@@_stop { \bool_lazy_or:nnF { \tl_if_blank_p:n {#1} } @@ -529,7 +536,7 @@ } } \tl_if_blank:nF {#3} - { \@@_parse_loop:w #3 ! #4 ! #5 \q_stop } + { \@@_parse_loop:w #3 ! #4 ! #5 \s_@@_stop } \@@_parse_end: } % \end{macrocode} @@ -594,19 +601,19 @@ \cs_new:Npn \@@_parse_mix:nNnn #1#2#3#4 { \use:c { @@_parse_mix_ #2 :nw } {#1} - #3 \q_mark #4 \q_stop + #3 \s_@@_mark #4 \s_@@_stop } -\cs_new:Npn \@@_parse_mix_gray:nw #1#2 \q_mark #3 \q_stop +\cs_new:Npn \@@_parse_mix_gray:nw #1#2 \s_@@_mark #3 \s_@@_stop { \fp_eval:n { #2 * #1 + #3 * ( 1 - #1 ) } } \cs_new:Npn \@@_parse_mix_rgb:nw - #1#2 ~ #3 ~ #4 \q_mark #5 ~ #6 ~ #7 \q_stop + #1#2 ~ #3 ~ #4 \s_@@_mark #5 ~ #6 ~ #7 \s_@@_stop { \fp_eval:n { #2 * #1 + #5 * ( 1 - #1 ) } \c_space_tl \fp_eval:n { #3 * #1 + #6 * ( 1 - #1 ) } \c_space_tl \fp_eval:n { #4 * #1 + #7 * ( 1 - #1 ) } } \cs_new:Npn \@@_parse_mix_cmyk:nw - #1#2 ~ #3 ~ #4 ~ #5 \q_mark #6 ~ #7 ~ #8 ~ #9 \q_stop + #1#2 ~ #3 ~ #4 ~ #5 \s_@@_mark #6 ~ #7 ~ #8 ~ #9 \s_@@_stop { \fp_eval:n { #2 * #1 + #6 * ( 1 - #1 ) } \c_space_tl \fp_eval:n { #3 * #1 + #7 * ( 1 - #1 ) } \c_space_tl @@ -636,27 +643,27 @@ % \begin{macro}[EXP]{\@@_parse_spot_aux:w} % Turn the input into internal form, also tidying up the number quickly. % \begin{macrocode} -\cs_new:Npn \@@_parse_model_gray:w #1 , #2 \q_stop { \@@_parse_number:n {#1} } -\cs_new:Npn \@@_parse_model_rgb:w #1 , #2 , #3 , #4 \q_stop +\cs_new:Npn \@@_parse_model_gray:w #1 , #2 \s_@@_stop { \@@_parse_number:n {#1} } +\cs_new:Npn \@@_parse_model_rgb:w #1 , #2 , #3 , #4 \s_@@_stop { - \@@_parse_number:n {#1} ~ + \@@_parse_number:n {#1} ~ \@@_parse_number:n {#2} ~ \@@_parse_number:n {#3} } -\cs_new:Npn \@@_parse_model_cmyk:w #1 , #2 , #3 , #4 , #5 \q_stop +\cs_new:Npn \@@_parse_model_cmyk:w #1 , #2 , #3 , #4 , #5 \s_@@_stop { - \@@_parse_number:n {#1} ~ + \@@_parse_number:n {#1} ~ \@@_parse_number:n {#2} ~ \@@_parse_number:n {#3} ~ \@@_parse_number:n {#4} } -\cs_new:Npn \@@_parse_model_spot:w #1 , #2 \q_stop - { \@@_parse_spot_aux:w #1 ! 100 ! \q_stop } -\cs_new:Npn \@@_parse_spot_aux:w #1 ! #2 ! #3 \q_stop +\cs_new:Npn \@@_parse_model_spot:w #1 , #2 \s_@@_stop + { \@@_parse_spot_aux:w #1 ! 100 ! \s_@@_stop } +\cs_new:Npn \@@_parse_spot_aux:w #1 ! #2 ! #3 \s_@@_stop { #1 ~ \fp_eval:n { #2 / 100 } } \cs_new:Npn \@@_parse_number:n #1 - { \@@_parse_number:w #1 . 0 . \q_stop } -\cs_new:Npn \@@_parse_number:w #1 . #2 . #3 \q_stop + { \@@_parse_number:w #1 . 0 . \s_@@_stop } +\cs_new:Npn \@@_parse_number:w #1 . #2 . #3 \s_@@_stop { \tl_if_blank:nTF {#1} { 0 } {#1} . #2 } % \end{macrocode} % \end{macro} @@ -681,7 +688,7 @@ { \tl_if_empty:NF \l_color_fixed_model_tl { - \exp_after:wN \@@_check_model:w #1 \q_stop + \exp_after:wN \@@_check_model:w #1 \s_@@_stop \tl_if_eq:NNF \l_@@_model_tl \l_color_fixed_model_tl { \@@_convert:VVN \l_@@_model_tl \l_color_fixed_model_tl @@ -691,7 +698,7 @@ { \l_color_fixed_model_tl \c_space_tl \l_@@_value_tl } } } -\cs_new_protected:Npn \@@_check_model:w #1 ~ #2 \q_stop +\cs_new_protected:Npn \@@_check_model:w #1 ~ #2 \s_@@_stop { \tl_set:Nn \l_@@_model_tl {#1} \tl_set:Nn \l_@@_value_tl {#2} @@ -743,7 +750,7 @@ \cs_if_exist:cTF { @@_parse_model_ #1 :w } { \tl_set:Nx #3 - { #1 ~ \use:c { @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \q_stop } + { #1 ~ \use:c { @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s_@@_stop } \@@_check_model:N #3 } { @@ -848,21 +855,21 @@ {#1} { \@@_if_defined:nTF {#1} - { \exp_last_unbraced:Nv \@@_show:w { l_@@_named_ #1 _tl } \q_stop } + { \exp_last_unbraced:Nv \@@_show:w { l_@@_named_ #1 _tl } \s_@@_stop } { } } { } { } } -\cs_new:Npn \@@_show:w #1 ~ #2 \q_stop +\cs_new:Npn \@@_show:w #1 ~ #2 \s_@@_stop { \msg_show_item_unbraced:nn { model } {#1} \exp_args:Nnf \msg_show_item_unbraced:nn { value } - { \use:c { @@_show_ #1 :w } #2 \q_stop } + { \use:c { @@_show_ #1 :w } #2 \s_@@_stop } } -\cs_new:Npn \@@_show_gray:w #1 \q_stop { #1 } -\cs_new:Npn \@@_show_rgb:w #1 ~ #2 ~ #3 \q_stop { #1 ,~ #2 ,~ #3 } -\cs_new:Npn \@@_show_cmyk:w #1 ~ #2 ~ #3 ~ #4 \q_stop { #1 ,~ #2 ,~ #3 ,~ #4 } +\cs_new:Npn \@@_show_gray:w #1 \s_@@_stop { #1 } +\cs_new:Npn \@@_show_rgb:w #1 ~ #2 ~ #3 \s_@@_stop { #1 ,~ #2 ,~ #3 } +\cs_new:Npn \@@_show_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop { #1 ,~ #2 ,~ #3 ,~ #4 } % \end{macrocode} % \end{macro} % \end{macro} diff --git a/macros/latex/contrib/l3experimental/l3color.pdf b/macros/latex/contrib/l3experimental/l3color.pdf index 1c7f8f3153..cfffa89396 100644 Binary files a/macros/latex/contrib/l3experimental/l3color.pdf and b/macros/latex/contrib/l3experimental/l3color.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3draw-boxes.dtx b/macros/latex/contrib/l3experimental/l3draw-boxes.dtx index 572b4f2192..b1c1b8f9bb 100644 --- a/macros/latex/contrib/l3experimental/l3draw-boxes.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-boxes.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-code.pdf b/macros/latex/contrib/l3experimental/l3draw-code.pdf index 296561bb05..58ec9c8866 100644 Binary files a/macros/latex/contrib/l3experimental/l3draw-code.pdf and b/macros/latex/contrib/l3experimental/l3draw-code.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3draw-layers.dtx b/macros/latex/contrib/l3experimental/l3draw-layers.dtx index 53c221d69e..1711561dc7 100644 --- a/macros/latex/contrib/l3experimental/l3draw-layers.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-layers.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-paths.dtx b/macros/latex/contrib/l3experimental/l3draw-paths.dtx index 846043faa4..1d79852ddc 100644 --- a/macros/latex/contrib/l3experimental/l3draw-paths.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-paths.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-points.dtx b/macros/latex/contrib/l3experimental/l3draw-points.dtx index dccb1fb677..6874d149ae 100644 --- a/macros/latex/contrib/l3experimental/l3draw-points.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-points.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -116,8 +116,8 @@ {#1} } \cs_new:Npn \@@_point_process_auxi:nn #1#2 - { \@@_point_process_auxii:nw {#2} #1 \q_stop } -\cs_new:Npn \@@_point_process_auxii:nw #1 #2 , #3 \q_stop + { \@@_point_process_auxii:nw {#2} #1 \s_@@_stop } +\cs_new:Npn \@@_point_process_auxii:nw #1 #2 , #3 \s_@@_stop { #1 {#2} {#3} } \cs_new:Npn \@@_point_process:nnn #1#2#3 { @@ -127,8 +127,8 @@ {#1} } \cs_new:Npn \@@_point_process_auxiii:nnn #1#2#3 - { \@@_point_process_auxiv:nw {#3} #1 \q_mark #2 \q_stop } -\cs_new:Npn \@@_point_process_auxiv:nw #1 #2 , #3 \q_mark #4 , #5 \q_stop + { \@@_point_process_auxiv:nw {#3} #1 \s_@@_mark #2 \s_@@_stop } +\cs_new:Npn \@@_point_process_auxiv:nw #1 #2 , #3 \s_@@_mark #4 , #5 \s_@@_stop { #1 {#2} {#3} {#4} {#5} } \cs_new:Npn \@@_point_process:nnnn #1#2#3#4 { @@ -139,9 +139,9 @@ {#1} } \cs_new:Npn \@@_point_process_auxv:nnnn #1#2#3#4 - { \@@_point_process_auxvi:nw {#4} #1 \q_mark #2 \q_mark #3 \q_stop } + { \@@_point_process_auxvi:nw {#4} #1 \s_@@_mark #2 \s_@@_mark #3 \s_@@_stop } \cs_new:Npn \@@_point_process_auxvi:nw - #1 #2 , #3 \q_mark #4 , #5 \q_mark #6 , #7 \q_stop + #1 #2 , #3 \s_@@_mark #4 , #5 \s_@@_mark #6 , #7 \s_@@_stop { #1 {#2} {#3} {#4} {#5} {#6} {#7} } \cs_new:Npn \@@_point_process:nnnnn #1#2#3#4#5 { @@ -155,10 +155,10 @@ \cs_new:Npn \@@_point_process_auxvii:nnnnn #1#2#3#4#5 { \@@_point_process_auxviii:nw - {#5} #1 \q_mark #2 \q_mark #3 \q_mark #4 \q_stop + {#5} #1 \s_@@_mark #2 \s_@@_mark #3 \s_@@_mark #4 \s_@@_stop } \cs_new:Npn \@@_point_process_auxviii:nw - #1 #2 , #3 \q_mark #4 , #5 \q_mark #6 , #7 \q_mark #8 , #9 \q_stop + #1 #2 , #3 \s_@@_mark #4 , #5 \s_@@_mark #6 , #7 \s_@@_mark #8 , #9 \s_@@_stop { #1 {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9} } % \end{macrocode} % \end{macro} diff --git a/macros/latex/contrib/l3experimental/l3draw-scopes.dtx b/macros/latex/contrib/l3experimental/l3draw-scopes.dtx index 704d80652f..1359254106 100644 --- a/macros/latex/contrib/l3experimental/l3draw-scopes.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-scopes.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-softpath.dtx b/macros/latex/contrib/l3experimental/l3draw-softpath.dtx index ce3b8b1ac8..ca1f161df5 100644 --- a/macros/latex/contrib/l3experimental/l3draw-softpath.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-softpath.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -326,8 +326,8 @@ \tl_build_get:NN \g_@@_softpath_main_tl \l_@@_softpath_internal_tl \exp_after:wN \@@_softpath_round_loop:Nnn \l_@@_softpath_internal_tl - \q_recursion_tail ? ? - \q_recursion_stop + \q_@@_recursion_tail ? ? + \q_@@_recursion_stop \group_end: } \bool_gset_false:N \g_@@_softpath_corners_bool @@ -342,7 +342,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_softpath_round_loop:Nnn #1#2#3 { - \quark_if_recursion_tail_stop_do:Nn #1 { \@@_softpath_round_end: } + \@@_if_recursion_tail_stop_do:Nn #1 { \@@_softpath_round_end: } \token_if_eq_meaning:NNTF #1 \@@_softpath_roundpoint_op:nn { \@@_softpath_round_action:nn {#2} {#3} } { @@ -505,7 +505,7 @@ \cs_new:Npn \@@_softpath_round_calc:nnnnnn #1#2#3#4#5#6 { \@@_softpath_round_calc:nnnnw {#3} {#4} {#5} {#6} - #1 \q_mark #2 \q_stop + #1 \s_@@_mark #2 \s_@@_stop } \cs_generate_variant:Nn \@@_softpath_round_calc:nnnnnn { fV } % \end{macrocode} @@ -513,7 +513,7 @@ % quadratic Bézier curve. % \begin{macrocode} \cs_new:Npn \@@_softpath_round_calc:nnnnw - #1#2#3#4 #5 , #6 \q_mark #7 , #8 \q_stop + #1#2#3#4 #5 , #6 \s_@@_mark #7 , #8 \s_@@_stop { {#5} {#6} \exp_not:N \@@_softpath_curveto_opi:nn @@ -556,7 +556,7 @@ \exp_not:N \exp_after:wN \exp_not:N \@@_softpath_round_close:w \exp_not:N \l_@@_softpath_curve_end_tl - \exp_not:N \q_stop + \s_@@_stop } \use:x { @@ -567,7 +567,7 @@ \exp_not:N \exp_after:wN \exp_not:N \@@_softpath_round_close:w \exp_not:N \l_@@_softpath_curve_end_tl - \exp_not:N \q_stop + \s_@@_stop } } } @@ -576,7 +576,7 @@ \exp_after:wN \use_none:n \l_@@_softpath_move_tl } } -\cs_new:Npn \@@_softpath_round_close:w #1 , #2 \q_stop { {#1} {#2} } +\cs_new:Npn \@@_softpath_round_close:w #1 , #2 \s_@@_stop { {#1} {#2} } % \end{macrocode} % Tidy up the parts of the path, complete the built token list and put % it back into action. diff --git a/macros/latex/contrib/l3experimental/l3draw-state.dtx b/macros/latex/contrib/l3experimental/l3draw-state.dtx index 658982a49b..74f4f6a072 100644 --- a/macros/latex/contrib/l3experimental/l3draw-state.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-state.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -177,17 +177,17 @@ \@@_color_aux:Vn \l_@@_color_tmp_tl {#1} } \cs_new_protected:Npn \@@_color_aux:nn #1#2 - { \@@_color:nw {#2} #1 \q_stop } + { \@@_color:nw {#2} #1 \s_@@_stop } \cs_generate_variant:Nn \@@_color_aux:nn { V } -\cs_new_protected:Npn \@@_color:nw #1#2 ~ #3 \q_stop - { \use:c { @@_color_ #2 :nw } {#1} #3 \q_stop } -\cs_new_protected:Npn \@@_color_cmyk:nw #1#2 ~ #3 ~ #4 ~ #5 \q_stop +\cs_new_protected:Npn \@@_color:nw #1#2 ~ #3 \s_@@_stop + { \use:c { @@_color_ #2 :nw } {#1} #3 \s_@@_stop } +\cs_new_protected:Npn \@@_color_cmyk:nw #1#2 ~ #3 ~ #4 ~ #5 \s_@@_stop { \use:c { @@_backend_color_ #1 _cmyk:nnnn } {#2} {#3} {#4} {#5} } -\cs_new_protected:Npn \@@_color_gray:nw #1#2 \q_stop +\cs_new_protected:Npn \@@_color_gray:nw #1#2 \s_@@_stop { \use:c { @@_backend_color_ #1 _gray:n } {#2} } -\cs_new_protected:Npn \@@_color_rgb:nw #1#2 ~ #3 ~ #4 \q_stop +\cs_new_protected:Npn \@@_color_rgb:nw #1#2 ~ #3 ~ #4 \s_@@_stop { \use:c { @@_backend_color_ #1 _rgb:nnn } {#2} {#3} {#4} } -\cs_new_protected:Npn \@@_color_spot:nw #1#2 ~ #3 \q_stop +\cs_new_protected:Npn \@@_color_spot:nw #1#2 ~ #3 \s_@@_stop { \use:c { @@_backend_color_ #1 _spot:nn } {#2} {#3} } % \end{macrocode} % \end{macro} diff --git a/macros/latex/contrib/l3experimental/l3draw-transforms.dtx b/macros/latex/contrib/l3experimental/l3draw-transforms.dtx index bcfed70787..beb6582e0e 100644 --- a/macros/latex/contrib/l3experimental/l3draw-transforms.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-transforms.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw.dtx b/macros/latex/contrib/l3experimental/l3draw.dtx index 0ce74688f4..f485aa69a2 100644 --- a/macros/latex/contrib/l3experimental/l3draw.dtx +++ b/macros/latex/contrib/l3experimental/l3draw.dtx @@ -110,7 +110,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -1146,7 +1146,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3draw}{2020-01-12}{} +\ProvidesExplPackage{l3draw}{2020-05-18}{} {L3 Experimental core drawing support} % % \end{macrocode} @@ -1155,6 +1155,31 @@ \RequirePackage { l3color } % \end{macrocode} % +% \subsection{Internal auxiliaries} +% +% \begin{variable}{\s_@@_mark,\s_@@_stop} +% Internal scan marks. +% \begin{macrocode} +\scan_new:N \s_@@_mark +\scan_new:N \s_@@_stop +% \end{macrocode} +% \end{variable} +% +% \begin{variable}{\q_@@_recursion_tail,\q_@@_recursion_stop} +% Internal recursion quarks. +% \begin{macrocode} +\quark_new:N \q_@@_recursion_tail +\quark_new:N \q_@@_recursion_stop +% \end{macrocode} +% \end{variable} +% +% \begin{macro}[EXP]{\@@_if_recursion_tail_stop_do:Nn} +% Functions to query recursion quarks. +% \begin{macrocode} +\__kernel_quark_new_test:N \@@_if_recursion_tail_stop_do:Nn +% \end{macrocode} +% \end{macro} +% % Everything else is in the sub-files! % % \begin{macrocode} diff --git a/macros/latex/contrib/l3experimental/l3draw.pdf b/macros/latex/contrib/l3experimental/l3draw.pdf index ed46ba5f7f..e68c0a0a77 100644 Binary files a/macros/latex/contrib/l3experimental/l3draw.pdf and b/macros/latex/contrib/l3experimental/l3draw.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3galley.dtx b/macros/latex/contrib/l3experimental/l3galley.dtx index 14d9fc9e09..e8a59c0770 100644 --- a/macros/latex/contrib/l3experimental/l3galley.dtx +++ b/macros/latex/contrib/l3experimental/l3galley.dtx @@ -61,7 +61,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -687,7 +687,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3galley}{2020-01-12}{} +\ProvidesExplPackage{l3galley}{2020-05-18}{} {L3 Experimental galley code} % % \end{macrocode} @@ -1751,7 +1751,7 @@ \cs_new_protected:Npn \galley_cutout_right:nn { \@@_cutout:nnn { right } } % \end{macrocode} -% The cutout information needs to be saved in in the appropriate sequence. +% The cutout information needs to be saved in the appropriate sequence. % First, the input is converted to a (temporary) sequence. If there is % no existing cutout defined, this is simply stored. On the other hand, % if there is a cutout already active, the new one needs to be added to diff --git a/macros/latex/contrib/l3experimental/l3galley.pdf b/macros/latex/contrib/l3experimental/l3galley.pdf index 83e56ffd2c..2c4091dce6 100644 Binary files a/macros/latex/contrib/l3experimental/l3galley.pdf and b/macros/latex/contrib/l3experimental/l3galley.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3graphics.dtx b/macros/latex/contrib/l3experimental/l3graphics.dtx index e877b69ca5..36a63818c1 100644 --- a/macros/latex/contrib/l3experimental/l3graphics.dtx +++ b/macros/latex/contrib/l3experimental/l3graphics.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -241,7 +241,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3graphics}{2020-01-12}{} +\ProvidesExplPackage{l3graphics}{2020-05-18}{} {L3 Experimental graphics inclusion support} % % \end{macrocode} @@ -254,6 +254,13 @@ % \end{macrocode} % \end{variable} % +% \begin{variable}{\s_@@_stop} +% Internal scan marks. +% \begin{macrocode} +\scan_new:N \s_@@_stop +% \end{macrocode} +% \end{variable} +% % \subsection{Image feature support} % % \begin{macro} @@ -408,7 +415,7 @@ \ior_str_map_inline:Nn \exp_not:N \l_@@_tmp_ior { \exp_not:N \@@_read_bb_auxiii:w - ##1 ~ \c_colon_str \exp_not:N \q_stop + ##1 ~ \c_colon_str \s_@@_stop } } \exp_not:n @@ -425,12 +432,12 @@ \use:x { \cs_new_protected:Npn \exp_not:N \@@_read_bb_auxiii:w - ##1 \c_colon_str ##2 \exp_not:N \q_stop + ##1 \c_colon_str ##2 \s_@@_stop { \exp_not:N \str_if_eq:nnT { \c_percent_str \c_percent_str BoundingBox } {##1} - { \exp_not:N \@@_read_bb_auxiv:w ##2 ( ) \exp_not:N \q_stop } + { \exp_not:N \@@_read_bb_auxiv:w ##2 ( ) \s_@@_stop } } } % \end{macrocode} @@ -441,7 +448,7 @@ % whitespace. \TeX{} will then tidy up for us, with just a leading space to % worry about: that is taken out by the |\use:n| here. % \begin{macrocode} -\cs_new_protected:Npn \@@_read_bb_auxiv:w #1 ( #2 ) #3 \q_stop +\cs_new_protected:Npn \@@_read_bb_auxiv:w #1 ( #2 ) #3 \s_@@_stop { \str_if_eq:nnF {#2} { atend } { @@ -451,14 +458,14 @@ \char_set_catcode_space:n { 32 } } { \use:n #1 } - \exp_after:wN \@@_read_bb_auxv:w \l_@@_tmp_tl \q_stop + \exp_after:wN \@@_read_bb_auxv:w \l_@@_tmp_tl \s_@@_stop } } % \end{macrocode} % A trailing space was deliberately added earlier so we know that the final % data point is terminated by a space. % \begin{macrocode} -\cs_new_protected:Npn \@@_read_bb_auxv:w #1~#2~#3~#4~#5 \q_stop +\cs_new_protected:Npn \@@_read_bb_auxv:w #1~#2~#3~#4~#5 \s_@@_stop { \dim_set:Nn \l_graphics_llx_dim { #1 bp } \dim_set:Nn \l_graphics_lly_dim { #2 bp } diff --git a/macros/latex/contrib/l3experimental/l3graphics.pdf b/macros/latex/contrib/l3experimental/l3graphics.pdf index 91fd6d81c4..61d989c0ad 100644 Binary files a/macros/latex/contrib/l3experimental/l3graphics.pdf and b/macros/latex/contrib/l3experimental/l3graphics.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3pdf-code.pdf b/macros/latex/contrib/l3experimental/l3pdf-code.pdf index 7f232d74e5..33d08d4d7b 100644 Binary files a/macros/latex/contrib/l3experimental/l3pdf-code.pdf and b/macros/latex/contrib/l3experimental/l3pdf-code.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3pdf.dtx b/macros/latex/contrib/l3experimental/l3pdf.dtx index dc36f172fa..2b9f2564e7 100644 --- a/macros/latex/contrib/l3experimental/l3pdf.dtx +++ b/macros/latex/contrib/l3experimental/l3pdf.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -71,7 +71,13 @@ % The object may be referenced from this point on, and written later % using \cs{pdf_object_write:nn}. % \end{function} -% +% \begin{function}[EXP, pTF, added=2020-05-15]{\pdf_object_if_exist:n} +% \begin{syntax} +% \cs{pdf_object_if_exist_p:n} \Arg{object} +% \cs{pdf_object_if_exist:nTF} \Arg{object} +% \end{syntax} +% Tests whether an object with name \Arg{object} has been defined. +% \end{function} % \begin{function}[added = 2019-06-02] % {\pdf_object_write:nn, \pdf_object_write:nx} % \begin{syntax} @@ -185,11 +191,18 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3pdf}{2020-01-12}{} +\ProvidesExplPackage{l3pdf}{2020-05-18}{} {L3 Experimental core PDF support} % % \end{macrocode} % +% \begin{variable}{\s_@@_stop} +% Internal scan marks. +% \begin{macrocode} +\scan_new:N \s_@@_stop +% \end{macrocode} +% \end{variable} +% % \begin{variable}{\g_@@_init_bool} % A flag so we have some chance of avoiding setting things we are not % allowed to. @@ -224,6 +237,7 @@ % \subsection{Objects} % % \begin{macro}{\pdf_object_new:nn, \pdf_object_write:nn, \pdf_object_write:nx} +% \begin{macro}[pTF]{\pdf_object_if_exist:n} % \begin{macro}{\pdf_object_ref:n} % \begin{macro}{\pdf_object_now:nn, \pdf_object_now:nx} % \begin{macro}{\pdf_object_last:} @@ -231,6 +245,12 @@ % \begin{macrocode} \cs_new_protected:Npn \pdf_object_new:nn #1#2 { \@@_backend_object_new:nn {#1} {#2} } +\prg_new_conditional:Npnn \pdf_object_if_exist:n #1 { p , T , F , TF } + { + \int_if_exist:cTF { c__pdf_backend_object_ \tl_to_str:n {#1} _int } + { \prg_return_true: } + { \prg_return_false:} + } \cs_new_protected:Npn \pdf_object_write:nn #1#2 { \@@_backend_object_write:nn {#1} {#2} } \cs_generate_variant:Nn \pdf_object_write:nn { nx } @@ -244,6 +264,7 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \subsection{Version} % @@ -258,8 +279,8 @@ % To compare version, we need to split the given value then deal with both % major and minor version \prg_new_conditional:Npnn \pdf_version_compare:Nn #1#2 { p , T , F , TF } - { \use:c { @@_version_compare_ #1 :w } #2 . . \q_stop } -\cs_new:cpn { @@_version_compare_=:w } #1 . #2 . #3 \q_stop + { \use:c { @@_version_compare_ #1 :w } #2 . . \s_@@_stop } +\cs_new:cpn { @@_version_compare_=:w } #1 . #2 . #3 \s_@@_stop { \bool_lazy_and:nnTF { \int_compare_p:nNn \@@_backend_version_major: = {#1} } @@ -267,7 +288,7 @@ { \prg_return_true: } { \prg_return_false: } } -\cs_new:cpn { @@_version_compare_<:w } #1 . #2 . #3 \q_stop +\cs_new:cpn { @@_version_compare_<:w } #1 . #2 . #3 \s_@@_stop { \bool_lazy_or:nnTF { \int_compare_p:nNn \@@_backend_version_major: < {#1} } @@ -279,7 +300,7 @@ { \prg_return_true: } { \prg_return_false: } } -\cs_new:cpn { @@_version_compare_>:w } #1 . #2 . #3 \q_stop +\cs_new:cpn { @@_version_compare_>:w } #1 . #2 . #3 \s_@@_stop { \bool_lazy_or:nnTF { \int_compare_p:nNn \@@_backend_version_major: > {#1} } @@ -300,13 +321,13 @@ % Split the version and set. % \begin{macrocode} \cs_new_protected:Npn \pdf_version_gset:n #1 - { \@@_version_gset:w #1 . . \q_stop } + { \@@_version_gset:w #1 . . \s_@@_stop } \cs_new_protected:Npn \pdf_version_min_gset:n #1 { \pdf_version_compare:NnT < {#1} - { \@@_version_gset:w #1 . . \q_stop } + { \@@_version_gset:w #1 . . \s_@@_stop } } -\cs_new_protected:Npn \@@_version_gset:w #1 . #2 . #3\q_stop +\cs_new_protected:Npn \@@_version_gset:w #1 . #2 . #3\s_@@_stop { \bool_if:NF \g_@@_init_bool { diff --git a/macros/latex/contrib/l3experimental/l3pdf.pdf b/macros/latex/contrib/l3experimental/l3pdf.pdf index c223f4db7c..2afe2f9eed 100644 Binary files a/macros/latex/contrib/l3experimental/l3pdf.pdf and b/macros/latex/contrib/l3experimental/l3pdf.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3str-format.dtx b/macros/latex/contrib/l3experimental/l3str-format.dtx index af34128e5b..5cc7827af5 100644 --- a/macros/latex/contrib/l3experimental/l3str-format.dtx +++ b/macros/latex/contrib/l3experimental/l3str-format.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -167,7 +167,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3str-format}{2020-01-12}{} +\ProvidesExplPackage{l3str-format}{2020-05-18}{} {L3 Experimental string formatting} % % \end{macrocode} @@ -191,7 +191,7 @@ % % \begin{macro}[EXP]{\@@_format_if_digit:NTF} % Here we expect |#1| to be a character with category other, or -% \cs{s_stop}. +% \cs{s_@@_stop}. % \begin{macrocode} \prg_new_conditional:Npnn \@@_format_if_digit:N #1 { TF } { @@ -203,9 +203,9 @@ % % \begin{macro}[EXP] % {\@@_format_put:nw, \@@_format_put:ow, \@@_format_put:fw} -% Put |#1| after an \cs{s_stop} delimiter. +% Put |#1| after an \cs{s_@@_stop} delimiter. % \begin{macrocode} -\cs_new:Npn \@@_format_put:nw #1 #2 \s_stop { #2 \s_stop #1 } +\cs_new:Npn \@@_format_put:nw #1 #2 \s_@@_stop { #2 \s_@@_stop #1 } \cs_generate_variant:Nn \@@_format_put:nw { o , f } % \end{macrocode} % \end{macro} @@ -256,7 +256,7 @@ \cs_new:Npn \@@_format_parse:n #1 { \exp_last_unbraced:Nf \@@_format_parse_auxi:NN - { \__kernel_str_to_other:n {#1} } \s_stop \s_stop {#1} + { \__kernel_str_to_other:n {#1} } \s_@@_stop \s_@@_stop {#1} } \cs_new:Npx \@@_format_parse_auxi:NN #1#2 { @@ -301,11 +301,11 @@ } \cs_new:Npn \@@_format_parse_auxvii:nN #1#2 { - \token_if_eq_meaning:NNTF \s_stop #2 + \token_if_eq_meaning:NNTF \s_@@_stop #2 { \@@_format_parse_end:nwn { #1 ? } #2 } { \@@_format_parse_end:nwn { #1 #2 } } } -\cs_new:Npn \@@_format_parse_end:nwn #1 #2 \s_stop \s_stop #3 +\cs_new:Npn \@@_format_parse_end:nwn #1 #2 \s_@@_stop \s_@@_stop #3 { \tl_if_empty:nF {#2} { \__kernel_msg_expandable_error:nnn { str } { invalid-format } {#3} } @@ -455,9 +455,9 @@ % \end{quote} % First check that the \meta{alignment} is not |=|, and set the % default alignment |?| to |<|. Place the modified information after -% a trailing \cs{s_stop} for later retrieval. Then check that there +% a trailing \cs{s_@@_stop} for later retrieval. Then check that there % was no \meta{sign}. The width will be useful later, store it after -% \cs{s_stop}. Afterwards, store the precision, and the function +% \cs{s_@@_stop}. Afterwards, store the precision, and the function % \cs{@@_range:nnn} that will be used to extract the first % |#5| characters of the string. % There is a need to use the internal function, as otherwise @@ -495,14 +495,14 @@ } } \@@_format_tl_s:NNnnNNn - \s_stop + \s_@@_stop } % \end{macrocode} % \end{macro} % % \begin{macro}[EXP]{\@@_format_tl_s:NNnnNNn} % \begin{quote} -% \cs{@@_format_tl_s:NNnnNNn} \cs{s_stop} \meta{function} +% \cs{@@_format_tl_s:NNnnNNn} \cs{s_@@_stop} \meta{function} % \Arg{arguments} \Arg{width} \meta{fill} \meta{alignment} % \Arg{token list} % \end{quote} @@ -617,12 +617,12 @@ % \end{quote} % First set the % default alignment |?| to |>|. Place the modified information after -% a trailing \cs{s_stop} for later retrieval. Then check the +% a trailing \cs{s_@@_stop} for later retrieval. Then check the % \meta{sign}: if the integer is negative, always put~|-|. Otherwise, % if the format's \meta{sign} is |~|, put a space (with category % \enquote{other}); if it is~|+| put |+|; if it is |-| (default), put % nothing, represented as a brace group. The width |#4| will be -% useful later, store it after \cs{s_stop}. Afterwards, check that +% useful later, store it after \cs{s_@@_stop}. Afterwards, check that % the \meta{precision} was absent. Finally, dispatch depending on the % \meta{style}. % \begin{macrocode} @@ -660,14 +660,14 @@ { str } { invalid-style-format } {#6} { int } \@@_format_int:NwnnNNn \use:n } - \s_stop {#7} + \s_@@_stop {#7} } % \end{macrocode} % \end{macro} % % \begin{macro}[EXP]{\@@_format_int:NwnnNNn} % \begin{quote} -% \cs{@@_format_int:NwnnNNn} \meta{function} \cs{s_stop} +% \cs{@@_format_int:NwnnNNn} \meta{function} \cs{s_@@_stop} % \Arg{width} \Arg{sign} \meta{fill} \meta{alignment} \Arg{integer} % \end{quote} % Use the |format_align| function corresponding to the @@ -680,7 +680,7 @@ % \item the \meta{fill} character. % \end{itemize} % \begin{macrocode} -\cs_new:Npn \@@_format_int:NwnnNNn #1#2 \s_stop #3#4#5#6#7 +\cs_new:Npn \@@_format_int:NwnnNNn #1#2 \s_@@_stop #3#4#5#6#7 { \exp_args:Nc \exp_args:Nf { @@_format_align_#6:nnnN } @@ -728,13 +728,13 @@ % \Arg{floating point} % \end{quote} % First set the default alignment |?| to |>|. Place the modified -% information after a trailing \cs{s_stop} for later retrieval. Then +% information after a trailing \cs{s_@@_stop} for later retrieval. Then % check the \meta{format sign} and the \meta{fp sign}: if the floating % point is negative, always put~|-|. Otherwise (including % \texttt{nan}), if the format's \meta{sign} is |~|, put a space (with % category \enquote{other}); if it is~|+| put |+|; if it is |-| % (default), put nothing, represented as a brace group. The width -% |#4| will be useful later, store it after \cs{s_stop}. Afterwards, +% |#4| will be useful later, store it after \cs{s_@@_stop}. Afterwards, % check the \meta{precision}: if it was not given, replace it by $6$ % (default precision) unless no \meta{style} was given: in that case % we want to use whatever precision is needed to fully describe the @@ -776,20 +776,20 @@ { str } { invalid-style-format } {#6} { fp } \@@_format_fp:wnnnNNn \@@_format_fp_g:nn } - \s_stop {#7} + \s_@@_stop {#7} } % \end{macrocode} % \end{macro} % % \begin{macro}[EXP]{\@@_format_fp:wnnnNNn} % \begin{quote} -% \cs{@@_format_fp:wnnnNNn} \meta{formatting function} \cs{s_stop} +% \cs{@@_format_fp:wnnnNNn} \meta{formatting function} \cs{s_@@_stop} % \Arg{precision} \Arg{width} \Arg{sign} \meta{fill} % \meta{alignment} \Arg{floating point} % \end{quote} % \begin{macrocode} \cs_new:Npn \@@_format_fp:wnnnNNn - #1 \s_stop #2 #3 #4 #5#6 #7 + #1 \s_@@_stop #2 #3 #4 #5#6 #7 { \exp_args:Nc \exp_args:Nf { @@_format_align_#6:nnnN } @@ -850,7 +850,7 @@ { \prg_replicate:nn { #4 - \c__fp_prec_int + 1 } { 0 } } \@@_format_put:nw { #1 . #2 } } - \use_none:n \s_stop + \use_none:n \s_@@_stop } % \end{macrocode} % \end{macro} @@ -947,11 +947,11 @@ \cs_new:Npn \@@_format_fp_trim:w #1 e { \@@_format_fp_trim_loop:w #1 - ; \@@_format_fp_trim_loop:w 0; \@@_format_fp_trim_dot:w .; \s_stop e + ; \@@_format_fp_trim_loop:w 0; \@@_format_fp_trim_dot:w .; \s_@@_stop e } \cs_new:Npn \@@_format_fp_trim_loop:w #1 0; #2 { #2 #1 ; #2 } \cs_new:Npn \@@_format_fp_trim_dot:w #1 .; { \@@_format_fp_trim_end:w #1 ; } -\cs_new:Npn \@@_format_fp_trim_end:w #1 ; #2 \s_stop { #1 } +\cs_new:Npn \@@_format_fp_trim_end:w #1 ; #2 \s_@@_stop { #1 } % \end{macrocode} % \end{macro} % \end{macro} diff --git a/macros/latex/contrib/l3experimental/l3str-format.pdf b/macros/latex/contrib/l3experimental/l3str-format.pdf index b84115d4b9..dae19872df 100644 Binary files a/macros/latex/contrib/l3experimental/l3str-format.pdf and b/macros/latex/contrib/l3experimental/l3str-format.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3sys-shell.dtx b/macros/latex/contrib/l3experimental/l3sys-shell.dtx index c166811e11..52cfcd634a 100644 --- a/macros/latex/contrib/l3experimental/l3sys-shell.dtx +++ b/macros/latex/contrib/l3experimental/l3sys-shell.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -67,7 +67,7 @@ % \begin{syntax} % \cs{sys_shell_mkdir:n} \Arg{directory} % \end{syntax} -% Creates the \meta{directory}, which should should be specified using |/| as +% Creates the \meta{directory}, which should be specified using |/| as % a path separator. If unrestricted shell escape is not enabled, no action is % attempted. % \end{function} @@ -95,7 +95,7 @@ % \begin{syntax} % \cs{sys_shell_rmdir:n} \Arg{directory} % \end{syntax} -% Removes the \meta{directory}, which should should be specified using |/| as +% Removes the \meta{directory}, which should be specified using |/| as % a path separator. If unrestricted shell escape is not enabled, no action is % attempted. % \end{function} @@ -136,11 +136,32 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{l3sys-shell}{2020-01-12}{} +\ProvidesExplPackage{l3sys-shell}{2020-05-18}{} {L3 Experimental system shell functions} % % \end{macrocode} % +% \begin{variable}{\s_@@_stop} +% Internal scan marks. +% \begin{macrocode} +\scan_new:N \s_@@_stop +% \end{macrocode} +% \end{variable} +% +% \begin{variable}{\q_@@_nil} +% Internal quarks. +% \begin{macrocode} +\quark_new:N \q_@@_nil +% \end{macrocode} +% \end{variable} +% +% \begin{macro}[pTF]{\@@_quark_if_nil:n} +% Branching quark conditional. +% \begin{macrocode} +\__kernel_quark_new_conditional:Nn \@@_quark_if_nil:N { F } +% \end{macrocode} +% \end{macro} +% % \begin{macro}[EXP]{\@@_path_to_win:n} % \begin{macro}[EXP]{\@@_path_to_win:w} % \begin{macro}[EXP]{\@@_path_to_win:N} @@ -148,20 +169,20 @@ % \begin{macrocode} \cs_new:Npn \@@_path_to_win:n #1 { - \exp_after:wN \@@_path_to_win:w \tl_to_str:n {#1} ~ \q_stop + \exp_after:wN \@@_path_to_win:w \tl_to_str:n {#1} ~ \s_@@_stop } -\cs_new:Npn \@@_path_to_win:w #1 ~ #2 \q_stop +\cs_new:Npn \@@_path_to_win:w #1 ~ #2 \s_@@_stop { - \@@_path_to_win:N #1 \q_nil + \@@_path_to_win:N #1 \q_@@_nil \tl_if_empty:nF {#2} { \c_space_tl - \@@_path_to_win:w #2 \q_stop + \@@_path_to_win:w #2 \s_@@_stop } } \cs_new:Npn \@@_path_to_win:N #1 { - \quark_if_nil:NF #1 + \@@_quark_if_nil:NF #1 { \token_if_eq_meaning:NNTF #1 / { \c_backslash_str } diff --git a/macros/latex/contrib/l3experimental/l3sys-shell.pdf b/macros/latex/contrib/l3experimental/l3sys-shell.pdf index 59880cbf58..68a82d4a4d 100644 Binary files a/macros/latex/contrib/l3experimental/l3sys-shell.pdf and b/macros/latex/contrib/l3experimental/l3sys-shell.pdf differ diff --git a/macros/latex/contrib/l3experimental/xcoffins.dtx b/macros/latex/contrib/l3experimental/xcoffins.dtx index 9f4aec0bcd..6b1686b6cf 100644 --- a/macros/latex/contrib/l3experimental/xcoffins.dtx +++ b/macros/latex/contrib/l3experimental/xcoffins.dtx @@ -56,7 +56,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -675,7 +675,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xcoffins}{2020-01-12}{} +\ProvidesExplPackage{xcoffins}{2020-05-18}{} {L3 Experimental design level coffins} % \end{macrocode} % diff --git a/macros/latex/contrib/l3experimental/xcoffins.pdf b/macros/latex/contrib/l3experimental/xcoffins.pdf index adf53b40ea..289ba3c15e 100644 Binary files a/macros/latex/contrib/l3experimental/xcoffins.pdf and b/macros/latex/contrib/l3experimental/xcoffins.pdf differ diff --git a/macros/latex/contrib/l3experimental/xgalley.dtx b/macros/latex/contrib/l3experimental/xgalley.dtx index 5cd043a5e6..577ed6b90b 100644 --- a/macros/latex/contrib/l3experimental/xgalley.dtx +++ b/macros/latex/contrib/l3experimental/xgalley.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Released 2020-01-12} +% \date{Released 2020-05-18} % % \maketitle % @@ -121,7 +121,7 @@ % \subsection{Layer two: internal dimensions} % % \begin{TemplateInterfaceDescription}{measure} -% \TemplateArgument{}{} ^^A A hack +% \TemplateArgument{}{} ^^A Some hack % \TemplateSemantics % Sets the width available to typeset material within the galley. % The \meta{left margin} and \meta{right margin} values are used in the @@ -192,7 +192,7 @@ % \subsection{Layer three: paragraph shape} % % \begin{TemplateInterfaceDescription}{parshape} -% \TemplateArgument{}{}^^A A hack +% \TemplateArgument{}{}^^A Some hack % \TemplateSemantics % Template of this type define any shaping of the paragraph within the % current measure of the galley. Thus they are used to generate @@ -734,7 +734,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xgalley}{2020-01-12}{} +\ProvidesExplPackage{xgalley}{2020-05-18}{} {L3 Experimental galley} \RequirePackage{xparse,xtemplate,l3galley} % \end{macrocode} diff --git a/macros/latex/contrib/l3experimental/xgalley.pdf b/macros/latex/contrib/l3experimental/xgalley.pdf index fd0cb034f0..20cf474c39 100644 Binary files a/macros/latex/contrib/l3experimental/xgalley.pdf and b/macros/latex/contrib/l3experimental/xgalley.pdf differ -- cgit v1.2.3