summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/l3packages
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-11-13 03:01:22 +0000
committerNorbert Preining <norbert@preining.info>2021-11-13 03:01:22 +0000
commita4ccc84b5ea15905a51f24c56989a29267cfd949 (patch)
treedc685ede693ac3961a116e6ff8ec6ec2969afea2 /macros/latex/contrib/l3packages
parent3a8398961f2de022af86ec0fcf33eb093b8dce41 (diff)
CTAN sync 202111130301
Diffstat (limited to 'macros/latex/contrib/l3packages')
-rw-r--r--macros/latex/contrib/l3packages/CHANGELOG.md8
-rw-r--r--macros/latex/contrib/l3packages/README.md2
-rw-r--r--macros/latex/contrib/l3packages/l3keys2e.dtx4
-rw-r--r--macros/latex/contrib/l3packages/l3keys2e.pdfbin369368 -> 368966 bytes
-rw-r--r--macros/latex/contrib/l3packages/xfp.dtx4
-rw-r--r--macros/latex/contrib/l3packages/xfp.pdfbin331750 -> 331336 bytes
-rw-r--r--macros/latex/contrib/l3packages/xfrac.dtx4
-rw-r--r--macros/latex/contrib/l3packages/xfrac.pdfbin514610 -> 484489 bytes
-rw-r--r--macros/latex/contrib/l3packages/xparse.dtx37
-rw-r--r--macros/latex/contrib/l3packages/xparse.pdfbin534316 -> 533911 bytes
-rw-r--r--macros/latex/contrib/l3packages/xtemplate.dtx109
-rw-r--r--macros/latex/contrib/l3packages/xtemplate.pdfbin440108 -> 439713 bytes
12 files changed, 81 insertions, 87 deletions
diff --git a/macros/latex/contrib/l3packages/CHANGELOG.md b/macros/latex/contrib/l3packages/CHANGELOG.md
index 9b7487dc51..a5a54eeed0 100644
--- a/macros/latex/contrib/l3packages/CHANGELOG.md
+++ b/macros/latex/contrib/l3packages/CHANGELOG.md
@@ -7,6 +7,11 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2021-11-12]
+
+### Added
+- Added `\NewCommandCopy` support for deprecated argument types.
+
## [2021-08-27]
### Changed
@@ -159,7 +164,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/2021-08-27...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2021-11-12...HEAD
+[2021-11-12]: https://github.com/latex3/latex3/compare/2021-08-27...2021-11-12
[2021-08-27]: https://github.com/latex3/latex3/compare/2021-08-04...2021-08-27
[2021-08-04]: https://github.com/latex3/latex3/compare/2021-06-18...2021-08-04
[2021-06-18]: https://github.com/latex3/latex3/compare/2021-06-01...2021-06-18
diff --git a/macros/latex/contrib/l3packages/README.md b/macros/latex/contrib/l3packages/README.md
index d20f9f83be..d71cfcc584 100644
--- a/macros/latex/contrib/l3packages/README.md
+++ b/macros/latex/contrib/l3packages/README.md
@@ -1,7 +1,7 @@
LaTeX3 High-Level Concepts
==========================
-Release 2021-08-27
+Release 2021-11-12
Overview
--------
diff --git a/macros/latex/contrib/l3packages/l3keys2e.dtx b/macros/latex/contrib/l3packages/l3keys2e.dtx
index f10eb7e8ce..6aeaba3229 100644
--- a/macros/latex/contrib/l3packages/l3keys2e.dtx
+++ b/macros/latex/contrib/l3packages/l3keys2e.dtx
@@ -62,7 +62,7 @@
% }^^A
% }
%
-% \date{Released 2021-08-27}
+% \date{Released 2021-11-12}
%
% \maketitle
%
@@ -139,7 +139,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3keys2e}{2021-08-27}{}
+\ProvidesExplPackage{l3keys2e}{2021-11-12}{}
{LaTeX2e option processing using LaTeX3 keys}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/l3keys2e.pdf b/macros/latex/contrib/l3packages/l3keys2e.pdf
index 587e3201c2..8cece1c69c 100644
--- a/macros/latex/contrib/l3packages/l3keys2e.pdf
+++ b/macros/latex/contrib/l3packages/l3keys2e.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xfp.dtx b/macros/latex/contrib/l3packages/xfp.dtx
index cef3891fe2..c3ba90bb14 100644
--- a/macros/latex/contrib/l3packages/xfp.dtx
+++ b/macros/latex/contrib/l3packages/xfp.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2021-08-27}
+% \date{Released 2021-11-12}
%
% \maketitle
%
@@ -166,7 +166,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xfp}{2021-08-27}{}
+\ProvidesExplPackage{xfp}{2021-11-12}{}
{L3 Floating point unit}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xfp.pdf b/macros/latex/contrib/l3packages/xfp.pdf
index cd5a23f601..0e0dc875b7 100644
--- a/macros/latex/contrib/l3packages/xfp.pdf
+++ b/macros/latex/contrib/l3packages/xfp.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xfrac.dtx b/macros/latex/contrib/l3packages/xfrac.dtx
index 2840b4318a..efe75c161a 100644
--- a/macros/latex/contrib/l3packages/xfrac.dtx
+++ b/macros/latex/contrib/l3packages/xfrac.dtx
@@ -65,7 +65,7 @@
% }^^A
% }
%
-% \date{Released 2021-08-27}
+% \date{Released 2021-11-12}
%
% \maketitle
%
@@ -535,7 +535,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xfrac}{2021-08-27}{}
+\ProvidesExplPackage{xfrac}{2021-11-12}{}
{L3 Experimental split-level fractions}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xfrac.pdf b/macros/latex/contrib/l3packages/xfrac.pdf
index 2895df4613..b5b461116e 100644
--- a/macros/latex/contrib/l3packages/xfrac.pdf
+++ b/macros/latex/contrib/l3packages/xfrac.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xparse.dtx b/macros/latex/contrib/l3packages/xparse.dtx
index fd4b615e15..f601bd9c5f 100644
--- a/macros/latex/contrib/l3packages/xparse.dtx
+++ b/macros/latex/contrib/l3packages/xparse.dtx
@@ -67,7 +67,7 @@
% }^^A
% }
%
-% \date{Released 2021-08-27}
+% \date{Released 2021-11-12}
%
% \maketitle
%
@@ -1064,7 +1064,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xparse}{2021-08-27}{}
+\ProvidesExplPackage{xparse}{2021-11-12}{}
{L3 Experimental document command parser}
% \end{macrocode}
%
@@ -1249,6 +1249,39 @@
% \end{macrocode}
% \end{macro}
%
+% \subsection{Copying a command and its internal structure}
+%
+% The apparatus for copying commands is almost entirely in |ltcmd.dtx|,
+% preloaded in the \LaTeXe{} kernel. The missing parts, regarding
+% copying the deprecated argument types |G|, |l| and |u| boil down to
+% copying the expandable grabber for |u|.
+%
+% \begin{macro}{\@@_copy_grabber_u:w}
+% An expandable |u|-type uses a dedicated grabber just like a
+% |D|-type, except that both its delimiter tokens are omitted, so to
+% copy that we just copy a |D|-type and leave the last two arguments
+% empty:
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_copy_grabber_u:w #1 #2 #3
+ { \@@_copy_grabber_D:w {#1} {#2} {#3} { } { } }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Showing the definition of a command}
+%
+% \begin{macro}{\c_@@_show_type_u_tl,\c_@@_show_type_G_tl}
+% Same as for copying, only small bits are missing here. Namely, two
+% token lists that tell the \pkg{ltcmd} mechanism how to deal with the
+% argument types defined here. Both |G| and |u| are classified
+% as~|3|: commands that take a default value. That's not really true
+% for~|u|, but it's a close enough approximation to get the output we
+% want.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_show_type_u_tl { 3 }
+\tl_const:Nn \c_@@_show_type_G_tl { 3 }
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Grabbing arguments}
%
% \begin{macro}{\@@_grab_G:w}
diff --git a/macros/latex/contrib/l3packages/xparse.pdf b/macros/latex/contrib/l3packages/xparse.pdf
index 139e90a873..f7075f0b22 100644
--- a/macros/latex/contrib/l3packages/xparse.pdf
+++ b/macros/latex/contrib/l3packages/xparse.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xtemplate.dtx b/macros/latex/contrib/l3packages/xtemplate.dtx
index 9c038494f3..8dfe79ec34 100644
--- a/macros/latex/contrib/l3packages/xtemplate.dtx
+++ b/macros/latex/contrib/l3packages/xtemplate.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2021-08-27}
+% \date{Released 2021-11-12}
%
% \maketitle
%
@@ -682,7 +682,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xtemplate}{2021-08-27}{}
+\ProvidesExplPackage{xtemplate}{2021-11-12}{}
{L3 Experimental prototype document functions}
% \end{macrocode}
%
@@ -1280,7 +1280,7 @@
\seq_put_right:No \l_@@_key_order_seq \l_@@_key_name_tl
\str_if_eq:onT \l_@@_keytype_tl { choice }
{
- \clist_if_in:NnT \l_@@_keytype_arg_tl { unknown }
+ \exp_args:No \clist_if_in:nnT \l_@@_keytype_arg_tl { unknown }
{ \msg_error:nn { xtemplate } { choice-unknown-reserved } }
}
}
@@ -1446,95 +1446,50 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_store_value_code:n}
-% \begin{macro}{\@@_store_value_choice:n}
-% \begin{macro}{\@@_store_value_commalist:n}
-% \begin{macro}{\@@_store_value_function:n}
-% \begin{macro}{\@@_store_value_instance:n}
-% \begin{macro}{\@@_store_value_real:n}
-% \begin{macro}{\@@_store_value_tokenlist:n}
+% \begin{macro}{\@@_store_value_code:n, \@@_store_value_choice:n,
+% \@@_store_value_function:n, \@@_store_value_instance:n}
% With no need to worry about delayed evaluation, these keytypes all
% just store the input directly.
% \begin{macrocode}
\cs_new_protected:Npn \@@_store_value_code:n #1
{ \prop_put:Non \l_@@_values_prop \l_@@_key_name_tl {#1} }
\cs_new_eq:NN \@@_store_value_choice:n \@@_store_value_code:n
-\cs_new_eq:NN \@@_store_value_commalist:n \@@_store_value_code:n
\cs_new_eq:NN \@@_store_value_function:n \@@_store_value_code:n
\cs_new_eq:NN \@@_store_value_instance:n \@@_store_value_code:n
-\cs_new_eq:NN \@@_store_value_real:n \@@_store_value_code:n
-\cs_new_eq:NN \@@_store_value_tokenlist:n \@@_store_value_code:n
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
-% \begin{macro}{\@@_store_value_integer:n}
-% \begin{macro}{\@@_store_value_length:n}
-% \begin{macro}{\@@_store_value_muskip:n}
-% \begin{macro}{\@@_store_value_skip:n}
-% Storing the value of a number is in all cases more or less the same.
-% If evaluation is taking place now, assignment is made to a scratch
-% variable, and this result is then stored. On the other hand, if
-% evaluation is delayed the current data is simply stored \enquote{as is}.
+% \begin{macro}{\@@_store_value_aux:Nn, \@@_store_value_integer:n,
+% \@@_store_value_length:n, \@@_store_value_muskip:n,
+% \@@_store_value_real:n, \@@_store_value_skip:n,
+% \@@_store_value_tokenlist:n, \@@_store_value_commalist:n}
+% Storing values in \cs{l_@@_values_prop} is in most cases the same.
+% If evaluation is taking place now, one \texttt{x}-expands an
+% evaluation function and the result is then stored. On the other
+% hand, if evaluation is delayed the current data is simply stored
+% \enquote{as is}.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_store_value_integer:n #1
- {
- \@@_if_eval_now:nTF {#1}
- {
- \int_set:Nn \l_@@_tmp_int {#1}
- \prop_put:NVV \l_@@_values_prop \l_@@_key_name_int
- \l_@@_tmp_int
- }
- {
- \prop_put:Non \l_@@_values_prop \l_@@_key_name_tl {#1}
- }
- }
-\cs_new_protected:Npn \@@_store_value_length:n #1
- {
- \@@_if_eval_now:nTF {#1}
- {
- \dim_set:Nn \l_@@_tmp_dim {#1}
- \prop_put:NVV \l_@@_values_prop \l_@@_key_name_tl
- \l_@@_tmp_dim
- }
- {
- \prop_put:Non \l_@@_values_prop \l_@@_key_name_tl {#1}
- }
- }
-\cs_new_protected:Npn \@@_store_value_muskip:n #1
- {
- \@@_if_eval_now:nTF {#1}
- {
- \muskip_set:Nn \l_@@_tmp_muskip {#1}
- \prop_put:NVV \l_@@_values_prop \l_@@_key_name_tl
- \l_@@_tmp_muskip
- }
- {
- \prop_put:Non \l_@@_values_prop \l_@@_key_name_tl {#1}
- }
- }
-\cs_new_protected:Npn \@@_store_value_skip:n #1
+\cs_new_protected:Npn \@@_store_value_aux:Nn #1#2
{
- \@@_if_eval_now:nTF {#1}
- {
- \skip_set:Nn \l_@@_tmp_skip {#1}
- \prop_put:NVV \l_@@_values_prop \l_@@_key_name_tl
- \l_@@_tmp_skip
- }
- {
- \prop_put:Non \l_@@_values_prop \l_@@_key_name_tl {#1}
- }
+ \@@_if_eval_now:nTF {#2}
+ { \prop_put:NVx \l_@@_values_prop \l_@@_key_name_tl { #1 {#2} } }
+ { \prop_put:Non \l_@@_values_prop \l_@@_key_name_tl {#2} }
}
+\cs_new_protected:Npn \@@_store_value_integer:n
+ { \@@_store_value_aux:Nn \int_eval:n }
+\cs_new_protected:Npn \@@_store_value_length:n
+ { \@@_store_value_aux:Nn \dim_eval:n }
+\cs_new_protected:Npn \@@_store_value_muskip:n
+ { \@@_store_value_aux:Nn \muskip_eval:n }
+\cs_new_protected:Npn \@@_store_value_real:n
+ { \@@_store_value_aux:Nn \fp_eval:n }
+\cs_new_protected:Npn \@@_store_value_skip:n
+ { \@@_store_value_aux:Nn \skip_eval:n }
+\cs_new_protected:Npn \@@_store_value_tokenlist:n
+ { \@@_store_value_aux:Nn \use:n }
+\cs_new_eq:NN \@@_store_value_commalist:n \@@_store_value_tokenlist:n
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \subsection{Implementation part of template declaration}
%
@@ -1713,7 +1668,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_implement_choices:n #1
{
- \clist_set_eq:NN \l_@@_tmp_clist \l_@@_keytype_arg_tl
+ \clist_set:No \l_@@_tmp_clist { \l_@@_keytype_arg_tl }
\prop_put:Non \l_@@_vars_prop \l_@@_key_name_tl { }
\keyval_parse:NNn
\@@_implement_choice_elt:n \@@_implement_choice_elt:nn
diff --git a/macros/latex/contrib/l3packages/xtemplate.pdf b/macros/latex/contrib/l3packages/xtemplate.pdf
index dd14606df0..10bea564f7 100644
--- a/macros/latex/contrib/l3packages/xtemplate.pdf
+++ b/macros/latex/contrib/l3packages/xtemplate.pdf
Binary files differ