You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
3.5 KiB
114 lines
3.5 KiB
%%
|
|
%% This is file `doafter.sty',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% doafter.dtx (with options: `package,latex2e')
|
|
%%
|
|
%% IMPORTANT NOTICE
|
|
%%
|
|
%% doafter package -- insert a token really after a group
|
|
%% Copyright (c) 1996 Peter Schmitt and Mark Wooding
|
|
%%
|
|
%% This program is free software; you can redistribute it and/or modify
|
|
%% it under the terms of the GNU General Public License as published by
|
|
%% the Free Software Foundation; either version 2 of the License, or
|
|
%% (at your option) any later version.
|
|
%%
|
|
%% This program is distributed in the hope that it will be useful,
|
|
%% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
%% GNU General Public License for more details.
|
|
%%
|
|
%% You should have received a copy of the GNU General Public License
|
|
%% along with this program; if not, write to the Free Software
|
|
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
%%
|
|
\NeedsTeXFormat{LaTeX2e}
|
|
\ProvidesPackage{doafter}
|
|
[1996/05/08 1.2 Aftergroup hacking (PS/MDW)]
|
|
%% \CharacterTable
|
|
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
|
|
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
|
|
%% Digits \0\1\2\3\4\5\6\7\8\9
|
|
%% Exclamation \! Double quote \" Hash (number) \#
|
|
%% Dollar \$ Percent \% Ampersand \&
|
|
%% Acute accent \' Left paren \( Right paren \)
|
|
%% Asterisk \* Plus \+ Comma \,
|
|
%% Minus \- Point \. Solidus \/
|
|
%% Colon \: Semicolon \; Less than \<
|
|
%% Equals \= Greater than \> Question mark \?
|
|
%% Commercial at \@ Left bracket \[ Backslash \\
|
|
%% Right bracket \] Circumflex \^ Underscore \_
|
|
%% Grave accent \` Left brace \{ Vertical bar \|
|
|
%% Right brace \} Tilde \~}
|
|
%%
|
|
\let\@@aftergroup\aftergroup
|
|
\def\doafter#1{%
|
|
\def\@tempa{\@@aftergroup#1}%
|
|
\afterassignment\doafter@i\let\@let@token%
|
|
}
|
|
\def\doafter@i{%
|
|
\@let@token%
|
|
\let\aftergroup\@my@aftergroup%
|
|
\@@aftergroup\@prepare@after\@tempa%
|
|
}
|
|
\def\ag@cnt@local{0 }
|
|
\let\ag@cnt@global\ag@cnt@local
|
|
\def\@my@aftergroup{%
|
|
\begingroup%
|
|
\count@\ag@cnt@local%
|
|
\advance\count@\@ne%
|
|
\xdef\ag@cnt@global{\the\count@\space}%
|
|
\endgroup%
|
|
\let\ag@cnt@local\ag@cnt@global%
|
|
\@@aftergroup\@after@token\@@aftergroup%
|
|
}
|
|
\def\@after@token{%
|
|
\@start@after@group%
|
|
\@after@token%
|
|
}
|
|
\def\@start@after@group{%
|
|
\begingroup%
|
|
\count@\ag@cnt@global%
|
|
\clubpenalty\ag@cnt@local%
|
|
\let\@after@token\@after@token@i%
|
|
}
|
|
\def\@after@token@i{%
|
|
\advance\count@\m@ne%
|
|
\ifnum\count@=\clubpenalty%
|
|
\global\let\ag@cnt@global\ag@cnt@local%
|
|
\expandafter\@after@aftertoken\expandafter\@after@all%
|
|
\else%
|
|
\expandafter\@@aftergroup%
|
|
\fi%
|
|
}
|
|
\let\@after@all\endgroup
|
|
\def\@prepare@after{%
|
|
\ifx\ag@cnt@local\ag@cnt@global\else%
|
|
\expandafter\@prepare@after@i%
|
|
\fi%
|
|
}
|
|
\def\@prepare@after@i#1{%
|
|
\@start@after@group%
|
|
\def\@after@all{\@@aftergroup#1\endgroup}%
|
|
}
|
|
\def\@after@aftertoken#1{%
|
|
\let\bgroup\relax\let\egroup\relax%
|
|
\toks@{#1}%
|
|
\futurelet\@let@token\@after@aftertoken@i%
|
|
}
|
|
\def\@after@aftertoken@i{%
|
|
\ifcat\noexpand\@let@token{%
|
|
\@@aftergroup{%
|
|
\else\ifcat\noexpand\@let@token}%
|
|
\@@aftergroup}%
|
|
\else%
|
|
\def\@tempa##1{\@@aftergroup##1\the\toks@}%
|
|
\expandafter\expandafter\expandafter\@tempa%
|
|
\fi\fi%
|
|
}
|
|
\endinput
|
|
%%
|
|
%% End of file `doafter.sty'.
|
|
|