%% %% 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 %% %% 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'.