-\documentstyle[a4,makeidx,verbatim,texhelp]{report}%
-\input{psbox.tex}
+\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}%
+%\input{psbox.tex}
\usepackage{times}
\usepackage{hyperref}
--- /dev/null
+% fancyheadings.sty version 1.92
+% Fancy headers and footers.
+% Piet van Oostrum, Dept of Computer Science, University of Utrecht
+% Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands
+% Telephone: +31-30-531806. piet@cs.ruu.nl (mcvax!sun4nl!ruuinf!piet)
+% Sep 16, 1994
+% version 1.4: Correction for use with \reversemargin
+% Sep 29, 1994:
+% version 1.5: Added the \iftopfloat, \ifbotfloat and \iffloatpage commands
+% Oct 4, 1994:
+% version 1.6: Reset single spacing in headers/footers for use with
+% setspace.sty or doublespace.sty
+% Oct 4, 1994:
+% version 1.7: changed \let\@mkboth\markboth to
+% \def\@mkboth{\protect\markboth} to make it more robust
+% Dec 5, 1994:
+% version 1.8: corrections for amsbook/amsart: define \@chapapp and (more
+% importantly) use the \chapter/sectionmark definitions from ps@headings if
+% they exist (which should be true for all standard classes).
+% May 31, 1995:
+% version 1.9: The proposed \renewcommand{\headrulewidth}{\iffloatpage...
+% construction in the doc did not work properly with the fancyplain style.
+% June 1, 1995:
+% version 1.91: The definition of \@mkboth wasn't restored on subsequent
+% \pagestyle{fancy}'s.
+% June 1, 1995:
+% version 1.92: The sequence \pagestyle{fancyplain} \pagestyle{plain}
+% \pagestyle{fancy} would erroneously select the plain version.
+
+\def\lhead{\@ifnextchar[{\@xlhead}{\@ylhead}}
+\def\@xlhead[#1]#2{\gdef\@elhead{#1}\gdef\@olhead{#2}}
+\def\@ylhead#1{\gdef\@elhead{#1}\gdef\@olhead{#1}}
+
+\def\chead{\@ifnextchar[{\@xchead}{\@ychead}}
+\def\@xchead[#1]#2{\gdef\@echead{#1}\gdef\@ochead{#2}}
+\def\@ychead#1{\gdef\@echead{#1}\gdef\@ochead{#1}}
+
+\def\rhead{\@ifnextchar[{\@xrhead}{\@yrhead}}
+\def\@xrhead[#1]#2{\gdef\@erhead{#1}\gdef\@orhead{#2}}
+\def\@yrhead#1{\gdef\@erhead{#1}\gdef\@orhead{#1}}
+
+\def\lfoot{\@ifnextchar[{\@xlfoot}{\@ylfoot}}
+\def\@xlfoot[#1]#2{\gdef\@elfoot{#1}\gdef\@olfoot{#2}}
+\def\@ylfoot#1{\gdef\@elfoot{#1}\gdef\@olfoot{#1}}
+
+\def\cfoot{\@ifnextchar[{\@xcfoot}{\@ycfoot}}
+\def\@xcfoot[#1]#2{\gdef\@ecfoot{#1}\gdef\@ocfoot{#2}}
+\def\@ycfoot#1{\gdef\@ecfoot{#1}\gdef\@ocfoot{#1}}
+
+\def\rfoot{\@ifnextchar[{\@xrfoot}{\@yrfoot}}
+\def\@xrfoot[#1]#2{\gdef\@erfoot{#1}\gdef\@orfoot{#2}}
+\def\@yrfoot#1{\gdef\@erfoot{#1}\gdef\@orfoot{#1}}
+
+\newdimen\headrulewidth
+\newdimen\footrulewidth
+\newdimen\plainheadrulewidth
+\newdimen\plainfootrulewidth
+\newdimen\headwidth
+\newif\if@fancyplain
+\def\fancyplain#1#2{\if@fancyplain#1\else#2\fi}
+
+% Command to reset various things in the headers:
+% a.o. single spacing (taken from setspace.sty)
+% and the catcode of ^^M (so that epsf files in the header work if a
+% verbatim crosses a page boundary)
+\def\fancy@reset{\restorecr
+ \def\baselinestretch{1}%
+ \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
+ \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
+ \else% NFSS (2.09) present
+ \@newbaseline%
+ \fi}
+
+% Initialization of the head and foot text.
+
+\headrulewidth 0.4pt
+\footrulewidth\z@
+\plainheadrulewidth\z@
+\plainfootrulewidth\z@
+
+\lhead[\fancyplain{}{\sl\rightmark}]{\fancyplain{}{\sl\leftmark}}
+% i.e. empty on ``plain'' pages, \rightmark on even, \leftmark on odd pages
+\chead{}
+\rhead[\fancyplain{}{\sl\leftmark}]{\fancyplain{}{\sl\rightmark}}
+% i.e. empty on ``plain'' pages, \leftmark on even, \rightmark on odd pages
+\lfoot{}
+\cfoot{\rm\thepage} % page number
+\rfoot{}
+
+% Put together a header or footer given the left, center and
+% right text, fillers at left and right and a rule.
+% The \lap commands put the text into an hbox of zero size,
+% so overlapping text does not generate an errormessage.
+
+\def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\hbox
+{\rlap{\parbox[b]{\headwidth}{\raggedright#2\strut}}\hfill
+\parbox[b]{\headwidth}{\centering#3\strut}\hfill
+\llap{\parbox[b]{\headwidth}{\raggedleft#4\strut}}}\headrule}}#5}
+
+
+\def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\footrule
+\hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2\strut}}\hfill
+\parbox[t]{\headwidth}{\centering#3\strut}\hfill
+\llap{\parbox[t]{\headwidth}{\raggedleft#4\strut}}}}}#5}
+
+\def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi
+\hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}}
+
+\def\footrule{{\if@fancyplain\let\footrulewidth\plainfootrulewidth\fi
+\vskip-0.3\normalbaselineskip\vskip-\footrulewidth
+\hrule\@width\headwidth\@height\footrulewidth\vskip0.3\normalbaselineskip}}
+
+\def\ps@fancy{%
+\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}%for amsbook
+\@ifundefined{chapter}{\def\sectionmark##1{\markboth
+{\uppercase{\ifnum \c@secnumdepth>\z@
+ \thesection\hskip 1em\relax \fi ##1}}{}}%
+\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne
+ \thesubsection\hskip 1em\relax \fi ##1}}}%
+{\def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth>\m@ne
+ \@chapapp\ \thechapter. \ \fi ##1}}{}}
+\def\sectionmark##1{\markright{\uppercase{\ifnum \c@secnumdepth >\z@
+ \thesection. \ \fi ##1}}}}%
+\csname ps@headings\endcsname % use \ps@headings defaults if they exist
+\ps@@fancy
+\gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}%
+\headwidth\textwidth}
+\def\ps@fancyplain{\ps@fancy \let\ps@plain\ps@plain@fancy}
+\def\ps@plain@fancy{\@fancyplaintrue\ps@@fancy}
+\def\ps@@fancy{%
+\def\@mkboth{\protect\markboth}%
+\def\@oddhead{\@fancyhead\@lodd\@olhead\@ochead\@orhead\@rodd}%
+\def\@oddfoot{\@fancyfoot\@lodd\@olfoot\@ocfoot\@orfoot\@rodd}%
+\def\@evenhead{\@fancyhead\@rodd\@elhead\@echead\@erhead\@lodd}%
+\def\@evenfoot{\@fancyfoot\@rodd\@elfoot\@ecfoot\@erfoot\@lodd}%
+}
+\def\@lodd{\if@reversemargin\hss\else\relax\fi}
+\def\@rodd{\if@reversemargin\relax\else\hss\fi}
+
+\let\latex@makecol\@makecol
+\def\@makecol{\let\topfloat\@toplist\let\botfloat\@botlist\latex@makecol}
+\def\iftopfloat#1#2{\ifx\topfloat\empty #2\else #1\fi}
+\def\ifbotfloat#1#2{\ifx\botfloat\empty #2\else #1\fi}
+\def\iffloatpage#1#2{\if@fcolmade #1\else #2\fi}
+
--- /dev/null
+% makeidx.sty 20-Jan-87 modified for international usage
+%
+% Modified by J.Schrod (TeXsys).
+% according to the suggestion of H.Partl (TU Wien) in german.sty
+% to make caption names adaptable to other languages.
+
+\@ifundefined{seeterm}{\def\seeterm{see}}{} % <-----------
+
+\def\see#1#2{{\em \seeterm\/} #1}
+\def\printindex{\@input{\jobname.ind}}
+
--- /dev/null
+% SOBER.STY van Nico Poppelier
+% Adapted by Julian Smart for his own
+% nefarious purposes
+% --------------------------------------
+% Koppen van secties, subsecties, ...
+% --------------------------------------
+%
+% --------------------------------------
+% fontgrootte en regelafstand
+% (met de notatie X/Y wordt bedoeld
+% 'letter X op regelafstand Y')
+% --------------------------------------
+%
+% 10pt 11pt 12pt
+% \scriptsize 7/ 8 8/ 9.5 8/ 9.5
+% \tiny 5/ 6 6/ 7 6/ 7
+% \small 9/11 10/12 11/13.6
+% \footnotesize 8/ 9.5 9/11 10/12
+% \@normalsize 10/12 11/13.6 12/15
+% \large 12/14 12/14 14/18
+% \Large 14/18 14/18 17/22
+% \LARGE 17/22 17/22 20/25
+% \huge 20/25 20/25 25/30
+% \Huge 25/30 25/30 25/30
+%
+% de syntax van \@startsection is:
+% \@startsection
+% {Name}{Level}{Indent}{Before_skip}{After_Skip}{Type_face}
+% Indent : inspring van kop vanaf linkermarge
+% Before_skip: wit boven kopje
+% (< 0 geeft aan dat eerste alinea niet inspringt)
+% After_skip : wit onder kopje indien >= 0
+% horizontaal wit na kopje,
+% met kopje op de regel indien < 0
+%
+% notatie voor <glue>: <dimen>(<stretch>)(<shrink>)
+%
+% in LaTeX's standaard-stijlen (onafhankelijk van \@ptsize):
+%
+% Indent Before_skip After_skip Type_face
+% section 0 -3.5ex (-1ex)(-0.2ex) 2.3ex(0.2ex) \Large\bf
+% subsection 0 -3.25ex(-1ex)(-0.2ex) 1.5ex(0.2ex) \large\bf
+% subsubsection 0 -3.25ex(-1ex)(-0.2ex) 1.5ex(0.2ex) \normalsize\bf
+% paragraph 0 3.25ex( 1ex)( 0.2ex) -1em()() \normalsize\bf
+% subparagraph \parindent 3.25ex( 1ex)( 0.2ex) -1em()() \normalsize\bf
+%
+%
+% in een soberder uitvoering (onafhankelijk van \@ptsize):
+%
+\def\section{\@startsection{section}{1}
+%{\z@}{-2.5ex plus -0.5ex minus -0.1ex}{0.5ex plus 0.1ex}{\large\bf}}
+{\z@}{-2.5ex plus -0.5ex minus -0.1ex}{0.5ex plus 0.1ex}{\large\bf}}
+\def\subsection{\@startsection{subsection}{2}
+{\z@}{-2.25ex plus -0.3ex minus -0.2ex}{0.05ex plus 0.05ex}{\normalsize\bf}}
+\def\subsubsection{\@startsection{subsubsection}{3}
+{\z@}{-2.25ex plus -0.3ex minus -0.2ex}{0.05ex plus 0.05ex}{\normalsize\sc}}
+\def\paragraph{\@startsection{paragraph}{4}
+{\z@}{2ex plus 0.5ex minus 0.1ex}{-0.7em}{\normalsize\it}}
+\def\subparagraph{\@startsection{subparagraph}{4}
+{\parindent}{2ex plus 0.5ex minus 0.1ex}{-0.7em}{\normalsize\it}}
+%
+% --------------------------------------
+% Hoofdstuk-koppen
+% --------------------------------------
+%
+% LaTeX's book style (standaard documentstijl) definieert
+% de hoofdstuk-koppen onafhankelijk van \@ptsize
+%
+
+\def\@makechapterhead#1{\vspace*{20pt}%
+% Next line repaired by Piet van Oostrum - June 14, 1991.
+%{\parindent 0pt\Large\bf \ifnum\c@secnumdepth>\m@ne\thechapter \fi
+{\parindent 0pt\LARGE\bf \ifnum\c@secnumdepth>\m@ne\thechapter. \hskip 1em \fi%
+{\raggedright\LARGE\bf #1}\\\rule[10pt]{\textwidth}{0.3mm}\par\nobreak \vskip25pt} }
+
+\def\@makeschapterhead#1{
+ \vspace*{20pt} { \parindent 0pt \raggedright
+ \LARGE\bf#1\par\nobreak\vskip25pt } }
+%
+% --------------------------------------
+% List-omgevingen (itemize en enumerate)
+% --------------------------------------
+%
+% De volgende parameters zijn relevant in een list-omgeving:
+%
+% \labelsep : afstand tussen label en item
+% \labelwidth : breedte van label
+% \leftmargin : afstand tussen linkermarge en item
+% \rightmargin : afstand tussen item en rechtermarge
+% \listparindent: indentatie voor vervolg-alinea's in item
+% \parsep : verticaal wit tussen vervolg-alinea's in item
+% \itemsep : verticaal wit tussen opeenvolgende item's
+% \topsep,
+% \partopsep : wit boven item 1 = \topsep + \parskip
+% (geen alinea-overgang boven lijst)
+% wit boven item 1 = \topsep + \parskip + \partopsep
+% (alinea-overgang boven lijst)
+%
+% zie verder LaTeX-boek 5.7.1 en C.5.3
+% --------------------------------------
+%
+% De parameters voor niveau 1 worden gedefinieerd op top-niveau en
+% \@listi definieert uitsluitend \leftmargin
+%
+% size = small (9pt, 10pt, 11pt)
+\def\@listi{\topsep 0.4ex \parsep 0pt \itemsep \parsep}
+% \topsep 4pt(2pt)(2pt) 6pt(2pt)(2pt) 9pt(3pt)(5pt)
+% \parsep 2pt(1pt)(1pt) 3pt(2pt)(1pt) 4.5pt(2pt)(1pt)
+%
+% size = footnotesize (8pt, 9pt, 10pt)
+\def\@listi{\topsep 0.4ex \parsep 0pt \itemsep \parsep}
+% \topsep 3pt(1pt)(1pt) 4pt(2pt)(2pt) 6pt(2pt)(2pt)
+% \parsep 2pt(1pt)(1pt) 2pt(1pt)(1pt) 3pt(2pt)(1pt)
+%
+% size = normalsize (and bigger)
+% \parskip 0pt(1pt) 0pt(1pt) 0pt(1pt)
+% \parindent 15pt 17pt 1.5em
+% \topsep 8pt(2pt)(4pt) 9pt(3pt)(5pt) 10pt(4pt)(6pt)
+% \partopsep 2pt(1pt)(1pt) 3pt(1pt)(2pt) 3pt(2pt)(2pt)
+% \itemsep 4pt(2pt)(1pt) 4.5pt(2pt)(1pt) 5pt(2.5pt)(1pt
+% \parsep 4pt(2pt)(1pt) 4.5pt(2pt)(1pt) 5pt(2.5pt)(1pt)
+\topsep 0.4ex \partopsep 0pt \itemsep 0pt \parsep 0pt
+%
+% \leftmargini 2.5em \leftmarginii 2.2em \leftmarginiii 1.87em
+% \leftmarginiv 1.7em \leftmarginv 1.0em \leftmarginvi 1.0em
+%
+% \leftmargin\leftmargini
+% \labelwidth\leftmargini\advance\labelwidth-\labelsep
+% \labelsep 0.5em
+%
+% \def\@listi{\leftmargin\leftmargini}
+%
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+% \topsep 4pt(2pt)(1pt) 4.5pt(2pt)(1pt) 5pt(2.5pt)(1pt)
+% \parsep 2pt(1pt)(1pt) 2pt(1pt)(1pt) 2.5pt(1pt)(1pt)
+ \topsep 0pt \parsep 0pt \itemsep \parsep}
+%
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+% \topsep 2pt(1pt)(1pt) 2pt(1pt)(1pt) 2.5pt(1pt)(1pt)
+% \partopsep 1pt(0pt)(1pt) 1pt(0pt)(1pt) 1pt(0pt)(1pt)
+ \parsep \z@ \topsep 0pt \partopsep 0pt \itemsep \topsep}
+%
+% \def\@listiv{\leftmargin\leftmarginiv
+% \labelwidth\leftmarginiv\advance\labelwidth-\labelsep}
+%
+% \def\@listv{ \leftmargin\leftmarginv
+% \labelwidth\leftmarginv\advance\labelwidth-\labelsep}
+%
+% \def\@listvi{\leftmargin\leftmarginvi
+% \labelwidth\leftmarginvi\advance\labelwidth-\labelsep}
+
+
--- /dev/null
+% mytitle.sty
+% Julian Smart's Enhanced Titlepage
+
+\def\maketitle{\begin{titlepage}
+\let\footnotesize\small \let\footnoterule\relax \setcounter{page}{0}
+%\null
+%\vfil
+\vspace*{2cm}\begin{flushleft}
+{\huge \sf\@title\\\rule{\textwidth}{0.5mm}} \vskip 3em {\large \lineskip .75em
+{\sf\@author}
+\par}
+\vskip 1.5em {\large\sf \@date \par} \end{flushleft} \par
+\@thanks
+\vfill
+{\sf\small\begin{flushright}%
+Artificial Intelligence Applications Institute\\
+University of Edinburgh\\
+80 South Bridge\\
+EH1 1HN\\
+Tel. 0131-650-2746
+\end{flushright}}
+\null
+\end{titlepage}
+\setcounter{footnote}{0} \let\thanks\relax
+\gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\maketitle\relax}
+\def\abstractname{Abstract} % <----------
+\def\abstract{\titlepage
+\null\vfil
+\begin{center}
+{\bf \abstractname} % <----------
+% {\bf Abstract}
+\end{center}}
+\def\endabstract{\par\vfil\null\endtitlepage}
--- /dev/null
+%%
+%% This is file `verbatim.sty' generated
+%% on <1991/9/3> with the docstrip utility (v1.1l test).
+%%
+%% The original source file was `verbatim.doc'.
+%%
+%%
+%% Copyright (C) 1989,1990,1991 by Rainer Schoepf. All rights reserved.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% You are not allowed to change this file. You may however copy this file
+%% to a different name and then change this copy.
+%%
+%% You are allowed to distribute this file under the condition that it is
+%% distributed together with all files mentioned in readme.mz4. If you
+%% receive only some of these files from someone, complain!
+%%
+%% 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 some nominal charge for copying etc.
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% Rainer Schoepf
+%% Konrad-Zuse-Zentrum fuer Informationstechnik Berlin
+%% Heilbronner Str. 10
+%% W-1000 Berlin 31
+%% Federal Republic of Germany
+%% Internet: <SCHOEPF@SC.ZIB-Berlin.DE>
+%%
+\def\fileversion{v1.4f}
+\def\filedate{91/08/05}
+\def\docdate{91/08/05}
+
+%% \CheckSum{439}
+%% \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 \~}
+%%
+%% Style-option `verbatim' to use with LaTeX v2.09
+%% Copyright (C) 1989, 1990, 1991 by Rainer Sch\"opf, all rights reserved.
+\@ifundefined{verbatim@@@}{}{\endinput}
+\typeout{Style-Option: `verbatim'
+ \fileversion \space <\filedate> (RmS)}
+\typeout{English Documentation
+ \@spaces \@spaces \space <\docdate> (RmS)}
+\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
+\newtoks\every@verbatim
+\every@verbatim={}
+\def\@makeother#1{\catcode`#112\relax}
+\begingroup
+ \catcode`\ =\active%
+\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}%
+\endgroup
+\def\@xobeysp{\leavevmode\penalty\@M\ }
+\newtoks\verbatim@line
+\def\verbatim@startline{\verbatim@line{}}
+\def\verbatim@addtoline#1{%
+ \verbatim@line\expandafter{\the\verbatim@line#1}}
+\def\verbatim@processline{\the\verbatim@line\par}
+\def\verbatim@finish{\ifcat$\the\verbatim@line$\else
+ \verbatim@processline\fi}
+\begingroup
+ \catcode`\`=\active
+ \gdef\verbatim@font{\tt \catcode96\active
+ \def`{\leavevmode\kern\z@\char96 }}
+\endgroup
+\def\@verbatim{\the\every@verbatim
+ \trivlist \item[]%
+ \leftskip\@totalleftmargin\rightskip\z@
+ \parindent\z@\parfillskip\@flushglue\parskip\z@
+ \@@par
+ \def\par{\leavevmode\null\@@par\penalty\interlinepenalty}%
+ \obeylines
+ \verbatim@font
+ \let\do\@makeother \dospecials}
+\def\verbatim{\@verbatim \frenchspacing\@vobeyspaces\verbatim@start}
+\@namedef{verbatim*}{\@verbatim\verbatim@start}
+\let\endverbatim=\endtrivlist
+\expandafter\let\csname endverbatim*\endcsname =\endtrivlist
+\def\comment{\@bsphack
+ \let\do\@makeother\dospecials\catcode`\^^M\active
+ \let\verbatim@startline\relax
+ \let\verbatim@addtoline\@gobble
+ \let\verbatim@processline\relax
+ \let\verbatim@finish\relax
+ \verbatim@}
+\let\endcomment=\@esphack
+\@ifundefined{vrb@catcodes}%
+ {\def\vrb@catcodes{%
+ \catcode`\!12\catcode`\[12\catcode`\]12}}{}
+\begingroup
+ \vrb@catcodes
+ \lccode`\!=`\\ \lccode`\[=`\{ \lccode`\]=`\}
+ \catcode`\~=\active \lccode`\~=`\^^M
+ \lccode`\C=`\C
+ \lowercase{%
+ \gdef\verbatim@start#1{%
+ \verbatim@startline
+ \if\noexpand#1\noexpand~%
+ \let\next\verbatim@
+ \else \def\next{\verbatim@#1}\fi
+ \next}%
+ \gdef\verbatim@#1~{\verbatim@@#1!end\@nil}%
+ \gdef\verbatim@@#1!end{%
+ \verbatim@addtoline{#1}%
+ \futurelet\next\verbatim@@@}%
+ \gdef\verbatim@@@#1\@nil{%
+ \ifx\next\@nil
+ \verbatim@processline
+ \verbatim@startline
+ \let\next\verbatim@
+ \else
+ \def\@tempa##1!end\@nil{\toks@{##1}}%
+ \@tempa#1\@nil
+ \@temptokena{!end}%
+ \edef\next{\noexpand\verbatim@test\the\toks@\noexpand~}%
+ \fi \next}%
+ \gdef\verbatim@test#1{%
+ \let\next\verbatim@test
+ \if\noexpand#1\noexpand~%
+ \expandafter\verbatim@addtoline
+ \expandafter{\the\@temptokena}%
+ \verbatim@processline
+ \verbatim@startline
+ \let\next\verbatim@
+ \else \if\noexpand#1
+ \@temptokena\expandafter{\the\@temptokena#1}%
+ \else \if\noexpand#1\noexpand[%
+ \let\@tempc\@empty
+ \let\next\verbatim@testend
+ \else
+ \expandafter\verbatim@addtoline
+ \expandafter{\the\@temptokena}%
+ \def\next{\verbatim@#1}%
+ \fi\fi\fi
+ \next}%
+ \gdef\verbatim@testend#1{%
+ \if\noexpand#1\noexpand~%
+ \expandafter\verbatim@addtoline
+ \expandafter{\the\@temptokena[}%
+ \expandafter\verbatim@addtoline
+ \expandafter{\@tempc}%
+ \verbatim@processline
+ \verbatim@startline
+ \let\next\verbatim@
+ \else\if\noexpand#1\noexpand]%
+ \let\next\verbatim@@testend
+ \else\if\noexpand#1\noexpand!%
+ \expandafter\verbatim@addtoline
+ \expandafter{\the\@temptokena[}%
+ \expandafter\verbatim@addtoline
+ \expandafter{\@tempc}%
+ \def\next{\verbatim@!}%
+ \else \expandafter\def\expandafter\@tempc\expandafter
+ {\@tempc#1}\fi\fi\fi
+ \next}%
+ \gdef\verbatim@@testend{%
+ \ifx\@tempc\@currenvir
+ \verbatim@finish
+ \edef\next{\noexpand\end{\@currenvir}%
+ \noexpand\verbatim@rescan{\@currenvir}}%
+ \else
+ \expandafter\verbatim@addtoline
+ \expandafter{\the\@temptokena[}%
+ \expandafter\verbatim@addtoline
+ \expandafter{\@tempc]}%
+ \let\next\verbatim@
+ \fi
+ \next}%
+ \gdef\verbatim@rescan#1#2~{\if\noexpand~\noexpand#2~\else
+ \@warning{Characters dropped after `\string\end{#1}'}\fi}}
+\endgroup
+\def\verbatiminput{\begingroup
+ \@ifstar\sverbatim@input\verbatim@input}
+\def\sverbatim@input#1{\@verbatim
+ \@input{#1}\endtrivlist\endgroup\@doendpe}
+\def\verbatim@input#1{\@verbatim
+ \frenchspacing \@vobeyspaces
+ \@input{#1}\endtrivlist\endgroup\@doendpe}
+\begingroup
+ \lccode`\~=`\^^M
+ \lowercase{%
+ \gdef\verb{\begingroup
+ \verbatim@font
+ \catcode`\^^M\active
+ \def~{\endgroup\@latexerr{\string\verb\space command ended by
+ end of line.}\@ehc}%
+ \let\do\@makeother \dospecials
+ \@ifstar\@sverb{\@vobeyspaces \frenchspacing \@sverb}}}
+\endgroup
+\def\@sverb#1{%
+ \catcode`#1\active
+ \lccode`\~`#1%
+ \lowercase{\let~\endgroup}%
+ \leavevmode\null}
+\endinput
+%%
+%% End of file `verbatim.sty'.