diff options
Diffstat (limited to 'common/latex/environ.sty')
-rw-r--r-- | common/latex/environ.sty | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/common/latex/environ.sty b/common/latex/environ.sty new file mode 100644 index 0000000..8cf854b --- /dev/null +++ b/common/latex/environ.sty @@ -0,0 +1,145 @@ +%% +%% This is file `environ.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% environ.dtx (with options: `package') +%% +%% __________________________________ +%% Copyright (C) 2007 Will Robertson +%% +%% License information appended. +%% +%% ^^A Test that \RenewEnvironment works correctly: +\ProvidesPackage{environ}[2014/05/04 v0.3 A new way to define environments] +\RequirePackage{trimspaces} +\def\environbodyname#1{\def\env@BODY{#1}} +\environbodyname\BODY +\def\environfinalcode#1{% + \def\env@finalcode{#1}} +\environfinalcode{\ignorespacesafterend} +\def\longdef@c#1{% + \expandafter\long\expandafter\def\csname#1\endcsname} +\unless\ifdefined\collect@body + \newtoks\@envbody + \def\collect@body#1{% + \@envbody{\expandafter#1\expandafter{\the\@envbody}}% + \edef\process@envbody{\the\@envbody\noexpand\end{\@currenvir}}% + \@envbody={}% + \def\begin@stack{b}% + \begingroup + \expandafter\let\csname\@currenvir\endcsname\collect@@body + \edef\process@envbody{% + \expandafter\noexpand\csname\@currenvir\endcsname}% + \process@envbody + } + \def\push@begins#1\begin#2{% + \ifx\end#2\else + b\expandafter\push@begins + \fi} + \def\addto@envbody#1{% + \global\@envbody\expandafter{\the\@envbody#1}} + \def\collect@@body#1\end#2{% + \edef\begin@stack{% + \push@begins#1\begin\end \expandafter\@gobble\begin@stack}% + \ifx\@empty\begin@stack + \endgroup + \@checkend{#2}% + \addto@envbody{#1}% + \else + \addto@envbody{#1\end{#2}}% + \fi + \process@envbody} +\fi +\long\def\Collect@Body#1{% + \@envbody{\expandafter#1\expandafter{\the\@envbody}}% + \edef\process@envbody{\the\@envbody\noexpand\end{\@currenvir}}% + \@envbody={}% + \def\begin@stack{b}% + \begingroup + \expandafter\let\csname\@currenvir\endcsname\Collect@@Body + \edef\process@envbody{% + \expandafter\noexpand\csname\@currenvir\endcsname}% + \process@envbody +} +\long\def\Push@Begins#1\begin#2{% + \ifx\end#2\else + b\expandafter\Push@Begins + \fi} +\long\def\Addto@Envbody#1{% + \global\@envbody\expandafter{\the\@envbody#1}} +\long\def\Collect@@Body#1\end#2{% + \edef\begin@stack{% + \Push@Begins#1\begin\end\expandafter\@gobble\begin@stack}% + \ifx\@empty\begin@stack + \endgroup + \@checkend{#2}% + \Addto@Envbody{#1}% + \else + \Addto@Envbody{#1\end{#2}}% + \fi + \process@envbody} +\def\NewEnviron{% + \let\env@newenvironment\newenvironment + \env@NewEnviron} +\def\RenewEnviron{% + \let\env@newenvironment\renewenvironment + \env@NewEnviron} +\def\env@NewEnviron#1{% + \@ifnextchar[ + {\env@new@i{#1}} + {\env@new@iii{#1}{}}} +\def\env@new@i#1[#2]{% + \@ifnextchar[ + {\env@new@ii{#1}[#2]} + {\env@new@iii{#1}{[#2]}}} +\def\env@new@ii#1[#2][#3]{% + \env@new@iii{#1}{[#2][#3]}} +\long\def\env@new@iii#1#2#3{% + \@temptokena={\env@new{#1}{#2}{#3}}% + \@ifnextchar[{% + \the\@temptokena + }{% + \expandafter\the\expandafter + \@temptokena\expandafter[\env@finalcode]% + }} +\long\def\env@new#1#2#3[#4]{% + \longdef@c{env@#1@BODY\expandafter}\expandafter{\env@BODY}% + \env@newenvironment{#1}{% + \expandafter\Collect@Body\csname env@#1@parse\endcsname + }{#4}% + \longdef@c{env@#1@parse}##1{% + \csname env@#1@save@env\endcsname##1\env@nil + \csname env@#1@process\endcsname##1\env@nil}% + \expandafter\let\csname env@#1@save@env\endcsname\relax + \expandafter\let\csname env@#1@process\endcsname\relax + \expandafter\newcommand + \csname env@#1@save@env\endcsname#2{% + \expandafter\expandafter\expandafter + \env@save\csname env@#1@BODY\endcsname}% + \expandafter\newcommand + \csname env@#1@process\endcsname#2{#3\env@ignore}% +} +\long\def\env@save#1#2\env@nil{% + \edef#1{% + \unexpanded\expandafter + \expandafter\expandafter{\trim@spaces{#2}}}} +\long\def\env@ignore#1\env@nil{} +%% +%% Copyright (C) 2007-2014 by Will Robertson <wspr81@gmail.com> +%% +%% Distributable under the LaTeX Project Public License, +%% version 1.3c or higher (your choice). The latest version of +%% this license is at: http://www.latex-project.org/lppl.txt +%% +%% This work is "maintained" (as per LPPL maintenance status) +%% by Will Robertson. +%% +%% This work consists of the file environ.dtx +%% and the derived files environ.pdf, +%% environ.sty, and +%% environ.ins. +%% +%% +%% End of file `environ.sty'. |