From 949a85bb8707bf1aaa2b23b018e24d5001d38e52 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 6 Jan 2024 03:01:33 +0000 Subject: CTAN sync 202401060301 --- macros/latex/contrib/l3experimental/CHANGELOG.md | 12 +- macros/latex/contrib/l3experimental/README.md | 4 +- .../latex/contrib/l3experimental/l3benchmark.dtx | 6 +- .../latex/contrib/l3experimental/l3benchmark.ins | 4 +- .../latex/contrib/l3experimental/l3benchmark.pdf | Bin 308820 -> 308420 bytes .../latex/contrib/l3experimental/l3draw-boxes.dtx | 4 +- .../latex/contrib/l3experimental/l3draw-code.pdf | Bin 682740 -> 684116 bytes .../latex/contrib/l3experimental/l3draw-layers.dtx | 4 +- .../latex/contrib/l3experimental/l3draw-paths.dtx | 114 ++++++------ .../latex/contrib/l3experimental/l3draw-points.dtx | 201 +++++++++++---------- .../latex/contrib/l3experimental/l3draw-scopes.dtx | 6 +- .../contrib/l3experimental/l3draw-softpath.dtx | 18 +- .../latex/contrib/l3experimental/l3draw-state.dtx | 4 +- .../contrib/l3experimental/l3draw-transforms.dtx | 60 ++++-- macros/latex/contrib/l3experimental/l3draw.dtx | 21 ++- macros/latex/contrib/l3experimental/l3draw.ins | 4 +- macros/latex/contrib/l3experimental/l3draw.pdf | Bin 518932 -> 518609 bytes macros/latex/contrib/l3experimental/l3galley.dtx | 46 ++--- macros/latex/contrib/l3experimental/l3galley.pdf | Bin 409197 -> 408796 bytes macros/latex/contrib/l3experimental/l3graphics.dtx | 16 +- macros/latex/contrib/l3experimental/l3graphics.ins | 4 +- macros/latex/contrib/l3experimental/l3graphics.pdf | Bin 383921 -> 383526 bytes macros/latex/contrib/l3experimental/l3opacity.dtx | 8 +- macros/latex/contrib/l3experimental/l3opacity.ins | 4 +- macros/latex/contrib/l3experimental/l3opacity.pdf | Bin 313872 -> 313477 bytes .../latex/contrib/l3experimental/l3str-format.dtx | 8 +- .../latex/contrib/l3experimental/l3str-format.pdf | Bin 368314 -> 367974 bytes macros/latex/contrib/l3experimental/l3str.ins | 4 +- .../latex/contrib/l3experimental/l3sys-shell.dtx | 8 +- .../latex/contrib/l3experimental/l3sys-shell.ins | 4 +- .../latex/contrib/l3experimental/l3sys-shell.pdf | Bin 348328 -> 347930 bytes macros/latex/contrib/l3experimental/xcoffins.dtx | 14 +- macros/latex/contrib/l3experimental/xcoffins.ins | 4 +- macros/latex/contrib/l3experimental/xcoffins.pdf | Bin 394766 -> 394367 bytes macros/latex/contrib/l3experimental/xgalley.dtx | 10 +- macros/latex/contrib/l3experimental/xgalley.ins | 4 +- macros/latex/contrib/l3experimental/xgalley.pdf | Bin 299916 -> 299509 bytes 37 files changed, 319 insertions(+), 277 deletions(-) (limited to 'macros/latex/contrib/l3experimental') diff --git a/macros/latex/contrib/l3experimental/CHANGELOG.md b/macros/latex/contrib/l3experimental/CHANGELOG.md index d6e3645c59..449a9889a6 100644 --- a/macros/latex/contrib/l3experimental/CHANGELOG.md +++ b/macros/latex/contrib/l3experimental/CHANGELOG.md @@ -7,6 +7,15 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2024-01-04] + +### Changed +- Apply transformation matrix to drawing shifts + +### Fixed +- Remove a stray scaling in `\draw_path_rectangle:nn` (issue \#1386) +- Correct baseline calculations in some `l3draw` cases (issue \#1400) + ## [2023-12-08] ### Added @@ -293,7 +302,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/2023-12-08...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2024-01-04...HEAD +[2024-01-04]: https://github.com/latex3/latex3/compare/2023-12-08...2024-01-04 [2023-12-08]: https://github.com/latex3/latex3/compare/2023-11-01...2023-12-08 [2023-11-01]: https://github.com/latex3/latex3/compare/2023-10-10...2023-11-01 [2023-10-10]: https://github.com/latex3/latex3/compare/2023-05-11...2023-10-10 diff --git a/macros/latex/contrib/l3experimental/README.md b/macros/latex/contrib/l3experimental/README.md index 52c7d97926..1a4d3a4650 100644 --- a/macros/latex/contrib/l3experimental/README.md +++ b/macros/latex/contrib/l3experimental/README.md @@ -1,7 +1,7 @@ Experimental LaTeX3 Concepts ============================ -Release 2023-12-08 +Release 2024-01-04 Overview -------- @@ -124,6 +124,6 @@ the [LaTeX-L list](#Discussion) should be used. ----- -

Copyright (C) 1998-2004,2008-2012,2014-2023 The LaTeX Project
+

Copyright (C) 1998-2004,2008-2012,2014-2024 The LaTeX 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 bc21191d4b..2eb979c660 100644 --- a/macros/latex/contrib/l3experimental/l3benchmark.dtx +++ b/macros/latex/contrib/l3experimental/l3benchmark.dtx @@ -2,7 +2,7 @@ % %% File: l3benchmark.dtx % -% Copyright (C) 2011-2023 The LaTeX Project +% Copyright (C) 2011-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -122,7 +122,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3benchmark}{2023-12-08}{} +\ProvidesExplPackage{l3benchmark}{2024-01-04}{} {L3 Experimental benchmarking} % \end{macrocode} % diff --git a/macros/latex/contrib/l3experimental/l3benchmark.ins b/macros/latex/contrib/l3experimental/l3benchmark.ins index cfef0f0600..2c4c6908df 100644 --- a/macros/latex/contrib/l3experimental/l3benchmark.ins +++ b/macros/latex/contrib/l3experimental/l3benchmark.ins @@ -2,7 +2,7 @@ File: l3benchmark.ins -Copyright (C) 2011,2018-2023 The LaTeX Project +Copyright (C) 2011,2018-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -34,7 +34,7 @@ license information is placed in the derived files. \preamble -Copyright (C) 2018-2023 The LaTeX Project +Copyright (C) 2018-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/macros/latex/contrib/l3experimental/l3benchmark.pdf b/macros/latex/contrib/l3experimental/l3benchmark.pdf index 83471b67fd..9da3c2ae15 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/l3draw-boxes.dtx b/macros/latex/contrib/l3experimental/l3draw-boxes.dtx index b8f68e90a8..8f481aada9 100644 --- a/macros/latex/contrib/l3experimental/l3draw-boxes.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-boxes.dtx @@ -2,7 +2,7 @@ % %% File: l3draw-boxes.dtx % -% Copyright (C) 2018-2023 The LaTeX Project +% Copyright (C) 2018-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-code.pdf b/macros/latex/contrib/l3experimental/l3draw-code.pdf index c2e80fc340..db5ed76836 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 cf2c2091cb..6e71f93ade 100644 --- a/macros/latex/contrib/l3experimental/l3draw-layers.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-layers.dtx @@ -2,7 +2,7 @@ % %% File: l3draw-layers.dtx % -% Copyright (C) 2019-2023 The LaTeX Project +% Copyright (C) 2019-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-paths.dtx b/macros/latex/contrib/l3experimental/l3draw-paths.dtx index 53032f4d61..735db2d23e 100644 --- a/macros/latex/contrib/l3experimental/l3draw-paths.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-paths.dtx @@ -2,7 +2,7 @@ % %% File: l3draw-paths.dtx % -% Copyright (C) 2018-2023 The LaTeX Project +% Copyright (C) 2018-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -235,9 +235,9 @@ } \cs_new_protected:Npn \@@_path_moveto:nn #1#2 { - \@@_path_update_limits:nn {#1} {#2} - \@@_softpath_moveto:nn {#1} {#2} - \@@_path_update_last:nn {#1} {#2} + \@@_path_update_limits:nn {#1} {#2} + \@@_softpath_moveto:nn {#1} {#2} + \@@_path_update_last:nn {#1} {#2} } \cs_new_protected:Npn \draw_path_lineto:n #1 { @@ -247,10 +247,10 @@ } \cs_new_protected:Npn \@@_path_lineto:nn #1#2 { - \@@_path_mark_corner: - \@@_path_update_limits:nn {#1} {#2} - \@@_softpath_lineto:nn {#1} {#2} - \@@_path_update_last:nn {#1} {#2} + \@@_path_mark_corner: + \@@_path_update_limits:nn {#1} {#2} + \@@_softpath_lineto:nn {#1} {#2} + \@@_path_update_last:nn {#1} {#2} } \cs_new_protected:Npn \draw_path_curveto:nnn #1#2#3 { @@ -265,11 +265,11 @@ } \cs_new_protected:Npn \@@_path_curveto:nnnnnn #1#2#3#4#5#6 { - \@@_path_update_limits:nn {#1} {#2} - \@@_path_update_limits:nn {#3} {#4} - \@@_path_update_limits:nn {#5} {#6} - \@@_softpath_curveto:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6} - \@@_path_update_last:nn {#5} {#6} + \@@_path_update_limits:nn {#1} {#2} + \@@_path_update_limits:nn {#3} {#4} + \@@_path_update_limits:nn {#5} {#6} + \@@_softpath_curveto:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6} + \@@_path_update_last:nn {#5} {#6} } % \end{macrocode} % \end{macro} @@ -348,32 +348,32 @@ \fp_set:Nn \l_@@_path_tmpb_fp { \c_@@_path_curveto_b_fp * #2 } \use:e { - \@@_path_mark_corner: - \@@_path_curveto:nnnnnn - { - \fp_to_dim:n - { - \c_@@_path_curveto_a_fp * \g_@@_path_lastx_dim - + \l_@@_path_tmpa_fp - } - } - { - \fp_to_dim:n - { - \c_@@_path_curveto_a_fp * \g_@@_path_lasty_dim - + \l_@@_path_tmpb_fp - } - } - { - \fp_to_dim:n - { \c_@@_path_curveto_a_fp * #3 + \l_@@_path_tmpa_fp } - } - { - \fp_to_dim:n - { \c_@@_path_curveto_a_fp * #4 + \l_@@_path_tmpb_fp } - } - {#3} - {#4} + \@@_path_mark_corner: + \@@_path_curveto:nnnnnn + { + \fp_to_dim:n + { + \c_@@_path_curveto_a_fp * \g_@@_path_lastx_dim + + \l_@@_path_tmpa_fp + } + } + { + \fp_to_dim:n + { + \c_@@_path_curveto_a_fp * \g_@@_path_lasty_dim + + \l_@@_path_tmpb_fp + } + } + { + \fp_to_dim:n + { \c_@@_path_curveto_a_fp * #3 + \l_@@_path_tmpa_fp } + } + { + \fp_to_dim:n + { \c_@@_path_curveto_a_fp * #4 + \l_@@_path_tmpb_fp } + } + {#3} + {#4} } } \fp_const:Nn \c_@@_path_curveto_a_fp { 1 / 3 } @@ -390,8 +390,8 @@ % \begin{macro} % { % \@@_path_arc_auxi:nnnnNnn, -% \@@_path_arc_auxi:fnnnNnn, -% \@@_path_arc_auxi:fnfnNnn +% \@@_path_arc_auxi:enenNnn, +% \@@_path_arc_auxi:eennNnn % } % \begin{macro}{\@@_path_arc_auxii:nnnNnnnn} % \begin{macro}{\@@_path_arc_auxiii:nn} @@ -416,7 +416,7 @@ { \fp_eval:n {#2} } { \fp_to_dim:n {#3} } { \fp_to_dim:n {#4} } - } + } } \cs_new_protected:Npn \@@_path_arc:nnnn #1#2#3#4 { @@ -432,14 +432,14 @@ { \fp_compare:nNnTF \l_@@_path_arc_delta_fp > { 115 } { - \@@_path_arc_auxi:ffnnNnn + \@@_path_arc_auxi:eennNnn { \fp_to_decimal:N \l_@@_path_arc_start_fp } { \fp_eval:n { \l_@@_path_arc_start_fp #3 90 } } { 90 } {#2} #3 {#4} {#5} } { - \@@_path_arc_auxi:ffnnNnn + \@@_path_arc_auxi:eennNnn { \fp_to_decimal:N \l_@@_path_arc_start_fp } { \fp_eval:n { \l_@@_path_arc_start_fp #3 60 } } { 60 } {#2} @@ -447,7 +447,7 @@ } } \@@_path_mark_corner: - \@@_path_arc_auxi:fnfnNnn + \@@_path_arc_auxi:enenNnn { \fp_to_decimal:N \l_@@_path_arc_start_fp } {#2} { \fp_eval:n { abs( \l_@@_path_arc_start_fp - #2 ) } } @@ -488,10 +488,10 @@ } } } -\cs_generate_variant:Nn \@@_path_arc_auxi:nnnnNnn { fnf , ff } +\cs_generate_variant:Nn \@@_path_arc_auxi:nnnnNnn { ene , ee } % \end{macrocode} % We can now calculate the required points. As everything here is -% non-expandable, that is best done by using \texttt{x}-type expansion +% non-expandable, that is best done by using \texttt{e}-type expansion % to build up the tokens. The three points are calculated out-of-order, % since finding the second control point needs the position of the end % point. Once the points are found, fire-off the fundamental path @@ -708,7 +708,7 @@ { \@@_path_rectangle_rounded:nnnn } { \@@_path_rectangle:nnnn } } - { \draw_point_transform:n {#1} } + {#1} {#2} } \cs_new_protected:Npn \@@_path_rectangle:nnnn #1#2#3#4 @@ -752,12 +752,12 @@ % \begin{macro}{\draw_path_grid:nnnn} % \begin{macro} % { -% \@@_path_grid_auxi:nnnnnn, \@@_path_grid_auxi:ffnnnn, +% \@@_path_grid_auxi:nnnnnn, \@@_path_grid_auxi:eennnn, % \@@_path_grid_auxii:nnnnnn, -% \@@_path_grid_auxiii:nnnnnn, \@@_path_grid_auxiiii:ffnnnn +% \@@_path_grid_auxiii:nnnnnn, \@@_path_grid_auxiiii:eennnn % } % \begin{macro} -% {\@@_path_grid_auxiv:nnnnnnnn, \@@_path_grid_auxiv:ffnnnnnn} +% {\@@_path_grid_auxiv:nnnnnnnn, \@@_path_grid_auxiv:eennnnnn} % The main complexity here is lining up the grid correctly. % To keep it simple, we tidy up the argument ordering first. % \begin{macrocode} @@ -765,7 +765,7 @@ { \@@_point_process:nnn { - \@@_path_grid_auxi:ffnnnn + \@@_path_grid_auxi:eennnn { \dim_eval:n { \dim_abs:n {#1} } } { \dim_eval:n { \dim_abs:n {#2} } } } @@ -777,7 +777,7 @@ { \@@_path_grid_auxii:nnnnnn {#1} {#2} {#5} {#4} {#3} {#6} } { \@@_path_grid_auxii:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6} } } -\cs_generate_variant:Nn \@@_path_grid_auxi:nnnnnn { ff } +\cs_generate_variant:Nn \@@_path_grid_auxi:nnnnnn { ee } \cs_new_protected:Npn \@@_path_grid_auxii:nnnnnn #1#2#3#4#5#6 { \dim_compare:nNnTF {#4} > {#6} @@ -786,7 +786,7 @@ } \cs_new_protected:Npn \@@_path_grid_auxiii:nnnnnn #1#2#3#4#5#6 { - \@@_path_grid_auxiv:ffnnnnnn + \@@_path_grid_auxiv:eennnnnn { \fp_to_dim:n { #1 * trunc(#3/(#1)) } } { \fp_to_dim:n { #2 * trunc(#4/(#2)) } } {#1} {#2} {#3} {#4} {#5} {#6} @@ -810,7 +810,7 @@ \draw_path_lineto:n { #7 , ##1 } } } -\cs_generate_variant:Nn \@@_path_grid_auxiv:nnnnnnnn { ff } +\cs_generate_variant:Nn \@@_path_grid_auxiv:nnnnnnnn { ee } % \end{macrocode} % \end{macro} % \end{macro} @@ -864,7 +864,7 @@ \@@_path_reset_limits: } { \@@_path_use:n { #1 , clear } } - } + } % \end{macrocode} % Map over the actions and set up the data: mainly just booleans, % but with the possibility to cover more complex cases. The business end diff --git a/macros/latex/contrib/l3experimental/l3draw-points.dtx b/macros/latex/contrib/l3experimental/l3draw-points.dtx index f722873237..19e69d4b38 100644 --- a/macros/latex/contrib/l3experimental/l3draw-points.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-points.dtx @@ -2,7 +2,7 @@ % %% File: l3draw-points.dtx % -% Copyright (C) 2018-2023 The LaTeX Project +% Copyright (C) 2018-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -70,10 +70,10 @@ % \item \cs{pgfpointadd}, \cs{pgfpointdiff}, % \cs{pgfpointscale}: Can be given explicitly. % \item \cs{pgfextractx}, \cs{pgfextracty}: Available by applying -% \cs{use_i:nn}/\cs{use_ii:nn} or similar to the \texttt{x}-type +% \cs{use_i:nn}/\cs{use_ii:nn} or similar to the \texttt{e}-type % expansion of a point expression. % \item \cs{pgfgetlastxy}: Unused in the entire \pkg{pgf} core, may be -% emulated by \texttt{x}-type expansion of a point expression, then using +% emulated by \texttt{e}-type expansion of a point expression, then using % the result. % \end{itemize} % In addition, equivalents of the following \emph{may} be added in future but @@ -93,16 +93,18 @@ % \subsection{Support functions} % % \begin{macro}[EXP]{\@@_point_process:nn} -% \begin{macro}[EXP]{\@@_point_process_auxi:nn} +% \begin{macro}[EXP]{\@@_point_process_auxi:nn, \@@_point_process_auxi:en} % \begin{macro}[EXP]{\@@_point_process_auxii:nw} % \begin{macro}[EXP]{\@@_point_process:nnn} -% \begin{macro}[EXP]{\@@_point_process_auxiii:nnn} +% \begin{macro}[EXP]{\@@_point_process_auxiii:nnn, \@@_point_process_auxiii:een} % \begin{macro}[EXP]{\@@_point_process_auxiv:nw} % \begin{macro}[EXP]{\@@_point_process:nnnn} -% \begin{macro}[EXP]{\@@_point_process_auxv:nnnn} +% \begin{macro}[EXP] +% {\@@_point_process_auxv:nnnn, \@@_point_process_auxv:eeen} % \begin{macro}[EXP]{\@@_point_process_auxvi:nw} % \begin{macro}[EXP]{\@@_point_process:nnnnn} -% \begin{macro}[EXP]{\@@_point_process_auxvii:nnnnn} +% \begin{macro}[EXP] +% {\@@_point_process_auxvii:nnnnn, \@@_point_process_auxvii:eeeen} % \begin{macro}[EXP]{\@@_point_process_auxviii:nw} % Execute whatever code is passed to extract the $x$ and $y$ co-ordinates. % The first argument here should itself absorb two arguments. There is @@ -111,28 +113,30 @@ % \begin{macrocode} \cs_new:Npn \@@_point_process:nn #1#2 { - \exp_args:Nf \@@_point_process_auxi:nn + \@@_point_process_auxi:en { \draw_point:n {#2} } {#1} } \cs_new:Npn \@@_point_process_auxi:nn #1#2 { \@@_point_process_auxii:nw {#2} #1 \s_@@_stop } +\cs_generate_variant:Nn \@@_point_process_auxi:nn { e } \cs_new:Npn \@@_point_process_auxii:nw #1 #2 , #3 \s_@@_stop { #1 {#2} {#3} } \cs_new:Npn \@@_point_process:nnn #1#2#3 { - \exp_args:Nff \@@_point_process_auxiii:nnn + \@@_point_process_auxiii:een { \draw_point:n {#2} } { \draw_point:n {#3} } {#1} } \cs_new:Npn \@@_point_process_auxiii:nnn #1#2#3 { \@@_point_process_auxiv:nw {#3} #1 \s_@@_mark #2 \s_@@_stop } +\cs_generate_variant:Nn \@@_point_process_auxiii:nnn { ee } \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 { - \exp_args:Nfff \@@_point_process_auxv:nnnn + \@@_point_process_auxv:eeen { \draw_point:n {#2} } { \draw_point:n {#3} } { \draw_point:n {#4} } @@ -140,12 +144,13 @@ } \cs_new:Npn \@@_point_process_auxv:nnnn #1#2#3#4 { \@@_point_process_auxvi:nw {#4} #1 \s_@@_mark #2 \s_@@_mark #3 \s_@@_stop } +\cs_generate_variant:Nn \@@_point_process_auxv:nnnn { eee } \cs_new:Npn \@@_point_process_auxvi:nw #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 { - \exp_args:Nffff \@@_point_process_auxvii:nnnnn + \@@_point_process_auxvii:eeeen { \draw_point:n {#2} } { \draw_point:n {#3} } { \draw_point:n {#4} } @@ -157,6 +162,7 @@ \@@_point_process_auxviii:nw {#5} #1 \s_@@_mark #2 \s_@@_mark #3 \s_@@_mark #4 \s_@@_stop } +\cs_generate_variant:Nn \@@_point_process_auxvii:nnnnn { eeee } \cs_new:Npn \@@_point_process_auxviii:nw #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} } @@ -177,15 +183,15 @@ % \subsection{Basic points} % % \begin{macro}[EXP]{\draw_point:n} -% \begin{macro}[EXP]{\@@_point_to_dim:n, \@@_point_to_dim:f} +% \begin{macro}[EXP]{\@@_point_to_dim:n, \@@_point_to_dim:e} % \begin{macro}[EXP]{\@@_point_to_dim:w} % Co-ordinates are always returned as two dimensions. % \begin{macrocode} \cs_new:Npn \draw_point:n #1 - { \@@_point_to_dim:f { \fp_eval:n {#1} } } + { \@@_point_to_dim:e { \fp_eval:n {#1} } } \cs_new:Npn \@@_point_to_dim:n #1 { \@@_point_to_dim:w #1 } -\cs_generate_variant:Nn \@@_point_to_dim:n { f } +\cs_generate_variant:Nn \@@_point_to_dim:n { e } \cs_new:Npn \@@_point_to_dim:w ( #1 , ~ #2 ) { #1pt , #2pt } % \end{macrocode} % \end{macro} @@ -195,7 +201,7 @@ % % \begin{macro}[EXP]{\draw_point_polar:nn} % \begin{macro}[EXP]{\draw_point_polar:nnn} -% \begin{macro}[EXP]{\@@_draw_polar:nnn, \@@_draw_polar:fnn} +% \begin{macro}[EXP]{\@@_draw_polar:nnn, \@@_draw_polar:enn} % Polar co-ordinates may have either one or two lengths, so there is a need % to do a simple split before the calculation. As the angle gets used twice, % save on any expression evaluation there and force expansion. @@ -203,10 +209,10 @@ \cs_new:Npn \draw_point_polar:nn #1#2 { \draw_point_polar:nnn {#1} {#1} {#2} } \cs_new:Npn \draw_point_polar:nnn #1#2#3 - { \@@_draw_polar:fnn { \fp_eval:n {#3} } {#1} {#2} } + { \@@_draw_polar:enn { \fp_eval:n {#3} } {#1} {#2} } \cs_new:Npn \@@_draw_polar:nnn #1#2#3 { \draw_point:n { cosd(#1) * (#2) , sind(#1) * (#3) } } -\cs_generate_variant:Nn \@@_draw_polar:nnn { f } +\cs_generate_variant:Nn \@@_draw_polar:nnn { e } % \end{macrocode} % \end{macro} % \end{macro} @@ -218,7 +224,7 @@ % % \begin{macro}[EXP]{\draw_point_unit_vector:n} % \begin{macro}[EXP]{\@@_point_unit_vector:nn} -% \begin{macro}[EXP]{\@@_point_unit_vector:nnn} +% \begin{macro}[EXP]{\@@_point_unit_vector:nnn, \@@_point_unit_vector:enn} % The outcome is the normalised vector from $(0,0)$ in the direction of % the point, \emph{i.e.} % \[ @@ -232,7 +238,7 @@ { \@@_point_process:nn { \@@_point_unit_vector:nn } {#1} } \cs_new:Npn \@@_point_unit_vector:nn #1#2 { - \exp_args:Nf \@@_point_unit_vector:nnn + \@@_point_unit_vector:nnn { \fp_eval:n { (sqrt(#1 * #1 + #2 * #2)) } } {#1} {#2} } @@ -245,6 +251,7 @@ { ( #2 , #3 ) / #1 } } } +\cs_generate_variant:Nn \@@_point_unit_vector:nnn { e } % \end{macrocode} % \end{macro} % \end{macro} @@ -256,7 +263,7 @@ % \begin{macro}[EXP]{\@@_point_intersect_lines:nnnnnn} % \begin{macro}[EXP]{\@@_point_intersect_lines:nnnnnnnn} % \begin{macro}[EXP] -% {\@@_point_intersect_lines_aux:nnnnnn, \@@_point_intersect_lines_aux:ffffff} +% {\@@_point_intersect_lines_aux:nnnnnn, \@@_point_intersect_lines_aux:eeeeee} % The intersection point~$P$ between a line joining points $(x_{1}, y_{1})$ % and $(x_{2}, y_{2})$ with a second line joining points $(x_{3}, y_{3})$ % and $(x_{4}, y_{4})$ can be calculated using the formulae @@ -300,7 +307,7 @@ % \begin{macrocode} \cs_new:Npn \@@_point_intersect_lines:nnnnnnnn #1#2#3#4#5#6#7#8 { - \@@_point_intersect_lines_aux:ffffff + \@@_point_intersect_lines_aux:eeeeee { \fp_eval:n { #1 * #4 - #2 * #3 } } { \fp_eval:n { #5 * #8 - #6 * #7 } } { \fp_eval:n { #1 - #3 } } @@ -316,7 +323,7 @@ / ( #4 * #5 - #6 * #3 ) } } -\cs_generate_variant:Nn \@@_point_intersect_lines_aux:nnnnnn { ffffff } +\cs_generate_variant:Nn \@@_point_intersect_lines_aux:nnnnnn { eeeeee } % \end{macrocode} % \end{macro} % \end{macro} @@ -328,29 +335,29 @@ % \begin{macro}[EXP] % { % \@@_point_intersect_circles_auxii:nnnnnnn, -% \@@_point_intersect_circles_auxii:ffnnnnn, +% \@@_point_intersect_circles_auxii:eennnnn, % \@@_point_intersect_circles_auxiii:nnnnnnn, -% \@@_point_intersect_circles_auxiii:ffnnnnn +% \@@_point_intersect_circles_auxiii:eennnnn % } % \begin{macro}[EXP] % { % \@@_point_intersect_circles_auxiv:nnnnnnnn, -% \@@_point_intersect_circles_auxiv:fnnnnnnn +% \@@_point_intersect_circles_auxiv:ennnnnnn % } % \begin{macro}[EXP] % { % \@@_point_intersect_circles_auxv:nnnnnnnnn, -% \@@_point_intersect_circles_auxv:ffnnnnnnn +% \@@_point_intersect_circles_auxv:eennnnnnn % } % \begin{macro}[EXP] % { % \@@_point_intersect_circles_auxvi:nnnnnnnn, -% \@@_point_intersect_circles_auxvi:fnnnnnnn +% \@@_point_intersect_circles_auxvi:ennnnnnn % } % \begin{macro}[EXP] % { % \@@_point_intersect_circles_auxvii:nnnnnnn, -% \@@_point_intersect_circles_auxvii:fffnnnn +% \@@_point_intersect_circles_auxvii:eeennnn % } % Another long expansion chain to get the values in the right places. % We have two circles, the first with center $(a, b)$ and radius~$r$, @@ -383,7 +390,7 @@ } \cs_new:Npn \@@_point_intersect_circles_auxi:nnnnnnn #1#2#3#4#5#6#7 { - \@@_point_intersect_circles_auxii:ffnnnnn + \@@_point_intersect_circles_auxii:eennnnn { \fp_eval:n {#1} } { \fp_eval:n {#2} } {#4} {#5} {#6} {#7} {#3} } % \end{macrocode} @@ -403,19 +410,19 @@ % \begin{macrocode} \cs_new:Npn \@@_point_intersect_circles_auxii:nnnnnnn #1#2#3#4#5#6#7 { - \@@_point_intersect_circles_auxiii:ffnnnnn + \@@_point_intersect_circles_auxiii:eennnnn { \fp_eval:n { #5 - #3 } } { \fp_eval:n { #6 - #4 } } {#1} {#2} {#3} {#4} {#7} } -\cs_generate_variant:Nn \@@_point_intersect_circles_auxii:nnnnnnn { ff } +\cs_generate_variant:Nn \@@_point_intersect_circles_auxii:nnnnnnn { ee } \cs_new:Npn \@@_point_intersect_circles_auxiii:nnnnnnn #1#2#3#4#5#6#7 { - \@@_point_intersect_circles_auxiv:fnnnnnnn + \@@_point_intersect_circles_auxiv:ennnnnnn { \fp_eval:n { sqrt( #1 * #1 + #2 * #2 ) } } {#1} {#2} {#3} {#4} {#5} {#6} {#7} } -\cs_generate_variant:Nn \@@_point_intersect_circles_auxiii:nnnnnnn { ff } +\cs_generate_variant:Nn \@@_point_intersect_circles_auxiii:nnnnnnn { ee } % \end{macrocode} % We now have $p$: we pre-calculate $1/p$ as it is needed a few times and % is relatively expensive. We also need $r^{2}$ twice so deal with that @@ -423,19 +430,19 @@ % \begin{macrocode} \cs_new:Npn \@@_point_intersect_circles_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8 { - \@@_point_intersect_circles_auxv:ffnnnnnnn + \@@_point_intersect_circles_auxv:eennnnnnn { \fp_eval:n { 1 / #1 } } { \fp_eval:n { #4 * #4 } } {#1} {#2} {#3} {#5} {#6} {#7} {#8} } -\cs_generate_variant:Nn \@@_point_intersect_circles_auxiv:nnnnnnnn { f } +\cs_generate_variant:Nn \@@_point_intersect_circles_auxiv:nnnnnnnn { e } \cs_new:Npn \@@_point_intersect_circles_auxv:nnnnnnnnn #1#2#3#4#5#6#7#8#9 { - \@@_point_intersect_circles_auxvi:fnnnnnnn + \@@_point_intersect_circles_auxvi:ennnnnnn { \fp_eval:n { 0.5 * #1 * ( #2 + #3 * #3 - #6 * #6 ) } } {#1} {#2} {#4} {#5} {#7} {#8} {#9} } -\cs_generate_variant:Nn \@@_point_intersect_circles_auxv:nnnnnnnnn { ff } +\cs_generate_variant:Nn \@@_point_intersect_circles_auxv:nnnnnnnnn { ee } % \end{macrocode} % We now have all of the intermediate values we require, with one division % carried out up-front to avoid doing this expensive step twice: @@ -455,19 +462,19 @@ % \begin{macrocode} \cs_new:Npn \@@_point_intersect_circles_auxvi:nnnnnnnn #1#2#3#4#5#6#7#8 { - \@@_point_intersect_circles_auxvii:fffnnnn + \@@_point_intersect_circles_auxvii:eeennnn { \fp_eval:n { #1 * #2 } } { \int_if_odd:nTF {#8} { 1 } { -1 } } { \fp_eval:n { sqrt ( #3 - #1 * #1 ) * #2 } } {#4} {#5} {#6} {#7} } -\cs_generate_variant:Nn \@@_point_intersect_circles_auxvi:nnnnnnnn { f } +\cs_generate_variant:Nn \@@_point_intersect_circles_auxvi:nnnnnnnn { e } \cs_new:Npn \@@_point_intersect_circles_auxvii:nnnnnnn #1#2#3#4#5#6#7 { \draw_point:n { #6 + #4 * #1 + #2 * #3 * #5 , #7 + #5 * #1 + -1 * #2 * #3 * #4 } } -\cs_generate_variant:Nn \@@_point_intersect_circles_auxvii:nnnnnnn { fff } +\cs_generate_variant:Nn \@@_point_intersect_circles_auxvii:nnnnnnn { eee } % \end{macrocode} % \end{macro} % \end{macro} @@ -482,19 +489,19 @@ % \begin{macro}[EXP] % { % \@@_point_intersect_line_circle_auxii:nnnnnnnn, -% \@@_point_intersect_line_circle_auxii:fnnnnnnn, +% \@@_point_intersect_line_circle_auxii:ennnnnnn, % \@@_point_intersect_line_circle_auxiii:nnnnnnnn, -% \@@_point_intersect_line_circle_auxiii:fffnnnnn +% \@@_point_intersect_line_circle_auxiii:eeennnnn % } % \begin{macro}[EXP] % { % \@@_point_intersect_line_circle_auxiv:nnnnnnnn, -% \@@_point_intersect_line_circle_auxiv:ffnnnnnn +% \@@_point_intersect_line_circle_auxiv:eennnnnn % } % \begin{macro}[EXP] % { % \@@_point_intersect_line_circle_auxv:nnnnn, -% \@@_point_intersect_line_circle_auxv:fnnnn +% \@@_point_intersect_line_circle_auxv:ennnn % } % The intersection points~$P_{1}$ and~$P_{2}$ between % a line joining points $(x_{1}, y_{1})$ and $(x_{2}, y_{2})$ @@ -531,7 +538,7 @@ } \cs_new:Npn \@@_point_intersect_line_circle_auxi:nnnnnnnn #1#2#3#4#5#6#7#8 { - \@@_point_intersect_line_circle_auxii:fnnnnnnn + \@@_point_intersect_line_circle_auxii:ennnnnnn { \fp_eval:n {#1} } {#3} {#4} {#5} {#6} {#7} {#8} {#2} } % \end{macrocode} @@ -552,24 +559,24 @@ % \begin{macrocode} \cs_new:Npn \@@_point_intersect_line_circle_auxii:nnnnnnnn #1#2#3#4#5#6#7#8 { - \@@_point_intersect_line_circle_auxiii:fffnnnnn + \@@_point_intersect_line_circle_auxiii:eeennnnn { \fp_eval:n { (#4-#2)*(#4-#2)+(#5-#3)*(#5-#3) } } { \fp_eval:n { 2*((#4-#2)*(#2-#6)+(#5-#3)*(#3-#7)) } } { \fp_eval:n { (#6*#6+#7*#7)+(#2*#2+#3*#3)-(2*(#6*#2+#7*#3))-(#1*#1) } } {#2} {#3} {#4} {#5} {#8} } -\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxii:nnnnnnnn { f } +\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxii:nnnnnnnn { e } % \end{macrocode} % then we can get $d = b^{2} - 4\times a \times c$ and the usage of $n$. % \begin{macrocode} \cs_new:Npn \@@_point_intersect_line_circle_auxiii:nnnnnnnn #1#2#3#4#5#6#7#8 { - \@@_point_intersect_line_circle_auxiv:ffnnnnnn + \@@_point_intersect_line_circle_auxiv:eennnnnn { \fp_eval:n { #2 * #2 - 4 * #1 * #3 } } { \int_if_odd:nTF {#8} { 1 } { -1 } } {#1} {#2} {#4} {#5} {#6} {#7} } -\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxiii:nnnnnnnn { fff } +\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxiii:nnnnnnnn { eee } % \end{macrocode} % We now have all of the intermediate values we require, with one division % carried out up-front to avoid doing this expensive step twice: @@ -590,17 +597,17 @@ % \begin{macrocode} \cs_new:Npn \@@_point_intersect_line_circle_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8 { - \@@_point_intersect_line_circle_auxv:fnnnn + \@@_point_intersect_line_circle_auxv:ennnn { \fp_eval:n { (-1 * #4 + #2 * sqrt(#1)) / (2 * #3) } } {#5} {#6} {#7} {#8} } -\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxiv:nnnnnnnn { ff } +\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxiv:nnnnnnnn { ee } \cs_new:Npn \@@_point_intersect_line_circle_auxv:nnnnn #1#2#3#4#5 { \draw_point:n { #2 + #1 * (#4 - #2), #3 + #1 * (#5 - #3) } } -\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxv:nnnnn { f } +\cs_generate_variant:Nn \@@_point_intersect_line_circle_auxv:nnnnn { e } % \end{macrocode} % \end{macro} % \end{macro} @@ -614,30 +621,30 @@ % \begin{macro}[EXP] % { % \@@_point_interpolate_line_aux:nnnnn, -% \@@_point_interpolate_line_aux:fnnnn, +% \@@_point_interpolate_line_aux:ennnn, % } % \begin{macro}[EXP] % { % \@@_point_interpolate_line_aux:nnnnnn, -% \@@_point_interpolate_line_aux:fnnnnn, +% \@@_point_interpolate_line_aux:ennnnn, % } % Simple maths after expansion. % \begin{macrocode} \cs_new:Npn \draw_point_interpolate_line:nnn #1#2#3 { \@@_point_process:nnn - { \@@_point_interpolate_line_aux:fnnnn { \fp_eval:n {#1} } } + { \@@_point_interpolate_line_aux:ennnn { \fp_eval:n {#1} } } {#2} {#3} } \cs_new:Npn \@@_point_interpolate_line_aux:nnnnn #1#2#3#4#5 { - \@@_point_interpolate_line_aux:fnnnnn { \fp_eval:n { 1 - #1 } } + \@@_point_interpolate_line_aux:ennnnn { \fp_eval:n { 1 - #1 } } {#1} {#2} {#3} {#4} {#5} } -\cs_generate_variant:Nn \@@_point_interpolate_line_aux:nnnnn { f } +\cs_generate_variant:Nn \@@_point_interpolate_line_aux:nnnnn { e } \cs_new:Npn \@@_point_interpolate_line_aux:nnnnnn #1#2#3#4#5#6 { \draw_point:n { #2 * #3 + #1 * #5 , #2 * #4 + #1 * #6 } } -\cs_generate_variant:Nn \@@_point_interpolate_line_aux:nnnnnn { f } +\cs_generate_variant:Nn \@@_point_interpolate_line_aux:nnnnnn { e } % \end{macrocode} % \end{macro} % \end{macro} @@ -648,7 +655,7 @@ % \begin{macro}[EXP] % { % \@@_point_interpolate_distance:nnnnnn, -% \@@_point_interpolate_distance:fnnnnn, +% \@@_point_interpolate_distance:ennnnn, % } % Same idea but using the normalised length to obtain the scale factor. % The start point is needed twice, so we force evaluation, but the end @@ -664,14 +671,14 @@ { \@@_point_process:nn { - \@@_point_interpolate_distance:fnnnn + \@@_point_interpolate_distance:ennnn { \fp_eval:n {#1} } {#3} {#4} } { \draw_point_unit_vector:n { ( #2 ) - ( #3 , #4 ) } } } \cs_new:Npn \@@_point_interpolate_distance:nnnnn #1#2#3#4#5 { \draw_point:n { #2 + #1 * #4 , #3 + #1 * #5 } } -\cs_generate_variant:Nn \@@_point_interpolate_distance:nnnnn { f } +\cs_generate_variant:Nn \@@_point_interpolate_distance:nnnnn { e } % \end{macrocode} % \end{macro} % \end{macro} @@ -683,17 +690,17 @@ % \begin{macro}[EXP] % { % \@@_point_interpolate_arcaxes_auxii:nnnnnnnnn, -% \@@_point_interpolate_arcaxes_auxii:fnnnnnnnn +% \@@_point_interpolate_arcaxes_auxii:ennnnnnnn % } % \begin{macro}[EXP] % { % \@@_point_interpolate_arcaxes_auxiii:nnnnnnn, -% \@@_point_interpolate_arcaxes_auxiii:fnnnnnn +% \@@_point_interpolate_arcaxes_auxiii:ennnnnn % } % \begin{macro}[EXP] % { % \@@_point_interpolate_arcaxes_auxiv:nnnnnnnn, -% \@@_point_interpolate_arcaxes_auxiv:ffnnnnnn +% \@@_point_interpolate_arcaxes_auxiv:eennnnnn % } % Finding a point on an ellipse arc is relatively easy: find the correct % angle between the two given, use the sine and cosine of that angle, @@ -708,7 +715,7 @@ } \cs_new:Npn \@@_point_interpolate_arcaxes_auxi:nnnnnnnnn #1#2#3#4#5#6#7#8#9 { - \@@_point_interpolate_arcaxes_auxii:fnnnnnnnn + \@@_point_interpolate_arcaxes_auxii:ennnnnnnn { \fp_eval:n {#1} } {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9} } % \end{macrocode} @@ -730,25 +737,25 @@ % \begin{macrocode} \cs_new:Npn \@@_point_interpolate_arcaxes_auxii:nnnnnnnnn #1#2#3#4#5#6#7#8#9 { - \@@_point_interpolate_arcaxes_auxiii:fnnnnnn + \@@_point_interpolate_arcaxes_auxiii:ennnnnn { \fp_eval:n { #1 * (#3) + ( 1 - #1 ) * (#2) } } {#4} {#5} {#6} {#7} {#8} {#9} } -\cs_generate_variant:Nn \@@_point_interpolate_arcaxes_auxii:nnnnnnnnn { f } +\cs_generate_variant:Nn \@@_point_interpolate_arcaxes_auxii:nnnnnnnnn { e } \cs_new:Npn \@@_point_interpolate_arcaxes_auxiii:nnnnnnn #1#2#3#4#5#6#7 { - \@@_point_interpolate_arcaxes_auxiv:ffnnnnnn + \@@_point_interpolate_arcaxes_auxiv:eennnnnn { \fp_eval:n { cosd (#1) } } { \fp_eval:n { sind (#1) } } {#2} {#3} {#4} {#5} {#6} {#7} } -\cs_generate_variant:Nn \@@_point_interpolate_arcaxes_auxiii:nnnnnnn { f } +\cs_generate_variant:Nn \@@_point_interpolate_arcaxes_auxiii:nnnnnnn { e } \cs_new:Npn \@@_point_interpolate_arcaxes_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8 { \draw_point:n { #3 + #1 * #5 + #2 * #7 , #4 + #1 * #6 + #2 * #8 } } -\cs_generate_variant:Nn \@@_point_interpolate_arcaxes_auxiv:nnnnnnnn { ff } +\cs_generate_variant:Nn \@@_point_interpolate_arcaxes_auxiv:nnnnnnnn { ee } % \end{macrocode} % \end{macro} % \end{macro} @@ -761,25 +768,25 @@ % \begin{macro}[EXP] % { % \draw_point_interpolate_curve_auxii:nnnnnnnnn, -% \draw_point_interpolate_curve_auxii:fnnnnnnnn, +% \draw_point_interpolate_curve_auxii:ennnnnnnn, % } % \begin{macro}[EXP] % { % \draw_point_interpolate_curve_auxiii:nnnnnn, -% \draw_point_interpolate_curve_auxiii:fnnnnn, +% \draw_point_interpolate_curve_auxiii:ennnnn, % } % \begin{macro}[EXP]{\draw_point_interpolate_curve_auxiv:nnnnnn} % \begin{macro}[EXP] % { % \draw_point_interpolate_curve_auxv:nnw, -% \draw_point_interpolate_curve_auxv:ffw, +% \draw_point_interpolate_curve_auxv:eew, % } % \begin{macro}[EXP]{\draw_point_interpolate_curve_auxvi:n} % \begin{macro}[EXP]{\draw_point_interpolate_curve_auxvii:nnnnnnnn} % \begin{macro}[EXP] % { % \draw_point_interpolate_curve_auxviii:nnnnnn, -% \draw_point_interpolate_curve_auxviii:ffnnnn, +% \draw_point_interpolate_curve_auxviii:eennnn, % } % Here we start with a proportion of the curve ($p$) and four points % \begin{enumerate} @@ -798,7 +805,7 @@ } \cs_new:Npn \@@_point_interpolate_curve_auxi:nnnnnnnnn #1#2#3#4#5#6#7#8#9 { - \@@_point_interpolate_curve_auxii:fnnnnnnnn + \@@_point_interpolate_curve_auxii:ennnnnnnn { \fp_eval:n {#1} } {#2} {#3} {#4} {#5} {#6} {#7} {#8} {#9} } @@ -831,15 +838,15 @@ \cs_new:Npn \@@_point_interpolate_curve_auxii:nnnnnnnnn #1#2#3#4#5#6#7#8#9 { - \@@_point_interpolate_curve_auxiii:fnnnnn + \@@_point_interpolate_curve_auxiii:ennnnn { \fp_eval:n { 1 - #1 } } {#1} { {#2} {#3} } { {#4} {#5} } { {#6} {#7} } { {#8} {#9} } } -\cs_generate_variant:Nn \@@_point_interpolate_curve_auxii:nnnnnnnnn { f } +\cs_generate_variant:Nn \@@_point_interpolate_curve_auxii:nnnnnnnnn { e } % \begin{macrocode} % We need to do the first cycle, but haven't got enough arguments to keep -% everything in play at once. So her ewe use a but of argument re-ordering +% everything in play at once. So here we use a bit of argument re-ordering % and a single auxiliary to get the job done. % \begin{macrocode} \cs_new:Npn \@@_point_interpolate_curve_auxiii:nnnnnn #1#2#3#4#5#6 @@ -850,10 +857,10 @@ \prg_do_nothing: \@@_point_interpolate_curve_auxvi:n { {#1} {#2} } } -\cs_generate_variant:Nn \@@_point_interpolate_curve_auxiii:nnnnnn { f } +\cs_generate_variant:Nn \@@_point_interpolate_curve_auxiii:nnnnnn { e } \cs_new:Npn \@@_point_interpolate_curve_auxiv:nnnnnn #1#2#3#4#5#6 { - \@@_point_interpolate_curve_auxv:ffw + \@@_point_interpolate_curve_auxv:eew { \fp_eval:n { #1 * #3 + #2 * #5 } } { \fp_eval:n { #1 * #4 + #2 * #6 } } } @@ -864,7 +871,7 @@ \prg_do_nothing: #4 { #5 {#1} {#2} } } -\cs_generate_variant:Nn \@@_point_interpolate_curve_auxv:nnw { ff } +\cs_generate_variant:Nn \@@_point_interpolate_curve_auxv:nnw { ee } % \begin{macrocode} % Get the arguments back into the right places and to the second and % third cycles directly. @@ -873,7 +880,7 @@ { \@@_point_interpolate_curve_auxvii:nnnnnnnn #1 } \cs_new:Npn \@@_point_interpolate_curve_auxvii:nnnnnnnn #1#2#3#4#5#6#7#8 { - \@@_point_interpolate_curve_auxviii:ffffnn + \@@_point_interpolate_curve_auxviii:eeeenn { \fp_eval:n { #1 * #5 + #2 * #3 } } { \fp_eval:n { #1 * #6 + #2 * #4 } } { \fp_eval:n { #1 * #7 + #2 * #5 } } @@ -885,7 +892,7 @@ \draw_point:n { #5 * #3 + #6 * #1 , #5 * #4 + #6 * #2 } } -\cs_generate_variant:Nn \@@_point_interpolate_curve_auxviii:nnnnnn { ffff } +\cs_generate_variant:Nn \@@_point_interpolate_curve_auxviii:nnnnnn { eeee } % \end{macrocode} % \end{macro} % \end{macro} @@ -954,14 +961,14 @@ % \end{macrocode} % % \begin{macro}[EXP]{\draw_point_vec:nn} -% \begin{macro}[EXP]{\@@_point_vec:nn, \@@_point_vec:ff} +% \begin{macro}[EXP]{\@@_point_vec:nn, \@@_point_vec:ee} % \begin{macro}[EXP]{\draw_point_vec:nnn} -% \begin{macro}[EXP]{\@@_point_vec:nnn, \@@_point_vec:fff} +% \begin{macro}[EXP]{\@@_point_vec:nnn, \@@_point_vec:eee} % Force a single evaluation of each factor, then use these to work out the % underlying point. % \begin{macrocode} \cs_new:Npn \draw_point_vec:nn #1#2 - { \@@_point_vec:ff { \fp_eval:n {#1} } { \fp_eval:n {#2} } } + { \@@_point_vec:ee { \fp_eval:n {#1} } { \fp_eval:n {#2} } } \cs_new:Npn \@@_point_vec:nn #1#2 { \draw_point:n @@ -970,26 +977,26 @@ #1 * \l_@@_xvec_y_dim + #2 * \l_@@_yvec_y_dim } } -\cs_generate_variant:Nn \@@_point_vec:nn { ff } +\cs_generate_variant:Nn \@@_point_vec:nn { ee } \cs_new:Npn \draw_point_vec:nnn #1#2#3 { - \@@_point_vec:fff + \@@_point_vec:eee { \fp_eval:n {#1} } { \fp_eval:n {#2} } { \fp_eval:n {#3} } } \cs_new:Npn \@@_point_vec:nnn #1#2#3 { \draw_point:n { - #1 * \l_@@_xvec_x_dim - + #2 * \l_@@_yvec_x_dim - + #3 * \l_@@_zvec_x_dim + #1 * \l_@@_xvec_x_dim + + #2 * \l_@@_yvec_x_dim + + #3 * \l_@@_zvec_x_dim , #1 * \l_@@_xvec_y_dim + #2 * \l_@@_yvec_y_dim + #3 * \l_@@_zvec_y_dim } } -\cs_generate_variant:Nn \@@_point_vec:nnn { fff } +\cs_generate_variant:Nn \@@_point_vec:nnn { eee } % \end{macrocode} % \end{macro} % \end{macro} @@ -998,22 +1005,22 @@ % % \begin{macro}[EXP]{\draw_point_vec_polar:nn} % \begin{macro}[EXP]{\draw_point_vec_polar:nnn} -% \begin{macro}[EXP]{\@@_point_vec_polar:nnn, \@@_point_vec_polar:fnn} +% \begin{macro}[EXP]{\@@_point_vec_polar:nnn, \@@_point_vec_polar:enn} % Much the same as the core polar approach. % \begin{macrocode} \cs_new:Npn \draw_point_vec_polar:nn #1#2 { \draw_point_vec_polar:nnn {#1} {#1} {#2} } \cs_new:Npn \draw_point_vec_polar:nnn #1#2#3 - { \@@_draw_vec_polar:fnn { \fp_eval:n {#3} } {#1} {#2} } + { \@@_draw_vec_polar:enn { \fp_eval:n {#3} } {#1} {#2} } \cs_new:Npn \@@_draw_vec_polar:nnn #1#2#3 { \draw_point:n { cosd(#1) * (#2) * \l_@@_xvec_x_dim , sind(#1) * (#3) * \l_@@_yvec_y_dim - } + } } -\cs_generate_variant:Nn \@@_draw_vec_polar:nnn { f } +\cs_generate_variant:Nn \@@_draw_vec_polar:nnn { e } % \end{macrocode} % \end{macro} % \end{macro} diff --git a/macros/latex/contrib/l3experimental/l3draw-scopes.dtx b/macros/latex/contrib/l3experimental/l3draw-scopes.dtx index ae8869d6b7..7906bc12e9 100644 --- a/macros/latex/contrib/l3experimental/l3draw-scopes.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-scopes.dtx @@ -2,7 +2,7 @@ % %% File: l3draw-scopes.dtx % -% Copyright (C) 2018-2023 The LaTeX Project +% Copyright (C) 2018-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -210,7 +210,7 @@ { 0pt } } \box_set_ht:Nn \l_@@_main_box - { \g_@@_ymax_dim + #1 } + { \g_@@_ymax_dim - #1 } } % \end{macrocode} % \end{macro} diff --git a/macros/latex/contrib/l3experimental/l3draw-softpath.dtx b/macros/latex/contrib/l3experimental/l3draw-softpath.dtx index 56a7c78d9d..0b8f731ca5 100644 --- a/macros/latex/contrib/l3experimental/l3draw-softpath.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-softpath.dtx @@ -2,7 +2,7 @@ % %% File: l3draw-softpath.dtx % -% Copyright (C) 2018-2023 The LaTeX Project +% Copyright (C) 2018-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -109,12 +109,10 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_softpath_use: { - \tl_build_gend:N \g_@@_softpath_main_tl - \tl_set_eq:NN \l_@@_softpath_tmp_tl \g_@@_softpath_main_tl + \tl_build_get_intermediate:NN + \g_@@_softpath_main_tl + \l_@@_softpath_tmp_tl \l_@@_softpath_tmp_tl - \tl_build_gbegin:N \g_@@_softpath_main_tl - \exp_args:NNV \tl_build_gput_right:Nn - \g_@@_softpath_main_tl \l_@@_softpath_tmp_tl } \cs_new_protected:Npn \@@_softpath_clear: { @@ -330,7 +328,7 @@ % \begin{macro}{\@@_softpath_round_roundpoint:NnnNnnNnn} % \begin{macro}{\@@_softpath_round_calc:NnnNnn} % \begin{macro}[EXP] -% {\@@_softpath_round_calc:nnnnnn, \@@_softpath_round_calc:fVnnnn} +% {\@@_softpath_round_calc:nnnnnn, \@@_softpath_round_calc:eVnnnn} % \begin{macro}[EXP]{\@@_softpath_round_calc:nnnnw} % \begin{macro}{\@@_softpath_round_close:nn} % \begin{macro}[EXP]{\@@_softpath_round_close:w} @@ -509,7 +507,7 @@ \tl_put_right:Ne \l_@@_softpath_part_tl { \exp_not:N #4 - \@@_softpath_round_calc:fVnnnn + \@@_softpath_round_calc:eVnnnn { \draw_point_interpolate_distance:nnn \l_@@_softpath_corneri_dim @@ -535,7 +533,7 @@ \@@_softpath_round_calc:nnnnw {#3} {#4} {#5} {#6} #1 \s_@@_mark #2 \s_@@_stop } -\cs_generate_variant:Nn \@@_softpath_round_calc:nnnnnn { fV } +\cs_generate_variant:Nn \@@_softpath_round_calc:nnnnnn { eV } % \end{macrocode} % The calculations themselves are relatively straight-forward, as we use a % quadratic Bézier curve. diff --git a/macros/latex/contrib/l3experimental/l3draw-state.dtx b/macros/latex/contrib/l3experimental/l3draw-state.dtx index c288fe0c58..e3f6dba452 100644 --- a/macros/latex/contrib/l3experimental/l3draw-state.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-state.dtx @@ -2,7 +2,7 @@ % %% File: l3draw-state.dtx % -% Copyright (C) 2018-2023 The LaTeX Project +% Copyright (C) 2018-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % diff --git a/macros/latex/contrib/l3experimental/l3draw-transforms.dtx b/macros/latex/contrib/l3experimental/l3draw-transforms.dtx index 8115e1c4fc..df9f07af18 100644 --- a/macros/latex/contrib/l3experimental/l3draw-transforms.dtx +++ b/macros/latex/contrib/l3experimental/l3draw-transforms.dtx @@ -2,7 +2,7 @@ % %% File: l3draw-transforms.dtx % -% Copyright (C) 2018-2023 The LaTeX Project +% Copyright (C) 2018-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -154,10 +154,7 @@ { \@@_transform_shift_absolute:nn } {#1} } \cs_new_protected:Npn \@@_transform_shift_absolute:nn #1#2 - { - \dim_set:Nn \l_@@_xshift_dim {#1} - \dim_set:Nn \l_@@_yshift_dim {#2} - } + { \@@_transform_shift:nnnn { 0pt } { 0pt } {#1} {#2} } % \end{macrocode} % \end{macro} % \end{macro} @@ -199,8 +196,10 @@ } \cs_new_protected:Npn \@@_transform_shift:nn #1#2 { - \dim_set:Nn \l_@@_xshift_dim { \l_@@_xshift_dim + #1 } - \dim_set:Nn \l_@@_yshift_dim { \l_@@_yshift_dim + #2 } + \@@_transform_shift:nnnn + \l_@@_xshift_dim + \l_@@_yshift_dim + {#1} {#2} } % \end{macrocode} % \end{macro} @@ -208,8 +207,35 @@ % \end{macro} % \end{macro} % +% \begin{macro}{\@@_transform_shift:nnnn} +% Apply the current transformation matrix to the shift, then store +% the resulting values: we may or may not have a none-zero starting +% point here. +% \begin{macrocode} +\cs_new_protected:Npn \@@_transform_shift:nnnn #1#2#3#4 + { + \dim_set:Nn \l_@@_xshift_dim + { + \fp_to_dim:n + { + #1 + + ( #3 * \l_@@_matrix_a_fp + #4 * \l_@@_matrix_b_fp ) + } + } + \dim_set:Nn \l_@@_yshift_dim + { + \fp_to_dim:n + { + #2 + + ( #3 * \l_@@_matrix_c_fp + #4 * \l_@@_matrix_d_fp ) + } + } + } +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\draw_transform_matrix_invert:} -% \begin{macro}{\@@_transform_invert:n, \@@_transform_invert:f} +% \begin{macro}{\@@_transform_invert:n, \@@_transform_invert:e} % \begin{macro}{\draw_transform_shift_invert:} % Standard mathematics: calculate the inverse matrix and use that, then % undo the shifts. @@ -218,7 +244,7 @@ { \bool_if:NT \l_@@_matrix_active_bool { - \@@_transform_invert:f + \@@_transform_invert:e { \fp_eval:n { @@ -242,7 +268,7 @@ \fp_set:Nn \l_@@_matrix_d_fp { \l_@@_matrix_a_fp * #1 } } -\cs_generate_variant:Nn \@@_transform_invert:n { f } +\cs_generate_variant:Nn \@@_transform_invert:n { e } \cs_new_protected:Npn \draw_transform_shift_invert: { \dim_set:Nn \l_@@_xshift_dim { -\l_@@_xshift_dim } @@ -312,24 +338,24 @@ % \begin{macro}{\draw_transform_rotate:n} % \begin{macro} % { -% \@@_transform_rotate:n, \@@_transform_rotate:f, -% \@@_transform_rotate:nn, \@@_transform_rotate:ff +% \@@_transform_rotate:n, \@@_transform_rotate:e, +% \@@_transform_rotate:nn, \@@_transform_rotate:ee % } % Slightly more involved: evaluate the angle only once, and the sine and % cosine only once. % \begin{macrocode} \cs_new_protected:Npn \draw_transform_rotate:n #1 - { \@@_transform_rotate:f { \fp_eval:n {#1} } } + { \@@_transform_rotate:e { \fp_eval:n {#1} } } \cs_new_protected:Npn \@@_transform_rotate:n #1 { - \@@_transform_rotate:ff + \@@_transform_rotate:ee { \fp_eval:n { cosd(#1) } } { \fp_eval:n { sind(#1) } } } -\cs_generate_variant:Nn \@@_transform_rotate:n { f } +\cs_generate_variant:Nn \@@_transform_rotate:n { e } \cs_new_protected:Npn \@@_transform_rotate:nn #1#2 { \draw_transform_matrix:nnnn {#1} {#2} { -#2 } { #1 } } -\cs_generate_variant:Nn \@@_transform_rotate:nn { ff } +\cs_generate_variant:Nn \@@_transform_rotate:nn { ee } % \end{macrocode} % \end{macro} % \end{macro} diff --git a/macros/latex/contrib/l3experimental/l3draw.dtx b/macros/latex/contrib/l3experimental/l3draw.dtx index e0cbdff3d4..2fae7afc74 100644 --- a/macros/latex/contrib/l3experimental/l3draw.dtx +++ b/macros/latex/contrib/l3experimental/l3draw.dtx @@ -2,7 +2,7 @@ % %% File: l3draw.dtx % -% Copyright(C) 2018-2023 The LaTeX Project +% Copyright(C) 2018-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -50,10 +50,10 @@ \newcommand*\demo@common{% \setkeys{lst} {% - basicstyle = \small\ttfamily, - basewidth = 0.51em, - gobble = 5, - language = [LaTeX]{TeX}, + basicstyle = \small\ttfamily, + basewidth = 0.51em, + gobble = 5, + language = [LaTeX]{TeX}, }% } \newcommand*\demo@input{% @@ -110,7 +110,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -259,7 +259,7 @@ % will appear. Note that these all apply \emph{globally}, though some are % rest at the start of each drawing (\cs{draw_begin:}). % -% \begin{variable}{\g_draw_linewidth_default_dim} +% \begin{variable}{\l_draw_default_linewidth_dim} % The default value of the linewidth for stokes, set at the start % of every drawing (\cs{draw_begin:}). % \end{variable} @@ -369,7 +369,7 @@ % \end{syntax} % Creates a scope for localisation of state settings within a drawing. % A scope forms a \TeX{} group but will also localise global state -% variables (such as \cs{g_draw_linewidth_default_dim}), and driver-level +% variables (such as \cs{l_draw_default_linewidth_dim}), and driver-level % concepts such as the termination of lines. % \begin{demo} % \draw_begin: @@ -1046,7 +1046,8 @@ % \end{syntax} % Applies the transformation \meta{vector} to points. % The basic applies the vector in addition to those active; the -% |absolute| version overwrites any active vector. +% |absolute| version overwrites any active vector. Any active +% transformation matrix is applied to the shifts each time they are adjusted. % This assignment is local. % \end{function} % @@ -1180,7 +1181,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3draw}{2023-12-08}{} +\ProvidesExplPackage{l3draw}{2024-01-04}{} {L3 Experimental core drawing support} % \end{macrocode} % diff --git a/macros/latex/contrib/l3experimental/l3draw.ins b/macros/latex/contrib/l3experimental/l3draw.ins index 7183607c2d..d4e505ef75 100644 --- a/macros/latex/contrib/l3experimental/l3draw.ins +++ b/macros/latex/contrib/l3experimental/l3draw.ins @@ -2,7 +2,7 @@ File: l3draw.ins -Copyright (C) 2018-2023 The LaTeX Project +Copyright (C) 2018-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -34,7 +34,7 @@ license information is placed in the derived files. \preamble -Copyright (C) 2018-2023 The LaTeX Project +Copyright (C) 2018-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/macros/latex/contrib/l3experimental/l3draw.pdf b/macros/latex/contrib/l3experimental/l3draw.pdf index 6b8a5e9a92..4beda52c98 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 7b150d5dc5..3bafa455b4 100644 --- a/macros/latex/contrib/l3experimental/l3galley.dtx +++ b/macros/latex/contrib/l3experimental/l3galley.dtx @@ -3,7 +3,7 @@ %% File: l3galley.dtx % % Copyright (C) 1999-2001,2004-2009 Frank Mittelbach -% (C) 2010-2023 The LaTeX Project +% (C) 2010-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -49,7 +49,7 @@ % \fi % % \title{^^A -% The \textsf{l3galley} package\\ Galley code^^A +% The \pkg{l3galley} package\\ Galley code^^A % } % % \author{^^A @@ -61,7 +61,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -686,7 +686,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3galley}{2023-12-08}{} +\ProvidesExplPackage{l3galley}{2024-01-04}{} {L3 Experimental galley code} % \end{macrocode} % @@ -1323,27 +1323,27 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_display_penalty:N #1 { - \tl_if_empty:NF #1 - { - \tl_gput_right:Ne \g_galley_restore_running_tl - { - \int_gset:Nn \exp_not:N \g_galley_penalty_int - { \int_use:N \g_galley_penalty_int } - } - \int_gset:Nn \g_galley_penalty_int {#1} - } + \tl_if_empty:NF #1 + { + \tl_gput_right:Ne \g_galley_restore_running_tl + { + \int_gset:Nn \exp_not:N \g_galley_penalty_int + { \int_use:N \g_galley_penalty_int } + } + \int_gset:Nn \g_galley_penalty_int {#1} + } } \cs_new_protected:Npn \@@_display_vspace:N #1 { - \tl_if_empty:NF #1 - { - \tl_gput_right:Ne \g_galley_restore_running_tl - { - \skip_gset:Nn \exp_not:N \g_galley_vspace_skip - { \skip_use:N \g_galley_vspace_skip } - } - \skip_gset:Nn \g_galley_vspace_int {#1} - } + \tl_if_empty:NF #1 + { + \tl_gput_right:Ne \g_galley_restore_running_tl + { + \skip_gset:Nn \exp_not:N \g_galley_vspace_skip + { \skip_use:N \g_galley_vspace_skip } + } + \skip_gset:Nn \g_galley_vspace_int {#1} + } } % \end{macrocode} % The \cs{par} token at the end of the display needs to go in at the same @@ -1896,7 +1896,7 @@ \seq_get_right:NNF \g_@@_tmpb_seq \l_@@_tmp_tl { \tl_clear:N \l_@@_tmp_tl } \tl_if_empty:NT \l_@@_tmp_tl - { \tl_set:Nn \l_@@_tmp_tl { 0pt } } + { \tl_set:Nn \l_@@_tmp_tl { 0pt } } \int_set:Nn \l_@@_tmp_int { \seq_count:N \g_@@_tmpa_seq diff --git a/macros/latex/contrib/l3experimental/l3galley.pdf b/macros/latex/contrib/l3experimental/l3galley.pdf index bd9bf88c83..a633e46628 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 5a45b88d9c..9f59b4ec05 100644 --- a/macros/latex/contrib/l3experimental/l3graphics.dtx +++ b/macros/latex/contrib/l3experimental/l3graphics.dtx @@ -2,7 +2,7 @@ % %% File: l3graphics.dtx % -% Copyright (C) 2017-2023 The LaTeX Project +% Copyright (C) 2017-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -184,7 +184,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3graphics}{2023-12-08}{} +\ProvidesExplPackage{l3graphics}{2024-01-04}{} {L3 Experimental graphics inclusion support} % \end{macrocode} % @@ -237,7 +237,7 @@ { art , bleed , crop , media , trim } { \tl_set:Ne \l_@@_pagebox_tl - { \l_keys_choice_tl box } + { \l_keys_choice_tl box } } , pagebox .initial:n = crop , @@ -536,8 +536,8 @@ \exp_args:Ne \str_tail:n { \str_casefold:V \l_@@_ext_str } } - } - { \@@_include_auxi:e { \l_@@_type_str } } + } + { \@@_include_auxi:e { \l_@@_type_str } } } \cs_new_protected:Npn \@@_include_auxi:n #1 { @@ -553,7 +553,7 @@ { \tl_set_eq:NN \l_@@_final_name_str \l_@@_full_name_str \str_set:Ne \l_@@_full_name_str - { \exp_args:NV \__kernel_file_name_quote:n \l_@@_full_name_str } + { \exp_args:NV \__kernel_file_name_quote:n \l_@@_full_name_str } \exp_args:NnV \use:c { @@_backend_getbb_ #1 :n } \l_@@_full_name_str \seq_gput_right:NV \g_@@_record_seq \l_@@_final_name_str @@ -601,7 +601,7 @@ \box_set_dp:Nn \l_@@_internal_box { 0pt } \box_set_ht:Nn \l_@@_internal_box { \l_@@_ury_dim - \l_@@_lly_dim } - \box_set_wd:Nn \l_@@_internal_box + \box_set_wd:Nn \l_@@_internal_box { \l_@@_urx_dim - \l_@@_llx_dim } \box_use_drop:N \l_@@_internal_box } diff --git a/macros/latex/contrib/l3experimental/l3graphics.ins b/macros/latex/contrib/l3experimental/l3graphics.ins index 40f03e569d..8798dce73c 100644 --- a/macros/latex/contrib/l3experimental/l3graphics.ins +++ b/macros/latex/contrib/l3experimental/l3graphics.ins @@ -1,6 +1,6 @@ \iffalse meta-comment -File l3graphics.ins Copyright (C) 2017,2019-2023 The LaTeX Project +File l3graphics.ins Copyright (C) 2017,2019-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -32,7 +32,7 @@ license information is placed in the derived files. \preamble -Copyright (C) 2019-2023 The LaTeX Project +Copyright (C) 2019-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/macros/latex/contrib/l3experimental/l3graphics.pdf b/macros/latex/contrib/l3experimental/l3graphics.pdf index 66ce45d710..42212b3f64 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/l3opacity.dtx b/macros/latex/contrib/l3experimental/l3opacity.dtx index 9ed6f5e6a4..f4abdacd81 100644 --- a/macros/latex/contrib/l3experimental/l3opacity.dtx +++ b/macros/latex/contrib/l3experimental/l3opacity.dtx @@ -2,7 +2,7 @@ % %% File: l3opacity.dtx % -% Copyright (C) 2021-2023 The LaTeX Project +% Copyright (C) 2021-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -34,7 +34,7 @@ % \fi % % \title{^^A -% The \textsf{l3opacity} package\\ Experimental opacity (transparency) support^^A +% The \pkg{l3opacity} package\\ Experimental opacity (transparency) support^^A % } % % \author{^^A @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -96,7 +96,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3opacity}{2023-12-08}{} +\ProvidesExplPackage{l3opacity}{2024-01-04}{} {L3 Experimental opacity support} % \end{macrocode} % diff --git a/macros/latex/contrib/l3experimental/l3opacity.ins b/macros/latex/contrib/l3experimental/l3opacity.ins index 1a5e5de20a..58b33fff7c 100644 --- a/macros/latex/contrib/l3experimental/l3opacity.ins +++ b/macros/latex/contrib/l3experimental/l3opacity.ins @@ -2,7 +2,7 @@ File: l3opacity.ins -Copyright (C) 2021-2023 The LaTeX Project +Copyright (C) 2021-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -34,7 +34,7 @@ license information is placed in the derived files. \preamble -Copyright (C) 2021-2023 The LaTeX Project +Copyright (C) 2021-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/macros/latex/contrib/l3experimental/l3opacity.pdf b/macros/latex/contrib/l3experimental/l3opacity.pdf index 096288c14a..0898e6463c 100644 Binary files a/macros/latex/contrib/l3experimental/l3opacity.pdf and b/macros/latex/contrib/l3experimental/l3opacity.pdf differ diff --git a/macros/latex/contrib/l3experimental/l3str-format.dtx b/macros/latex/contrib/l3experimental/l3str-format.dtx index 03a6145239..6304ce3ec2 100644 --- a/macros/latex/contrib/l3experimental/l3str-format.dtx +++ b/macros/latex/contrib/l3experimental/l3str-format.dtx @@ -2,7 +2,7 @@ % %% File: l3str-format.dtx % -% Copyright (C) 2012-2023 The LaTeX Project +% Copyright (C) 2012-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -36,7 +36,7 @@ % % % \title{^^A -% The \textsf{l3str-format} package: formatting strings of characters^^A +% The \pkg{l3str-format} package\\ Formatting strings of characters^^A % } % % \author{^^A @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -166,7 +166,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3str-format}{2023-12-08}{} +\ProvidesExplPackage{l3str-format}{2024-01-04}{} {L3 Experimental string formatting} % \end{macrocode} % diff --git a/macros/latex/contrib/l3experimental/l3str-format.pdf b/macros/latex/contrib/l3experimental/l3str-format.pdf index 83b57b975b..367a84e099 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/l3str.ins b/macros/latex/contrib/l3experimental/l3str.ins index fa070c69ec..fd77436304 100644 --- a/macros/latex/contrib/l3experimental/l3str.ins +++ b/macros/latex/contrib/l3experimental/l3str.ins @@ -2,7 +2,7 @@ File l3str.ins -Copyright (C) 2011-2017,2019-2023 The LaTeX Project +Copyright (C) 2011-2017,2019-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -34,7 +34,7 @@ license information is placed in the derived files. \preamble -Copyright (C) 2011-2023 The LaTeX Project +Copyright (C) 2011-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/macros/latex/contrib/l3experimental/l3sys-shell.dtx b/macros/latex/contrib/l3experimental/l3sys-shell.dtx index 4c05998e37..ad1733ab77 100644 --- a/macros/latex/contrib/l3experimental/l3sys-shell.dtx +++ b/macros/latex/contrib/l3experimental/l3sys-shell.dtx @@ -2,7 +2,7 @@ % %% File: l3sys-shell.dtx % -% Copyright (C) 2018-2023 The LaTeX Project +% Copyright (C) 2018-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -151,7 +151,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3sys-shell}{2023-12-08}{} +\ProvidesExplPackage{l3sys-shell}{2024-01-04}{} {L3 Experimental system shell functions} % \end{macrocode} % @@ -201,7 +201,7 @@ \token_if_eq_meaning:NNTF #1 / { \c_backslash_str } {#1} - \@@_path_to_win:N + \@@_path_to_win:N } } % \end{macrocode} diff --git a/macros/latex/contrib/l3experimental/l3sys-shell.ins b/macros/latex/contrib/l3experimental/l3sys-shell.ins index c546801d05..8e5e7169d9 100644 --- a/macros/latex/contrib/l3experimental/l3sys-shell.ins +++ b/macros/latex/contrib/l3experimental/l3sys-shell.ins @@ -2,7 +2,7 @@ File: l3sys-shell.ins -Copyright (C) 2018-2023 The LaTeX Project +Copyright (C) 2018-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -34,7 +34,7 @@ license information is placed in the derived files. \preamble -Copyright (C) 2018-2023 The LaTeX Project +Copyright (C) 2018-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/macros/latex/contrib/l3experimental/l3sys-shell.pdf b/macros/latex/contrib/l3experimental/l3sys-shell.pdf index 3152e29a00..1d1c41221a 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 9ca534e86c..a18ade7abd 100644 --- a/macros/latex/contrib/l3experimental/xcoffins.dtx +++ b/macros/latex/contrib/l3experimental/xcoffins.dtx @@ -2,7 +2,7 @@ % %% File: xcoffins.dtx % -% Copyright (C) 2010-2023 The LaTeX Project +% Copyright (C) 2010-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -41,7 +41,7 @@ % \fi % % \title{^^A -% The \textsf{xcoffins} package\\ Design-level coffins^^A +% The \pkg{xcoffins} package\\ Design-level coffins^^A % } % % \author{^^A @@ -53,7 +53,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -672,7 +672,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xcoffins}{2023-12-08}{} +\ProvidesExplPackage{xcoffins}{2024-01-04}{} {L3 Experimental design level coffins} % \end{macrocode} % @@ -859,9 +859,9 @@ % \begin{macrocode} \NewDocumentCommand \TypesetCoffin { - m - > { \SplitArgument { 1 } { , } } O { H , l } - > { \SplitArgument { 1 } { , } } D ( ) { 0 pt , 0 pt } + m + > { \SplitArgument { 1 } { , } } O { H , l } + > { \SplitArgument { 1 } { , } } D ( ) { 0 pt , 0 pt } } { \coffin_typeset:Nnnnn #1 #2 #3 } % \end{macrocode} diff --git a/macros/latex/contrib/l3experimental/xcoffins.ins b/macros/latex/contrib/l3experimental/xcoffins.ins index 224e77b5d6..326f21e4a5 100644 --- a/macros/latex/contrib/l3experimental/xcoffins.ins +++ b/macros/latex/contrib/l3experimental/xcoffins.ins @@ -2,7 +2,7 @@ File: xcoffins.ins -Copyright (C) 2010,2011,2012,2016,2017,2019-2023 The LaTeX Project +Copyright (C) 2010,2011,2012,2016,2017,2019-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -34,7 +34,7 @@ license information is placed in the derived files. \preamble -Copyright (C) 2010-2023 The LaTeX Project +Copyright (C) 2010-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/macros/latex/contrib/l3experimental/xcoffins.pdf b/macros/latex/contrib/l3experimental/xcoffins.pdf index 98b321ae28..bee04ded96 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 eb704906db..76e8242f4e 100644 --- a/macros/latex/contrib/l3experimental/xgalley.dtx +++ b/macros/latex/contrib/l3experimental/xgalley.dtx @@ -3,7 +3,7 @@ %% File: xgalley.dtx % % Copyright (C) 1999-2001,2004-2009 Frank Mittelbach -% (C) 2010-2012,2014,2016-2023 The LaTeX Project +% (C) 2010-2012,2014,2016-2024 The LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -32,7 +32,7 @@ % \fi % % \title{^^A -% The \textsf{xgalley} package\\ Galley^^A +% The \pkg{xgalley} package\\ Galley^^A % } % % \author{^^A @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-12-08} +% \date{Released 2024-01-04} % % \maketitle % @@ -731,7 +731,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xgalley}{2023-12-08}{} +\ProvidesExplPackage{xgalley}{2024-01-04}{} {L3 Experimental galley} \RequirePackage{xtemplate,l3galley} % \end{macrocode} @@ -829,7 +829,7 @@ lines : integer = 1 } \DeclareTemplateInterface { parshape } { initial } { 0 } - { + { indent : length = 0pt , on-left-side : boolean = true , lines : integer = 2 diff --git a/macros/latex/contrib/l3experimental/xgalley.ins b/macros/latex/contrib/l3experimental/xgalley.ins index 82ae4c7728..53ecd1bbdc 100644 --- a/macros/latex/contrib/l3experimental/xgalley.ins +++ b/macros/latex/contrib/l3experimental/xgalley.ins @@ -2,7 +2,7 @@ File: xgalley.ins -Copyright (C) 2010-2012,2016,2017,2019-2023 The LaTeX Project +Copyright (C) 2010-2012,2016,2017,2019-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -34,7 +34,7 @@ license information is placed in the derived files. \preamble -Copyright (C) 2010-2023 The LaTeX Project +Copyright (C) 2010-2024 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/macros/latex/contrib/l3experimental/xgalley.pdf b/macros/latex/contrib/l3experimental/xgalley.pdf index e1964e85ee..50375b414b 100644 Binary files a/macros/latex/contrib/l3experimental/xgalley.pdf and b/macros/latex/contrib/l3experimental/xgalley.pdf differ -- cgit v1.2.3