%% %% This is file `letltxmacro.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% letltxmacro.dtx (with options: `package') %% %% This is a generated file. %% %% Project: letltxmacro %% Version: 2019/12/03 v1.6 %% %% Copyright (C) %% 2008, 2010 Heiko Oberdiek %% 2016-2019 Oberdiek Package Support Group %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3c of this license or (at your option) any later %% version. This version of this license is in %% https://www.latex-project.org/lppl/lppl-1-3c.txt %% and the latest version of this license is in %% https://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of %% LaTeX version 2005/12/01 or later. %% %% This work has the LPPL maintenance status "maintained". %% %% The Current Maintainers of this work are %% Heiko Oberdiek and the Oberdiek Package Support Group %% https://github.com/ho-tex/letltxmacro/issues %% %% %% This work consists of the main source file letltxmacro.dtx %% and the derived files %% letltxmacro.sty, letltxmacro.pdf, letltxmacro.ins, letltxmacro.drv, %% letltxmacro-showcases.tex, letltxmacro-test1.tex, %% letltxmacro-test2.tex. %% \begingroup\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ \def\x{\endgroup \expandafter\edef\csname llm@AtEnd\endcsname{% \endlinechar=\the\endlinechar\relax \catcode13=\the\catcode13\relax \catcode32=\the\catcode32\relax \catcode35=\the\catcode35\relax \catcode61=\the\catcode61\relax \catcode64=\the\catcode64\relax \catcode123=\the\catcode123\relax \catcode125=\the\catcode125\relax }% }% \x\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode35=6 % # \catcode64=11 % @ \catcode123=1 % { \catcode125=2 % } \def\TMP@EnsureCode#1#2{% \edef\llm@AtEnd{% \llm@AtEnd \catcode#1=\the\catcode#1\relax }% \catcode#1=#2\relax } \TMP@EnsureCode{40}{12}% ( \TMP@EnsureCode{41}{12}% ) \TMP@EnsureCode{42}{12}% * \TMP@EnsureCode{45}{12}% - \TMP@EnsureCode{46}{12}% . \TMP@EnsureCode{47}{12}% / \TMP@EnsureCode{58}{12}% : \TMP@EnsureCode{62}{12}% > \TMP@EnsureCode{91}{12}% [ \TMP@EnsureCode{93}{12}% ] \edef\llm@AtEnd{% \llm@AtEnd \escapechar\the\escapechar\relax \noexpand\endinput } \escapechar=92 % `\\ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{letltxmacro}% [2019/12/03 v1.6 Let assignment for LaTeX macros (HO)] \newcommand*{\LetLtxMacro}{% \llm@ModeLetLtxMacro{}% } \newcommand*{\GlobalLetLtxMacro}{% \llm@ModeLetLtxMacro\global } \newcommand*{\llm@ModeLetLtxMacro}[3]{% \edef\llm@escapechar{\the\escapechar}% \escapechar=-1 % \edef\reserved@a{% \noexpand\protect \expandafter\noexpand \csname\string#3 \endcsname }% \ifx\reserved@a#3\relax #1\edef#2{% \noexpand\protect \expandafter\noexpand \csname\string#2 \endcsname }% #1\expandafter\let \csname\string#2 \expandafter\endcsname \csname\string#3 \endcsname \expandafter\llm@LetLtxMacro \csname\string#2 \expandafter\endcsname \csname\string#3 \endcsname{#1}% \else \llm@LetLtxMacro{#2}{#3}{#1}% \fi \escapechar=\llm@escapechar\relax } \def\llm@LetLtxMacro#1#2#3{% \escapechar=92 % \expandafter\llm@CheckParams\meaning#2:->\@nil{% \begingroup \def\@protected@testopt{% \expandafter\@testopt\@gobble }% \def\@testopt##1##2{% \toks@={##2}% }% \let\llm@testopt\@empty \edef\x{% \noexpand\@protected@testopt \noexpand#2% \expandafter\noexpand\csname\string#2\endcsname }% \expandafter\expandafter\expandafter\def \expandafter\expandafter\expandafter\y \expandafter\expandafter\expandafter{% \expandafter\llm@CarThree#2{}{}{}\llm@nil }% \ifx\x\y #2% \def\llm@testopt{% \noexpand\@protected@testopt \noexpand#1% }% \else \edef\x{% \noexpand\@testopt \expandafter\noexpand \csname\string#2\endcsname }% \expandafter\expandafter\expandafter\def \expandafter\expandafter\expandafter\y \expandafter\expandafter\expandafter{% \expandafter\llm@CarTwo#2{}{}\llm@nil }% \ifx\x\y #2% \def\llm@testopt{% \noexpand\@testopt }% \fi \fi \ifx\llm@testopt\@empty \else \llm@protected\xdef\llm@GlobalTemp{% \llm@testopt \expandafter\noexpand \csname\string#1\endcsname {\the\toks@}% }% \fi \expandafter\endgroup\ifx\llm@testopt\@empty #3\let#1=#2\relax \else #3\let#1=\llm@GlobalTemp #3\expandafter\let \csname\string#1\expandafter\endcsname \csname\string#2\endcsname \fi }{% #3\let#1=#2\relax }% } \def\llm@CheckParams#1:->#2\@nil{% \begingroup \def\x{#1}% \ifx\x\llm@macro \endgroup \def\llm@protected{}% \expandafter\@firstoftwo \else \ifx\x\llm@protectedmacro \endgroup \def\llm@protected{\protected}% \expandafter\expandafter\expandafter\@firstoftwo \else \endgroup \expandafter\expandafter\expandafter\@secondoftwo \fi \fi } \def\llm@macro{macro} \@onelevel@sanitize\llm@macro \def\llm@protectedmacro{\protected macro} \@onelevel@sanitize\llm@protectedmacro \def\llm@CarThree#1#2#3#4\llm@nil{#1#2#3}% \def\llm@CarTwo#1#2#3\llm@nil{#1#2}% \llm@AtEnd% \endinput %% %% End of file `letltxmacro.sty'.