% atbeginend.sty
%
% Licensed to the Apache Software Foundation (ASF) under one or more
% contributor license agreements. See the NOTICE file distributed with
% this work for additional information regarding copyright ownership.
% The ASF licenses this file to You under the Apache License, Version 2.0
% (the "License"); you may not use this file except in compliance with
% the License. You may obtain a copy of the License at
%
% http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS,
% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
% See the License for the specific language governing permissions and
% limitations under the License.
% 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}}
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland