\def\fileversion{1.0}
\def\filedate{1996/05/23}

%% IMMD-II-Folien-Style
%%
%% Extension of the seminar style
%%
%% Mark Minas, May 1996

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{immd2-folien}[\filedate, \fileversion]
\def\test@member#1#2{%
  \edef\@tempg{,#2,#1,}%
  \edef\@temph{####1,#1,}%
  \expandafter\def\expandafter\@temph\@temph##2\@nil{%
    \def\@tempg{##2}%
    \ifx\@tempg\@empty\@testfalse\else\@testtrue\fi}%
  \expandafter\@temph\@tempg\@nil}
\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
\@ifundefined{reset@font}{\def\reset@font{\normalsize\rm}}{}
\def\@seminarerr#1#2{%
  \edef\@tempc{#2}\expandafter\errhelp\expandafter{\@tempc}%
  \typeout{^^JSeminar.sty error.\space\space\space
    Type \space H <return> \space for immediate help.^^J}%
  \errmessage{#1^^J}}
\def\notslide@err#1{\message{Cannot use \string#1 in slide environments}}
\def\new@slidebox{\alloc@4\box\chardef\insc@unt}
\newdimen\slidewidth \slidewidth 8.5in
\newdimen\slideheight \slideheight 6.3in
\paperwidth 8.5in
\paperheight 11in
\def\addto@preamblecmds#1{%
  \begingroup
    \def\do{\noexpand\do\noexpand}%
    \xdef\@preamblecmds{\@preamblecmds\do#1}%
  \endgroup}
\addto@preamblecmds{\addto@preamblecmds\do\@preamblecmds}
\def\sem@temp#1{\@ifundefined{if#1}%
  {\def\@tempa{\csname newif\endcsname}
  \expandafter\@tempa\csname if#1\endcsname}{}}
\sem@temp{article}{}
\sem@temp{slidesonly}{}
\sem@temp{notes}{}
\sem@temp{notesonly}{}
\sem@temp{notesonlystar}{}
\sem@temp{portrait}{}
\portraittrue
\DeclareOption{article}{\articletrue}
\DeclareOption{noxcomment}{\def\xcomment@hook{}}
\DeclareOption{slidesonly}{\slidesonlytrue\notesfalse\notesonlyfalse}
\DeclareOption{notes}{\notestrue\slidesonlyfalse\notesonlyfalse}
\DeclareOption{notesonly}{\notesonlytrue\slidesonlyfalse\notesfalse}
\DeclareOption{notesonly*}{%
  \notesonlytrue\slidesonlyfalse\notesfalse\notesonlystartrue}
%\DeclareOption{portrait}{\portraittrue}
\paperwidth 210mm
\paperheight 297mm
\DeclareOption{a4}{%
  \paperwidth 210mm
  \paperheight 297mm
  \slidewidth 222mm
  \slideheight 152mm\relax}
\DeclareOption{a4paper}{\ds@a4}%
\DeclareOption{semrot}{\AtEndOfClass{\input{semrot.sty}}}
%\DeclareOption{semhelv}{\AtEndOfClass{\input{semhelv.sty}}}
\DeclareOption{semcolor}{\AtEndOfClass{\input{semcolor.sty}}}
\DeclareOption{semlcmss}{\AtEndOfClass{\input{semlcmss.sty}}}
\DeclareOption{slidesec}{\AtEndOfClass{\input{slidesec.sty}}}
\DeclareOption{semlayer}{\AtEndOfClass{\input{semlayer.sty}}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions
\ifnotesonly\else\notesonlystarfalse\fi
\newdimen\footheight  % seminar.sty v1.0 uses it, but its not in LaTeX2e.
% Don't want these changed by article.cls:
\let\sem@paperheight\paperheight
\let\sem@paperwidth\paperwidth
\let\paperheight\footheight
\let\paperwidth\footheight
\LoadClass{article}
\let\paperheight\sem@paperheight
\let\paperwidth\sem@paperwidth

%% begin former sem-page.sty

\def\slideleftmargin{.6in}
\def\sliderightmargin{.6in}
\def\slidetopmargin{.6in}
\def\slidebottommargin{.6in}
\ifarticle
  \ifportrait
    \twocolumn
    \sloppy
    \topmargin 0pt
    \headheight 15pt
    \headsep 25pt
    \footskip 30pt
    \footheight 15pt
    \textheight\paperwidth\relax
    \advance\textheight -1in
    \advance\textheight -\headsep
    \advance\textheight -\headheight
    \advance\textheight -\footskip
    \advance\textheight -\footheight
    \advance\textheight -.5in
    \textwidth\paperheight\relax
    \advance\textwidth by -2in
    \oddsidemargin 0pt
    \evensidemargin 0pt
    \leftmargini 2em
    \leftmarginv .5em
    \leftmarginvi .5em
    \columnsep  40pt
    \marginparwidth 0pt
    \marginparsep 0pt
  \else
    \textwidth 5.5in
    \oddsidemargin\paperwidth\relax
    \advance\oddsidemargin -\textwidth
    \divide\oddsidemargin 2
    \advance\oddsidemargin -1in
    \evensidemargin\oddsidemargin
    \if@twoside
      \advance\oddsidemargin -18pt
      \advance\evensidemargin 18pt
    \fi
    \topmargin -20pt
    \headheight 15pt
    \headsep 25pt
    \footskip 33pt
    \footheight 15pt
    \textheight\paperheight\relax
    \advance\textheight -1in
    \advance\textheight -\topmargin
    \advance\textheight -\headsep
    \advance\textheight -\headheight
    \advance\textheight -\footskip
    \advance\textheight -.5in
  \fi
\else
  \oddsidemargin 0pt
  \evensidemargin 0pt
  \marginparwidth 0pt
  \marginparsep 0pt
  \ifportrait
    \textwidth\paperwidth\relax
    \textheight\paperheight\relax
  \else
    \textwidth\paperheight\relax
    \textheight\paperwidth\relax
  \fi
  \advance\textwidth by -2in
  \topmargin -1in
  \headheight .5in
  \headsep .5in
  \advance\textheight by -2in
  \footskip .75in
  \footheight .25in
\fi
%% END sem-page.sty

\newtoks\before@document
\newtoks\after@document
\let\xcomment@hook\relax
\before@document{\endgroup\the\before@document\begingroup}
\after@document{\the\after@document\xcomment@hook}
\expandafter\@temptokena\expandafter{\document}
\edef\document{\the\before@document\the\@temptokena\the\after@document}
\before@document{}
\after@document{}
\newtoks\before@enddocument
\before@enddocument{\the\before@enddocument}
\expandafter\@temptokena\expandafter{\enddocument}
\edef\enddocument{\the\before@enddocument\the\@temptokena}
\before@enddocument{}
\newif\ifprintlandscape
\ifportrait
  \ifarticle\printlandscapetrue\fi
\else
  \ifarticle\else\printlandscapetrue\fi
\fi
\addto@hook\before@document{\ifprintlandscape\printlandscape\fi}
\addto@preamblecmds{\printlandscape}
\def\printlandscape{\addto@hook\before@enddocument{%
  \typeout{^^J%
  *******************************************************^^J%
  ***** !! PRINT THIS DOCUMENT IN LANDSCAPE MODE !! *****^^J%
  *******************************************************}}}
\def\slide{%
  \NestedSlide@Error{slide}%
  \landscapetrue
  \@ifnextchar[{\begin@slide}{\begin@slide[\slidewidth,\slideheight]}}
\def\endslide{\end@slide}
\@namedef{slide*}{%
  \NestedSlide@Error{slide*}%
  \landscapefalse
  \@ifnextchar[{\begin@slide}{\begin@slide[\slidewidth,\slideheight]}}%
\@namedef{endslide*}{\end@slide}
\newcounter{slide}
\def\theslide{\arabic{slide}}
\newcount\slide@count
\newbox\@slidebox
\newbox\not@slidebox
\newif\ifslide
\newif\iflandscape
\def\@landscapeonly{0}
\def\landscapeonly{\def\@landscapeonly{1}}
\def\portraitonly{\def\@landscapeonly{-1}}
\def\NestedSlide@Error#1{%
  \ifslide
    \endgroup
    \@seminarerr{Nested slide environments. Perhaps missing
      \string\end{\@currenvir}. May be fatal}\@ehd
    \expandafter\end\expandafter{\@currenvir}%
    \ifslide\expandafter\end\expandafter{\@currenvir}\fi
    \begingroup
    \def\@currenvir{#1}%
  \fi}
\def\begin@slide[#1,#2]{%
  \slide@clearpage
  \setlength\slidewidth{#1}%
  \setlength\slideheight{#2}%
  \begingroup
    \ifarticle
      \output{%
        \advance\count@ 1
        \global\setbox\not@slidebox\box\@cclv}%
      \par\@@par\penalty-\@M
    \fi
    \output{\slide@output}%
    \slidetrue
    \ifarticle\global\slide@count=\z@\fi
    \refstepcounter{slide}%
    \ifnotesonlystar\xdef\first@slidemarker{\the\c@slide}\fi
    \def\do##1{\setcounter{##1}\z@}\slide@reset
    \ifarticle\else
      \edef\page@textheight{\number\textheight sp}%
      \edef\page@textwidth{\number\textwidth sp}%
    \fi
    \set@slidesize
    \slidebox@restore
    \the\slide@hook
    \the\before@newslide
    \everyslide}
\def\end@slide{%
    \par\penalty-\@M
    \xdef\@tempg{\@currenvir}%
  \endgroup
  \ifslide
    \@seminarerr{Perhaps missing `\string\end{\@tempg}',
      \iffalse{\fi`\string}' or `\string\endgroup'}\@ehd
    \def\next{\endgroup\ifslide\expandafter\next\fi}%
    \next
  \fi
  \begingroup
    \output{\setbox\@tempboxa\box\@cclv}%
    \@@par\penalty-\@M
  \endgroup
  \global\advance\c@slide-1
  \def\do##1{\setcounter{##1}{\@nameuse{saved@c@##1}}}%
  \slide@reset
  \ifarticle\outputloop@savedslides\fi
  \the\after@slide}
\let\slideclearpagetrue\relax
\let\slideclearpagefalse\relax
\ifarticle
  \def\slide@clearpage{\par\penalty\z@}
  \ifnotes
    \def\slideclearpagetrue{\def\slide@clearpage{\clearpage}}
    \def\slideclearpagefalse{\def\slide@clearpage{\par\penalty\z@}}
  \else
    \ifnotesonly
      \def\slideclearpagetrue{\def\slide@clearpage{\clearpage}}
      \def\slideclearpagefalse{\def\slide@clearpage{\par\penalty\z@}}
    \fi
  \fi
\else
  \def\slide@clearpage{\clearpage}
\fi
\newtoks\slide@hook
\def\everyslide{}
\newtoks\after@slide
\def\slidebox@restore{%
  \def\thepage{\theslide}%
  \def\newpage{\newslide}%
  \def\clearpage{\newslide}%
  \def\thispagestyle##1{\notslide@err{\thispagestyle}}%
  \pagestyle{\slide@pagestyle}%
  \@twocolumnfalse
  \def\twocolumn{\notslide@err{\twocolumn}}%
  \def\onecolumn{\notslide@err{\onecolumn}}%
  \def\marginpar##1{\notslide@err{\marginpar}}%
  \def\thanks{\slidethanks}%
  \def\maketitle{\slidemaketitle}%
  \fix@floats
  \fix@whatsits
  \slide@footnotes
  \def\do##1{\expandafter\xdef\csname
   saved@c@##1\endcsname{\the\@nameuse{c@##1}}}%
  \slide@reset
  \topskip\z@ \maxdepth\z@
  \slide@listparameters
  \slidefonts
  \def\baselinestretch{\slidestretch}%
  \def\arraystretch{\slidearraystretch}%
  \sem@ptsize{\slide@ptsize}}
\def\date#1{\gdef\@date{#1}\gdef\thedate{#1}}
\def\author#1{\gdef\@author{#1}\gdef\theauthor{#1}}
\def\title#1{\gdef\@title{#1}\gdef\thetitle{#1}}
\date{\today}
\let\slidethanks\thanks
\def\thethanks{\@thanks}%
\def\slidemaketitle{%
  \par
  \begin{center}\bf
    {\large \thetitle}\par\vskip 1ex
    \begin{tabular}[t]{c} \theauthor \end{tabular}\par\vskip 1ex
    \thedate
  \end{center}%
  \thethanks\par}
\def\fix@floats{%
  \def\@xfloat##1[##2]{%
    \expandafter\let\csname end##1\endcsname\end@float
    \par\medskip\vbox\bgroup\def\@captype{##1}\parindent\z@
    \ignorespaces}%
  \def\end@float{\par\vskip\z@\egroup\medskip}%
  \def\@dblfloat{\@float}\def\end@dblfloat{\end@float}%
  \def\endfigure{\end@float}\def\endtable{\end@float}}
\let\normal@write\write
\let\normal@read\read
\let\normal@openout\openout
\let\normal@closeout\closeout
\def\fix@whatsits{%
  \def\write{\immediate\normal@write}%
  \def\read{\immediate\normal@read}%
  \def\openout{\immediate\normal@openout}%
  \def\closeout{\immediate\normal@closeout}}
\newinsert\slide@footins
\skip\slide@footins=\bigskipamount
\count\slide@footins=1000
\dimen\slide@footins=4in
\def\theslidefootnote{\alph{footnote}}
\def\slide@footnotes{%
  \def\thefootnote{\theslidefootnote}%
  \let\footins\slide@footins
  \interfootnotelinepenalty\@M}
\def\slidefonts{}
\def\slidestretch{1.18}
\def\slidearraystretch{1.2}
\def\raggedslides{\@ifnextchar[{\@raggedslides}{\@raggedslides[1fil]}}
\def\@raggedslides[#1]{%
  \edef\slide@@rightskip{#1}%
  \ifslide\slide@rightskip\fi}
\def\slide@rightskip{%
  \@rightskip\z@ plus \slide@@rightskip\relax \rightskip\@rightskip}
\def\slide@@rightskip{1fil}
\newcount\slide@listdepth
\def\slide@listparameters{%
  \let\@listdepth\slide@listdepth
  \slide@listdepth\z@
  \def\@listi{\slide@listi}%
  \def\@listii{\slide@listii}%
  \def\@listiii{\slide@listiii}%
  \let\@listiv\relax\let\@listv\relax\let\@listvi\relax}
\def\slide@listi{%
  \leftmargin\leftmargini
  \labelwidth\leftmargini \advance\labelwidth-\labelsep
  \parsep\parskip \divide\parsep2
  \partopsep\slidepartopsep\relax
  \advance\partopsep-\parskip
  \ifdim\partopsep<\z@\partopsep\z@\fi
  \itemsep\slideitemsep\relax
  \ifdim\parsep<\itemsep
    \topsep\itemsep \advance\topsep-\parsep
  \else
    \itemsep\parsep \topsep\z@
  \fi}
\def\slide@listii{%
  \leftmargin\leftmarginii
  \labelwidth\leftmarginii \advance\labelwidth-\labelsep
  \divide\itemsep2 \divide\parsep2
  \divide\topsep2 \divide\partopsep2\relax}%
\def\slide@listiii{%
  \leftmargin\leftmarginiii
  \labelwidth\leftmarginiii \advance\labelwidth-\labelsep
  \itemsep \z@ \parsep\z@ \topsep\z@}%
\def\slideleftmargini{1.8em}
\def\slideleftmarginii{1.4em}
\def\slideleftmarginiii{1em}
\def\slidelabelsep{.5em}
\def\slideitemsep{.8ex minus .2ex}
\def\slidepartopsep{1ex minus .2ex}
\newbox\saved@specials
\def\save@slidespecials{%
  \begingroup
    \output{%
      \global\setbox\saved@specials=\box\@cclv
      \global\wd\saved@specials=\z@
      \global\dp\saved@specials=\z@
      \global\ht\saved@specials=\z@}%
    \hbox{}\penalty-\@M
    \global\let\saved@texttop\@texttop
    \gdef\@texttop{%
      \ifvoid\saved@specials\else\box\saved@specials\nointerlineskip\fi
      \saved@texttop
      \global\let\@texttop\saved@texttop}%
  \endgroup}
\addto@hook\after@document{\save@slidespecials}
\ifarticle\else
  \def\insert@specials{%
    \ifvoid\saved@specials\else
      \setbox\@slidebox\hbox{\box\saved@specials\box\@slidebox}%
    \fi
    \global\let\insert@specials\relax}
\fi
\def\extraslideheight#1{%
  \@tempdima #1\relax
  \edef\X@SlideHeight{\number\@tempdima sp}
  \ifslide\set@slidesize\fi}
\extraslideheight{6pt}
\def\set@slidesize{%
  \iflandscape
    \hsize=\inverseslidesmag\slidewidth
    \vsize=\inverseslidesmag\slideheight
  \else
    \hsize=\inverseslidesmag\slideheight
    \vsize=\inverseslidesmag\slidewidth
  \fi
  \edef\slide@vsize{\number\vsize sp}%
  \textheight\vsize
  \advance\vsize\X@SlideHeight\relax
  \textwidth\hsize\columnwidth\hsize\linewidth\hsize}
\def\newslide{%
  \par\penalty-\@M
  \def\do##1{\setcounter{##1}\z@}\slide@reset
  \the\before@newslide
  \set@slidesize}
\newtoks\before@newslide
\def\slide@reset{\do{footnote}}
\def\slidereset#1{\def\slide@reset{}\addtoslidereset{#1}}
\def\addtoslidereset#1{%
  \edef\@tempa{#1}\expandafter\addto@slidereset\@tempa,\@nil,}
\def\addto@slidereset#1,{%
  \ifx\@nil#1\else
    \@ifundefined{c@#1}%
      {\@seminarerr{Counter `#1' not defined}\@ehd}%
      {\expandafter\def\expandafter\slide@reset\expandafter{%
        \slide@reset\do{#1}}}%
    \expandafter\addto@slidereset
  \fi}
\def\slide@output{%
  \@makeslide
  \@testfalse
  \ifnotesonly\else
    \iflandscape
      \ifnum\@landscapeonly>-1 \os@test\fi
    \else
      \ifnum\@landscapeonly<1 \os@test\fi
    \fi
  \fi
  \if@test
    \reset@slideoutput
    \@@makeslide
    \process@slide
  \fi
  \refstepcounter{slide}}
\def\reset@slideoutput{%
  \let\par\@@par
  \reset@font
  \def\baselinestretch{1}%
  \@nameuse{1\@ptsize @semptsize}%
  \catcode`\ =10
  \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii}
\newif\ifcenterslides
\centerslidestrue
\def\@makeslide{%
  \setbox\@slidebox\vbox{%
    \unvbox\@cclv
    \ifvoid\slide@footins\else
      \vskip\skip\slide@footins
      \footnoterule
      \unvbox\slide@footins
    \fi
    \vskip\z@}}
\def\@@makeslide{%
  \overfullslide@warning
  \setbox\@slidebox\hbox{%
    \vfuzz=\slidefuzz\relax
    \vbox to\slide@vsize{%
    \ifcenterslides\vskip\z@ plus .0001fil \fi
    \unvbox\@slidebox
    \vskip\z@ plus .0001fil}%
    \the\after@slidepage}%
  \wd\@slidebox\textwidth}
\def\overfullslide@warning{%
  \dimen@\ht\@slidebox
  \advance\dimen@-\slide@vsize\relax
  \ifdim\dimen@>\slidefuzz\relax
    \@warning{Slide \theslide\space overfull by \the\dimen@}%
  \fi}
\def\slidefuzz{2pt}
\newtoks\after@slidepage
\newif\ifrotateheaders
\def\sliderotation#1{\@ifundefined{semsr@#1}%
  {\@latexerr{Slide rotation `#1' not defined.}\@eha}%
  {\@nameuse{semsr@#1}}}
\def\semsr@left{%
  \def\rotate@slide{%
    \setbox\@slidebox\hbox{\leftsliderotation{\box\@slidebox}}}}
\def\semsr@right{%
  \def\rotate@slide{%
    \setbox\@slidebox\hbox{\rightsliderotation{\box\@slidebox}}}}
\def\semsr@none{\let\rotate@slide\relax}
\sliderotation{none}
\def\leftsliderotation#1{%
  \@seminarerr{\string\leftsliderotation\space has not been defined}%
  \@ehd}
\let\rightsliderotation\leftsliderotation
\def\@ifrotateslide#1{%
  \ifx\rotate@slide\relax\else
    \iflandscape\ifportrait#1\fi\else\ifportrait\else#1\fi\fi
  \fi}
\def\process@slide{%
  \slideframewidth=\inverseslidesmag\slideframewidth
  \slideframesep=\inverseslidesmag\slideframesep
  \fboxrule\slideframewidth
  \fboxsep\slideframesep
  \ifarticle
    \@ifrotateslide\rotate@slide
  \else
    \ifrotateheaders\else\@ifrotateslide\rotate@slide\fi
  \fi
  \process@@slide}
\def\process@@slide{\finish@slide\output@slide}
\def\finish@slide{%
  \theslideframe
  \add@slidelabel\slidelabel}
\ifarticle
  \def\output@slide{%
    \global\advance\slide@count1
    \@ifundefined{slidebox@\the\slide@count}%
      {{\globaldefs=1\expandafter
        \new@slidebox\csname slidebox@\the\slide@count\endcsname}}{}%
    \expandafter\global\expandafter\setbox\csname
      slidebox@\the\slide@count\endcsname\box\@slidebox}
\else
  \def\output@slide{%
    \begingroup
      \hoffset=-\inverseslidesmag in
      \voffset=-\inverseslidesmag in
      \setslidelength\@tempdima{%
        \ifportrait\paperwidth\else\paperheight\fi}
      \setslidelength\@tempdimb{%
        \ifportrait\paperheight\else\paperwidth\fi}
      \ifrotateheaders
        \@ifrotateslide{%
          \dimen@=\@tempdima
          \@tempdima=\@tempdimb
          \@tempdimb=\dimen@}
      \fi
      % \oddsidemargin, \evensidemargin, \headheight, \footheight
      % used for scratch:
      \setslidelength\oddsidemargin\slideleftmargin
      \setslidelength\evensidemargin\sliderightmargin
      \setslidelength\headheight\slidetopmargin
      \setslidelength\footheight\slidebottommargin
      % Some page styles like to know \textwidth:
      \textwidth=\@tempdima
      \advance\textwidth-\oddsidemargin
      \advance\textwidth-\evensidemargin
      \setbox\@slidebox=\hbox to \@tempdima{%
        \kern\oddsidemargin
        \vbox to\@tempdimb{%
          \ifnum\fancyput@flag>-1
            \hbox{\kern-\oddsidemargin\do@fancyput}%
          \fi
          \let\label\@gobble
          \let\index\@gobble
          \let\glossary\@gobble
          \vbox to\headheight{%
            \vfill
            \hbox{%
              \slideheadfont\relax\strut
              \hbox to\textwidth{\@oddhead}}%
            \kern\z@}%
          \vfill
          \hbox to\textwidth{\hss\box\@slidebox\hss}%
          \vfill
          \vbox to\footheight{%
            \hbox{%
              \slidefootfont\relax\strut
              \hbox to\textwidth{\@oddfoot}}%
            \vfill}}%
        \hss}%
      \ifrotateheaders\@ifrotateslide\rotate@slide\fi
      \insert@specials
      \shipout\box\@slidebox
    \endgroup
    \let\firstmark\botmark}
  \@ifundefined{fancyput@flag}{\def\fancyput@flag{-1}}{}
\fi
\newskip\slidesep
\slidesep\intextsep
\ifarticle
  \def\fps@fslide{htbp}
  \def\ftype@fslide{32}
  \def\float@savedslide{%
    \begingroup\@float{fslide}%
      \centerline{\box\@slidebox}%
    \end@float\endgroup}%
  \@namedef{float*@savedslide}{%
    \begingroup\@dblfloat{fslide}%
      \centerline{\box\@slidebox}%
    \end@dblfloat\endgroup}%
  \def\center@slide{\hbox{%
    \kern-\@totalleftmargin
    \hbox to \columnwidth{\hss\box\@slidebox\hss}}}%
  \def\onepercol@savedslide{%
    \vbox to .996\textheight{\vss\center@slide\vss}\goodbreak}%
  \def\twopercol@savedslide{%
    \dimen@.5\textheight
    \advance\dimen@-\slidesep
    \ifdim\ht\@slidebox>\dimen@
      \onepercol@savedslide
    \else
      \vbox to .498\textheight{\vss\center@slide\vss}\goodbreak
    \fi}
  \def\here@savedslide{%
    \addvspace\slidesep\center@slide\addvspace\slidesep}
  \@namedef{here*@savedslide}{%
    \goodbreak \hrule \@height\z@ \nobreak \vskip\slidesep \nobreak
    \center@slide
    \nobreak \vskip\slidesep \nobreak \hrule\@height\z@ \goodbreak}
\fi
\ifarticle
  \def\slideplacement#1{\@ifundefined{#1@savedslide}%
    {\@seminarerr{Slide placement `#1' undefined}\@ehd}%
    {\expandafter\let\expandafter\output@savedslide
      \csname #1@savedslide\endcsname}}
\else
  \def\slideplacement#1{}
\fi
\ifarticle
  \ifnotes
    \ifportrait
      \slideplacement{float}
    \else
      \slideplacement{float*}
    \fi
  \else
    \ifportrait
      \slideplacement{onepercol}
    \else
      \slideplacement{twopercol}
    \fi
  \fi
\fi
\ifarticle
  \def\outputloop@savedslides{%
    \global\maxdepth\@maxdepth
    \ifvoid\not@slidebox\else
      \dimen@=\dp\not@slidebox
      \unvbox\not@slidebox
      \hrule height\z@
      \prevdepth\dimen@
      \penalty\z@
    \fi
    \edef\slide@@count{\the\slide@count\relax}%
    \slide@count\z@
    \loop
    \ifnum\slide@count<\slide@@count
      \advance\slide@count1
      \expandafter\setbox\expandafter\@slidebox\expandafter\box
        \csname slidebox@\the\slide@count\endcsname
      \output@savedslide
    \repeat
    \ifnotesonlystar\make@slidemarker\fi}
\fi
\def\make@slidemarker{%
  \addvspace\slidesep
  \moveleft\@totalleftmargin
  \vbox{%
    \hsize\columnwidth
    \hrule height 1pt
    \kern 8pt
    \hbox to \columnwidth{%
      \hss
      \LARGE\bf\the@slidemarker
      \hss}%
    \kern 8pt
    \hrule height 1pt}%
  \addvspace\slidesep}
\def\the@slidemarker{%
  Slide%
  \ifnum\c@slide=\first@slidemarker\else
    s {\c@slide\first@slidemarker\relax\theslide} --\fi
  { }\theslide}%
\ifarticle
  \let\c@note\c@page
  \def\p@note{\p@page}
  \def\thenote{\thepage}
\else
  \newcounter{note}
  \def\thenote{\theslide-\arabic{note}}
  \def\thepage{\thenote}
  \addto@hook\after@slide{\setcounter{note}{1}}
  \expandafter\def\expandafter\@outputpage\expandafter{%
    \@outputpage\stepcounter{note}}
\fi
\ifarticle\else
  \let\c@page\c@slide
  \countdef\c@slide=0
  \c@slide=0
  \c@page=1
\fi
\ifarticle
  \let\truepagenumbers\relax
\else
  \def\truepagenumbers{%
    \let\c@slide\c@page
    \countdef\c@page=0
    \c@page=1
    \c@slide=0
    \let\truepagenumbers\relax}
\fi
\addto@preamblecmds{\truepagenumbers}
\newdimen\slideframewidth \slideframewidth 4pt
\newdimen\slideframesep \slideframesep .3in
\def\newslideframe#1{%
  \@ifnextchar[{\@newslideframe{#1}}{\@newslideframe{#1}[]}}
\def\@newslideframe#1[#2]{%
  \@namedef{semsfops@#1}{#2}%
  \@namedef{semsf@#1}##1}
\newslideframe{plain}{\fbox{#1}}
\def\slideframe{\@slideframe{slide}}
\def\@slideframe#1{%
  \@ifstar{\@testtrue\@@slideframe{#1}}{\@testfalse\@@slideframe{#1}}}
\def\@@slideframe#1{%
  \@ifnextchar[{\@@@slideframe{#1}}{\@@@slideframe{#1}[]}}
\def\@@@slideframe#1[#2]#3{%
  \def\@tempa{none}%
  \def\@tempb{#3}%
  \ifx\@tempa\@tempb
    \@namedef{the#1frame}{\relax}%
  \else
    \ifx\@tempb\@empty
      \@namedef{the#1frame}{}%
    \else
      \@ifundefined{semsf@#3}%
        {\@seminarerr{Slide frame `#3' undefined}\@eha}%
        {\if@test
          \@@@@slideframe{#1}[#2]{#3}%
        \else
          \@namedef{the#1frame}{\setbox\@slidebox=\hbox{{%
            \@nameuse{semsfops@#3}#2\@nameuse{semsf@#3}{\box\@slidebox}}}}%
        \fi}%
     \fi
   \fi}
\def\@@@@slideframe#1[#2]#3{%
  \expandafter\let\expandafter\@tempa\csname the#1frame\endcsname
  \edef\next{%
    \noexpand\def\expandafter\noexpand\csname the#1frame\endcsname}%
  \expandafter\next\expandafter{\@tempa
    \setbox\@slidebox=\hbox{{%
      \@nameuse{semsfops@#3}%
      #2%
      \@nameuse{semsf@#3}{\box\@slidebox}}}}}%
\slideframe{plain}
\def\slidestyle#1{\@ifundefined{ss@#1}%
  {\@seminarerr{Slide style `#1' undefined}\@eha}%
  {\@nameuse{ss@#1}}}
\def\ss@empty{\let\add@slidelabel\@gobble}
\def\ss@left{\def\add@slidelabel##1{%
  \setbox\@slidebox=\hbox{%
    \vbox to \ht\@slidebox{\vss
    \hbox to 0pt{\hss##1\hskip 15pt}%
    \vss}\box\@slidebox}}}
\def\ss@bottom{\def\add@slidelabel##1{%
  \setbox\@slidebox=\vbox{\copy\@slidebox\vskip 9pt
    \hbox to\wd\@slidebox{\hss##1\hss}}}}%
\ifarticle
  \ifportrait\slidestyle{bottom}\else\slidestyle{left}\fi
\else
  \slidestyle{empty}
\fi
\def\slidelabel{\bf Slide \theslide}
\def\newpagestyle#1#2#3{%
  \expandafter\newcommand\csname ps@#1\endcsname{%
    \def\@oddhead{#2}\let\@evenhead\@oddhead
    \def\@oddfoot{#3}\let\@evenfoot\@oddfoot}}
\def\renewpagestyle#1#2#3{%
  \expandafter\renewcommand\csname ps@#1\endcsname{%
    \def\@oddhead{#2}\let\@evenhead\@oddhead
    \def\@oddfoot{#3}\let\@evenfoot\@oddfoot}}
\def\@ifgoodps#1{%
  \@ifundefined{ps@#1}{\@seminarerr{Page style `#1' undefined}\@eha}}
\def\slidepagestyle#1{%
  \@ifgoodps{#1}%
    {\ifslide\pagestyle{#1}\else\edef\slide@pagestyle{#1}\fi}}
\def\ps@{}
\slidepagestyle{}
\ifarticle
  \def\ps@align{}
\else
  \def\ps@align{%
    \def\@oddhead{\thepage\hfil+}\let\@evenhead\@oddhead
    \def\@oddfoot{+\hfil+}\let\@evenfoot\@oddfoot}
\fi
\def\slideheadfont{\scriptsize}
\def\slidefootfont{\scriptsize}
\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or
  2074\or 2488\or 2986\or 3583\or 4300\or 5160\fi\relax}
\def\magstepminus#1{%
  \ifcase#1 \@m\or 833\or 694\or 579\or 482\or 401\fi\relax}
\def\@magstep#1{%
  \ifnum#1<\z@\magstepminus{-#1}\else\magstep#1\fi}
{\catcode`\p=12\catcode`\t=12
  \gdef\@@inv@@mag#1pt#2{\def#2{#1}}}
\def\invert@mag#1{\@tempdima=1000pt
  \divide\@tempdima by #1\relax
  \expandafter\@@inv@@mag\the\@tempdima#1}
\def\@slidesmag#1{%
  \@tempcnta=#1\relax%
  \ifnum\@tempcnta>0
    \edef\inverseslidesmag{\the\@tempcnta}%
    \invert@mag\inverseslidesmag
    \ifarticle\else\mag\@tempcnta\fi
  \else
    \@seminarerr{\string\@slidesmag\space argument must be an
      integer equal to 1000 times the magnification}\@eha
  \fi}
\def\@articlemag#1{%
  \@tempcnta=#1\relax%
  \ifnum\@tempcnta>0
    \edef\inverseartmag{\the\@tempcnta}%
    \invert@mag\inverseartmag
    \ifarticle\mag\@tempcnta\fi
  \else
    \@seminarerr{\string\articlemag\space argument must be an
      integer equal to 1000 times the magnification}\@eha
  \fi}
\addto@preamblecmds{\@slidesmag\do\@articlemag}
\newdimen\semin
\newdimen\semcm
\def\@semmagerr#1{%
  \@seminarerr{\string#1 argument must be an integer
    between -5 and 9}\@eha}
\def\slidesmag#1{%
  \@tempcnta=#1\relax
  \ifnum\@tempcnta>-6
    \ifnum\@tempcnta<10
      \edef\the@slidesmag{\the\@tempcnta}%
      \@slidesmag{\@magstep\@tempcnta}%
    \else
      \@semmagerr\slidesmag
    \fi
  \else
    \@semmagerr\slidesmag
  \fi
  \setslidelength\semin\seminlength
  \setslidelength\semcm\semcmlength}
\def\seminlength{1in}
\def\semcmlength{1cm}
\def\articlemag#1{%
  \@tempcnta=#1\relax
  \ifnum\@tempcnta>-6
    \ifnum\@tempcnta<10
      \edef\the@articlemag{\the\@tempcnta}%
      \@articlemag{\@magstep\@tempcnta}%
    \else
      \@semmagerr\articlemag
    \fi
  \else
    \@semmagerr\articlemag
  \fi}
\addto@preamblecmds{\slidesmag\do\articlemag}
\def\setslidelength#1#2{%
  #1=#2\relax
  #1=\inverseslidesmag#1}%
\def\addtoslidelength#1#2{%
  \dimen@=#2\relax
  \advance#1 by \inverseslidesmag\dimen@}
\def\setartlength#1#2{%
  #1=#2\relax
  #1=\inverseartmag#1}
\def\addtoartlength#1#2{%
  \dimen@=#2\relax
  \advance#1 by \inverseartmag\dimen@}
\def\slide@epsfsize#1#2{%
  \ifdim\epsfxsize=0pt
    \ifdim\epsfysize=0pt
      \inverseslidesmag#1%
    \else
      0pt
    \fi
  \else
    \inverseslidesmag\epsfxsize
  \fi
  \epsfysize
  \ifdim\epsfysize=0pt
    \ifdim\epsfxsize=0pt
      \inverseslidesmag#2%
    \else
      0pt
    \fi
  \else
    \inverseslidesmag\epsfysize
  \fi}
\def\epsfslidesize{\let\epsfsize\slide@epsfsize}
\slidesmag{4}
\articlemag{0}
\def\do@pageparameters{%
  \do\oddsidemargin
  \do\evensidemargin
  \do\marginparwidth
  \do\marginparsep
  \do\topmargin
  \do\headheight
  \do\headsep
  \do\textheight
  \do\textwidth
  \do\topskip
  \do\footskip
  \do\footheight}
\ifarticle
  \def\scale@pageparameters{%
    \begingroup
      \def\do##1{\global##1=\inverseartmag##1\relax}%
      \do@pageparameters
    \endgroup}
\else
  \def\scale@pageparameters{%
    \begingroup
      \def\do##1{\global##1=\inverseslidesmag##1\relax}%
      \do@pageparameters
    \endgroup}
\fi
\addto@hook\before@document{\scale@pageparameters}
\addto@preamblecmds{\scale@pageparameters\do\do@pageparameters}
\def\allversions{}
\let\endallversions\relax
\@namedef{allversions*}{\@bsphack\globaldefs=1}
\@namedef{endallversions*}{\@esphack}
\def\slide@list{slide,slide*,allversions,allversions*}
\def\addtoslidelist#1{\xdef\slide@list{\slide@list,#1}}
\addto@preamblecmds{\addtoslidelist}
\ifslidesonly
  \@ifundefined{xcomment@@@}{\@@input xcomment.sty }{}
  \def\xcomment@hook{\@xcomment{@@@}{\slide@list}}
  \newxcomment[]{note}
\else
  \def\note{\@bsphack}%
  \def\endnote{\@esphack}%
\fi
\def\noxcomment{\def\xcomment@hook{}}
\def\os@list{}
\newif\if@os
\def\onlyslides#1{\def\os@list{#1}\@ostrue
  \def\os@warning{\@warning{\string\onlyslides\space argument
    contains undefined references}}}
\def\notslides#1{\def\os@list{#1}\@osfalse
  \def\os@warning{\@warning{\string\notslides\space argument
    contains undefined references}}}
\addto@preamblecmds{\onlyslides\do\notslides}
\addto@hook\after@document{%
  \ifx\os@list\@empty\else\os@expandlist\fi}
\def\os@expandlist{%
  \let\os@@warning\relax
  \begingroup
    \def\ref##1{\@ifundefined{r@##1}{?}%
      {\noexpand\@car\@nameuse{r@##1}\noexpand\@nil}}%
    \edef\@tempd{\os@list}%
    \xdef\os@list{}%
    \@for\@tempc:=\@tempd
      \do{\expandafter\os@expandrange\@tempc-:-:\@nil}%
    \os@@warning
  \endgroup
  \let\os@expandrange\relax
  \let\os@checknum\relax
  \let\os@expandlist\relax}
\def\os@expandrange#1-#2-#3\@nil{%
  \def\@tempa{?}\def\@tempb{#1}%
  \ifx\@tempa\@tempb
    \let\os@@warning\os@warning
  \else
    \@tempcnta=#1\relax
    \def\@tempb{#2}%
    \ifx\@tempa\@tempb
      \let\os@@warning\os@warning
    \else
      \def\@tempa{:}%
      \ifx\@tempa\@tempb
        \@tempcntb=\@tempcnta
      \else
        \@tempcntb=#2\relax
      \fi
      \advance\@tempcnta by -1
      \advance\@tempcntb by 1
      \ifx\os@list\@empty
        \xdef\os@list{\the\@tempcnta+\the\@tempcntb}%
      \else
        \xdef\os@list{\os@list,\the\@tempcnta+\the\@tempcntb}%
      \fi
    \fi
  \fi}
\def\os@test{%
  \@testtrue
  \iflandscape
    \ifnum\@landscapeonly=-1 \@testfalse\fi
  \else
    \ifnum\@landscapeonly=1 \@testfalse\fi
  \fi
  \if@test
    \ifx\os@list\@empty\else
      \if@os\@testfalse\fi
      \@for\@tempa:=\os@list\do{\expandafter\os@testrange\@tempa\@nil}%
    \fi
  \fi}
\def\os@testrange#1+#2\@nil{%
  \ifnum\c@slide>#1
    \ifnum\c@slide<#2
      \if@os\@testtrue\else\@testfalse\fi
    \fi
  \fi}
\def\onlynotestoo{%
  \ifnotes\@testtrue\else\ifnotesonly\@testtrue\else\@testfalse\fi\fi
  \if@test
    \@ifundefined{xcomment@@@}{%
      \edef\sem@temp{\the\catcode`\@}%
      \catcode`\@=11
      \@@input xcomment.sty
      \catcode`\@=\sem@temp\relax}{}%
    \def\xcomment@hook{\@xcomment{@@@}{\slide@list}}%
    \addto@hook\after@slide\onlynotes@too
  \fi}
\def\onlynotes@too{%
  \os@test
  \if@test\gdef\do@end{}\else\gdef\do@end{\xc@begin}\fi}
\addto@preamblecmds\onlynotestoo
\def\ptsize#1{%
  \@ifundefined{#1@semptsize}%
    {\@seminarerr{\string\ptsize\space `#1' not valid.}\@eha}%
    {\ifslide
      \sem@ptsize{#1}\large\normalsize
    \else
      \edef\slide@ptsize{#1}%
    \fi}}
\edef\slide@ptsize{1\@ptsize}%
\def\slidefontsizes{\ptsize} %For backwards compatibility??
\def\slide@setsize#1#2#3#4{%
  \@setsize{#1}{#2}{#3}{#4}%
  \set@slideskip{#2}}
\def\slide@@setsize#1#2#3#4{%
  \slide@setsize{#1}{#2}{#3}{#4}\slidedisplayskips}
\def\set@slideskip#1{%
  \normallineskiplimit=#1
  \advance\normallineskiplimit-\normalbaselineskip
  \multiply\normallineskiplimit-1
  \normallineskiplimit\slideskip\normallineskiplimit
  \ifdim\normallineskiplimit<1pt\normallineskiplimit=1pt\fi
  \normallineskip=\normallineskiplimit
    minus \slideshrink\normallineskiplimit
  \dimen@=\normalbaselineskip
  \normalbaselineskip=\dimen@ minus \slideshrink\normallineskiplimit
  \normalbaselines}
\def\slideskip{.75}
\def\slideshrink{.25}
\def\slidedisplayskips{%
  \abovedisplayskip 1.75ex minus .35ex
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip .2ex minus .2ex
  \belowdisplayshortskip 1ex minus .2ex}
\def\sem@ptsize#1{%
  \@nameuse{#1@semptsize}%
  \large\normalsize
  \leftmargini\slideleftmargini\relax
  \leftmarginii\slideleftmarginii\relax
  \leftmarginiii\slideleftmarginiii\relax
  \labelsep\slidelabelsep\relax
  \parskip\slideparskip\relax
  \parindent\slideparindent\relax
  \slide@rightskip
  \slide@listi
  \skip\footins\slidefootins\relax
  \footnotesep\slidefootnotesep\relax}
\def\slidefootins{2ex minus .8ex}
\def\slidefootnotesep{1.2ex}
\def\slideparindent{\z@}
\def\slideparskip{1ex minus .2ex}
\@namedef{8@semptsize}{%
  \def\@normalsize{\slide@@setsize\normalsize{9.5pt}\viiipt\@viiipt}%
  \def\small{\slide@@setsize\small{8pt}\viipt\@viipt}%
  \def\footnotesize{\slide@@setsize\footnotesize{8pt}\vipt\@vipt}%
  \def\scriptsize{\slide@setsize\scriptsize{7pt}\vipt\@vipt}%
  \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
  \def\large{\slide@setsize\large{12pt}\xpt\@xpt}%
  \def\Large{\slide@setsize\Large{14pt}\xiipt\@xiipt}%
  \def\LARGE{\slide@setsize\LARGE{17pt}\xivpt\@xivpt}%
  \def\huge{\slide@setsize\huge{20pt}\xviipt\@xviipt}%
  \def\Huge{\slide@setsize\Huge{25pt}\xxpt\@xxpt}}
\@namedef{9@semptsize}{%
  \def\@normalsize{\slide@@setsize\normalsize{11pt}\ixpt\@ixpt}%
  \def\small{\slide@@setsize\small{9.5pt}\viiipt\@viiipt}%
  \def\footnotesize{\slide@@setsize\footnotesize{8pt}\viipt\@viipt}%
  \def\scriptsize{\slide@setsize\scriptsize{7pt}\vipt\@vipt}%
  \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
  \def\large{\slide@setsize\large{12pt}\xpt\@xpt}%
  \def\Large{\slide@setsize\Large{14pt}\xiipt\@xiipt}%
  \def\LARGE{\slide@setsize\LARGE{17pt}\xivpt\@xivpt}%
  \def\huge{\slide@setsize\huge{20pt}\xviipt\@xviipt}%
  \def\Huge{\slide@setsize\Huge{25pt}\xxpt\@xxpt}}
\@namedef{10@semptsize}{%
  \def\@normalsize{\slide@@setsize\normalsize{12pt}\xpt\@xpt}%
  \def\small{\slide@@setsize\small{11pt}\ixpt\@ixpt}%
  \def\footnotesize{\slide@@setsize\footnotesize{9.5pt}\viiipt\@viiipt}%
  \def\scriptsize{\slide@setsize\scriptsize{8pt}\viipt\@viipt}%
  \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
  \def\large{\slide@setsize\large{14pt}\xiipt\@xiipt}%
  \def\Large{\slide@setsize\Large{18pt}\xivpt\@xivpt}%
  \def\LARGE{\slide@setsize\LARGE{22pt}\xviipt\@xviipt}%
  \def\huge{\slide@setsize\huge{25pt}\xxpt\@xxpt}%
  \def\Huge{\slide@setsize\Huge{30pt}\xxvpt\@xxvpt}}
\@namedef{11@semptsize}{%
  \def\@normalsize{\slide@@setsize\normalsize{13.6pt}\xipt\@xipt}%
  \def\small{\slide@@setsize\small{12pt}\xpt\@xpt}%
  \def\footnotesize{\slide@@setsize\footnotesize{11pt}\ixpt\@ixpt}%
  \def\scriptsize{\slide@setsize\scriptsize{9.5pt}\viiipt\@viiipt}%
  \def\tiny{\slide@setsize\tiny{7pt}\vipt\@vipt}%
  \def\large{\slide@setsize\large{14pt}\xiipt\@xiipt}%
  \def\Large{\slide@setsize\Large{18pt}\xivpt\@xivpt}%
  \def\LARGE{\slide@setsize\LARGE{22pt}\xviipt\@xviipt}%
  \def\huge{\slide@setsize\huge{25pt}\xxpt\@xxpt}%
  \def\Huge{\slide@setsize\Huge{30pt}\xxvpt\@xxvpt}}
\@namedef{12@semptsize}{%
  \def\@normalsize{\slide@@setsize\normalsize{14.5pt}\xiipt\@xiipt}%
  \def\small{\slide@@setsize\small{13.6pt}\xipt\@xipt}%
  \def\footnotesize{\slide@@setsize\footnotesize{12pt}\xpt\@xpt}%
  \def\scriptsize{\slide@setsize\scriptsize{9.5pt}\viiipt\@viiipt}%
  \def\tiny{\slide@setsize\tiny{7pt}\vipt\@vipt}%
  \def\large{\slide@setsize\large{18pt}\xivpt\@xivpt}%
  \def\Large{\slide@setsize\Large{22pt}\xviipt\@xviipt}%
  \def\LARGE{\slide@setsize\LARGE{25pt}\xxpt\@xxpt}%
  \def\huge{\slide@setsize\huge{30pt}\xxvpt\@xxvpt}%
  \let\Huge\huge}
\@namedef{14@semptsize}{%
  \def\@normalsize{\slide@@setsize\normalsize{18pt}\xivpt\@xivpt}%
  \def\small{\slide@@setsize\small{14.5pt}\xiipt\@xiipt}%
  \def\footnotesize{\slide@@setsize\footnotesize{13.6pt}\xipt\@xipt}%
  \def\scriptsize{\slide@setsize\scriptsize{12pt}\xpt\@xpt}%
  \def\tiny{\slide@setsize\tiny{9.5pt}\viiipt\@viiipt}%
  \def\large{\slide@setsize\large{22pt}\xviipt\@xviipt}%
  \def\Large{\slide@setsize\Large{25pt}\xxpt\@xxpt}%
  \def\LARGE{\slide@setsize\LARGE{30pt}\xxvpt\@xxvpt}%
  \let\huge\LARGE
  \let\Huge\LARGE}
\@namedef{17@semptsize}{%
  \def\@normalsize{\slide@@setsize\normalsize{22pt}\xviipt\@xviipt}%
  \def\small{\slide@@setsize\small{18pt}\xivpt\@xivpt}%
  \def\footnotesize{\slide@@setsize\footnotesize{14.5pt}\xiipt\@xiipt}%
  \def\scriptsize{\slide@setsize\scriptsize{13.6pt}\xipt\@xipt}%
  \def\tiny{\slide@setsize\tiny{12pt}\xpt\@xpt}%
  \def\large{\slide@setsize\large{25pt}\xxpt\@xxpt}%
  \def\Large{\slide@setsize\Large{30pt}\xxvpt\@xxvpt}%
  \let\LARGE\Large
  \let\huge\Large
  \let\Huge\Large}
\def\twoup{\@ifnextchar[{\@twoup}{\@twoup[0]}}
\ifarticle
  \ifportrait
    \def\@twoup[#1]{%
      \@tempcnta=\the@articlemag\relax
      \@tempcntb=\@tempcnta
      \advance\@tempcntb by #1\relax
      \advance\@tempcntb by -2\relax
      \ifnum\@tempcntb>-6\relax
        \@@input 2up.tex
        \source{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
        \target{\@magstep\@tempcntb}{\paperwidth}{\paperheight}%
        \targetlayout{topbottom}%
        \printlandscapefalse
      \else
        \@seminarerr{Article magnification is too low for
          \string\twoup\space to handle}\@eha
      \fi
      \def\articlemag##1{\@semtwoupmagerr\articlemag}}
  \else
    \def\@twoup[#1]{%
      \@tempcnta=\the@articlemag\relax
      \@tempcntb=\@tempcnta
      \advance\@tempcntb by #1\relax
      \advance\@tempcntb by -2\relax
      \ifnum\@tempcntb>-6\relax
        \@@input 2up.tex
        \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}%
        \target{\@magstep\@tempcntb}{\paperheight}{\paperwidth}%
        \if@twoside
          \targetlayout{twosided}%
        \fi
        \printlandscapetrue
      \else
        \@seminarerr{Article magnification is too low for
          \string\twoup\space to handle}\@eha
      \fi
      \def\articlemag##1{\@semtwoupmagerr\articlemag}}
  \fi
\else
  \ifportrait
    \def\@twoup[#1]{%
      \@tempcnta=\the@slidesmag\relax
      \@tempcntb=\@tempcnta
      \advance\@tempcntb by #1\relax
      \advance\@tempcntb by -3\relax
      \ifnum\@tempcntb>-6\relax
        \@@input 2up.tex
        \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}%
        \advance\@tempcnta by -3
        \target{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
        \printlandscapetrue
      \else
        \@seminarerr{Slides magnification is too low for
          \string\twoup\space to handle}\@eha
      \fi
      \def\slidesmag##1{\@semtwoupmagerr\slidesmag}}
  \else
    \def\@twoup[#1]{%
      \@tempcnta=\the@slidesmag\relax
      \@tempcntb=\@tempcnta
      \advance\@tempcntb by #1\relax
      \advance\@tempcntb by -3\relax
      \ifnum\@tempcntb>-6\relax
        \@@input 2up.tex
        \source{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
        \target{\@magstep\@tempcntb}{\paperwidth}{\paperheight}%
        \targetlayout{topbottom}%
        \printlandscapefalse
      \else
        \@seminarerr{Slides magnification is too low for
          \string\twoup\space to handle}\@eha
      \fi
      \def\slidesmag##1{\@semtwoupmargerr\slidesmag}}%
  \fi
\fi
\def\@semtwoupmagerr#1{%
  \@seminarerr{\string#1 must come before \string\twoup}\@eha}
\addto@preamblecmds{\twoup\do\@twoup}
\openin1 seminar.con
\ifeof1\else\closein1 \relax\@@input seminar.con\fi



%% BEGIN semhelv.sty
\def\fileversion{1.0 (2e)}
\def\filedate{94/09/11}
%%
%% LaTeX style option `semhelv.sty' for the `seminar' document style.
%% For use with the LaTeX v2.09 and the New Font Selection Scheme (1 or 2),
%% or (some day) with LaTeX2e.
%%
%% COPYRIGHT 1994, by Timothy Van Zandt, tvz@Princeton.EDU
%% See seminar.sty or seminar.doc for copying restrictions.
%%
%% ************************************************************************
%% ****                        DESCRIPTION                             ****
%% ************************************************************************
%%
% This file contains the external font information needed to load

% the PostScript Helvetica fonts for use by seminar.sty.
%
% You must have the New Font Selection Scheme (NFSS or NFSS2) or LaTeX2e.
% The file npsfont.sty, which is distributed with seminar.sty, is also
% required with NFSS (but not with NFSS2 or LaTeX2e).
%
% IMPORTANT:
%   As distributed, the following font file names are assumed for the
%   `standard' TeX encoding:
%
%     Helvetica              phvr
%     Helvetica-Oblique      phvro
%     Helvetica-Bold         phvb
%     Helvetica-BoldOblique  phvbo
%     Courier                pcr
%     Courier-Bold           pcrb
%     Courier-Oblique        pcro
%     Courier-BoldOblique    pcrbo
%
%   With the NFSS2 and LaTeX2e, you can also use the CORK encoding. The
%   assumed file names are as above, but with `q' appended to each name.
%
%   This means, e.g., that phvr.tfm or phvr.vf must be the name of the
%   TeX .tfm or .vf (virtual font) file for the PostScript Helvetica font.
%   See the documentation of your dvi-to-ps driver for information on using
%   PostScript fonts.
%
% Fonts are scaled so that the x-heights match those of the cmr fonts;
% this makes in-line math look acceptable.
%
% Note: The Courier font is not that great.
%
% Preliminaries:
\csname semhelv@loaded\endcsname
\let\semhelv@loaded\endinput
\@ifundefined{selectfont}
  {\@seminarerr{`semhelv' style option can only be used
    with the New Font Selection Scheme}\@eha\endinput}{}
%
% Font definitions.

\expandafter\ifx\csname DeclareSizeFunction\endcsname\relax

% FOR NFSS:

\@ifundefined{newpsfamily}{\input{npsfont.sty}}{}%

% See npsfont.sty for the definition of \newpsfamily.

\newpsfamily[.82]{helvetica}{
  {m}{n}{phvr},          %Helvetica
  {m}{it}{phvro},        %Helvetica-Oblique
  {m}{sl}{phvro},        %Helvetica-Oblique
  {bx}{n}{phvb},         %Helvetica-Bold
  {bx}{it}{phvbo},       %Helvetica-BoldOblique
  {bx}{sl}{phvbo}}       %Helvetica-BoldOblique
\newpsfamily[.82]{courier}{
  {m}{n}{pcrr},          %Courier
  {bx}{n}{pcrb},         %Courier-Bold
  {m}{it}{pcrro},        %Courier-Oblique
  {bx}{it}{pcrbo}}       %Courier-BoldOblique

% Use fonts or use \slidefonts:
\ifarticle
  \renewcommand{\slidefonts}{%
    \renewcommand{\default@family}{helvetica}%
    \renewcommand{\rmdefault}{helvetica}%
    \renewcommand{\ttdefault}{courier}%
    \renewcommand{\sfdefault}{helvetica}%
    \family\default@family\selectfont}
\else
  \renewcommand{\default@family}{helvetica}%
  \renewcommand{\rmdefault}{helvetica}%
  \renewcommand{\ttdefault}{courier}%
  \renewcommand{\sfdefault}{helvetica}%
  \family\default@family\selectfont
\fi

\else

% FOR NFSS2 OR LATEX2E:

\def\helv@scale{.82}

\DeclareFontFamily{T1}{helvetica}{}%
\DeclareFontShape{T1}{helvetica}{m}{n}{<->s*[\helv@scale]phvrq}{}%
\DeclareFontShape{T1}{helvetica}{m}{it}{<->s*[\helv@scale]phvroq}{}%
\DeclareFontShape{T1}{helvetica}{m}{sc}{<->s*[\helv@scale]phvrcq}{}%
\DeclareFontShape{T1}{helvetica}{b}{n}{<->s*[\helv@scale]phvbq}{}%
\DeclareFontShape{T1}{helvetica}{b}{it}{<->s*[\helv@scale]phvboq}{}%
\DeclareFontShape{T1}{helvetica}{m}{sl}{<->ssub * helvetica/m/it}{}%
\DeclareFontShape{T1}{helvetica}{b}{sc}{<->sub * helvetica/m/sc}{}%
\DeclareFontShape{T1}{helvetica}{b}{sl}{<->ssub * helvetica/b/it}{}%
\DeclareFontShape{T1}{helvetica}{bx}{n}{<->ssub * helvetica/b/n}{}%
\DeclareFontShape{T1}{helvetica}{bx}{it}{<->ssub * helvetica/b/it}{}%
\DeclareFontShape{T1}{helvetica}{bx}{sc}{<->sub * helvetica/m/sc}{}%
\DeclareFontShape{T1}{helvetica}{bx}{sl}{<->ssub * helvetica/b/it}{}%

\DeclareFontFamily{OT1}{helvetica}{}%
\DeclareFontShape{OT1}{helvetica}{m}{n}{<->s*[\helv@scale]phvr}{}%
\DeclareFontShape{OT1}{helvetica}{m}{it}{<->s*[\helv@scale]phvro}{}%
\DeclareFontShape{OT1}{helvetica}{m}{sc}{<->s*[\helv@scale]phvrc}{}%
\DeclareFontShape{OT1}{helvetica}{b}{n}{<->s*[\helv@scale]phvb}{}%
\DeclareFontShape{OT1}{helvetica}{b}{it}{<->s*[\helv@scale]phvbo}{}%
\DeclareFontShape{OT1}{helvetica}{m}{sl}{<->ssub * helvetica/m/it}{}%
\DeclareFontShape{OT1}{helvetica}{b}{sc}{<->sub * helvetica/m/sc}{}%
\DeclareFontShape{OT1}{helvetica}{b}{sl}{<->ssub * helvetica/b/it}{}%
\DeclareFontShape{OT1}{helvetica}{bx}{n}{<->ssub * helvetica/b/n}{}%
\DeclareFontShape{OT1}{helvetica}{bx}{it}{<->ssub * helvetica/b/it}{}%
\DeclareFontShape{OT1}{helvetica}{bx}{sc}{<->sub * helvetica/m/sc}{}%
\DeclareFontShape{OT1}{helvetica}{bx}{sl}{<->ssub * helvetica/b/it}{}%

\def\courier@scale{.82}

\DeclareFontFamily{T1}{courier}{\hyphenchar \font\m@ne}%
\DeclareFontShape{T1}{courier}{m}{n}{<->s*[\courier@scale]pcrrq}{}%
\DeclareFontShape{T1}{courier}{m}{it}{<->s*[\courier@scale]pcrroq}{}%
\DeclareFontShape{T1}{courier}{m}{sc}{<->s*[\courier@scale]pcrrcq}{}%
\DeclareFontShape{T1}{courier}{b}{n}{<->s*[\courier@scale]pcrbq}{}%
\DeclareFontShape{T1}{courier}{b}{it}{<->s*[\courier@scale]pcrboq}{}%
\DeclareFontShape{T1}{courier}{m}{sl}{<->ssub * courier/m/it}{}%
\DeclareFontShape{T1}{courier}{b}{sc}{<->sub * courier/m/sc}{}%
\DeclareFontShape{T1}{courier}{b}{sl}{<->ssub * courier/b/it}{}%
\DeclareFontShape{T1}{courier}{bx}{n}{<->ssub * courier/b/n}{}%
\DeclareFontShape{T1}{courier}{bx}{it}{<->ssub * courier/b/it}{}%
\DeclareFontShape{T1}{courier}{bx}{sc}{<->sub * courier/m/sc}{}%
\DeclareFontShape{T1}{courier}{bx}{sl}{<->ssub * courier/b/it}{}%

\DeclareFontFamily{OT1}{courier}{\hyphenchar \font\m@ne}%
\DeclareFontShape{OT1}{courier}{m}{n}{<->s*[\courier@scale]pcrr}{}%
\DeclareFontShape{OT1}{courier}{m}{it}{<->s*[\courier@scale]pcrro}{}%
\DeclareFontShape{OT1}{courier}{m}{sc}{<->s*[\courier@scale]pcrrc}{}%
\DeclareFontShape{OT1}{courier}{b}{n}{<->s*[\courier@scale]pcrb}{}%
\DeclareFontShape{OT1}{courier}{b}{it}{<->s*[\courier@scale]pcrbo}{}%
\DeclareFontShape{OT1}{courier}{m}{sl}{<->ssub * courier/m/it}{}%
\DeclareFontShape{OT1}{courier}{b}{sc}{<->sub * courier/m/sc}{}%
\DeclareFontShape{OT1}{courier}{b}{sl}{<->ssub * courier/b/it}{}%
\DeclareFontShape{OT1}{courier}{bx}{n}{<->ssub * courier/b/n}{}%
\DeclareFontShape{OT1}{courier}{bx}{it}{<->ssub * courier/b/it}{}%
\DeclareFontShape{OT1}{courier}{bx}{sc}{<->sub * courier/m/sc}{}%
\DeclareFontShape{OT1}{courier}{bx}{sl}{<->ssub * courier/b/it}{}%

% Use fonts or use \slidefonts:
\ifarticle
  \renewcommand{\slidefonts}{%
    \renewcommand{\default@family}{helvetica}%
    \renewcommand{\rmdefault}{helvetica}%
    \renewcommand{\ttdefault}{courier}%
    \renewcommand{\sfdefault}{helvetica}%
    \fontfamily\default@family\selectfont}
\else
  \renewcommand{\default@family}{helvetica}%
  \renewcommand{\rmdefault}{helvetica}%
  \renewcommand{\ttdefault}{courier}%
  \renewcommand{\sfdefault}{helvetica}%
  \fontfamily\default@family\selectfont
\fi

\fi

%% END semhelv.sty


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%   Style-File: vorl.sty
%%
%%   Mark Minas <minas@informatik.uni-erlangen.de>
%%
%%    2.5.1995
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareSymbolFont{operators}   {OT1}{ptmcm}{m}{n}
\DeclareSymbolFont{letters}     {OML}{ptmcm}{m}{it}
\DeclareSymbolFont{symbols}     {OMS}{pzccm}{m}{n}
\DeclareSymbolFont{largesymbols}{OMX}{psycm}{m}{n}
\DeclareSymbolFont{bold}        {OT1}{ptm}{bx}{n}
\DeclareSymbolFont{italic}      {OT1}{ptm}{m}{it}

% If we're in compatibility mode, defined \mathbf and \mathit.

\@ifundefined{mathbf}{}{\DeclareMathAlphabet{\mathbf}{OT1}{ptm}{bx}{n}}
\@ifundefined{mathit}{}{\DeclareMathAlphabet{\mathit}{OT1}{ptm}{m}{it}}

% An \omicron command, to fill the gap.

\DeclareMathSymbol{\omicron}{0}{operators}{`\o}

% Reduce the space around math operators

\thinmuskip=2mu
\medmuskip=2.5mu plus 1mu minus 1mu
\thickmuskip=4mu plus 1.5mu minus 1mu

% No bold math.

\def\boldmath{%
   \@warning{there is no bold Symbol font}%
   \global\let\boldmath=\relax
}

% Larger scripts.

\DeclareMathSizes{5}{5}{5}{5}
\DeclareMathSizes{6}{6}{5}{5}
\DeclareMathSizes{7}{7}{5}{5}
\DeclareMathSizes{8}{8}{6}{5}
\DeclareMathSizes{9}{9}{7}{5}
\DeclareMathSizes{10}{10}{7.4}{6}
\DeclareMathSizes{10.95}{10.95}{8}{6}
\DeclareMathSizes{12}{12}{9}{7}
\DeclareMathSizes{14.4}{14.4}{10.95}{8}
\DeclareMathSizes{17.28}{17.28}{12}{10}
\DeclareMathSizes{20.74}{20.74}{14.4}{12}
\DeclareMathSizes{24.88}{24.88}{17.28}{14.4}

%% including file verbatim
%%
\def\verbatimfile#1{\begingroup
                    \@verbatim \frenchspacing \@vobeyspaces
                    \input#1 \endgroup
}

%% verbatim environment using \tt\bfseries
%%
\begingroup \catcode `|=0 \catcode `[= 1
\catcode`]=2 \catcode `\{=12 \catcode `\}=12
\catcode`\\=12 |gdef|@xbfverbatim#1\end{bfverbatim}[#1|end[bfverbatim]]
|gdef|@sxverbatim#1\end{verbatim*}[#1|end[verbatim*]]
|endgroup
\def\@bfverbatim{\trivlist \item\relax
  \if@minipage\else\vskip\parskip\fi
  \leftskip\@totalleftmargin\rightskip\z@skip
  \parindent\z@\parfillskip\@flushglue\parskip\z@skip
  \@@par
  \@tempswafalse
  \def\par{%
    \if@tempswa
      \leavevmode \null \@@par\penalty\interlinepenalty
    \else
      \@tempswatrue
      \ifhmode\@@par\penalty\interlinepenalty\fi
    \fi}%
  \obeylines \bfverbatim@font \@noligs
  \let\do\@makeother \dospecials
  \everypar \expandafter{\the\everypar \unpenalty}%
}
\def\bfverbatim{\@bfverbatim \frenchspacing\@vobeyspaces \@xbfverbatim}
\def\endbfverbatim{\if@newlist \leavevmode\fi\endtrivlist}
\def\bfverbatim@font{\normalfont\ttfamily\bfseries}

%% minipage environment with enclosing colorbox
%% usage is identical to minipage with an additional
%% argument, the color of the colorbox (see color.sty)
%%
\def\colorpage{%
  \@ifnextchar[%]
    \@icolorpage
    {\@iiicolorpage c\@empty[s]}}
\def\@icolorpage[#1]{%
  \@ifnextchar[%]
    {\@iicolorpage{#1}}%
    {\@iiicolorpage{#1}\@empty[s]}}
\def\@iicolorpage#1[#2]{%
  \@ifnextchar[%]
    {\@iiicolorpage{#1}{#2}}%
    {\@iiicolorpage{#1}{#2}[#1]}}
\def\@iiicolorpage#1#2[#3]#4#5{%
  \leavevmode
  \@pboxswfalse
  \setlength\@tempdima{#4}%
  \def\@cboxcolor{#5}%
  \def\@mpargs{{#1}{#2}[#3]{#4}}%
  \setbox\@tempboxa\vbox\bgroup
    \color@begingroup
      \hsize\@tempdima
      \textwidth\hsize \columnwidth\hsize
      \@parboxrestore
      \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
      \let\@footnotetext\@mpfootnotetext
      \let\@listdepth\@mplistdepth \@mplistdepth\z@
      \@colorpagerestore\global\@minipagetrue %% \global added 24 May 89
      \everypar{\global\@minipagefalse\everypar{}}}
 \let\@colorpagerestore=\relax
\def\endcolorpage{%
    \par
    \unskip
    \ifvoid\@mpfootins\else
      \vskip\skip\@mpfootins
      \normalcolor
      \footnoterule
      \unvbox\@mpfootins
    \fi
    \global\@minipagefalse   %% added 24 May 89
  \color@endgroup
  \egroup
  \colorbox{\@cboxcolor}{\expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}}


%% BEGIN fancybox.sty
%%
\def\fileversion{1.0}
\def\filedate{93/02/10}
%%
%% COPYRIGHT 1993, by Timothy Van Zandt, tvz@Princeton.EDU
%%
%% DESCRIPTION:
%%   fancybox.sty is a LaTeX style option, consisting of:
%%   * Variants of \fbox: \shadowbox, \doublebox, \ovalbox, \Ovalbox.
%%   * Helpful tools for using box macros.
%%   * Extensive documentation about how to use box macros.
%%   * Flexible verbatim macros.
%%
%% INSTALLATION:
%%   Put this file where your TeX looks for inputs.
%%
%% DOCUMENTATION:
%%  See fancybox.doc, which might be appended to this file.
%%
%% COPYING:
%%   Copying of part or all of this file is allowed under the following
%%   conditions only:
%%   (1) You may freely distribute unchanged copies of the file. Please
%%       include the documentation when you do so.
%%   (2) You may modify a renamed copy of the file, but only for personal
%%       use or use within an organization.
%%   (3) You may copy fragments from the file, for personal use or for
%%       distribution, as long as credit is given where credit is due.
%%
%%   You are NOT ALLOWED to take money for the distribution or use of
%%   this file or modified versions or fragments thereof, except for
%%   a nominal charge for copying etc.
%%
%% CODE:
\expandafter\ifx\csname fb@framepage\endcsname\relax\else
  \expandafter\endinput
\fi
\newbox\@fancybox
\@ifundefined{@tempdimc}{\newdimen\@tempdimc}{}

%% \shadowbox

\newdimen\shadowsize
\shadowsize 4pt

\def\shadowbox{\VerbBox\@shadowbox}
\def\@shadowbox#1{%
  \setbox\@fancybox\hbox{\fbox{#1}}%
  \leavevmode\vbox{%
    \offinterlineskip
    \dimen@=\shadowsize
    \advance\dimen@ .5\fboxrule
    \hbox{\copy\@fancybox\kern-.5\fboxrule\lower\shadowsize\hbox{%
      \vrule \@height\ht\@fancybox \@depth\dp\@fancybox \@width\dimen@}}%
    \vskip-\dimen@
    \moveright\shadowsize\vbox{%
      \hrule \@width\wd\@fancybox \@height\dimen@}}}

% \fancyoval

\def\cornersize{\@ifstar{\@cornersize}{\@@cornersize}}
\def\@cornersize#1{%
  \@tempdima=#1\relax
  \edef\the@cornersize{\number\@tempdima sp}}
\def\@@cornersize#1{%
  \edef\the@cornersize{#1\noexpand\@tempdimb}}
\cornersize{.5}

% This is just a simple change to \oval, making use of the \cornersize
% parameter instead of making the corner arcs are large as possible.

\def\fancyoval(#1,#2){\@ifnextchar[{\fancy@oval(#1,#2)}{\fancy@oval(#1,#2)[]}}

\def\fancy@oval(#1,#2)[#3]{%
  \begingroup
    \fancy@@oval{#1\unitlength}{#2\unitlength}{#3}%
    \@put{-.5\wd\@tempboxa}{-.5\ht\@tempboxa}{\ht\@tempboxa=\z@\box\@tempboxa}%
  \endgroup}

\def\copyrightline{}

\gdef\@ovbottom{\hb@xt@\@ovxx{\kern \@ovro
    \if@ovr \else \kern \@ovdx \fi
    \leaders \hrule \@height \@wholewidth \hfil \mbox{\tiny\copyrightline}
    \if@ovl \else \kern \@ovdx \fi
    \kern \@ovri}}

\def\fancy@@oval#1#2#3{%
  \boxmaxdepth \maxdimen
  \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
  \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}%
  \@ovxx#1\relax
  \advance\@ovxx-\@wholewidth
  \@ovyy#2\relax
  \advance\@ovyy-\@wholewidth
  \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
  \advance\@tempdimb-2\p@
  \ifdim\@tempdimb>\the@cornersize\relax
    \@tempdimb=\the@cornersize
  \fi
  \@getcirc\@tempdimb
  \@ovro\ht\@tempboxa \@ovri\dp\@tempboxa
  \@ovdx\@ovxx \advance\@ovdx-\@tempdima \divide\@ovdx \tw@
  \@ovdy\@ovyy \advance\@ovdy-\@tempdima \divide\@ovdy \tw@
  \@circlefnt
  \setbox\@tempboxa\hbox{%
    \if@ovr \@ovvert32\kern -\@tempdima \fi
    \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
    \if@ovt \@ovbottom \kern -\@ovxx \fi
    \if@ovb \raise \@ovyy \@ovhorz \fi}%
  \advance\@ovdx\@ovro
  \advance\@ovdy\@ovro
  \advance\@ovxx\@wholewidth
  \wd\@tempboxa=\@ovxx
  \dp\@tempboxa=\z@}

% \ovalbox

\def\ovalbox{\VerbBox{\@ovalbox\thinlines}}
\def\Ovalbox{\VerbBox{\@ovalbox\thicklines}}
\def\@ovalbox#1#2{%
  \begingroup
    #1\relax
    \setbox\@fancybox\hbox{{#2}}%
    \@tempdimc\fboxsep \advance\@tempdimc\@wholewidth
    \@tempdima\ht\@fancybox \advance\@tempdima\dp\@fancybox
    \advance\@tempdima2\@tempdimc
    \@tempdimb\wd\@fancybox \advance\@tempdimb2\@tempdimc
    \fancy@@oval\@tempdimb\@tempdima{}%
    \@tempdima\dp\@fancybox \advance\@tempdima\@tempdimc
    \wd\@tempboxa=\z@
    \leavevmode\hbox{%
      \lower\@tempdima\box\@tempboxa
      \kern\@tempdimc\box\@fancybox\kern\@tempdimc}%
  \endgroup}

% \doublebox

\def\doublebox{\VerbBox\@doublebox}
\def\@doublebox#1{%
  \begingroup
    \setbox\@fancybox\hbox{{#1}}%
    \fboxrule=.75\fboxrule
    \setbox\@fancybox\hbox{\fbox{\box\@fancybox}}%
    \fboxrule=2\fboxrule
    \fboxsep=\fboxrule
    \advance\fboxsep .5pt
    \fbox{\box\@fancybox}%
  \endgroup}

% Frames for seminar.sty:

\@ifundefined{newslideframe}{}{%
  \newslideframe{shadow}{\shadowbox{#1}}
  \newslideframe{double}{\doublebox{#1}}
  \newslideframe{oval}{\ovalbox{#1}}
  \newslideframe{Oval}{\Ovalbox{#1}}}

% Sbox environment

\newbox\@Sbox

\def\Sbox{\global\setbox\@Sbox\hbox\bgroup\ignorespaces}

\def\endSbox{%
  \@testtrue\ifhmode\ifinner\@testfalse\fi\fi
  \if@test\@latexerr{Misplaced \string\endSbox! Should be in LR mode}\@ehd\fi
  \egroup}

\def\TheSbox{%
  \ifvoid\@Sbox
    \@latexerr{\string\TheSbox\space is empty!}\@ehd
  \else
    \box\@Sbox
  \fi}

\def\beginsbox#1{\setbox#1\hbox\bgroup\ignorespaces}

\def\endsbox{\endSbox}

% \VerbBox

\newtoks\do@VerbBox

\def\VerbBox#1{%
  \do@VerbBox{#1}%
  \afterassignment\begin@VerbBox
  \setbox\@fancybox=\hbox}
\def\begin@VerbBox{\aftergroup\end@VerbBox}
\def\end@VerbBox{\the\do@VerbBox{\box\@fancybox}}%

% \Btrivlist

\def\@Blistrestore{%
  \let\par\relax
  \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii
  \lineskip\normallineskip \baselineskip\normalbaselineskip}

\def\Btrivlist#1{\@ifnextchar[{\@Btrivlist{#1}}{\@Btrivlist{#1}[]}}
\def\@Btrivlist#1[#2]{%
  \@Blistrestore
  \let\\=\@Btrivlistcr
  \fb@beginvbox{#2}%
  \halign\bgroup
    \if#1l\else\@empty\hfil\fi
    \ignorespaces##\unskip
    \if#1r\@empty\else\hfil\fi\cr}
\def\endBtrivlist{\crcr\egroup\egroup\if@pboxsw$\fi}

\def\fb@beginvbox#1{%
  \leavevmode
  \@pboxswfalse
  \if#1b\@empty\vbox\else\if#1t\@empty\vtop\else
    \ifmmode\vcenter\else\@pboxswtrue$\vcenter\fi
  \fi\fi\bgroup}

\def\@Btrivlistcr{\@ifstar
  {\@ifnextchar[{@@Btrivlistcr}{\cr}}{\@ifnextchar[{\@@Btrivlistcr}{\cr}}}
\def\@@Btrivlistcr[#1]{\cr\noalign{\vskip #1}}

\def\Bcenter{\Btrivlist{c}}
\def\endBcenter{\endBtrivlist}

\def\Bflushleft{\Btrivlist{l}}
\def\endBflushleft{\endBtrivlist}

\def\Bflushright{\Btrivlist{r}}
\def\endBflushright{\endBtrivlist}

% \Blist

\def\Blist#1#2{\@ifnextchar[{\@Blist{#1}{#2}}{\@Blist{#1}{#2}[]}}

\def\@Blist#1#2[#3]{%
  \ifnum\@listdepth>5
    \@toodeep
  \else
    \global\advance\@listdepth\@ne
  \fi
  \itemindent\z@
  \csname @list\romannumeral\the\@listdepth\endcsname
  \def\@itemlabel{#1}%
  \let\makelabel\@mklab
  \@nmbrlistfalse
  \@Blistrestore
  \let\\=\@Blistcr
  \let\item\Bitem
  \@Bitemswfalse
  #2\relax
  \fb@beginvbox{#3}%
  \halign\bgroup
    \ignorespaces##&\hskip\labelsep\ignorespaces##\unskip\hfil\cr}

\def\endBlist{\endBtrivlist\global\advance\@listdepth\m@ne}

\newif\if@Bitemsw

\def\Bitem{\@ifnextchar({\@Bitemcr\Bitem@skip}{\@Bitemcr\@Bitem}}

\def\@Bitemcr{%
  \if@Bitemsw
    \def\next{\cr\noalign{\vskip\itemsep}}%
  \else
    \def\next{\global\@Bitemswtrue}%
  \fi
  \next}

\def\Bitem@skip(#1){\noalign{\vskip #1}\@Bitem}

\def\@Bitem{\@ifnextchar[{\Bitem@label}{\Bitem@nolabel}}

\def\Bitem@label[#1]{\makelabel{#1}&}

\def\Bitem@nolabel{%
  \if@nmbrlist
    \expandafter\advance\csname c@\@listctr\endcsname1 \fi
  \makelabel{\@itemlabel}%
  &%
  \if@nmbrlist\refstepcounter{\@listctr}\fi}

\def\@Blistcr{\@ifstar
  {\@ifnextchar[{@@Blistcr}{\cr&}}{\@ifnextchar[{\@@Blistcr}{\cr&}}}

\def\@@Blistcr[#1]{\cr\noalign{\vskip #1}&}

% \Bitemize

\def\Bitemize{%
  \ifnum\@itemdepth>3
    \@toodeep
  \else
    \advance\@itemdepth\@ne
  \fi
  \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
  \Blist{\csname\@itemitem\endcsname}{\def\makelabel####1{\hfil####1}}}
\def\endBitemize{\endBlist}

% \Bdescription

\def\Bdescription{\Blist{}{\def\makelabel####1{\bf####1\hfil}}}
\def\endBdescription{\endBlist}

% \Benumerate

\def\Benumerate{%
  \ifnum\@enumdepth>3
    \@toodeep
  \else
    \advance\@enumdepth\@ne
  \fi
  \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
  \Blist{\csname label\@enumctr\endcsname}%
    {\usecounter{\@enumctr}\def\makelabel####1{\hfil####1}}}
\def\endBenumerate{\endBlist}

% Beqnarray

\def\Beqnarray{%
  \stepcounter{equation}%
  \let\@currentlabel\theequation
  \def\@eqnnum{{\csname reset@font\endcsname\rm (\theequation)}}%
  \global\@eqnswtrue\m@th
  \global\@eqcnt\z@
  \tabskip\@centering
  \let\\\@eqncr
  \vbox\bgroup
    \halign\bgroup
      \@eqnsel
        \hskip\@centering
        $\displaystyle\tabskip\z@{##}$%
      &\global\@eqcnt\@ne
        \hskip 2\arraycolsep
        \hfil${##}$\hfil
      &\global\@eqcnt\tw@
        \hskip 2\arraycolsep
        $\displaystyle\tabskip\z@{##}$%
        \hfil
        \tabskip\@centering
      &\if@eqnsw\hskip 1em\fi
        \hfil{##}\tabskip\z@
      \cr}

\def\endBeqnarray{%
  \@@eqncr
  \egroup
  \global\advance\c@equation\m@ne
  \egroup
  \global\@ignoretrue}

\@namedef{Beqnarray*}{\def\@eqncr{\nonumber\@seqncr}\Beqnarray}
\@namedef{endBeqnarray*}{\nonumber\endBeqnarray}

% \fb@outputage

% Here we insert various hooks for rotating or framing the page.
% Otherwise, it is the usual \@outputpage

\def\fb@outputpage{%
  \begingroup
    \catcode`\ =10
    \let\-\@dischyph
    \let\'\@acci
    \let\`\@accii
    \let\=\@acciii
    \if@specialpage
      \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%
    \fi
    \if@twoside
      \ifodd\count\z@
        \let\@thehead\@oddhead
        \let\@thefoot\@oddfoot
        \let\@themargin\oddsidemargin
      \else
        \let\@thehead\@evenhead
        \let\@thefoot\@evenfoot
        \let\@themargin\evensidemargin
      \fi
    \fi
    \csname reset@font\endcsname
    \normalsize
    \baselineskip\z@
    \lineskip\z@
    \let\par\@@par
    \ifx\this@fancypage\@empty\else
      \this@fancypage
      \gdef\this@fancypage{}%
    \fi
    \ifx\the@fancypage\@empty\else
      \setbox\@outputbox\hbox{\the@fancypage{\box\@outputbox}}%
    \fi
    \ifx\fb@@rotatepage\@empty\else
      \setbox\@outputbox\hbox{\fb@@rotatepage{\box\@outputbox}}%
    \fi
    \setbox\@outputbox\vbox{%
      \@tempdima=\wd\@outputbox
      \setbox\@tempboxa=\hbox to\@tempdima{%
        \let\label\@gobble
        \let\index\@gobble
        \let\glossary\@gobble
        \@thehead}%
      \ht\@tempboxa\headheight
      \dp\@tempboxa\z@
      \box\@tempboxa
      \vskip\headsep
      \box\@outputbox
      \baselineskip\footskip
      \hbox to\@tempdima{%
        \let\label\@gobble
        \let\index\@gobble
        \let\glossary\@gobble
        \@thefoot}}
    \ifx\the@@fancypage\@empty\else
      \setbox\@outputbox\hbox{\the@@fancypage{\box\@outputbox}}%
    \fi
    \setbox\@outputbox\vbox{%
      \ifnum\fancyput@flag>-1 \do@fancyput\fi
      \vskip\topmargin
      \moveright\@themargin\box\@outputbox}%
    \ifx\fb@rotatepage\@empty\else
       \setbox\@outputbox\hbox{\lower\ht\@outputbox\box\@outputbox}%
       \dp\@outputbox\z@
       \wd\@outputbox\z@
       \setbox\@outputbox\hbox{\fb@rotatepage{\box\@outputbox}}%
       \expandafter\fb@setoffsets\fb@theoffsets
    \fi
    \shipout\box\@outputbox
    \global\@colht\textheight
  \endgroup
  \stepcounter{page}%
  \let\firstmark\botmark}

% \fancypage

\def\the@fancypage{}
\def\the@@fancypage{}
\def\this@fancypage{}

\def\fancypage#1#2{%
  \def\the@fancypage{#1}%
  \def\the@@fancypage{#2}%
  \def\@outputpage{\fb@outputpage}}

\def\thisfancypage#1#2{%
  \gdef\@outputpage{\fb@outputpage}%
  \gdef\this@fancypage{\def\the@fancypage{#1}\def\the@@fancypage{#2}}}

% \fancyput

% Token registers used to make it easier to put definitions in argument.
% Boxes not processed until output so that contents can depend, e.g., on
% current page or marks or whatever. This makes everything slightly more
% complicated than one would expect.

\newtoks\the@fancyput
\newtoks\this@fancyput
\def\fancyput@flag{-1}%

% \fancyput@flag=-1 if no fancyput, 0 if regular fancyput, 1 if thisfancyput.

\def\fancyput{%
  \def\@outputpage{\fb@outputpage}
  \@ifstar{\@testtrue\@fancyput}{\@testfalse\@fancyput}}
\def\@fancyput{\@ifnextchar({\@@fancyput}{\@@fancyput(\z@,\z@)}}
\def\@@fancyput(#1,#2)#3{%
  \if@test
    \expandafter\the@fancyput\expandafter{\the\the@fancyput\do{#1}{#2}{#3}}%
  \else
    \the@fancyput{\do{#1}{#2}{#3}}%
  \fi
  \gdef\fancyput@flag{\z@}}

\def\thisfancyput{%
  \gdef\@outputpage{\fb@outputpage}
  \@ifstar{\@testtrue\@thisfancyput}{\@testfalse\@thisfancyput}}
\def\@thisfancyput{\@ifnextchar({\@@thisfancyput}{\@@thisfancyput(\z@,\z@)}}
\def\@@thisfancyput(#1,#2)#3{%
  \if@test
    \ifnum\fancyput@flag=\z@
      \expandafter\global\expandafter\this@fancyput\expandafter{%
        \the\this@fancyput\do{#1}{#2}{#3}}%
    \else
      \expandafter\global\expandafter\this@fancyput\expandafter{%
        \the\the@fancyput\do{#1}{#2}{#3}}%
    \fi
  \else
    \global\this@fancyput{\do{#1}{#2}{#3}}%
  \fi
  \gdef\fancyput@flag{1}}

\def\do@fancyput{%
  \def\do##1##2##3{\raise##2\hbox to\z@{\kern##1\relax##3\hss}}%
  \setbox\@tempboxa=\hbox to\z@{%
    \kern-\hoffset
    \raise\voffset\hbox{%
      \ifnum\fancyput@flag=\z@\the\the@fancyput\else\the\this@fancyput\fi}%
    \hss}%
  \ht\@tempboxa=\z@ \dp\@tempboxa=\z@
  \box\@tempboxa
  \gdef\fancyput@flag{\z@}%
  \global\this@fancyput{}}

% \Landscape

\def\UsePageParameters{%
  \clearpage
  \global\@colht\textheight
  \onecolumn}

\def\fb@rotatepage{}

\def\Landscape{\@ifstar{\@testtrue\@Landscape}{\@testfalse\@Landscape}}
\def\@Landscape#1#2#3{%
  \clearpage
  \def\fb@rotatepage{#3}%
  \def\@outputpage{\fb@outputpage}%
  \@tempdima#1\relax
  \@tempdimb#2\relax
  \if@test
    \edef\fb@theoffsets{{\voffset}{\hoffset}{\number\@tempdima sp}}%
  \else
    \edef\fb@theoffsets{{\hoffset}{\voffset}{\number\@tempdimb sp}}%
  \fi
  \advance\@tempdimb-\@tempdima
  \advance\textwidth\@tempdimb
  \advance\textheight-\@tempdimb
  \UsePageParameters}
\def\endLandscape{\clearpage\aftergroup\UsePageParameters}

\def\fb@setoffsets#1#2#3{%
  \@tempdima#1%
  \advance#1#2%
  #2#3
  \advance#2-2in
  \advance#2-\@tempdima}

\@namedef{Landscape*}{\@testtrue\@Landscape}
\@namedef{endLandscape*}{\endLandscape}

% \LandScape

\def\fb@@rotatepage{}

\def\LandScape#1{%
  \clearpage
  \def\fb@@rotatepage{#1}%
  \def\@outputpage{\fb@outputpage}%
  \@tempdima\textheight
  \textheight\textwidth
  \textwidth\@tempdima
  \UsePageParameters}
\def\endLandScape{\clearpage\aftergroup\UsePageParameters}

% \GenericCaption

\def\GenericCaption#1{%
  \par
  \begingroup
    \@parboxrestore
    \normalsize
    \vskip 10\p@
    \setbox\@tempboxa\hbox{#1}%
    \ifdim\wd\@tempboxa>\hsize
      #1\par
    \else
      \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
    \fi
  \endgroup
  \par}

% \landfloat

\def\landfloat#1#2{%
  \gdef\curr@landfloat{#1}%
  \gdef\float@rotation{#2}%
  \begin{#1}[p]%
    \setbox\@tempboxa\vbox\bgroup
      \hsize\@colht
      \@parboxrestore}
\def\endlandfloat{%
      \par\vskip\z@
    \egroup
    \setbox\@tempboxa\hbox{\float@rotation{\box\@tempboxa}}%
    \centerline{\box\@tempboxa}%
  \expandafter\end\expandafter{\curr@landfloat}}

% \boxput

\def\boxput{\@ifstar{\@testtrue\@boxput}{\@testfalse\@boxput}}
\def\@boxput{\@ifnextchar({\@@boxput}{\@@boxput(0,0)}}
\long\def\@@boxput(#1,#2)#3#4{%
  \setbox\@fancybox\hbox{{#4}}%
  \setbox\@tempboxa\vbox to\z@{\vss\hbox to\z@{\hss{#3}\hss}\vss}%
  \@tempdima=#1\wd\@fancybox
  \advance\@tempdima\wd\@fancybox
  \divide\@tempdima 2
  \ifcat a#2\relax
    \@tempdimb=\z@
  \else
    \@tempdimb=.5\ht\@fancybox
    \advance\@tempdimb.5\dp\@fancybox
    \@tempdimc=\@tempdimb
    \advance\@tempdimc-\dp\@fancybox
    \@tempdimb=#2\@tempdimb
    \advance\@tempdimb\@tempdimc
  \fi
  \setbox\@tempboxa\hbox to \z@{%
    \if@test\kern-\wd\@fancybox\fi
    \kern\@tempdima\raise\@tempdimb\box\@tempboxa\hss}%
  \ht\@tempboxa=\z@ \dp\@tempboxa=\z@
  \leavevmode
  \if@test
    \hbox{\box\@fancybox\box\@tempboxa}%
  \else
    \hbox{\box\@tempboxa\box\@fancybox}%
  \fi}

% \Vfootnotes

\def\VerbatimFootnotes{\let\@footnotetext\V@footnotetext}

\long\def\V@footnotetext{%
  \afterassignment\V@@footnotetext
  \let\@tempa}
\def\V@@footnotetext{%
  \insert\footins\bgroup
  \csname reset@font\endcsname
  \footnotesize
  \interlinepenalty\interfootnotelinepenalty
  \splittopskip\footnotesep
  \splitmaxdepth\dp\strutbox
  \floatingpenalty \@MM
  \hsize\columnwidth
  \@parboxrestore
  \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
  \@makefntext{}%
  \rule{\z@}{\footnotesep}%
  \bgroup
  \aftergroup\V@@@footnotetext
  \ignorespaces}
\def\V@@@footnotetext{\strut\egroup}

% Verbatim

% The main idea is to separate the reading and formatting of the
% verbatim listing. It's pretty simple.

\def\Verbatim@Codes{%
  \let\do\@makeother
  \dospecials
  \Verbatim@ObeyThings
  \ThisVerbCodes\relax\gdef\ThisVerbCodes{}}

\def\EveryVerbatimCodes{}

% \Verbatim is redefined temporarilly in \Get@Verbatim to scan the
% verbatim text. \Verbatim is used so that error messages are more
% enlightening. \next checks whether \Verbatim found its argument,
% and attempts to recover if not.
%
% Heuristically, if current environment is `foo' and argument of
% \Get@Verbatim is \The@Verbatim, then definition of \Verbatim is
%
% \def\Verbatim#1^^M#2^^M\the\EndVerbatimTokens\end{foo}{%
%  \xdef\The@Verbatim{\noexpand\Every@VerbatimLine#2}%
%  \endgroup\end{foo}}
%
% \The@Verbatim is then equal to the verbatim text, with spaces
% replaced by \Verbatim@Space, tabs replaced by \Verbatim@Tab,
% and ` replaced by \@lquote. In addition, each line begins with
% \Every@VerbatimLine, and each line but the last ends with
% \Verbatim@Par. It is then possible to redefine these when formatting
% the verbatim text. To insert each line as an argument to \foo, use
%   \def\Every@VerbatimLine#1\Verbatim@Par{\foo{#1}}
%   \The@Verbatim\Verbatim@Par
%
\newtoks\EndVerbatimTokens
\begingroup
  \catcode`\|=0
  \catcode`\[=1
  \catcode`\]=2
  \catcode`\{=12
  \catcode`\}=12
  \catcode`\^^M=13%
  \catcode`\\=12%
  |gdef|Get@Verbatim#1[%
    |begingroup%
      |Verbatim@Codes|EveryVerbatimCodes%
      |let|protect|noexpand%
      |VerbatimEnvironment%
      |edef|next[|noexpand|def|noexpand|Verbatim####1|noexpand^^M####2%
        |noexpand^^M|the|EndVerbatimTokens\end{|@VerbEnvir}]%
      |edef|endVerbatim[|noexpand|endgroup|noexpand|end[|@VerbEnvir]]%
      |global|let|@VerbEnvir|relax%
      |next[|@nil|xdef#1[|noexpand|Every@VerbatimLine##2]|endVerbatim]%
      |def|next[|@ifnextchar|@nil[|@gobble]%     If \@nil is there, then
        [|gdef#1[]|endVerbatim|end[document]]]%  \Verbatim found its argument.
      |expandafter|next|Verbatim]%               Otherwise, try to recover.
  |gdef|AltGet@Verbatim#1[%
    |begingroup%
      |Verbatim@Codes|EveryVerbatimCodes%
      |def^^M##1^^M##2[%
        |ifx|@nil##2|@empty|else%
          |noexpand|Verbatim@Par|noexpand|Every@VerbatimLine##1%
          |expandafter^^M|expandafter##2%
        |fi]%
      |let|protect|noexpand%
      |VerbatimEnvironment%
      |edef|next[|noexpand|def|noexpand|Verbatim####1|noexpand^^M####2%
        \end{|@VerbEnvir}]%
      |edef|endVerbatim[|noexpand|endgroup|noexpand|end[|@VerbEnvir]]%
      |global|let|@VerbEnvir|relax%
      |next[|@nil|xdef#1[|noexpand|Every@VerbatimLine##2^^M|@nil]|endVerbatim]%
      |def|next[|@ifnextchar|@nil[|@gobble]%
        [|gdef#1[]|endVerbatim|end[document]]]%
      |expandafter|next|Verbatim]%
|endgroup
\def\AltGetVerbatim{\let\Get@Verbatim\AltGet@Verbatim}

% It is enough to not use \begin or \end when defining new verbatim
% environments, as the default is for \Get@Verbatim to look for the
% end of the current environment, but using \VerbatimEnvironment
% is easier to explain to users.

\def\VerbatimEnvironment{%
  \ifx\@VerbEnvir\relax\xdef\@VerbEnvir{\@currenvir}\fi}

\let\@VerbEnvir\relax

\def\The@VerbatimErr{%
  \gdef\The@Verbatim{\@latexerr{Misplaced \string\end{Verbatim}}\@ehd}}
\The@VerbatimErr

\begingroup
\catcode`\^^M=\active%
\catcode`\ =\active%
\catcode`\^^I=\active%
\gdef\Verbatim@ObeyThings{%
\catcode`\^^M=\active%
\catcode`\ =\active%
\catcode`\^^I=\active%
\catcode``=\active%
\def^^M{\noexpand\Verbatim@Par\noexpand\Every@VerbatimLine}%
\def^^I{\noexpand\Verbatim@Tab}%
\def {\noexpand\Verbatim@Space}%
\Verbatim@NoLigs}%
\gdef\Verbatim@DontObeyLines{\outer\def^^M{}}%
\endgroup

\def\SaveVerbatim{\@bsphack\Get@Verbatim}

\def\endSaveVerbatim{\@esphack}

{\catcode``13 \gdef\Verbatim@NoLigs{\def`{\noexpand\@lquote}}}

\def\Verbatim@Prep{%
  \frenchspacing
  \ThisVerb\relax\gdef\ThisVerb{}%
  \VerbatimFont
  \EveryVerbatim
  \let\Every@VerbatimLine\EveryVerbatimLine
  \def\Verbatim@Space{\leavevmode\penalty\@M\VerbatimSpace}%
  \def\Verbatim@Tab{\leavevmode\penalty\@M\VerbatimTab}}%

\def\Verb@Prep{%
  \frenchspacing
  \ThisVerb\relax\gdef\ThisVerb{}%
  \VerbFont
  \EveryVerb
  \let\Every@VerbatimLine\EveryVerbatimLine
  \def\Verbatim@Space{\leavevmode\penalty\@M\VerbSpace}%
  \def\Verbatim@Tab{\leavevmode\penalty\@M\VerbTab}}%

\def\Verbatim@Par{\leavevmode\null\@@par\penalty\interlinepenalty}

% Parameter initialization:

\def\VerbatimSpace{\ }

{\catcode`\ =12\gdef\ttspace{{\tt }}}

\def\VerbSpace{\ }

\def\VerbatimTab{\ \ \ \ \ \ \ \ }

\def\VerbTab{\ }

\def\EveryVerbatim{}

\def\EveryVerb{}

\def\ThisVerb{}

\def\EveryVerbatimLine{}%

\def\EveryVerbOutLine{}

\def\VerbatimFont{\tt}

\def\VerbFont{\tt}

\def\VerbatimFuzz{2pt}%

\def\EveryVerbatimCodes{}

\def\EveryVerbCodes{}

\def\EveryVerbOutCodes{}

\def\ThisVerbCodes{}

\def\Verbatim@List#1{%
  \if@minipage\else\vskip\parskip\fi
  \leftskip\@totalleftmargin
  \@rightskip\@flushglue \rightskip\@rightskip
  \parindent\z@
  \parskip\z@
  \parfillskip\@flushglue
  \hfuzz\VerbatimFuzz\relax
  \@@par
  \global\@inlabelfalse  %Prevents vspace from being inserted when
  \Verbatim@Prep         %first line exceeds \hsize.
  #1%
  \Verbatim@Par}%

\def\UseVerbatim#1{%
  \begingroup\trivlist\item[]\Verbatim@List{#1}\endtrivlist\endgroup}

\def\Verbatim{\Get@Verbatim\The@Verbatim}
\def\endVerbatim{\UseVerbatim\The@Verbatim\The@VerbatimErr}

\def\LUseVerbatim#1{%
  \begingroup\list{}{}\item[]\Verbatim@List{#1}\endlist\endgroup}

\def\LVerbatim{\Get@Verbatim\The@Verbatim}
\def\endLVerbatim{\LUseVerbatim\The@Verbatim\The@VerbatimErr}

\def\BUseVerbatim{%
  \@ifnextchar[{\@BUseVerbatim}{\@BUseVerbatim[]}}
\def\@BUseVerbatim[#1]#2{%
  \begingroup
    \Verbatim@Prep
    \let\Verbatim@Par\@Btrivlistcr
    \@Btrivlist{l}[#1]%
    #2%
    \endBtrivlist
  \endgroup}%

\def\BVerbatim{%
  \catcode`\^^M=13\relax
  \@ifnextchar[{\@BVerbatim}{\@BVerbatim[]}}
\def\@BVerbatim[#1]{\def\@tempa{[#1]}\Get@Verbatim\The@Verbatim}
\def\endBVerbatim{
  \expandafter\@BUseVerbatim\@tempa\The@Verbatim\The@VerbatimErr}

\newwrite\Verbatim@Outfile
\def\VerbatimOut#1{%
  \@bsphack
  \begingroup
    \immediate\openout\Verbatim@Outfile #1\relax
    \def\EveryVerbatimCodes{\EveryVerbOutCodes}%
    \Get@Verbatim\The@Verbatim}
\def\endVerbatimOut{%
    \Verbatim@ObeyThings
    \def\Verbatim@Par{^^J}%
    \def\Verbatim@Space{\space}%
    \def\Verbatim@Tab{\space}%
    \def\@lquote{\string`}%
    \ThisVerb\relax\gdef\ThisVerb{}%
    \let\Every@VerbatimLine\EveryVerbOutLine
    \immediate\write\Verbatim@Outfile{\The@Verbatim}%
    \immediate\closeout\Verbatim@Outfile
  \endgroup
  \The@VerbatimErr
  \@esphack}

% This one is a little tricky because:
% * we want to ignore the ^^M at the end of the last line,
% * we want to handle files that end with newline and files that don't
% * we want comment characters to work properly,
% * we want to expand each line before inserting \Every@VerbatimLine and
%     \Verbatim@Par,
%
% \The@GVerbatim is used as scratch with global redefinition.
\newread\Verbatim@Infile
\def\Verbatim@Input#1#2{%
  \begingroup
    \Verbatim@Codes\EveryVerbatimCodes
    \immediate\openin\Verbatim@Infile #1\relax
    \ifeof\Verbatim@Infile
      \@latexerr{No verbatim file #1}\@ehd
    \else
      \def\The@GVerbatim{}\Verbatim@NextLine
      \ifeof\Verbatim@Infile
        \@latexerr{Verbatim file #1 is empty}\@ehd
      \else
        \let\The@Verbatim\The@GVerbatim
        \def\The@GVerbatim{}\Verbatim@NextLine
        #2{\Verbatim@@Input}%
      \fi
    \fi
    \immediate\closein\Verbatim@Infile
 \endgroup}
\def\Verbatim@@Input{%
  \let\protect\noexpand
  \edef\The@Verbatim{%
    \noexpand\Every@VerbatimLine
    \The@Verbatim
    \ifeof\Verbatim@Infile\else\noexpand\Verbatim@Par\fi}%
  \let\protect\relax
  \The@Verbatim
  \ifeof\Verbatim@Infile\else
    \let\The@Verbatim\The@GVerbatim
    \def\The@GVerbatim{}\Verbatim@NextLine
    \expandafter\Verbatim@@Input
  \fi}%
\begingroup\catcode`\^^M=\active%
\gdef\Verbatim@NextLine{%
  \ifeof\Verbatim@Infile\else%
    \immediate\read\Verbatim@Infile to\@tempa%
    \expandafter\Verbatim@@NextLine\@tempa^^M\relax^^M\@nil%
  \fi}%
% #2 is empty if line ends in ^^M, #2=\relax otherwise.
\gdef\Verbatim@@NextLine#1^^M#2^^M#3\@nil{%
  \expandafter\gdef\expandafter\The@GVerbatim\expandafter{\The@GVerbatim#1}%
  \ifx#2\@empty\@empty\else\expandafter\Verbatim@NextLine\fi}%
\endgroup%

\def\UseVerb#1{\begingroup\Verb@Prep#1\endgroup}

\def\SaveVerb{\@ifnextchar[{\Save@Verb}{\Save@Verb[]}}

\long\def\Save@Verb[#1]#2{%
  \begingroup
    \Verbatim@Codes\Verbatim@DontObeyLines\EveryVerbCodes
    \Save@@Verb{#1}{#2}}

\long\def\Save@@Verb#1#2#3{%
  \let\protect\noexpand
  \def\next{\@ifnextchar\@nil{\@gobble}{\endgroup}}%
  \long\def\Verb##1#3{\@nil\xdef#2{##1}\endgroup#1}%
  \expandafter\next\Verb}

\def\Verb{\Save@Verb[\UseVerb{\The@Verbatim}]{\The@Verbatim}}

\def\VerbatimInput#1{\begingroup\Verbatim@Input{#1}\UseVerbatim\endgroup}

\def\LVerbatimInput#1{\begingroup\Verbatim@Input{#1}\LUseVerbatim\endgroup}

\def\BVerbatimInput{\@ifnextchar[{\@BVerbatimInput}{\@BVerbatimInput[]}}
\def\@BVerbatimInput[#1]#2{%
  \begingroup\Verbatim@Input{#2}{\@BUseVerbatim[#1]}\endgroup}

%% END fancybox.sty


\usepackage{color}


\parindent 0em
\parskip 1.5ex plus0.5ex minus0.3ex

\slidewidth 250mm 
\slideheight 175mm 
\renewcommand{\slidetopmargin}{13mm}
\renewcommand{\slidebottommargin}{13mm}
\renewcommand{\slideheadfont}{\small}
\renewcommand{\slidefootfont}{\small}

\slidesmag{3}
\articlemag{2}

\newpagestyle{foliensty}%
   {\Kapitel \hfill \Titel}%
   {\Reihe \hfill \pageprefix\thepage}

\pagestyle{foliensty}

\slideframe{Oval}

\def\copyrightline{\copyright{} Lehrstuhl f\"ur Programmiersprachen,
   Universit\"at Erlangen-N\"urnberg}
\newcommand{\Copyright}[1]{\def\copyrightline{#1}}

\newcommand{\heading}[1]{%
  \begin{center}
    \Large\bf
    \shadowbox{#1}%
  \end{center}
  \vspace{1ex minus 1ex}}

\newcommand{\BF}[1]{{\bf #1:}\hspace{1em}\ignorespaces}

\newenvironment{folie}[1]{\def\Titel{#1}\begin{slide*}}{\end{slide*}}
\newcommand{\Folien}[3]{\def\Reihe{#1}\def\Kapitel{#2}\def\pageprefix{#3}}

\newenvironment{itemlist}[1]%
{\begin{list}{}%
     {\settowidth{\labelwidth}{#1}
     \setlength{\leftmargin}{\labelwidth}
     \addtolength{\leftmargin}{\labelsep}
     \rightmargin0em
     \parsep 0.5ex plus 0.3ex minus 0.3ex
     \itemsep 0.3ex
     \renewcommand{\makelabel}[1]{##1\hfill}}}%
{\end{list}}

\newenvironment{itemtext}[1]{\begin{itemlist}{#1}\item[#1]}{\end{itemlist}}


\definecolor{white}{gray}{1}
\definecolor{lightshaded}{gray}{0.9}
\definecolor{shaded}{gray}{0.75}
\definecolor{darkshaded}{gray}{0.65}

\newcommand{\shadedbox}[3]{\colorbox{#1}{\parbox{#2}{#3}}}
\newcommand{\plainbox}[2]{{\fboxrule0em \fbox{\parbox{#1}{#2}}}}
\def\shaded#1#2{
  \shadedbox{lightshaded}{17\semcm}{
    \begin{itemtext}{{\bf #1}}
      #2
    \end{itemtext}
    }
  }

\def\folgt{\mbox{$\Rightarrow$}}
\def\impl{$\Rightarrow$}
\def\density#1{\renewcommand{\baselinestretch}{#1}\small\normalsize}

\endinput
%%
%% END `seminar.cls'.

