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