summaryrefslogtreecommitdiffstats
path: root/rubbos/app/apache2/manual/style/latex/atbeginend.sty
diff options
context:
space:
mode:
authorhongbotian <hongbo.tianhongbo@huawei.com>2015-11-30 01:35:09 -0500
committerhongbotian <hongbo.tianhongbo@huawei.com>2015-11-30 01:36:35 -0500
commitcc40af334e619bb549038238507407866f774f8f (patch)
tree43ddc1974f72997a57173151eafb23e6025a13c9 /rubbos/app/apache2/manual/style/latex/atbeginend.sty
parent68e74fd78b2485e5914ce34a5b30f4485029e021 (diff)
upload apache
JIRA: BOTTLENECK-10 Change-Id: I67eae31de6dc824097dfa56ab454ba36fdd23a2c Signed-off-by: hongbotian <hongbo.tianhongbo@huawei.com>
Diffstat (limited to 'rubbos/app/apache2/manual/style/latex/atbeginend.sty')
-rw-r--r--rubbos/app/apache2/manual/style/latex/atbeginend.sty65
1 files changed, 65 insertions, 0 deletions
diff --git a/rubbos/app/apache2/manual/style/latex/atbeginend.sty b/rubbos/app/apache2/manual/style/latex/atbeginend.sty
new file mode 100644
index 00000000..8729fa6c
--- /dev/null
+++ b/rubbos/app/apache2/manual/style/latex/atbeginend.sty
@@ -0,0 +1,65 @@
+% atbeginend.sty
+%
+% defines
+% \BeforeBegin{environment}{code-to-execute}
+% \BeforeEnd {environment}{code-to-execute}
+% \AfterBegin {environment}{code-to-execute}
+% \AfterEnd {environment}{code-to-execute}
+%
+% Save \begin and \end to \BeginEnvironment and \EndEnvironment
+\let\BeginEnvironment=\begin
+\let\EndEnvironment=\end
+
+\def\IfUnDef#1{\expandafter\ifx\csname#1\endcsname\relax}
+
+% Null command needed to for \nothing{something}=.nothing.
+\def\NullCom#1{}
+
+\def\begin#1{%
+%
+% if defined \BeforeBeg for this environment, execute it
+\IfUnDef{BeforeBeg#1}\else\csname BeforeBeg#1\endcsname\fi%
+%
+%
+%
+\IfUnDef{AfterBeg#1}% This is done to skip the command for environments
+ % which can take arguments, like multicols; YOU MUST NOT
+ % USE \AfterBegin{...}{...} for such environments!
+ \let\SaveBegEng=\BeginEnvironment%
+\else%
+ % Start this environment
+ \BeginEnvironment{#1}%
+ % and execute code after \begin{environment}
+ \csname AfterBeg#1\endcsname%
+ %
+ \let\SaveBegEng=\NullCom%
+\fi%
+\SaveBegEng{#1}%
+}
+
+
+\def\end#1{%
+%
+% execute code before \end{environment}
+\IfUnDef{BeforeEnd#1}\else\csname BeforeEnd#1\endcsname\fi%
+%
+% close this environment
+\EndEnvironment{#1}%
+%
+% and execute code after \begin{environment}
+\IfUnDef{AfterEnd#1}\else\csname AfterEnd#1\endcsname\fi%
+}
+
+
+%% Now, define commands
+% \BeforeBegin{environment}{code-to-execute}
+% \BeforeEnd {environment}{code-to-execute}
+% \AfterBegin {environment}{code-to-execute}
+% \AfterEnd {environment}{code-to-execute}
+
+\def\BeforeBegin#1#2{\expandafter\gdef\csname BeforeBeg#1\endcsname
+{#2}}
+\def\BeforeEnd #1#2{\expandafter\gdef\csname BeforeEnd#1\endcsname
+{#2}}
+\def\AfterBegin #1#2{\expandafter\gdef\csname AfterBeg#1\endcsname {#2}}
+\def\AfterEnd #1#2{\expandafter\gdef\csname AfterEnd#1\endcsname{#2}}