summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base/ltexpl.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex-dev/base/ltexpl.dtx')
-rw-r--r--macros/latex-dev/base/ltexpl.dtx78
1 files changed, 61 insertions, 17 deletions
diff --git a/macros/latex-dev/base/ltexpl.dtx b/macros/latex-dev/base/ltexpl.dtx
index 7a567e378f..16ca26095c 100644
--- a/macros/latex-dev/base/ltexpl.dtx
+++ b/macros/latex-dev/base/ltexpl.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltexpl.dtx}
- [2020-07-08 v1.2d LaTeX Kernel (expl3-dependent code)]
+ [2020/08/21 v1.2e LaTeX Kernel (expl3-dependent code)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltexpl.dtx}
@@ -41,6 +41,9 @@
\date{\filedate}
\author{%
Joseph Wright}
+
+\providecommand\pkg[1]{\texttt{#1}}
+
\begin{document}
\MaintainedByLaTeXTeam{latex}
\maketitle
@@ -49,6 +52,9 @@
%</driver>
% \fi
%
+%
+% \changes{v1.2d}{2020/08/21}{Dropped unused command}
+%
% \section{\pkg{expl3}-dependent code}
%
% \StopEventually{}
@@ -218,11 +224,6 @@
%
% \subsection{Using expl3 code}
%
-% \begin{macrocode}
-%<latexrelease>\IncludeInRelease{2020/10/01}%
-%<latexrelease> {\@expl@tl@trim@spaces@apply@@nN}
-%<latexrelease> {l3 macro for use in include}%
-% \end{macrocode}
% In order to ease the implemantation of some new features in
% \LaTeXe\ we may (temporarily) use some coding based on the
% \pkg{expl3}-code.
@@ -232,25 +233,68 @@
% packages. These macros will always have the \verb|@expl@|
% prefix in their name.
%
-% \changes{v1.2a}{2020/05/02}
-% {Define a macro based on l3 language to support inclusion of
-% files with space in the name (gh/217)}
+% The rest of the name matches the \pkg{expl3} name but with all
+% underscores replaced by \texttt{@}s and the \texttt{:} replaced
+% by \texttt{@@}, e.g.,
+%\begin{verbatim}
+% \cs_new_eq:NN \@expl@tl@trim@spaces@apply@@nN \tl_trim_spaces_apply:nN
+%\end{verbatim}
+% if that \pkg{expl3} command is needed in places that are others
+% coded in \LaTeXe{} conventions.
+%
% \begin{macrocode}
\ExplSyntaxOn
-\cs_new_eq:NN \@expl@tl@trim@spaces@apply@@nN \tl_trim_spaces_apply:nN
-\ExplSyntaxOff
+% \end{macrocode}
+%
+% In this file, each release of LaTeX adds an \cs{IncludeInRelease}
+% block, in which the macros copied for that release were defined.
+% In case a rollback is requested, the entire block is changed.
+%
+% Each macro copied has a \cs{changes} entry to explain when and why
+% it was copied, so that further to that may spot it easily.
+%
+% Here \cs{cs\string_gset\string_eq:NN} is used, instead of the |new|
+% variant because if different releases use that same name for
+% different purposes, each can copy the macro without worrying about
+% redefinitions.
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2020/10/01}{expl3~2020-10-01}%
+%<latexrelease> {expl3~macros~added~for~the~2020-10-01~release}%
+% \end{macrocode}
+%
+% \changes{v1.2e}{2020/08/19}
+% {Add \cs{@expl@cs@to@str@@N} and \cs{@expl@str@if@eq@@nnTF}
+% for \cs{NewCommandCopy} (gh/239)}
+% \begin{macrocode}
+\cs_gset_eq:NN \@expl@cs@to@str@@N \cs_to_str:N
+\cs_gset_eq:NN \@expl@str@if@eq@@nnTF \str_if_eq:nnTF
+% \end{macrocode}
+%
+% \changes{v1.2e}{2020/08/19}
+% {Add \cs{\@expl@cs@\meta{thing}@spec@@N}
+% for \cs{ShowCommand} (gh/373)}
+% \begin{macrocode}
+\cs_gset_eq:NN \@expl@cs@prefix@spec@@N \cs_prefix_spec:N
+\cs_gset_eq:NN \@expl@cs@argument@spec@@N \cs_argument_spec:N
+\cs_gset_eq:NN \@expl@cs@replacement@spec@@N \cs_replacement_spec:N
% \end{macrocode}
%
% \begin{macrocode}
%<latexrelease>\EndIncludeInRelease
-%<latexrelease>\IncludeInRelease{0000/00/00}%
-%<latexrelease> {\@expl@tl@trim@spaces@apply@@nN}
-%<latexrelease> {l3 macro for use in include}%
-%<latexrelease>
-%<latexrelease>\let\@expl@tl@trim@spaces@apply@@nN\@undefined
-%<latexrelease>
+%<latexrelease>\IncludeInRelease{0000/00/00}{expl3~2020-10-01}%
+%<latexrelease> {expl3~macros~added~for~the~2020-10-01~release}%
+%<latexrelease>\cs_undefine:N \@expl@cs@to@str@@N
+%<latexrelease>\cs_undefine:N \@expl@str@if@eq@@nnTF
+%<latexrelease>\cs_undefine:N \@expl@cs@prefix@spec@@N
+%<latexrelease>\cs_undefine:N \@expl@cs@argument@spec@@N
+%<latexrelease>\cs_undefine:N \@expl@cs@replacement@spec@@N
%<latexrelease>\EndIncludeInRelease
%</2ekernel|latexrelease>
% \end{macrocode}
%
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+%
% \Finale