summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-12-04 22:46:05 +0000
committerKarl Berry <karl@freefriends.org>2019-12-04 22:46:05 +0000
commit9bc2a0c2350d2837572223c4bd26ab70ffdd2429 (patch)
tree4aabe51b900cbf58af5173fdfc15ac4d9db7a211 /Master/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
parent26734a667a81f7bf79cadb7b602a5b0d46565ec9 (diff)
letltxmacro split from oberdiek (4dec19)
git-svn-id: svn://tug.org/texlive/trunk@53022 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty')
-rw-r--r--Master/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty216
1 files changed, 216 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty b/Master/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
new file mode 100644
index 00000000000..027b670686e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
@@ -0,0 +1,216 @@
+%%
+%% 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'.