diff options
author | Karl Berry <karl@freefriends.org> | 2023-09-03 20:35:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-09-03 20:35:14 +0000 |
commit | 0e32b32f8988513ac58895032aaf4da85d781b6b (patch) | |
tree | e19d5fda9a20686ff34a9af7a0e3ac32270dc63c /Master | |
parent | 978a809828cfa84ede9a9b619dbd296990f6681a (diff) |
l3packages
git-svn-id: svn://tug.org/texlive/trunk@68165 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
17 files changed, 255 insertions, 38 deletions
diff --git a/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md index b82dd0c1989..de080e8d41d 100644 --- a/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md @@ -7,6 +7,10 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2023-08-29] + +- Re-add `\GetDocumentCommandArgSpec`, etc., to `xparse` stub + ## [2023-02-02] ### Changed @@ -227,7 +231,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-02-02...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2023-08-29...HEAD +[2023-08-29]: https://github.com/latex3/latex3/compare/2023-02-02...2023-08-29 [2023-02-02]: https://github.com/latex3/latex3/compare/2023-02-01...2023-02-02 [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 diff --git a/Master/texmf-dist/doc/latex/l3packages/README.md b/Master/texmf-dist/doc/latex/l3packages/README.md index 1fad88a499a..e1f195b332a 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-02-02 +Release 2023-08-29 Overview -------- @@ -34,7 +34,7 @@ and class options with LaTeX2e. This is tied to the method the existing kernel uses for processing options, and so it is likely that a stand-alone LaTeX3 kernel will use a very different approach. -`xfp` +`xfp` (deprecated) ----- The `xfp` package provides a document-level interface for the LaTeX3 @@ -42,7 +42,8 @@ FPU. As such, it is a wrapper around the core `\fp_eval:n` function but does not require code syntax. It provides the expandable command `\fpeval`, which can be used inside for example `\edef` or contexts where TeX requires a number. -From 2022-06-01 release if LaTeX this will be included in the format + +From 2022-06-01 release of LaTeX this will be included in the format so that the package doesn't need loading any longer. `xfrac` @@ -73,20 +74,6 @@ functions using a key=val syntax. This is designed to be "self-documenting", with the key definitions providing information on how they are to be used. -Discussion ----------- - -Discussion concerning the approach, suggestions for improvements, -changes, additions, _etc._ should be addressed to the list -[LaTeX-L](https://listserv.uni-heidelberg.de/cgi-bin/wa?A0=LATEX-L). - -You can subscribe to this list by sending mail to - - listserv@urz.uni-heidelberg.de - -with the body containing - - subscribe LATEX-L <Your-First-Name> <Your-Second-Name> Issues ------ @@ -94,8 +81,6 @@ Issues The issue tracker for LaTeX3 is currently located [on GitHub](https://github.com/latex3/latex3/issues). -Please report specific issues with LaTeX3 code there; more general -discussion should be directed to the [LaTeX-L list](#Discussion). The LaTeX Project ------------------ diff --git a/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf b/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf Binary files differindex 674d39db049..754439a4ca8 100644 --- a/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf +++ b/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf diff --git a/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf b/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf Binary files differindex f68a2b225d0..be5ed0387f0 100644 --- a/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf +++ b/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf diff --git a/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf b/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf Binary files differindex 961c5b052e2..7b124a040f7 100644 --- a/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf +++ b/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf diff --git a/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf b/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf Binary files differindex 6e009e3cd40..dffaa1ae590 100644 --- a/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf +++ b/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf diff --git a/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf b/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf Binary files differindex fbac0e820ef..31258f27dee 100644 --- a/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf +++ b/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf diff --git a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx index 2cd7f89e104..13fd652eaa2 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-02-02} +% \date{Released 2023-08-29} % % \maketitle % @@ -143,7 +143,7 @@ % %\begin{implementation} % -%\subsection{\pkg{l3keys2e} Implementation} +%\subsection{\pkg{l3keys2e} implementation} % % \begin{macrocode} %<*package> @@ -154,7 +154,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3keys2e}{2023-02-02}{} +\ProvidesExplPackage{l3keys2e}{2023-08-29}{} {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 c2d14aadff2..44fccd9271f 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-02-02} +% \date{Released 2023-08-29} % % \maketitle % @@ -171,7 +171,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xfp}{2023-02-02}{} +\ProvidesExplPackage{xfp}{2023-08-29}{} {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 e12131e9e0e..70981e871a7 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-02-02} +% \date{Released 2023-08-29} % % \maketitle % @@ -524,7 +524,7 @@ % % \begin{implementation} % -% \section{\pkg{xfrac} Implementation} +% \section{\pkg{xfrac} implementation} % % \begin{macrocode} %<*package> @@ -535,7 +535,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xfrac}{2023-02-02}{} +\ProvidesExplPackage{xfrac}{2023-08-29}{} {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 b5adb20daed..72a31e68718 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-02-02} +% \date{Released 2023-08-29} % % \maketitle % @@ -1064,7 +1064,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xparse}{2023-02-02}{} +\ProvidesExplPackage{xparse}{2023-08-29}{} {L3 Experimental document command parser} % \end{macrocode} % @@ -1380,6 +1380,149 @@ % \end{macrocode} % \end{macro} % +% \subsection{Access to the argument specification} +% +% At one point this was included in the kernel, so we have to use +% \texttt{gset} (or similar) throughout this subsection. +% +% \begin{macro}{\@@_get_arg_spec_error:N, \@@_get_arg_spec_error:n} +% \begin{macro}{\@@_get_arg_spec_error_aux:n} +% Provide an informative error when trying to get the argument +% specification of a non-\pkg{xparse} command or environment. +% \begin{macrocode} +\cs_gset_protected:Npn \@@_get_arg_spec_error:N #1 + { + \bool_set_false:N \l_@@_environment_bool + \tl_set:Nn \l_@@_fn_tl {#1} + \@@_get_arg_spec_error_aux:n { \cs_if_exist:NTF #1 } + } +\cs_gset_protected:Npn \@@_get_arg_spec_error:n #1 + { + \bool_set_true:N \l_@@_environment_bool + \str_set:Nx \l_@@_environment_str {#1} + \@@_get_arg_spec_error_aux:n + { \cs_if_exist:cTF { \l_@@_environment_str } } + } +\cs_gset_protected:Npn \@@_get_arg_spec_error_aux:n #1 + { + #1 + { + \msg_error:nnx { cmd } { non-xparse } + { \@@_environment_or_command: } + } + { + \msg_error:nnx { cmd } { unknown } + { \@@_environment_or_command: } + } + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@@_get_arg_spec:NTF} +% If the command is not an \pkg{xparse} command, complain. If it is, +% its second \enquote{item} is the argument specification. +% \begin{macrocode} +\cs_gset_protected:Npn \@@_get_arg_spec:NTF #1#2#3 + { + \__kernel_cmd_if_xparse:NTF #1 + { + \tl_set:Nx \ArgumentSpecification { \tl_item:Nn #1 { 2 } } + #2 + } + {#3} + } +% \end{macrocode} +% \end{macro} +% +% \begin{variable}{\ArgumentSpecification} +% \begin{macrocode} +\tl_clear_new:N \ArgumentSpecification +% \end{macrocode} +% \end{variable} +% +% \begin{macro}{\@@_get_arg_spec:N} +% \begin{macro}{\@@_get_arg_spec:n} +% Recovering the argument specification is now trivial. +% \begin{macrocode} +\cs_gset_protected:Npn \@@_get_arg_spec:N #1 + { + \@@_get_arg_spec:NTF #1 { } + { \@@_get_arg_spec_error:N #1 } + } +\cs_gset_protected:Npn \@@_get_arg_spec:n #1 + { + \exp_args:Nc \@@_get_arg_spec:NTF + { environment~ \tl_to_str:n {#1} } + { } + { \@@_get_arg_spec_error:n {#1} } + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@@_show_arg_spec:N} +% \begin{macro}{\@@_show_arg_spec:n} +% Showing the argument specification simply means finding it and then +% calling the \cs{tl_show:N} function. +% \begin{macrocode} +\cs_gset_protected:Npn \@@_show_arg_spec:N #1 + { + \@@_get_arg_spec:NTF #1 + { \tl_show:N \ArgumentSpecification } + { \@@_get_arg_spec_error:N #1 } + } +\cs_gset_protected:Npn \@@_show_arg_spec:n #1 + { + \exp_args:Nc \@@_get_arg_spec:NTF + { environment~ \tl_to_str:n {#1} } + { \tl_show:N \ArgumentSpecification } + { \@@_get_arg_spec_error:n {#1} } + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\GetDocumentCommandArgSpec} +% \begin{macro}{\GetDocumentEnvironmentArgSpec} +% \begin{macro}{\ShowDocumentCommandArgSpec} +% \begin{macro}{\ShowDocumentEnvironmentArgSpec} +% Simple mappings, with a check that the argument is a single +% control sequence or active character. +% \begin{macrocode} +\cs_gset_protected:Npn \GetDocumentCommandArgSpec #1 + { + \@@_check_definable:nNT {#1} \GetDocumentCommandArgSpec + { \@@_get_arg_spec:N #1 } + } +\cs_gset_eq:NN \GetDocumentEnvironmentArgSpec \@@_get_arg_spec:n +\cs_gset_protected:Npn \ShowDocumentCommandArgSpec #1 + { + \@@_check_definable:nNT {#1} \ShowDocumentCommandArgSpec + { \@@_show_arg_spec:N #1 } + } +\cs_gset_eq:NN \ShowDocumentEnvironmentArgSpec \@@_show_arg_spec:n +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +\msg_set:nnnn { cmd } { non-xparse } + { \str_uppercase:n #1~not~defined~using~xparse. } + { + You~have~asked~for~the~argument~specification~for~the~#1,~ + but~this~was~not~defined~using~xparse. + } +\msg_set:nnnn { cmd } { unknown } + { Unknown~document~#1. } + { + You~have~asked~for~the~argument~specification~for~the~#1,~ + but~it~is~not~defined. + } +% \end{macrocode} +% % \begin{macrocode} %</package> % \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 86b6ecc14a0..8386be5d984 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-02-02} +% \date{Released 2023-08-29} % % \maketitle % @@ -700,7 +700,7 @@ % % \begin{implementation} % -% \section{\pkg{xtemplate} Implementation} +% \section{\pkg{xtemplate} implementation} % % \begin{macrocode} %<*package> @@ -711,7 +711,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xtemplate}{2023-02-02}{} +\ProvidesExplPackage{xtemplate}{2023-08-29}{} {L3 Experimental prototype document functions} % \end{macrocode} % diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty index 2b4ddd080db..ff77a32ec1a 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-02-02}{} +\ProvidesExplPackage{l3keys2e}{2023-08-29}{} {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 9f40db6c104..d24c07489b1 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-02-02}{} +\ProvidesExplPackage{xfp}{2023-08-29}{} {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 095a6b89f4f..d10d8c35743 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-02-02}{} +\ProvidesExplPackage{xfrac}{2023-08-29}{} {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 15bc4f572ca..fed28004cc4 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-02-02}{} +\ProvidesExplPackage{xparse}{2023-08-29}{} {L3 Experimental document command parser} \clist_new:N \l__cmd_options_clist \DeclareOption* { \clist_put_right:NV \l__cmd_options_clist \CurrentOption } @@ -210,6 +210,90 @@ \l__cmd_fn_tl } \cs_new_eq:NN \__cmd_expandable_grab_u:w \prg_do_nothing: +\cs_gset_protected:Npn \__cmd_get_arg_spec_error:N #1 + { + \bool_set_false:N \l__cmd_environment_bool + \tl_set:Nn \l__cmd_fn_tl {#1} + \__cmd_get_arg_spec_error_aux:n { \cs_if_exist:NTF #1 } + } +\cs_gset_protected:Npn \__cmd_get_arg_spec_error:n #1 + { + \bool_set_true:N \l__cmd_environment_bool + \str_set:Nx \l__cmd_environment_str {#1} + \__cmd_get_arg_spec_error_aux:n + { \cs_if_exist:cTF { \l__cmd_environment_str } } + } +\cs_gset_protected:Npn \__cmd_get_arg_spec_error_aux:n #1 + { + #1 + { + \msg_error:nnx { cmd } { non-xparse } + { \__cmd_environment_or_command: } + } + { + \msg_error:nnx { cmd } { unknown } + { \__cmd_environment_or_command: } + } + } +\cs_gset_protected:Npn \__cmd_get_arg_spec:NTF #1#2#3 + { + \__kernel_cmd_if_xparse:NTF #1 + { + \tl_set:Nx \ArgumentSpecification { \tl_item:Nn #1 { 2 } } + #2 + } + {#3} + } +\tl_clear_new:N \ArgumentSpecification +\cs_gset_protected:Npn \__cmd_get_arg_spec:N #1 + { + \__cmd_get_arg_spec:NTF #1 { } + { \__cmd_get_arg_spec_error:N #1 } + } +\cs_gset_protected:Npn \__cmd_get_arg_spec:n #1 + { + \exp_args:Nc \__cmd_get_arg_spec:NTF + { environment~ \tl_to_str:n {#1} } + { } + { \__cmd_get_arg_spec_error:n {#1} } + } +\cs_gset_protected:Npn \__cmd_show_arg_spec:N #1 + { + \__cmd_get_arg_spec:NTF #1 + { \tl_show:N \ArgumentSpecification } + { \__cmd_get_arg_spec_error:N #1 } + } +\cs_gset_protected:Npn \__cmd_show_arg_spec:n #1 + { + \exp_args:Nc \__cmd_get_arg_spec:NTF + { environment~ \tl_to_str:n {#1} } + { \tl_show:N \ArgumentSpecification } + { \__cmd_get_arg_spec_error:n {#1} } + } +\cs_gset_protected:Npn \GetDocumentCommandArgSpec #1 + { + \__cmd_check_definable:nNT {#1} \GetDocumentCommandArgSpec + { \__cmd_get_arg_spec:N #1 } + } +\cs_gset_eq:NN \GetDocumentEnvironmentArgSpec \__cmd_get_arg_spec:n +\cs_gset_protected:Npn \ShowDocumentCommandArgSpec #1 + { + \__cmd_check_definable:nNT {#1} \ShowDocumentCommandArgSpec + { \__cmd_show_arg_spec:N #1 } + } +\cs_gset_eq:NN \ShowDocumentEnvironmentArgSpec \__cmd_show_arg_spec:n +\msg_set:nnnn { cmd } { non-xparse } + { \str_uppercase:n #1~not~defined~using~xparse. } + { + You~have~asked~for~the~argument~specification~for~the~#1,~ + but~this~was~not~defined~using~xparse. + } +\msg_set:nnnn { cmd } { unknown } + { Unknown~document~#1. } + { + You~have~asked~for~the~argument~specification~for~the~#1,~ + but~it~is~not~defined. + } %% %% %% End of file `xparse.sty'. diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty index a2ea1c4a8ed..15dc32c5465 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-02-02}{} +\ProvidesExplPackage{xtemplate}{2023-08-29}{} {L3 Experimental prototype document functions} \cs_generate_variant:Nn \keys_define:nn { nx } \cs_generate_variant:Nn \tl_trim_spaces:n { e } |