From f107ccbadf07d9670a13c7c796e9d46a1f317337 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 1 Feb 2023 21:06:20 +0000 Subject: l3packages (1feb23) git-svn-id: svn://tug.org/texlive/trunk@65709 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/doc/latex/l3packages/CHANGELOG.md | 11 +++++- Master/texmf-dist/doc/latex/l3packages/README.md | 2 +- .../doc/latex/l3packages/l3keys2e/l3keys2e.pdf | Bin 412658 -> 412281 bytes Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf | Bin 332357 -> 331993 bytes .../doc/latex/l3packages/xfrac/xfrac.pdf | Bin 482935 -> 482562 bytes .../doc/latex/l3packages/xparse/xparse.pdf | Bin 534579 -> 534213 bytes .../doc/latex/l3packages/xtemplate/xtemplate.pdf | Bin 450100 -> 450311 bytes .../source/latex/l3packages/l3keys2e/l3keys2e.dtx | 4 +- .../texmf-dist/source/latex/l3packages/xfp/xfp.dtx | 4 +- .../source/latex/l3packages/xfrac/xfrac.dtx | 4 +- .../source/latex/l3packages/xparse/xparse.dtx | 4 +- .../latex/l3packages/xtemplate/xtemplate.dtx | 44 ++++++++++++++++++--- .../tex/latex/l3packages/l3keys2e/l3keys2e.sty | 2 +- Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty | 2 +- .../tex/latex/l3packages/xfrac/xfrac.sty | 2 +- .../tex/latex/l3packages/xparse/xparse.sty | 2 +- .../tex/latex/l3packages/xtemplate/xtemplate.sty | 24 +++++++++-- 17 files changed, 82 insertions(+), 23 deletions(-) diff --git a/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md index 6ad508a7f33..6af289ef1e4 100644 --- a/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md @@ -7,6 +7,14 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2023-02-01] + +### Added +- `\DeclareInstanceCopy` + +### Changes +- Set only known keys in `\SetTemplateKeys` + ## [2023-01-16] ### Fixed @@ -214,7 +222,8 @@ this project uses date-based 'snapshot' version identifiers. - Switch to ISO date format - Improve cross-module use of internal functions -[Unreleased]: https://github.com/latex3/latex3/compare/2023-01-16...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2023-02-01...HEAD +[2023-02-01]: https://github.com/latex3/latex3/compare/2023-01-16...2023-02-01 [2023-01-16]: https://github.com/latex3/latex3/compare/2022-12-17...2023-01-16 [2022-12-17]: https://github.com/latex3/latex3/compare/2022-06-22...2022-12-17 [2022-06-22]: https://github.com/latex3/latex3/compare/2022-06-16...2022-06-22 diff --git a/Master/texmf-dist/doc/latex/l3packages/README.md b/Master/texmf-dist/doc/latex/l3packages/README.md index bd73e2a0be7..95e8deca215 100644 --- a/Master/texmf-dist/doc/latex/l3packages/README.md +++ b/Master/texmf-dist/doc/latex/l3packages/README.md @@ -1,7 +1,7 @@ LaTeX3 High-Level Concepts ========================== -Release 2023-01-16 +Release 2023-02-01 Overview -------- diff --git a/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf b/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf index 94554101904..2b68217a40d 100644 Binary files a/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf and b/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf b/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf index f33457d2d9c..7c90dbe0a8d 100644 Binary files a/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf and b/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf b/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf index b61304d37e0..d1995a4d6ab 100644 Binary files a/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf and b/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf b/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf index f0cf92604cb..16140647f90 100644 Binary files a/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf and b/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf b/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf index ce2f8a62272..eee72874431 100644 Binary files a/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf and b/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf differ diff --git a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx index e72854c2f1c..599f68f54f0 100644 --- a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx +++ b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx @@ -62,7 +62,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-02-01} % % \maketitle % @@ -154,7 +154,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3keys2e}{2023-01-16}{} +\ProvidesExplPackage{l3keys2e}{2023-02-01}{} {LaTeX2e option processing using LaTeX3 keys} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx b/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx index 836c5e3b55f..16c975e0493 100644 --- a/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx +++ b/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-02-01} % % \maketitle % @@ -171,7 +171,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xfp}{2023-01-16}{} +\ProvidesExplPackage{xfp}{2023-02-01}{} {L3 Floating point unit} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx b/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx index 596d639f4c2..f09029f9ef7 100644 --- a/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx +++ b/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx @@ -65,7 +65,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-02-01} % % \maketitle % @@ -535,7 +535,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xfrac}{2023-01-16}{} +\ProvidesExplPackage{xfrac}{2023-02-01}{} {L3 Experimental split-level fractions} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx index 97dd2f8fd9e..15981e52104 100644 --- a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx +++ b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx @@ -67,7 +67,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-02-01} % % \maketitle % @@ -1064,7 +1064,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xparse}{2023-01-16}{} +\ProvidesExplPackage{xparse}{2023-02-01}{} {L3 Experimental document command parser} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx b/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx index eb9ae86e940..42d00c8657d 100644 --- a/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx +++ b/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2023-01-16} +% \date{Released 2023-02-01} % % \maketitle % @@ -475,6 +475,15 @@ % then inserts the appropriate code into the input stream. % \end{function} % +% \begin{function}{\DeclareInstanceCopy} +% \begin{syntax} +% \cs{DeclareInstanceCopy} +% ~~\Arg{object type} \Arg{instance1} \Arg{instance2} +% \end{syntax} +% Copies the \meta{values} for \meta{instance1} for an +% \meta{object type} to \meta{instance2}. +% \end{function} +% % \section{Document interface} % % After the instances have been chosen, document commands must be @@ -702,7 +711,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xtemplate}{2023-01-16}{} +\ProvidesExplPackage{xtemplate}{2023-02-01}{} {L3 Experimental prototype document functions} % \end{macrocode} % @@ -1987,6 +1996,27 @@ % \end{macro} % \end{macro} % +% \begin{macro}{\@@_copy_instance:nnnn} +% Copy--paste an instance +% \begin{macrocode} +\cs_new_protected:Npn \@@_copy_instance:nnnn #1#2#3#4 + { + \@@_if_instance_exist:nnnTF {#1} {#2} {#3} + { + \@@_recover_values:n { #1 / #2 / #3 } + \@@_store_values:n { #1 / #2 / #4 } + \cs_set_eq:cc { \c_@@_instances_root_tl #1 / #2 / #4 } + { \c_@@_instances_root_tl #1 / #2 / #3 } + } + { + \msg_error:nnxx { xtemplate } { unknown-instance } + {#1} {#3} + } + } +% \end{macrocode} +% \end{macro} +% +% % \begin{macro}{\@@_edit_instance:nnnn} % \begin{macro}{\@@_edit_instance_aux:nnnnn} % \begin{macro}{\@@_edit_instance_aux:nonnn} @@ -1994,7 +2024,7 @@ % variation is the source of the values to use. When editing, they are % recovered from the previous instance run. % \begin{macrocode} -\cs_new_protected:Npn \@@_edit_instance:nnnn #1#2#3 +\cs_new_protected:Npn \@@_edit_instance:nnnn #1#2#3#4 { \@@_if_instance_exist:nnnTF {#1} {#2} {#3} { @@ -2002,7 +2032,7 @@ \prop_get:NnN \l_@@_values_prop { from~template } \l_@@_tmp_tl \@@_edit_instance_aux:nonnn {#1} \l_@@_tmp_tl - {#2} {#3} + {#2} {#3} {#4} } { \msg_error:nnxx { xtemplate } { unknown-instance } @@ -2783,6 +2813,7 @@ % \begin{macro}{\EditTemplateDefaults} % \begin{macro}{\DeclareInstance} % \begin{macro}{\DeclareCollectionInstance} +% \begin{macro}{\DeclareInstanceCopy} % \begin{macro}{\EditInstance} % \begin{macro}{\EditCollectionInstance} % \begin{macro}{\UseTemplate} @@ -2803,6 +2834,8 @@ { \@@_declare_instance:nnnnn {#1} {#3} { } {#2} {#4} } \cs_new_protected:Npn \DeclareCollectionInstance #1#2#3#4#5 { \@@_declare_instance:nnnnn {#2} {#4} {#1} {#3} {#5} } +\cs_new_protected:Npn \DeclareInstanceCopy #1#2#3 + { \@@_copy_instance:nnnn {#1} { } {#2} {#3} } \cs_new_protected:Npn \EditTemplateDefaults #1#2#3 { \@@_edit_defaults:nnn {#1} {#2} {#3} } \cs_new_protected:Npn \EditInstance #1#2#3 @@ -2828,6 +2861,7 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\ShowTemplateCode} % \begin{macro}{\ShowTemplateDefaults} @@ -2888,7 +2922,7 @@ % A friendly wrapper % \begin{macrocode} \cs_new_protected:Npn \SetTemplateKeys #1#2#3 - { \keys_set:nn { template / #1 / #2 } {#3} } + { \keys_set_known:nnN { template / #1 / #2 } {#3} \l_@@_tmp_clist } % \end{macrocode} % \end{macro} % diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty index 6ea77e80273..6c8ff76aeef 100644 --- a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +++ b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{l3keys2e}{2023-01-16}{} +\ProvidesExplPackage{l3keys2e}{2023-02-01}{} {LaTeX2e option processing using LaTeX3 keys} \cs_if_exist:NT \ProcessKeysOptions { \file_input_stop: } diff --git a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty index 1794c3b0331..f0be352e741 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{xfp}{2023-01-16}{} +\ProvidesExplPackage{xfp}{2023-02-01}{} {L3 Floating point unit} \ProvideExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} } \ProvideExpandableDocumentCommand \inteval { m } { \int_eval:n {#1} } diff --git a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty index dfe754be795..b19a5913553 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty @@ -34,7 +34,7 @@ \endinput } \RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate} -\ProvidesExplPackage{xfrac}{2023-01-16}{} +\ProvidesExplPackage{xfrac}{2023-02-01}{} {L3 Experimental split-level fractions} \keys_define:nn { xfrac } { diff --git a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty index ab903b316cd..b80b57fa6bc 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty @@ -60,7 +60,7 @@ } } \ExplSyntaxOff -\ProvidesExplPackage{xparse}{2023-01-16}{} +\ProvidesExplPackage{xparse}{2023-02-01}{} {L3 Experimental document command parser} \clist_new:N \l__cmd_options_clist \DeclareOption* { \clist_put_right:NV \l__cmd_options_clist \CurrentOption } diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty index 519f8af04a4..62bd5832c9c 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{xtemplate}{2023-01-16}{} +\ProvidesExplPackage{xtemplate}{2023-02-01}{} {L3 Experimental prototype document functions} \cs_generate_variant:Nn \keys_define:nn { nx } \cs_generate_variant:Nn \tl_trim_spaces:n { e } @@ -766,7 +766,21 @@ } } } -\cs_new_protected:Npn \__xtemplate_edit_instance:nnnn #1#2#3 +\cs_new_protected:Npn \__xtemplate_copy_instance:nnnn #1#2#3#4 + { + \__xtemplate_if_instance_exist:nnnTF {#1} {#2} {#3} + { + \__xtemplate_recover_values:n { #1 / #2 / #3 } + \__xtemplate_store_values:n { #1 / #2 / #4 } + \cs_set_eq:cc { \c__xtemplate_instances_root_tl #1 / #2 / #4 } + { \c__xtemplate_instances_root_tl #1 / #2 / #3 } + } + { + \msg_error:nnxx { xtemplate } { unknown-instance } + {#1} {#3} + } + } +\cs_new_protected:Npn \__xtemplate_edit_instance:nnnn #1#2#3#4 { \__xtemplate_if_instance_exist:nnnTF {#1} {#2} {#3} { @@ -774,7 +788,7 @@ \prop_get:NnN \l__xtemplate_values_prop { from~template } \l__xtemplate_tmp_tl \__xtemplate_edit_instance_aux:nonnn {#1} \l__xtemplate_tmp_tl - {#2} {#3} + {#2} {#3} {#4} } { \msg_error:nnxx { xtemplate } { unknown-instance } @@ -1318,6 +1332,8 @@ { \__xtemplate_declare_instance:nnnnn {#1} {#3} { } {#2} {#4} } \cs_new_protected:Npn \DeclareCollectionInstance #1#2#3#4#5 { \__xtemplate_declare_instance:nnnnn {#2} {#4} {#1} {#3} {#5} } +\cs_new_protected:Npn \DeclareInstanceCopy #1#2#3 + { \__xtemplate_copy_instance:nnnn {#1} { } {#2} {#3} } \cs_new_protected:Npn \EditTemplateDefaults #1#2#3 { \__xtemplate_edit_defaults:nnn {#1} {#2} {#3} } \cs_new_protected:Npn \EditInstance #1#2#3 @@ -1352,7 +1368,7 @@ \cs_new_protected:Npn \AssignTemplateKeys { \__xtemplate_assignments_pop: } \cs_new_protected:Npn \SetTemplateKeys #1#2#3 - { \keys_set:nn { template / #1 / #2 } {#3} } + { \keys_set_known:nnN { template / #1 / #2 } {#3} \l__xtemplate_tmp_clist } \cs_new_eq:NN \ShowTemplateKeytypes \ShowTemplateInterface %% %% -- cgit v1.2.3