%% This is file `doc.sty', generated %% on <1993/1/29> with the docstrip utility (2.0r). %% %% The original source files were: %% %% doc.doc (with options: `style') %% %% Copyright (C) 1989-1992 by Frank Mittelbach. All rights reserved. %% %% This file is part of the doc package. %% %% IMPORTANT NOTICE: %% %% You are not allowed to change this file. You may however copy %% this file to a file with a different name and then change the %% copy if you obey the restrictions on file changes described in %% readme.mz. %% %% You are NOT ALLOWED to distribute this file alone. You are NOT %% ALLOWED to take money for the distribution or use of this file %% (or a changed version) except for a nominal charge for copying %% etc. %% %% You are allowed to distribute this file under the condition that %% it is distributed together with all files mentioned in %% readme.mz0. %% %% If you receive only some of these files from someone, complain! %% %% However, if these files are distributed by established suppliers %% as part of a complete TeX distribution, and the structure of the %% distribution would make it difficult to distribute the whole set %% of files, *those parties* are allowed to distribute only some of %% the files provided that it is made clear that the user will get %% a complete distribution-set upon request to that supplier (not %% me). Notice that this permission is not granted to the end %% user. %% %% %% For error reports in case of UNCHANGED versions see readme.mz %% %% \def\fileversion{v1.7k} \def\filedate{92/08/24} \def\docdate {92/08/28} %% \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 \~} %% %% Copyright (C) 1989-1992 Frank Mittelbach, all rights reserved. %%% \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 \~} %%% \@ifundefined{macro@cnt}{}{\endinput} \typeout{Style-Option: `doc' \fileversion \@spaces\space\space <\filedate> (FMi)} \typeout{English Documentation \@spaces\@spaces\space <\docdate> (DLo, FMi, RMCS)} \catcode`\^^A=14 \def\macrocode{\macro@code \frenchspacing \@vobeyspaces \xmacro@code} \def\macro@code{% \topsep \MacrocodeTopsep \@beginparpenalty \predisplaypenalty \trivlist \parskip \z@ \item[]% \macro@font \leftskip\@totalleftmargin \advance\leftskip\MacroIndent \rightskip\z@ \parindent\z@ \parfillskip\@flushglue \blank@linefalse \def\par{\ifblank@line \leavevmode\fi \blank@linetrue\@@par \penalty\interlinepenalty} \obeylines \let\do\@makeother \catcode`\`\active \@noligs \dospecials \global\@newlistfalse \global\@minipagefalse \ifcodeline@index \everypar{\global\advance\c@CodelineNo\@ne \llap{\theCodelineNo\ \hskip\@totalleftmargin}% \check@module}% \else \everypar{\check@module}% \fi \init@crossref} \newif\ifblank@line \def\endmacrocode{% \ifpm@module \endgroup \pm@modulefalse \fi \everypar{}% \global\@inlabelfalse \endtrivlist \close@crossref} \@ifundefined{MacroFont}{% \ifx\undefined\selectfont \def\MacroFont{\small\tt}\else \def\MacroFont{\math@fontsfalse\reset@font\small\tt}\fi }{} \@ifundefined{AltMacroFont}{% \ifx\undefined\selectfont \def\AltMacroFont{\small\tt}\else \def\AltMacroFont{\math@fontsfalse\small\reset@font\it\tt}\fi }{} \let\macro@font=\MacroFont \def\check@module{% \ifcheck@modules \ifpm@module \endgroup \pm@modulefalse \fi \expandafter\futurelet\expandafter\next\expandafter\ch@percent \fi} \newif\ifpm@module \def\DontCheckModules{\check@modulesfalse} \def\CheckModules{\check@modulestrue} \newif\ifcheck@modules \check@modulestrue \def\ch@percent{% \if \percentchar\next \expandafter\check@angle \fi} \def\check@angle#1{\futurelet\next\ch@angle} \def\ch@angle{\if<\next \expandafter\ch@plus@etc \else \percentchar \fi} \def\ch@plus@etc<{\futurelet\next\check@plus@etc} \def\check@plus@etc{% \if +\next \let\next\pm@module \else\if -\next \let\next\pm@module \else\if *\next \let\next\star@module \else\if /\next \let\next\slash@module \else \let\next\pm@module \fi\fi\fi\fi \next} \def\pm@module#1>{\pm@moduletrue \Module{#1}\begingroup \advance\guard@level\@ne \ifnum\guard@level>\c@StandardModuleDepth\AltMacroFont\fi } \def\star@module#1>{% \Module{#1}% \global \advance \guard@level\@ne \ifnum \guard@level>\c@StandardModuleDepth \global\let\macro@font=\AltMacroFont \macro@font \fi} \def\slash@module#1>{% \Module{#1}% \global \advance \guard@level\m@ne \ifnum \guard@level=\c@StandardModuleDepth \global\let\macro@font\MacroFont \macro@font \fi } \newcounter{StandardModuleDepth} \newcount \guard@level \@ifundefined{Module}{% \ifx\undefined\selectfont \def\Module#1{{\mod@math@codes$\fam\sffam\langle #1\rangle$}} \else \expandafter\ifx\csname ds@oldlfont\endcsname\relax \def\Module#1{{\mod@math@codes$\langle\sfmath{#1}\rangle$}} \else \def\Module#1{{\mod@math@codes$\langle{\sfmath #1}\rangle$}} \fi \fi}{} \def\mod@math@codes{\mathcode`\|="226A \mathcode`\&="2026} \ifx\selectfont\undefined \else \ifx\sfmath\undefined \newmathalphabet*{\sfmath}{\sfdefault}{m}{n}\fi \fi \newskip\MacrocodeTopsep \MacrocodeTopsep = 3pt plus 1.2pt minus 1pt \newdimen\MacroIndent \settowidth\MacroIndent{\rm\scriptsize 00\ } \@namedef{macrocode*}{\macro@code\sxmacro@code} \expandafter\let\csname endmacrocode*\endcsname = \endmacrocode \catcode`\!=\catcode`\% ^^A In this section there must not be ^^A any exclamation marks. ^^A \begingroup \catcode`\|=\z@ \catcode`\[=\@ne \catcode`\]=\tw@ \catcode`\{=12 \catcode`\}=12 \catcode`\%=12 \catcode`\ =\active \catcode`\\=\active !% \end{macrocode*} ! Next follows the actual definition of \verb+\macro@code+; ! notice the ! use of the new escape character. We manage to get the argument ! surrounded by the string \verb+\end{macrocode}+, but at the end ! however, in spite of the actual characters used during the ! definition of ! this macro, \verb+\end+ with the argument \verb+{macrocode}+ ! will be executed, to ensure a balanced environment. ! \begin{macrocode*} |gdef|xmacro@code#1% \end{macrocode}[#1|end[macrocode]] !% \end{macrocode*} ! \begin{macro}{\sxmacro@code} ! The definition of \verb+\sxmacro@code+ is completely analogous, ! only ! here a slightly different terminating string will be used. ! Note that the space is not active in this environment. ! \begin{macrocode} |catcode`| =12 |gdef|sxmacro@code#1% \end{macrocode*}[#1|end[macrocode*]] !% \end{macrocode} ! because the \verb+\catcode+ changes have been made local by ! commencing a ! new group, there now follows the matching \verb+\endgroup+ ! in a rather ! unusual style of writing. ! \begin{macrocode} |endgroup !% \end{macrocode} \catcode`\!=12 \def\DescribeMacro{\leavevmode\@bsphack \begingroup\MakePrivateLetters\Describe@Macro} \def\Describe@Macro#1{\endgroup \marginpar{\raggedleft\PrintDescribeMacro{#1}}% \SpecialUsageIndex{#1}\@esphack\ignorespaces} \def\DescribeEnv{\leavevmode\@bsphack\begingroup\MakePrivateLetters \Describe@Env} \def\Describe@Env#1{\endgroup \marginpar{\raggedleft\PrintDescribeEnv{#1}}% \SpecialEnvIndex{#1}\@esphack\ignorespaces} \reversemarginpar \setlength\marginparpush{0pt} \setlength\marginparwidth{8pc} {\catcode`\|=\z@ \catcode`\\=12 |gdef|bslash{\}} \def\verbatim{\@beginparpenalty \predisplaypenalty \@verbatim \MacroFont \frenchspacing \@vobeyspaces \@xverbatim} \@namedef{verbatim*}{\@beginparpenalty \predisplaypenalty \@verbatim \MacroFont \@sxverbatim} \def\@verbatim{\trivlist \item[]\if@minipage\else\vskip\parskip\fi \leftskip\@totalleftmargin\rightskip\z@ \parindent\z@\parfillskip\@flushglue\parskip\z@ \@@par \@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par \penalty\interlinepenalty \check@percent}% \obeylines \catcode`\`\active \@noligs \let\do\@makeother \dospecials} {\catcode`\%=12 \long\gdef\check@percent#1{\ifx #1%\let\next\@empty \else \let\next=#1\fi \next}} \begingroup \lccode`\~=`\^^M \lowercase{% \gdef\verb{\relax \ifmmode \hbox \else \leavevmode\null \fi \bgroup \tt \catcode`\`\active \@noligs \let~\verb@err \catcode`\^^M\active \let\do\@makeother \dospecials \@ifstar\@sverb{\@vobeyspaces \frenchspacing \@sverb}}} \endgroup \def\verb@err{\egroup\@latexerr{\string\verb\space command ended by end of line.}\@ehc} \def\@sverb#1{% \catcode`#1\active \lccode`\~`#1% \lowercase{\let~\egroup}} \newcount\macro@cnt \macro@cnt=0 \newcount\macro@level \macro@level=0 \def\macro{% \ifnum\macro@level=\z@ \begingroup \fi \catcode`\\12 \MakePrivateLetters \m@cro@} \long\def\m@cro@#1{\endgroup \topsep\MacroTopsep \trivlist \advance\macro@level\@ne \edef\saved@macroname{\string#1}% \def\makelabel##1{\llap{##1}}% \if@inlabel \let\@tempa\@empty \count@\macro@cnt \loop \ifnum\count@>\z@ \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat \edef\makelabel##1{\llap{\vtop to\baselineskip {\@tempa\hbox{##1}\vss}}}% \advance \macro@cnt \@ne \else \macro@cnt\@ne \fi \edef\@tempa{\noexpand\item[\noexpand\PrintMacroName{\string#1}]}% \@tempa {\advance\c@CodelineNo\@ne\SpecialMainIndex{#1}\nobreak}% \DoNotIndex{#1}% \ignorespaces} \def\endmacro{% \endtrivlist \ifnum\macro@level>\@ne \advance\macro@level\m@ne \begingroup \fi} \newskip\MacroTopsep \MacroTopsep = 7pt plus 2pt minus 2pt \@ifundefined{PrintMacroName} {\def\PrintMacroName#1{\strut \MacroFont \string #1\ }}{} \@ifundefined{PrintDescribeMacro} {\def\PrintDescribeMacro#1{\strut \MacroFont \string #1\ }}{} \@ifundefined{PrintDescribeEnv} {\def\PrintDescribeEnv#1{\strut \MacroFont #1\ }}{} \begingroup \catcode`\~\active \gdef\SpecialEscapechar#1{% \begingroup \uccode`\~`#1% \uppercase{\gdef\active@escape@char{~}}% \escapechar\m@ne \xdef\special@escape@char{\string#1}% \endgroup} \endgroup \begingroup \catcode`\|=\z@ \catcode`\\=\active |gdef|init@crossref{|catcode`|\|active |let\|bslash |MakePrivateLetters |catcode|expandafter`|special@escape@char|active |expandafter|let|active@escape@char|scan@macro} |endgroup \SpecialEscapechar{\\} \@ifundefined{MakePrivateLetters} {\let\MakePrivateLetters\makeatletter}{} \def\close@crossref{\SpecialEscapechar\\} \def\scan@macro{% \special@escape@char \step@checksum \ifscan@allowed \let\macro@namepart\@empty \def\next{\futurelet\next\macro@switch}% \else \let\next\@empty \fi \next} \newif\ifscan@allowed \scan@allowedtrue \def\DisableCrossrefs{\@bsphack\scan@allowedfalse\@esphack} \def\EnableCrossrefs{\@bsphack\scan@allowedtrue \def\DisableCrossrefs{\@bsphack\@esphack}\@esphack} \def\macro@switch{\ifcat\noexpand\next a% \let\next\macro@name \else \let\next\short@macro \fi \next} \def\short@macro#1{\begingroup \catcode`\&=11 \uccode`\&=\expandafter`\string#1% \uppercase{\def\macro@namepart{&}}% \endgroup \ifnot@excluded \produce@index{#1}\fi \scan@allowedfalse#1% \scan@allowedtrue } \def\produce@index#1{% \if\noexpand#1\special@escape@char \scan@allowedfalse \it@is@a\special@escape@char \else \if\noexpand#1\bslash \it@is@a\bslash \else \if\noexpand#1\space \it@is@a\space \else \ifx#1\par \it@is@a\space \else \ifx#1\relax \else \if\noexpand#1\bgroup \LeftBraceIndex \else \if\noexpand#1\egroup \RightBraceIndex \else \if\noexpand#1\percentchar \PercentIndex \else \it@is@a{\string#1}% \fi \fi \fi \fi \fi \fi \fi \fi} \def\macro@name#1{\edef\macro@namepart{\macro@namepart#1}% \futurelet\next\more@macroname} \def\more@macroname{\ifcat\noexpand\next a% \let\next\macro@name \else \let\next\macro@finish \fi \next} \def\macro@finish{% \macro@namepart \ifnot@excluded \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro@namepart}}% \@tempa \fi} \def\DoNotIndex{\begingroup \MakePrivateLetters \catcode`\\12 \do@not@index} \long\def\do@not@index#1{% \endgroup \addto@hook\index@excludelist{#1,}} \long\def\addto@hook#1#2{#1\expandafter{\the#1#2}} \newtoks\index@excludelist \index@excludelist{} \begingroup \catcode`\|=0% \catcode`\\=12 |gdef|ifnot@excluded{|expandafter |expanded@notin|expandafter{|expandafter \|macro@namepart,}{|the|index@excludelist}} |endgroup \def\expanded@notin#1#2{% \def\in@@##1#1##2##3\in@@{% \ifx\expanded@notin##2}% \expandafter\in@@#2#1\expanded@notin\in@@} \@ifundefined{actualchar}{\def\actualchar{=}}{} \@ifundefined{quotechar}{\def\quotechar{!}}{} \@ifundefined{levelchar}{\def\levelchar{>}}{} \@ifundefined{encapchar}{\def\encapchar{|}}{} \@ifundefined{verbatimchar}{\def\verbatimchar{+}}{} \def\SpecialIndex#1{\@bsphack\special@index{\expandafter\@gobble \string#1\actualchar \string\verb\quotechar*\verbatimchar\string#1\verbatimchar}% \@esphack} \def\SpecialMainIndex#1{\@bsphack\special@index{\expandafter\@gobble \string#1\actualchar \string\verb \quotechar*\verbatimchar \string#1\verbatimchar \encapchar main}% \@esphack} \def\SpecialUsageIndex#1{\@bsphack\index{\expandafter\@gobble\string#1% \actualchar\string\verb\quotechar*\verbatimchar \string#1\verbatimchar \encapchar usage}\@esphack} \def\SpecialEnvIndex#1{\@bsphack \index{#1\actualchar{\tt #1} (environment)\encapchar usage}% \index{environments:\levelchar{\tt #1}\encapchar usage}\@esphack} \def\SortIndex#1#2{\index{#1\actualchar#2}} \def\it@is@a#1{\special@index{\quotechar #1\actualchar \string\verb\quotechar*\verbatimchar \quotechar\bslash\quotechar#1\verbatimchar}} \@ifundefined{LeftBraceIndex}{\def\LeftBraceIndex{% \special@index{\bgroup\actualchar\string\verb\quotechar*\verbatimchar \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{} \@ifundefined{RightBraceIndex}{\def\RightBraceIndex{% \special@index{\egroup\actualchar\string\iffalse{\string\fi\string\verb \quotechar*\verbatimchar\quotechar\bslash}\verbatimchar}}}{} \@ifundefined{PercentIndex} {\def\PercentIndex{\it@is@a\percentchar}}{} \def\OldMakeindex{\def\PercentIndex{% \special@index{\quotechar\percentchar\actualchar\string\verb \quotechar*\verbatimchar\quotechar\bslash \percentchar\percentchar\verbatimchar}}} {\catcode`\%=12 \gdef\percentchar{%}} \newif\ifhave@multicol \openin\@ne multicol.sty \ifeof\@ne \else \have@multicoltrue \fi \closein\@ne \relax \ifhave@multicol \input{multicol.sty} \fi \newdimen\IndexMin \IndexMin = 80pt \newcount\c@IndexColumns \c@IndexColumns = 3 \ifhave@multicol \renewenvironment{theindex} {\begin{multicols}\c@IndexColumns[\index@prologue][\IndexMin]% \IndexParms \let\item\@idxitem \ignorespaces}% {\end{multicols}} \else \typeout{Can't find multicols.sty -- will use normal index layout if necessary.} \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi \columnseprule \z@ \columnsep 35\p@ \twocolumn[\index@prologue]% \IndexParms \let\item\@idxitem \ignorespaces} \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} \fi \long\def\IndexPrologue#1{\@bsphack\def\index@prologue{#1}\@esphack} \@ifundefined{index@prologue} {\def\index@prologue{\section*{Index}% \markboth{Index}{Index}% The italic numbers denote the pages where the corresponding entry is described, numbers underlined point to the definition, all others indicate the places where it is used. }}{} \@ifundefined{IndexParms} {\def\IndexParms{% \parindent \z@ \columnsep 15pt \parskip 0pt plus 1pt \rightskip 15pt \mathsurround \z@ \parfillskip=-15pt \small \def\@idxitem{\par\hangindent 30pt}% \def\subitem{\@idxitem\hspace*{15pt}}% \def\subsubitem{\@idxitem\hspace*{25pt}}% \def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}% }}{} \def\efill{\hfill\nopagebreak}% \def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus 1fill}% \def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil}% \def\pfill{\unskip~\dotfill\penalty500\strut\nobreak \dotfil~\ignorespaces}% \def\*{\leavevmode\lower.8ex\hbox{$\,\widetilde{\ }\,$}} \@ifundefined{main}{\def\main#1{\underline{#1}}}{} \@ifundefined{usage}{\def\usage#1{{\it #1}}}{} \def\PrintIndex{\@input{\jobname.ind}} \def\printindex{\typeout{\string\printindex\space is obsolete!}% \typeout{Please use \string\PrintIndex\space if you are a macro implementor^^J or get a newer version of the documented software if you are a user}% \PrintIndex} \def\changes{\@bsphack\begingroup\@sanitize \catcode`\\\z@ \catcode`\ 10 \MakePercentIgnore \changes@} \def\changes@#1#2#3{% \def\protect##1{\string##1\space}% \edef\@tempa{\noexpand\glossary{#1\levelchar \expandafter\@gobble \saved@macroname\actualchar \string\verb\quotechar*% \verbatimchar\saved@macroname \verbatimchar:\levelchar #3}}% \@tempa\endgroup\@esphack} \def\saved@macroname{"General"} \let\RecordChanges\makeglossary \newdimen\GlossaryMin \GlossaryMin = 80pt \newcount\c@GlossaryColumns \c@GlossaryColumns = 2 \ifhave@multicol \newenvironment{theglossary}{% \begin{multicols}\c@GlossaryColumns [\glossary@prologue][\GlossaryMin]% \GlossaryParms \let\item\@idxitem \ignorespaces}% {\end{multicols}} \else \newenvironment{theglossary}{% \@restonecoltrue\if@twocolumn\@restonecolfalse\fi \columnseprule \z@ \columnsep 35\p@ \twocolumn[\glossary@prologue]% \GlossaryParms \let\item\@idxitem \ignorespaces} {\if@restonecol\onecolumn\else\clearpage\fi} \fi \long\def\GlossaryPrologue#1{\@bsphack \def\glossary@prologue{#1}% \@esphack} \@ifundefined{glossary@prologue} {\def\glossary@prologue{\section*{{Change History}}% \markboth{{Change History}}{{Change History}}% }}{} \@ifundefined{GlossaryParms}{\let\GlossaryParms\IndexParms}{} \def\PrintChanges{\@input{\jobname.gls}} \long\def\StopEventually#1{\@bsphack\gdef\Finale{#1% \check@checksum}% \init@checksum \@esphack} \def\OnlyDescription{\@bsphack\long\def\StopEventually##1{% ##1\endinput}\@esphack} \begingroup \obeyspaces% \catcode`\^^M\active% \gdef\meta{\begingroup\obeyspaces\catcode`\^^M\active% \let^^M\do@space\let \do@space% \def\-{\egroup\discretionary{-}{}{}\hbox\bgroup\it}% \m@ta}% \endgroup \def\m@ta#1{\leavevmode\hbox\bgroup$\langle$\it#1\/$\rangle$\egroup \endgroup} \def\do@space{\egroup\space \hbox\bgroup\it\futurelet\next\sp@ce} \def\sp@ce{\ifx\next\do@space\expandafter\sp@@ce\fi} \def\sp@@ce#1{\futurelet\next\sp@ce} \def\IndexInput#1{% \begingroup \macro@code \frenchspacing \@vobeyspaces \input{#1}\endmacrocode \endgroup} \def\maketitle{\par \begingroup \def \thefootnote {\fnsymbol {footnote}}% \setcounter {footnote}\z@ \def \@makefnmark {\hbox to \z@{$^{\@thefnmark }$\hss }}% \if@twocolumn \twocolumn [\@maketitle ]% \else \newpage \global \@topnum \z@ \@maketitle \fi \thispagestyle{titlepage}\@thanks \endgroup \setcounter {footnote}\z@ \gdef\@date{\today}\gdef\@thanks{}% \gdef\@author{}\gdef\@title{}} \@ifundefined{ps@titlepage} {\let\ps@titlepage=\ps@plain}{} \def\MakeShortVerb#1{% \typeout{*** Made \expandafter\@gobble\string#1\space a short reference for \string\verb \on@line\space ***}% \add@special{#1}% \expandafter \xdef\csname cc\string#1\endcsname{\the\catcode`#1}% \begingroup \catcode`\~\active \lccode`\~`#1% \lowercase{% \global\expandafter\let \csname ac\string#1\endcsname~% \gdef~{\verb~}}% \endgroup \global\catcode`#1\active} \def\DeleteShortVerb#1{% \expandafter\ifx\csname cc\string#1\endcsname\relax \else \typeout{*** Deleted \expandafter\@gobble\string#1\space as short reference for \string\verb \on@line\space ***}% \rem@special{#1}% \global\catcode`#1\csname cc\string#1\endcsname \ifnum\catcode`#1=\active \begingroup \catcode`\~\active \lccode`\~`#1% \lowercase{% \global\expandafter\let\expandafter~% \csname ac\string#1\endcsname}% \endgroup \fi \fi} \def\add@special#1{% \rem@special{#1}% \expandafter\gdef\expandafter\dospecials\expandafter {\dospecials \do #1}% \expandafter\gdef\expandafter\@sanitize\expandafter {\@sanitize \@makeother #1}} \def\rem@special#1{% \def\do##1{% \ifnum`#1=`##1 \else \noexpand\do\noexpand##1\fi}% \xdef\dospecials{\dospecials}% \begingroup \def\@makeother##1{% \ifnum`#1=`##1 \else \noexpand\@makeother\noexpand##1\fi}% \xdef\@sanitize{\@sanitize}% \endgroup} \def\MakeShortverb{\typeout{*** Switch to \noexpand\MakeShortVerb syntax, this is obsolete ***}\MakeShortVerb} \def\DeleteShortverb{\typeout{*** Switch to \noexpand\DeleteShortVerb syntax, this is obsolete ***}\DeleteShortVerb} \def\init@checksum{\relax \global\bslash@cnt\z@} \def\check@checksum{\relax \ifnum\check@sum=\z@ \typeout{**********************************}% \typeout{* This macro file has no checksum!}% \typeout{* The checksum should be \the\bslash@cnt!}% \typeout{**********************************}% \else \ifnum\check@sum=\bslash@cnt \typeout{*******************}% \typeout{* Checksum passed *}% \typeout{*******************}% \else \errhelp\wrong@checksum \errmessage{Checksum not passed (\the\check@sum<>\the\bslash@cnt)}% \fi \fi \global\check@sum\z@} \newcount\check@sum \check@sum = \z@ \newcount\bslash@cnt \bslash@cnt = \z@ \newhelp\wrong@checksum {The currently documented file seems to be wrong.^^J% Try to get a correct version.}% \def\CheckSum#1{\@bsphack\global\check@sum#1\relax\@esphack} \def\step@checksum{\global\advance\bslash@cnt\@ne} \def\CharacterTable{\begingroup \CharTableChanges \character@table} \begingroup \catcode`\~=11 \gdef\character@table#1{\def\used~table{#1}% \ifx\used~table\default~table \typeout{***************************}% \typeout{* Character table correct *}% \typeout{***************************}% \else \errhelp\wrong@table \errmessage{Character table corrupted}% \show\default~table \show\used~table \fi \endgroup} \global\let\CharTableChanges\@empty \makeatother \gdef\default~table {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 \~} \endgroup \newhelp\wrong@table{Some of the ASCII characters are corrupted.^^J I now \string\show\space you both tables for comparison.} \newif\ifcodeline@index \codeline@indexfalse \def\codeline@wrindex#1{\if@filesw \immediate\write\@indexfile {\string\indexentry{#1}% {\number\c@CodelineNo}}\fi} \let\special@index = \@gobble \def\CodelineIndex{\makeindex \codeline@indextrue \let\special@index\codeline@wrindex} \def\PageIndex{\makeindex \codeline@indexfalse \let\special@index\index} \newcount\c@CodelineNo \c@CodelineNo\z@ \@ifundefined{theCodelineNo} {\ifx\selectfont\undefined \def\theCodelineNo{\rm\scriptsize\arabic{CodelineNo}}% \else \def\theCodelineNo{\reset@font\scriptsize\arabic{CodelineNo}}% \fi} {} \tolerance=1000\relax { \catcode`\"=12 \global\mathcode`\\="705C \global\mathcode`\@="7040 } \@ifundefined{DocstyleParms}{}{} \DocstyleParms \let\DocstyleParms\relax \@ifundefined{AmSTeX} {\def\AmSTeX{\leavevmode\hbox{$\cal A\kern-.2em\lower.376ex% \hbox{$\cal M$}\kern-.2em\cal S$-\TeX}}}{} \@ifundefined{BibTeX} {\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em% T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{} \@ifundefined{SliTeX} {\def\SliTeX{{\rm S\kern-.06emL\kern-.18em\raise.32ex\hbox {\sc i}\kern -.03em\TeX}}}{} \@ifundefined{PlainTeX}{\def\PlainTeX{{\sc Plain}\kern2pt\TeX}}{} \@ifundefined{Web}{\def\Web{{\sc Web}}}{} \def\MakePercentIgnore{\catcode`\%9\relax} \def\MakePercentComment{\catcode`\%14\relax} \def\DocInput#1{\MakePercentIgnore\input{#1}\MakePercentComment} \ifx\on@line\undefined \def\on@line{ on input line \the\inputlineno} \errhelp{Support for input line numbers has been added to latex.tex .^^J^^J% Please update to a newer LaTeX release.} \errmessage{Obsolete LaTeX release (older than Dec.91)} \fi \endinput %% %% End of file `doc.sty'.