summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3packages/xparse
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-11-12 23:04:14 +0000
committerKarl Berry <karl@freefriends.org>2021-11-12 23:04:14 +0000
commit0ff2ba12c9b350c0546c2256e398168d325d234a (patch)
treead8b6639a8ea08db1ae7b1092f84aab7e8ad43ee /Master/texmf-dist/source/latex/l3packages/xparse
parent933d3ad47a7b54da768a6a1f8a2fe702bcfa9b2e (diff)
l3 (12nov21)
git-svn-id: svn://tug.org/texlive/trunk@61040 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3packages/xparse')
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx37
1 files changed, 35 insertions, 2 deletions
diff --git a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
index fd4b615e150..f601bd9c5f2 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 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}