mirror of
				https://github.com/apache/httpd.git
				synced 2025-11-03 17:53:20 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@421081 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
% 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}}
 |