%%
%% This is file `pcatcode.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% pcatcode.dtx 
%% 
%%% ====================================================================
%%% @LaTeX-doc-source-file{
%%%   filename  = "pcatcode.dtx",
%%%   version   = "1.04b",
%%%   date      = "2007/08/17",
%%%   time      = "14:48:23 EDT",
%%%   author    = "Michael J Downes",
%%%   address   = "American Mathematical Society,
%%%                Publications Technical Group,
%%%                PO Box 6248,
%%%                Providence, RI 02940,
%%%                USA",
%%%   email     = "tech-support@ams.org",
%%%   URL       = "http://www.ams.org/",
%%%   abstract  = "The pcatcode package changes LaTeX package loading
%%%                internals so that all subsequently loaded packages
%%%                can rely on having normal catcodes in effect.",
%%%   copyright = "Copyright 2001 American Mathematical Society.",
%%%   license   = "Unlimited copying and redistribution of this file
%%%                are permitted as long as this file is not
%%%                modified.  Modifications, and distribution of
%%%                modified versions, are permitted, but only if
%%%                the resulting file is renamed.",
%%%   checksum  = "42248 378 1601 14362",
%%%   docstring = "The checksum field, produced by Robert Solovay's
%%%                checksum utility, gives CRC-16 checksum, lines,
%%%                words, and characters.",
%%%  }
%%% ====================================================================
\begingroup\let\e\endlinechar\iffalse\
\fi\chardef\E\e\e13\chardef\n\catcode\e\catcode\e5\relax\relax
\chardef\s\catcode32\chardef\t10\catcode32\t
\chardef\c\catcode37 \catcode37 14 % percent
\chardef\=\catcode61 \catcode61 12 % equal sign
\chardef\l=\catcode123 \catcode123=1 % left brace
\chardef\r=\catcode125 \catcode125=2 % right brace
\chardef\[=\catcode91 \catcode91=12 % left bracket
\chardef\]=\catcode93 \catcode93=12 % right bracket
\chardef\^=\catcode94 \catcode94=7 % hat
\chardef\.=\catcode46 \catcode46=12 % period
\chardef\/=\catcode47 \catcode47=12 % slash
\edef\c{%
  \endgroup
  \def\noexpand\pcat@restore{%
    \catcode\number\e=\number\n \catcode32=\number\s
    \catcode123=\number\l \catcode125=\number\r
    \catcode37=\number\c \catcode61=\number\=%
    \catcode91=\number\[\catcode93=\number\]\catcode94=\number\^%
    \catcode46=\number\.\catcode47=\number\/%
    \endlinechar=\number\E \relax
  }%
}
\c
\endlinechar13\catcode13\string=5\relax\relax
\catcode32\string=10 \catcode37 14\relax\relax
\catcode61 12\catcode123=1\catcode125=2\catcode91=12\catcode93=12\relax
\catcode46=12\catcode47=12\catcode94=7\relax
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pcatcode}[2002/04/16 v1.04]
\def\NormalCatcodes{%
  \endlinechar=13%
  \catcode33=12\catcode34=12\catcode35=6\catcode36=3\catcode37=14%
  \catcode38=4\catcode39=12\catcode40=12\catcode41=12\catcode42=12%
  \catcode43=12\catcode44=12\catcode45=12\catcode46=12\catcode47=12%
  \catcode58=12\catcode59=12\catcode60=12\catcode61=12\catcode62=12%
  \catcode63=12\catcode91=12\catcode92=0\catcode93=12\catcode94=7%
  \catcode95=8\catcode96=12\catcode123=1\catcode124=12\catcode125=2%
  \catcode126=13\catcode32=10\catcode13=5\catcode9=10\catcode10=12%
  \relax
}
\def\CatcodeStack{}
\begingroup \escapechar=\m@ne \let\s\string
\xdef\pcat@otherchars{%
  \s\!\s\"\s\#\s\$\s\%\s\&\s\'\s\(\s\)\s\*\s +\s\,\s\-\s\.\s\/\s\:%
  \s\;\s\<\s\=\s\>\s\?\s\[\s\\\s\]\s\^\s\_\s\`\s\{\s\|\s\}\s\~%
}
\endgroup
\gdef\PushCatcodes{%
  \xdef\CatcodeStack{%
    \expandafter\PushCat@a\pcat@otherchars\ \
    \^^I\^^J{T \@gobbletwo}\@empty
    \relax
    {\CatcodeStack}}%
}
\def\PushCat@a#1{\catcode\number`#1=\number\catcode`#1 \PushCat@a}
\PushCatcodes \NormalCatcodes
\def\PopCatcodes{\expandafter\PopCat@a\CatcodeStack}
\def\PopCat@a#1#{#1\xdef\CatcodeStack}
\def\CCSdo#1{ (\string#1\@iden{:\number\catcode`#1)\CCSdo}}
\def\CurrentCatcodesSubset{%
  \romannumeral 0\CCSdo\^^I\^^J\^^L\^^M\ \!\"\#\$\%\&\'\(\)\*+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}{\~\@gobbletwo}:\number\catcode`\~)%
}
\begingroup\pcat@restore
\begingroup
\catcode`\3="3 \catcode`\4="4 \catcode`\7="7 \catcode`\8="8
\catcode`\A="A \catcode`\B="B \catcode`\C="C \catcode`\D="D
\gdef\fls@let#1#2{%
  \ifx\@@undefined#1\else\errmessage{\string#1 already defined}\fi
  \begingroup
  \lccode`\3=`#2\lccode`\7=`#2\lccode`\8=`#2%
  \lccode`\B=`#2\lccode`\C=`#2\lccode`\D=`#2\relax
  \ifnum\catcode`#2=\active
    \def\do##1{\noexpand\do\noexpand##1\noexpand}%
    \lowercase{%
      \xdef\fls@active@characters{%
        \fls@active@characters
        \do#1D}%
    }%
  \fi
  \aftergroup\global \aftergroup\let \aftergroup#1\aftergroup=%
  \lowercase{\aftergroup} %
  \lowercase{\expandafter\endgroup
    \ifcase\catcode`#2 %
      0\or \bgroup\or \egroup\or 3\or 4\or 5\or 6\or 7\or 8\or 9\or
      \@sptoken\or B\or C\else D\fi
  }%
}
\endgroup
\gdef\FutureLetSetup{%
  \gdef\fls@active@characters{}%
  \fls@let\dl@@space\ %
  \fls@let\dl@@exclam\!%
  \fls@let\dl@@dblquote\"%
  \fls@let\dl@@hash\#%
  \fls@let\dl@@dollar\$%
  \fls@let\dl@@ampersand\&%
  \fls@let\dl@@rquote\'%
  \fls@let\dl@@lparen\(%
  \fls@let\dl@@rparen\)%
  \fls@let\dl@@star\*%
  \fls@let\dl@@plus\+%
  \fls@let\dl@@comma\,%
  \fls@let\dl@@hyphen\-%
  \fls@let\dl@@period\.%
  \fls@let\dl@@slash\/%
  \fls@let\dl@@colon\:%
  \fls@let\dl@@semicolon\;%
  \fls@let\dl@@less\<%
  \fls@let\dl@@equal\=%
  \fls@let\dl@@greater\>%
  \fls@let\dl@@question\?%
  \fls@let\dl@@lbracket\[%
  \fls@let\dl@@rbracket\]%
  \fls@let\dl@@hat\^%
  \fls@let\dl@@underscore\_%
  \fls@let\dl@@lquote\`%
  \fls@let\dl@@lbrace\{%
  \fls@let\dl@@vert\|%
  \fls@let\dl@@rbrace\}%
  \fls@let\dl@@tilde\~%
}
\AtBeginDocument{\FutureLetSetup}
\gdef\FutureLetReset{%
  \def\do##1##2{\let##1= ##2}%
  \fls@active@characters
  \let\do\relax
}
\endgroup
\endinput \PopCatcodes\pcat@restore
\endinput
%%
%% End of file `pcatcode.sty'.
