diff options
Diffstat (limited to 'Master/texmf-dist/source/latex-dev/base/ltdefns.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex-dev/base/ltdefns.dtx | 53 |
1 files changed, 51 insertions, 2 deletions
diff --git a/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx b/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx index ea6a924f98f..476d102ae4e 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltdefns.dtx} - [2020/08/21 v1.5m LaTeX Kernel (definition commands)] + [2020/09/06 v1.5n LaTeX Kernel (definition commands)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltdefns.dtx} @@ -2194,6 +2194,56 @@ % \end{macro} % % +% \begin{macro}{\string@makeletter} +% \begin{macro}{\@string@makeletter} +% \begin{macro}{\char@if@alph} +% Iterates through a string, turning each alphabetic character into +% a catcode-11 token (partly undoes a \cs{detokenize}). Useful for +% \cs{ifx}-based string comparisons where \cs{detokenize}-ing the +% other string would break too much code. +% +% \changes{v1.5n}{2020/09/06} +% {Macro added} +% +% The macro uses \textsf{expl3}'s \cs{@expl@str@map@function@@NN} to +% iterate on the string (without losing spaces) and applies +% \cs{@string@makeletter} on each character. The latter checks if +% character is between a--z or A--Z, and uses \cs{@alph} or \cs{@Alph} +% to get the corresponding catcode-11 token. Other tokens are passed +% through unchanged. +% \begin{macrocode} +%</2ekernel> +%<latexrelease>\IncludeInRelease{2020/10/01}{\string@makeletter} +%<latexrelease> {Add \string@makeletter}% +%<*2ekernel|latexrelease> +\def\string@makeletter#1{% + \@expl@str@map@function@@NN#1\@string@makeletter} +\def\@string@makeletter#1{% + \char@if@alph{#1}% + {\@expl@char@generate@@nn{`#1}{11}}% + {#1}} +\def\char@if@alph#1{% + \ifnum0\ifnum`#1<`A 1\fi\ifnum`#1>`z 1\fi + \if\ifnum`#1>`Z @\fi\ifnum`#1<`a @\fi01\fi>0 + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% +%<latexrelease>\IncludeInRelease{0000/00/00}{\string@makeletter} +%<latexrelease> {Undefine \string@makeletter}% +%<latexrelease>\let\string@makeletter\@undefined +%<latexrelease>\let\@string@makeletter\@undefined +%<latexrelease>\let\char@if@alph\@undefined +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% % % \begin{macro}{\makeatletter} % \begin{macro}{\makeatother} @@ -2207,7 +2257,6 @@ % \end{macro} % \end{macro} % - % % \section{Discretionary Hyphenation} % \begin{macro}{\-} |