summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/l3packages/xparse.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/l3packages/xparse.dtx')
-rw-r--r--macros/latex/contrib/l3packages/xparse.dtx37
1 files changed, 35 insertions, 2 deletions
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}