2 \def\filedate{1996/05/23}
4 %% IMMD-II-Folien-Style
6 %% Extension of the seminar style
8 %% Mark Minas, May 1996
10 \NeedsTeXFormat{LaTeX2e}
11 \ProvidesClass{immd2-folien}[\filedate, \fileversion]
12 \def\test@member#1#2{%
13 \edef\@tempg{,#2,#1,}%
14 \edef\@temph{####1,#1,}%
15 \expandafter\def\expandafter\@temph\@temph##2\@nil{%
17 \ifx\@tempg\@empty\@testfalse\else\@testtrue\fi}%
18 \expandafter\@temph\@tempg\@nil}
19 \def\addto@hook#1#2{#1\expandafter{\the#1#2}}
20 \@ifundefined{reset@font}{\def\reset@font{\normalsize\rm}}{}
21 \def\@seminarerr#1#2{%
22 \edef\@tempc{#2}\expandafter\errhelp\expandafter{\@tempc}%
23 \typeout{^^JSeminar.sty error.\space\space\space
24 Type \space H <return> \space for immediate help.^^J}%
26 \def\notslide@err#1{\message{Cannot use \string#1 in slide environments}}
27 \def\new@slidebox{\alloc@4\box\chardef\insc@unt}
28 \newdimen\slidewidth \slidewidth 8.5in
29 \newdimen\slideheight \slideheight 6.3in
32 \def\addto@preamblecmds#1{%
34 \def\do{\noexpand\do\noexpand}%
35 \xdef\@preamblecmds{\@preamblecmds\do#1}%
37 \addto@preamblecmds{\addto@preamblecmds\do\@preamblecmds}
38 \def\sem@temp#1{\@ifundefined{if#1}%
39 {\def\@tempa{\csname newif\endcsname}
40 \expandafter\@tempa\csname if#1\endcsname}{}}
42 \sem@temp{slidesonly}{}
44 \sem@temp{notesonly}{}
45 \sem@temp{notesonlystar}{}
48 \DeclareOption{article}{\articletrue}
49 \DeclareOption{noxcomment}{\def\xcomment@hook{}}
50 \DeclareOption{slidesonly}{\slidesonlytrue\notesfalse\notesonlyfalse}
51 \DeclareOption{notes}{\notestrue\slidesonlyfalse\notesonlyfalse}
52 \DeclareOption{notesonly}{\notesonlytrue\slidesonlyfalse\notesfalse}
53 \DeclareOption{notesonly*}{%
54 \notesonlytrue\slidesonlyfalse\notesfalse\notesonlystartrue}
55 %\DeclareOption{portrait}{\portraittrue}
62 \slideheight 152mm\relax}
63 \DeclareOption{a4paper}{\ds@a4}%
64 \DeclareOption{semrot}{\AtEndOfClass{\input{semrot.sty}}}
65 %\DeclareOption{semhelv}{\AtEndOfClass{\input{semhelv.sty}}}
66 \DeclareOption{semcolor}{\AtEndOfClass{\input{semcolor.sty}}}
67 \DeclareOption{semlcmss}{\AtEndOfClass{\input{semlcmss.sty}}}
68 \DeclareOption{slidesec}{\AtEndOfClass{\input{slidesec.sty}}}
69 \DeclareOption{semlayer}{\AtEndOfClass{\input{semlayer.sty}}}
70 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
72 \ifnotesonly\else\notesonlystarfalse\fi
73 \newdimen\footheight % seminar.sty v1.0 uses it, but its not in LaTeX2e.
74 % Don't want these changed by article.cls:
75 \let\sem@paperheight\paperheight
76 \let\sem@paperwidth\paperwidth
77 \let\paperheight\footheight
78 \let\paperwidth\footheight
80 \let\paperheight\sem@paperheight
81 \let\paperwidth\sem@paperwidth
83 %% begin former sem-page.sty
85 \def\slideleftmargin{.6in}
86 \def\sliderightmargin{.6in}
87 \def\slidetopmargin{.6in}
88 \def\slidebottommargin{.6in}
98 \textheight\paperwidth\relax
99 \advance\textheight -1in
100 \advance\textheight -\headsep
101 \advance\textheight -\headheight
102 \advance\textheight -\footskip
103 \advance\textheight -\footheight
104 \advance\textheight -.5in
105 \textwidth\paperheight\relax
106 \advance\textwidth by -2in
117 \oddsidemargin\paperwidth\relax
118 \advance\oddsidemargin -\textwidth
119 \divide\oddsidemargin 2
120 \advance\oddsidemargin -1in
121 \evensidemargin\oddsidemargin
123 \advance\oddsidemargin -18pt
124 \advance\evensidemargin 18pt
131 \textheight\paperheight\relax
132 \advance\textheight -1in
133 \advance\textheight -\topmargin
134 \advance\textheight -\headsep
135 \advance\textheight -\headheight
136 \advance\textheight -\footskip
137 \advance\textheight -.5in
145 \textwidth\paperwidth\relax
146 \textheight\paperheight\relax
148 \textwidth\paperheight\relax
149 \textheight\paperwidth\relax
151 \advance\textwidth by -2in
155 \advance\textheight by -2in
161 \newtoks\before@document
162 \newtoks\after@document
163 \let\xcomment@hook\relax
164 \before@document{\endgroup\the\before@document\begingroup}
165 \after@document{\the\after@document\xcomment@hook}
166 \expandafter\@temptokena\expandafter{\document}
167 \edef\document{\the\before@document\the\@temptokena\the\after@document}
170 \newtoks\before@enddocument
171 \before@enddocument{\the\before@enddocument}
172 \expandafter\@temptokena\expandafter{\enddocument}
173 \edef\enddocument{\the\before@enddocument\the\@temptokena}
174 \before@enddocument{}
175 \newif\ifprintlandscape
177 \ifarticle\printlandscapetrue\fi
179 \ifarticle\else\printlandscapetrue\fi
181 \addto@hook\before@document{\ifprintlandscape\printlandscape\fi}
182 \addto@preamblecmds{\printlandscape}
183 \def\printlandscape{\addto@hook\before@enddocument{%
185 *******************************************************^^J%
186 ***** !! PRINT THIS DOCUMENT IN LANDSCAPE MODE !! *****^^J%
187 *******************************************************}}}
189 \NestedSlide@Error{slide}%
191 \@ifnextchar[{\begin@slide}{\begin@slide[\slidewidth,\slideheight]}}
192 \def\endslide{\end@slide}
194 \NestedSlide@Error{slide*}%
196 \@ifnextchar[{\begin@slide}{\begin@slide[\slidewidth,\slideheight]}}%
197 \@namedef{endslide*}{\end@slide}
199 \def\theslide{\arabic{slide}}
200 \newcount\slide@count
205 \def\@landscapeonly{0}
206 \def\landscapeonly{\def\@landscapeonly{1}}
207 \def\portraitonly{\def\@landscapeonly{-1}}
208 \def\NestedSlide@Error#1{%
211 \@seminarerr{Nested slide environments. Perhaps missing
212 \string\end{\@currenvir}. May be fatal}\@ehd
213 \expandafter\end\expandafter{\@currenvir}%
214 \ifslide\expandafter\end\expandafter{\@currenvir}\fi
218 \def\begin@slide[#1,#2]{%
220 \setlength\slidewidth{#1}%
221 \setlength\slideheight{#2}%
226 \global\setbox\not@slidebox\box\@cclv}%
227 \par\@@par\penalty-\@M
229 \output{\slide@output}%
231 \ifarticle\global\slide@count=\z@\fi
232 \refstepcounter{slide}%
233 \ifnotesonlystar\xdef\first@slidemarker{\the\c@slide}\fi
234 \def\do##1{\setcounter{##1}\z@}\slide@reset
236 \edef\page@textheight{\number\textheight sp}%
237 \edef\page@textwidth{\number\textwidth sp}%
246 \xdef\@tempg{\@currenvir}%
249 \@seminarerr{Perhaps missing `\string\end{\@tempg}',
250 \iffalse{\fi`\string}' or `\string\endgroup'}\@ehd
251 \def\next{\endgroup\ifslide\expandafter\next\fi}%
255 \output{\setbox\@tempboxa\box\@cclv}%
258 \global\advance\c@slide-1
259 \def\do##1{\setcounter{##1}{\@nameuse{saved@c@##1}}}%
261 \ifarticle\outputloop@savedslides\fi
263 \let\slideclearpagetrue\relax
264 \let\slideclearpagefalse\relax
266 \def\slide@clearpage{\par\penalty\z@}
268 \def\slideclearpagetrue{\def\slide@clearpage{\clearpage}}
269 \def\slideclearpagefalse{\def\slide@clearpage{\par\penalty\z@}}
272 \def\slideclearpagetrue{\def\slide@clearpage{\clearpage}}
273 \def\slideclearpagefalse{\def\slide@clearpage{\par\penalty\z@}}
277 \def\slide@clearpage{\clearpage}
282 \def\slidebox@restore{%
283 \def\thepage{\theslide}%
284 \def\newpage{\newslide}%
285 \def\clearpage{\newslide}%
286 \def\thispagestyle##1{\notslide@err{\thispagestyle}}%
287 \pagestyle{\slide@pagestyle}%
289 \def\twocolumn{\notslide@err{\twocolumn}}%
290 \def\onecolumn{\notslide@err{\onecolumn}}%
291 \def\marginpar##1{\notslide@err{\marginpar}}%
292 \def\thanks{\slidethanks}%
293 \def\maketitle{\slidemaketitle}%
297 \def\do##1{\expandafter\xdef\csname
298 saved@c@##1\endcsname{\the\@nameuse{c@##1}}}%
300 \topskip\z@ \maxdepth\z@
301 \slide@listparameters
303 \def\baselinestretch{\slidestretch}%
304 \def\arraystretch{\slidearraystretch}%
305 \sem@ptsize{\slide@ptsize}}
306 \def\date#1{\gdef\@date{#1}\gdef\thedate{#1}}
307 \def\author#1{\gdef\@author{#1}\gdef\theauthor{#1}}
308 \def\title#1{\gdef\@title{#1}\gdef\thetitle{#1}}
310 \let\slidethanks\thanks
311 \def\thethanks{\@thanks}%
312 \def\slidemaketitle{%
315 {\large \thetitle}\par\vskip 1ex
316 \begin{tabular}[t]{c} \theauthor \end{tabular}\par\vskip 1ex
321 \def\@xfloat##1[##2]{%
322 \expandafter\let\csname end##1\endcsname\end@float
323 \par\medskip\vbox\bgroup\def\@captype{##1}\parindent\z@
325 \def\end@float{\par\vskip\z@\egroup\medskip}%
326 \def\@dblfloat{\@float}\def\end@dblfloat{\end@float}%
327 \def\endfigure{\end@float}\def\endtable{\end@float}}
328 \let\normal@write\write
329 \let\normal@read\read
330 \let\normal@openout\openout
331 \let\normal@closeout\closeout
333 \def\write{\immediate\normal@write}%
334 \def\read{\immediate\normal@read}%
335 \def\openout{\immediate\normal@openout}%
336 \def\closeout{\immediate\normal@closeout}}
337 \newinsert\slide@footins
338 \skip\slide@footins=\bigskipamount
339 \count\slide@footins=1000
340 \dimen\slide@footins=4in
341 \def\theslidefootnote{\alph{footnote}}
342 \def\slide@footnotes{%
343 \def\thefootnote{\theslidefootnote}%
344 \let\footins\slide@footins
345 \interfootnotelinepenalty\@M}
347 \def\slidestretch{1.18}
348 \def\slidearraystretch{1.2}
349 \def\raggedslides{\@ifnextchar[{\@raggedslides}{\@raggedslides[1fil]}}
350 \def\@raggedslides[#1]{%
351 \edef\slide@@rightskip{#1}%
352 \ifslide\slide@rightskip\fi}
353 \def\slide@rightskip{%
354 \@rightskip\z@ plus \slide@@rightskip\relax \rightskip\@rightskip}
355 \def\slide@@rightskip{1fil}
356 \newcount\slide@listdepth
357 \def\slide@listparameters{%
358 \let\@listdepth\slide@listdepth
360 \def\@listi{\slide@listi}%
361 \def\@listii{\slide@listii}%
362 \def\@listiii{\slide@listiii}%
363 \let\@listiv\relax\let\@listv\relax\let\@listvi\relax}
365 \leftmargin\leftmargini
366 \labelwidth\leftmargini \advance\labelwidth-\labelsep
367 \parsep\parskip \divide\parsep2
368 \partopsep\slidepartopsep\relax
369 \advance\partopsep-\parskip
370 \ifdim\partopsep<\z@\partopsep\z@\fi
371 \itemsep\slideitemsep\relax
372 \ifdim\parsep<\itemsep
373 \topsep\itemsep \advance\topsep-\parsep
375 \itemsep\parsep \topsep\z@
378 \leftmargin\leftmarginii
379 \labelwidth\leftmarginii \advance\labelwidth-\labelsep
380 \divide\itemsep2 \divide\parsep2
381 \divide\topsep2 \divide\partopsep2\relax}%
383 \leftmargin\leftmarginiii
384 \labelwidth\leftmarginiii \advance\labelwidth-\labelsep
385 \itemsep \z@ \parsep\z@ \topsep\z@}%
386 \def\slideleftmargini{1.8em}
387 \def\slideleftmarginii{1.4em}
388 \def\slideleftmarginiii{1em}
389 \def\slidelabelsep{.5em}
390 \def\slideitemsep{.8ex minus .2ex}
391 \def\slidepartopsep{1ex minus .2ex}
392 \newbox\saved@specials
393 \def\save@slidespecials{%
396 \global\setbox\saved@specials=\box\@cclv
397 \global\wd\saved@specials=\z@
398 \global\dp\saved@specials=\z@
399 \global\ht\saved@specials=\z@}%
401 \global\let\saved@texttop\@texttop
403 \ifvoid\saved@specials\else\box\saved@specials\nointerlineskip\fi
405 \global\let\@texttop\saved@texttop}%
407 \addto@hook\after@document{\save@slidespecials}
409 \def\insert@specials{%
410 \ifvoid\saved@specials\else
411 \setbox\@slidebox\hbox{\box\saved@specials\box\@slidebox}%
413 \global\let\insert@specials\relax}
415 \def\extraslideheight#1{%
417 \edef\X@SlideHeight{\number\@tempdima sp}
418 \ifslide\set@slidesize\fi}
419 \extraslideheight{6pt}
422 \hsize=\inverseslidesmag\slidewidth
423 \vsize=\inverseslidesmag\slideheight
425 \hsize=\inverseslidesmag\slideheight
426 \vsize=\inverseslidesmag\slidewidth
428 \edef\slide@vsize{\number\vsize sp}%
430 \advance\vsize\X@SlideHeight\relax
431 \textwidth\hsize\columnwidth\hsize\linewidth\hsize}
434 \def\do##1{\setcounter{##1}\z@}\slide@reset
437 \newtoks\before@newslide
438 \def\slide@reset{\do{footnote}}
439 \def\slidereset#1{\def\slide@reset{}\addtoslidereset{#1}}
440 \def\addtoslidereset#1{%
441 \edef\@tempa{#1}\expandafter\addto@slidereset\@tempa,\@nil,}
442 \def\addto@slidereset#1,{%
445 {\@seminarerr{Counter `#1' not defined}\@ehd}%
446 {\expandafter\def\expandafter\slide@reset\expandafter{%
447 \slide@reset\do{#1}}}%
448 \expandafter\addto@slidereset
455 \ifnum\@landscapeonly>-1 \os@test\fi
457 \ifnum\@landscapeonly<1 \os@test\fi
465 \refstepcounter{slide}}
466 \def\reset@slideoutput{%
469 \def\baselinestretch{1}%
470 \@nameuse{1\@ptsize @semptsize}%
472 \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii}
473 \newif\ifcenterslides
476 \setbox\@slidebox\vbox{%
478 \ifvoid\slide@footins\else
479 \vskip\skip\slide@footins
481 \unvbox\slide@footins
485 \overfullslide@warning
486 \setbox\@slidebox\hbox{%
487 \vfuzz=\slidefuzz\relax
488 \vbox to\slide@vsize{%
489 \ifcenterslides\vskip\z@ plus .0001fil \fi
491 \vskip\z@ plus .0001fil}%
492 \the\after@slidepage}%
493 \wd\@slidebox\textwidth}
494 \def\overfullslide@warning{%
496 \advance\dimen@-\slide@vsize\relax
497 \ifdim\dimen@>\slidefuzz\relax
498 \@warning{Slide \theslide\space overfull by \the\dimen@}%
501 \newtoks\after@slidepage
502 \newif\ifrotateheaders
503 \def\sliderotation#1{\@ifundefined{semsr@#1}%
504 {\@latexerr{Slide rotation `#1' not defined.}\@eha}%
505 {\@nameuse{semsr@#1}}}
508 \setbox\@slidebox\hbox{\leftsliderotation{\box\@slidebox}}}}
511 \setbox\@slidebox\hbox{\rightsliderotation{\box\@slidebox}}}}
512 \def\semsr@none{\let\rotate@slide\relax}
514 \def\leftsliderotation#1{%
515 \@seminarerr{\string\leftsliderotation\space has not been defined}%
517 \let\rightsliderotation\leftsliderotation
518 \def\@ifrotateslide#1{%
519 \ifx\rotate@slide\relax\else
520 \iflandscape\ifportrait#1\fi\else\ifportrait\else#1\fi\fi
523 \slideframewidth=\inverseslidesmag\slideframewidth
524 \slideframesep=\inverseslidesmag\slideframesep
525 \fboxrule\slideframewidth
526 \fboxsep\slideframesep
528 \@ifrotateslide\rotate@slide
530 \ifrotateheaders\else\@ifrotateslide\rotate@slide\fi
533 \def\process@@slide{\finish@slide\output@slide}
536 \add@slidelabel\slidelabel}
539 \global\advance\slide@count1
540 \@ifundefined{slidebox@\the\slide@count}%
541 {{\globaldefs=1\expandafter
542 \new@slidebox\csname slidebox@\the\slide@count\endcsname}}{}%
543 \expandafter\global\expandafter\setbox\csname
544 slidebox@\the\slide@count\endcsname\box\@slidebox}
548 \hoffset=-\inverseslidesmag in
549 \voffset=-\inverseslidesmag in
550 \setslidelength\@tempdima{%
551 \ifportrait\paperwidth\else\paperheight\fi}
552 \setslidelength\@tempdimb{%
553 \ifportrait\paperheight\else\paperwidth\fi}
557 \@tempdima=\@tempdimb
560 % \oddsidemargin, \evensidemargin, \headheight, \footheight
562 \setslidelength\oddsidemargin\slideleftmargin
563 \setslidelength\evensidemargin\sliderightmargin
564 \setslidelength\headheight\slidetopmargin
565 \setslidelength\footheight\slidebottommargin
566 % Some page styles like to know \textwidth:
567 \textwidth=\@tempdima
568 \advance\textwidth-\oddsidemargin
569 \advance\textwidth-\evensidemargin
570 \setbox\@slidebox=\hbox to \@tempdima{%
573 \ifnum\fancyput@flag>-1
574 \hbox{\kern-\oddsidemargin\do@fancyput}%
578 \let\glossary\@gobble
579 \vbox to\headheight{%
582 \slideheadfont\relax\strut
583 \hbox to\textwidth{\@oddhead}}%
586 \hbox to\textwidth{\hss\box\@slidebox\hss}%
588 \vbox to\footheight{%
590 \slidefootfont\relax\strut
591 \hbox to\textwidth{\@oddfoot}}%
594 \ifrotateheaders\@ifrotateslide\rotate@slide\fi
596 \shipout\box\@slidebox
598 \let\firstmark\botmark}
599 \@ifundefined{fancyput@flag}{\def\fancyput@flag{-1}}{}
604 \def\fps@fslide{htbp}
605 \def\ftype@fslide{32}
606 \def\float@savedslide{%
607 \begingroup\@float{fslide}%
608 \centerline{\box\@slidebox}%
609 \end@float\endgroup}%
610 \@namedef{float*@savedslide}{%
611 \begingroup\@dblfloat{fslide}%
612 \centerline{\box\@slidebox}%
613 \end@dblfloat\endgroup}%
614 \def\center@slide{\hbox{%
615 \kern-\@totalleftmargin
616 \hbox to \columnwidth{\hss\box\@slidebox\hss}}}%
617 \def\onepercol@savedslide{%
618 \vbox to .996\textheight{\vss\center@slide\vss}\goodbreak}%
619 \def\twopercol@savedslide{%
621 \advance\dimen@-\slidesep
622 \ifdim\ht\@slidebox>\dimen@
623 \onepercol@savedslide
625 \vbox to .498\textheight{\vss\center@slide\vss}\goodbreak
627 \def\here@savedslide{%
628 \addvspace\slidesep\center@slide\addvspace\slidesep}
629 \@namedef{here*@savedslide}{%
630 \goodbreak \hrule \@height\z@ \nobreak \vskip\slidesep \nobreak
632 \nobreak \vskip\slidesep \nobreak \hrule\@height\z@ \goodbreak}
635 \def\slideplacement#1{\@ifundefined{#1@savedslide}%
636 {\@seminarerr{Slide placement `#1' undefined}\@ehd}%
637 {\expandafter\let\expandafter\output@savedslide
638 \csname #1@savedslide\endcsname}}
640 \def\slideplacement#1{}
645 \slideplacement{float}
647 \slideplacement{float*}
651 \slideplacement{onepercol}
653 \slideplacement{twopercol}
658 \def\outputloop@savedslides{%
659 \global\maxdepth\@maxdepth
660 \ifvoid\not@slidebox\else
661 \dimen@=\dp\not@slidebox
667 \edef\slide@@count{\the\slide@count\relax}%
670 \ifnum\slide@count<\slide@@count
671 \advance\slide@count1
672 \expandafter\setbox\expandafter\@slidebox\expandafter\box
673 \csname slidebox@\the\slide@count\endcsname
676 \ifnotesonlystar\make@slidemarker\fi}
678 \def\make@slidemarker{%
680 \moveleft\@totalleftmargin
685 \hbox to \columnwidth{%
687 \LARGE\bf\the@slidemarker
692 \def\the@slidemarker{%
694 \ifnum\c@slide=\first@slidemarker\else
695 s {\c@slide\first@slidemarker\relax\theslide} --\fi
700 \def\thenote{\thepage}
703 \def\thenote{\theslide-\arabic{note}}
704 \def\thepage{\thenote}
705 \addto@hook\after@slide{\setcounter{note}{1}}
706 \expandafter\def\expandafter\@outputpage\expandafter{%
707 \@outputpage\stepcounter{note}}
716 \let\truepagenumbers\relax
718 \def\truepagenumbers{%
723 \let\truepagenumbers\relax}
725 \addto@preamblecmds{\truepagenumbers}
726 \newdimen\slideframewidth \slideframewidth 4pt
727 \newdimen\slideframesep \slideframesep .3in
728 \def\newslideframe#1{%
729 \@ifnextchar[{\@newslideframe{#1}}{\@newslideframe{#1}[]}}
730 \def\@newslideframe#1[#2]{%
731 \@namedef{semsfops@#1}{#2}%
732 \@namedef{semsf@#1}##1}
733 \newslideframe{plain}{\fbox{#1}}
734 \def\slideframe{\@slideframe{slide}}
736 \@ifstar{\@testtrue\@@slideframe{#1}}{\@testfalse\@@slideframe{#1}}}
737 \def\@@slideframe#1{%
738 \@ifnextchar[{\@@@slideframe{#1}}{\@@@slideframe{#1}[]}}
739 \def\@@@slideframe#1[#2]#3{%
743 \@namedef{the#1frame}{\relax}%
746 \@namedef{the#1frame}{}%
748 \@ifundefined{semsf@#3}%
749 {\@seminarerr{Slide frame `#3' undefined}\@eha}%
751 \@@@@slideframe{#1}[#2]{#3}%
753 \@namedef{the#1frame}{\setbox\@slidebox=\hbox{{%
754 \@nameuse{semsfops@#3}#2\@nameuse{semsf@#3}{\box\@slidebox}}}}%
758 \def\@@@@slideframe#1[#2]#3{%
759 \expandafter\let\expandafter\@tempa\csname the#1frame\endcsname
761 \noexpand\def\expandafter\noexpand\csname the#1frame\endcsname}%
762 \expandafter\next\expandafter{\@tempa
763 \setbox\@slidebox=\hbox{{%
764 \@nameuse{semsfops@#3}%
766 \@nameuse{semsf@#3}{\box\@slidebox}}}}}%
768 \def\slidestyle#1{\@ifundefined{ss@#1}%
769 {\@seminarerr{Slide style `#1' undefined}\@eha}%
771 \def\ss@empty{\let\add@slidelabel\@gobble}
772 \def\ss@left{\def\add@slidelabel##1{%
773 \setbox\@slidebox=\hbox{%
774 \vbox to \ht\@slidebox{\vss
775 \hbox to 0pt{\hss##1\hskip 15pt}%
776 \vss}\box\@slidebox}}}
777 \def\ss@bottom{\def\add@slidelabel##1{%
778 \setbox\@slidebox=\vbox{\copy\@slidebox\vskip 9pt
779 \hbox to\wd\@slidebox{\hss##1\hss}}}}%
781 \ifportrait\slidestyle{bottom}\else\slidestyle{left}\fi
785 \def\slidelabel{\bf Slide \theslide}
786 \def\newpagestyle#1#2#3{%
787 \expandafter\newcommand\csname ps@#1\endcsname{%
788 \def\@oddhead{#2}\let\@evenhead\@oddhead
789 \def\@oddfoot{#3}\let\@evenfoot\@oddfoot}}
790 \def\renewpagestyle#1#2#3{%
791 \expandafter\renewcommand\csname ps@#1\endcsname{%
792 \def\@oddhead{#2}\let\@evenhead\@oddhead
793 \def\@oddfoot{#3}\let\@evenfoot\@oddfoot}}
795 \@ifundefined{ps@#1}{\@seminarerr{Page style `#1' undefined}\@eha}}
796 \def\slidepagestyle#1{%
798 {\ifslide\pagestyle{#1}\else\edef\slide@pagestyle{#1}\fi}}
805 \def\@oddhead{\thepage\hfil+}\let\@evenhead\@oddhead
806 \def\@oddfoot{+\hfil+}\let\@evenfoot\@oddfoot}
808 \def\slideheadfont{\scriptsize}
809 \def\slidefootfont{\scriptsize}
810 \def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or
811 2074\or 2488\or 2986\or 3583\or 4300\or 5160\fi\relax}
812 \def\magstepminus#1{%
813 \ifcase#1 \@m\or 833\or 694\or 579\or 482\or 401\fi\relax}
815 \ifnum#1<\z@\magstepminus{-#1}\else\magstep#1\fi}
816 {\catcode`\p=12\catcode`\t=12
817 \gdef\@@inv@@mag#1pt#2{\def#2{#1}}}
818 \def\invert@mag#1{\@tempdima=1000pt
819 \divide\@tempdima by #1\relax
820 \expandafter\@@inv@@mag\the\@tempdima#1}
824 \edef\inverseslidesmag{\the\@tempcnta}%
825 \invert@mag\inverseslidesmag
826 \ifarticle\else\mag\@tempcnta\fi
828 \@seminarerr{\string\@slidesmag\space argument must be an
829 integer equal to 1000 times the magnification}\@eha
834 \edef\inverseartmag{\the\@tempcnta}%
835 \invert@mag\inverseartmag
836 \ifarticle\mag\@tempcnta\fi
838 \@seminarerr{\string\articlemag\space argument must be an
839 integer equal to 1000 times the magnification}\@eha
841 \addto@preamblecmds{\@slidesmag\do\@articlemag}
845 \@seminarerr{\string#1 argument must be an integer
846 between -5 and 9}\@eha}
851 \edef\the@slidesmag{\the\@tempcnta}%
852 \@slidesmag{\@magstep\@tempcnta}%
854 \@semmagerr\slidesmag
857 \@semmagerr\slidesmag
859 \setslidelength\semin\seminlength
860 \setslidelength\semcm\semcmlength}
861 \def\seminlength{1in}
862 \def\semcmlength{1cm}
867 \edef\the@articlemag{\the\@tempcnta}%
868 \@articlemag{\@magstep\@tempcnta}%
870 \@semmagerr\articlemag
873 \@semmagerr\articlemag
875 \addto@preamblecmds{\slidesmag\do\articlemag}
876 \def\setslidelength#1#2{%
878 #1=\inverseslidesmag#1}%
879 \def\addtoslidelength#1#2{%
881 \advance#1 by \inverseslidesmag\dimen@}
882 \def\setartlength#1#2{%
885 \def\addtoartlength#1#2{%
887 \advance#1 by \inverseartmag\dimen@}
888 \def\slide@epsfsize#1#2{%
896 \inverseslidesmag\epsfxsize
906 \inverseslidesmag\epsfysize
908 \def\epsfslidesize{\let\epsfsize\slide@epsfsize}
911 \def\do@pageparameters{%
925 \def\scale@pageparameters{%
927 \def\do##1{\global##1=\inverseartmag##1\relax}%
931 \def\scale@pageparameters{%
933 \def\do##1{\global##1=\inverseslidesmag##1\relax}%
937 \addto@hook\before@document{\scale@pageparameters}
938 \addto@preamblecmds{\scale@pageparameters\do\do@pageparameters}
940 \let\endallversions\relax
941 \@namedef{allversions*}{\@bsphack\globaldefs=1}
942 \@namedef{endallversions*}{\@esphack}
943 \def\slide@list{slide,slide*,allversions,allversions*}
944 \def\addtoslidelist#1{\xdef\slide@list{\slide@list,#1}}
945 \addto@preamblecmds{\addtoslidelist}
947 \@ifundefined{xcomment@@@}{\@@input xcomment.sty }{}
948 \def\xcomment@hook{\@xcomment{@@@}{\slide@list}}
951 \def\note{\@bsphack}%
952 \def\endnote{\@esphack}%
954 \def\noxcomment{\def\xcomment@hook{}}
957 \def\onlyslides#1{\def\os@list{#1}\@ostrue
958 \def\os@warning{\@warning{\string\onlyslides\space argument
959 contains undefined references}}}
960 \def\notslides#1{\def\os@list{#1}\@osfalse
961 \def\os@warning{\@warning{\string\notslides\space argument
962 contains undefined references}}}
963 \addto@preamblecmds{\onlyslides\do\notslides}
964 \addto@hook\after@document{%
965 \ifx\os@list\@empty\else\os@expandlist\fi}
967 \let\os@@warning\relax
969 \def\ref##1{\@ifundefined{r@##1}{?}%
970 {\noexpand\@car\@nameuse{r@##1}\noexpand\@nil}}%
971 \edef\@tempd{\os@list}%
973 \@for\@tempc:=\@tempd
974 \do{\expandafter\os@expandrange\@tempc-:-:\@nil}%
977 \let\os@expandrange\relax
978 \let\os@checknum\relax
979 \let\os@expandlist\relax}
980 \def\os@expandrange#1-#2-#3\@nil{%
981 \def\@tempa{?}\def\@tempb{#1}%
983 \let\os@@warning\os@warning
988 \let\os@@warning\os@warning
992 \@tempcntb=\@tempcnta
996 \advance\@tempcnta by -1
997 \advance\@tempcntb by 1
999 \xdef\os@list{\the\@tempcnta+\the\@tempcntb}%
1001 \xdef\os@list{\os@list,\the\@tempcnta+\the\@tempcntb}%
1008 \ifnum\@landscapeonly=-1 \@testfalse\fi
1010 \ifnum\@landscapeonly=1 \@testfalse\fi
1013 \ifx\os@list\@empty\else
1014 \if@os\@testfalse\fi
1015 \@for\@tempa:=\os@list\do{\expandafter\os@testrange\@tempa\@nil}%
1018 \def\os@testrange#1+#2\@nil{%
1021 \if@os\@testtrue\else\@testfalse\fi
1025 \ifnotes\@testtrue\else\ifnotesonly\@testtrue\else\@testfalse\fi\fi
1027 \@ifundefined{xcomment@@@}{%
1028 \edef\sem@temp{\the\catcode`\@}%
1030 \@@input xcomment.sty
1031 \catcode`\@=\sem@temp\relax}{}%
1032 \def\xcomment@hook{\@xcomment{@@@}{\slide@list}}%
1033 \addto@hook\after@slide\onlynotes@too
1035 \def\onlynotes@too{%
1037 \if@test\gdef\do@end{}\else\gdef\do@end{\xc@begin}\fi}
1038 \addto@preamblecmds\onlynotestoo
1040 \@ifundefined{#1@semptsize}%
1041 {\@seminarerr{\string\ptsize\space `#1' not valid.}\@eha}%
1043 \sem@ptsize{#1}\large\normalsize
1045 \edef\slide@ptsize{#1}%
1047 \edef\slide@ptsize{1\@ptsize}%
1048 \def\slidefontsizes{\ptsize} %For backwards compatibility??
1049 \def\slide@setsize#1#2#3#4{%
1050 \@setsize{#1}{#2}{#3}{#4}%
1052 \def\slide@@setsize#1#2#3#4{%
1053 \slide@setsize{#1}{#2}{#3}{#4}\slidedisplayskips}
1054 \def\set@slideskip#1{%
1055 \normallineskiplimit=#1
1056 \advance\normallineskiplimit-\normalbaselineskip
1057 \multiply\normallineskiplimit-1
1058 \normallineskiplimit\slideskip\normallineskiplimit
1059 \ifdim\normallineskiplimit<1pt\normallineskiplimit=1pt\fi
1060 \normallineskip=\normallineskiplimit
1061 minus \slideshrink\normallineskiplimit
1062 \dimen@=\normalbaselineskip
1063 \normalbaselineskip=\dimen@ minus \slideshrink\normallineskiplimit
1066 \def\slideshrink{.25}
1067 \def\slidedisplayskips{%
1068 \abovedisplayskip 1.75ex minus .35ex
1069 \belowdisplayskip \abovedisplayskip
1070 \abovedisplayshortskip .2ex minus .2ex
1071 \belowdisplayshortskip 1ex minus .2ex}
1073 \@nameuse{#1@semptsize}%
1075 \leftmargini\slideleftmargini\relax
1076 \leftmarginii\slideleftmarginii\relax
1077 \leftmarginiii\slideleftmarginiii\relax
1078 \labelsep\slidelabelsep\relax
1079 \parskip\slideparskip\relax
1080 \parindent\slideparindent\relax
1083 \skip\footins\slidefootins\relax
1084 \footnotesep\slidefootnotesep\relax}
1085 \def\slidefootins{2ex minus .8ex}
1086 \def\slidefootnotesep{1.2ex}
1087 \def\slideparindent{\z@}
1088 \def\slideparskip{1ex minus .2ex}
1089 \@namedef{8@semptsize}{%
1090 \def\@normalsize{\slide@@setsize\normalsize{9.5pt}\viiipt\@viiipt}%
1091 \def\small{\slide@@setsize\small{8pt}\viipt\@viipt}%
1092 \def\footnotesize{\slide@@setsize\footnotesize{8pt}\vipt\@vipt}%
1093 \def\scriptsize{\slide@setsize\scriptsize{7pt}\vipt\@vipt}%
1094 \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
1095 \def\large{\slide@setsize\large{12pt}\xpt\@xpt}%
1096 \def\Large{\slide@setsize\Large{14pt}\xiipt\@xiipt}%
1097 \def\LARGE{\slide@setsize\LARGE{17pt}\xivpt\@xivpt}%
1098 \def\huge{\slide@setsize\huge{20pt}\xviipt\@xviipt}%
1099 \def\Huge{\slide@setsize\Huge{25pt}\xxpt\@xxpt}}
1100 \@namedef{9@semptsize}{%
1101 \def\@normalsize{\slide@@setsize\normalsize{11pt}\ixpt\@ixpt}%
1102 \def\small{\slide@@setsize\small{9.5pt}\viiipt\@viiipt}%
1103 \def\footnotesize{\slide@@setsize\footnotesize{8pt}\viipt\@viipt}%
1104 \def\scriptsize{\slide@setsize\scriptsize{7pt}\vipt\@vipt}%
1105 \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
1106 \def\large{\slide@setsize\large{12pt}\xpt\@xpt}%
1107 \def\Large{\slide@setsize\Large{14pt}\xiipt\@xiipt}%
1108 \def\LARGE{\slide@setsize\LARGE{17pt}\xivpt\@xivpt}%
1109 \def\huge{\slide@setsize\huge{20pt}\xviipt\@xviipt}%
1110 \def\Huge{\slide@setsize\Huge{25pt}\xxpt\@xxpt}}
1111 \@namedef{10@semptsize}{%
1112 \def\@normalsize{\slide@@setsize\normalsize{12pt}\xpt\@xpt}%
1113 \def\small{\slide@@setsize\small{11pt}\ixpt\@ixpt}%
1114 \def\footnotesize{\slide@@setsize\footnotesize{9.5pt}\viiipt\@viiipt}%
1115 \def\scriptsize{\slide@setsize\scriptsize{8pt}\viipt\@viipt}%
1116 \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
1117 \def\large{\slide@setsize\large{14pt}\xiipt\@xiipt}%
1118 \def\Large{\slide@setsize\Large{18pt}\xivpt\@xivpt}%
1119 \def\LARGE{\slide@setsize\LARGE{22pt}\xviipt\@xviipt}%
1120 \def\huge{\slide@setsize\huge{25pt}\xxpt\@xxpt}%
1121 \def\Huge{\slide@setsize\Huge{30pt}\xxvpt\@xxvpt}}
1122 \@namedef{11@semptsize}{%
1123 \def\@normalsize{\slide@@setsize\normalsize{13.6pt}\xipt\@xipt}%
1124 \def\small{\slide@@setsize\small{12pt}\xpt\@xpt}%
1125 \def\footnotesize{\slide@@setsize\footnotesize{11pt}\ixpt\@ixpt}%
1126 \def\scriptsize{\slide@setsize\scriptsize{9.5pt}\viiipt\@viiipt}%
1127 \def\tiny{\slide@setsize\tiny{7pt}\vipt\@vipt}%
1128 \def\large{\slide@setsize\large{14pt}\xiipt\@xiipt}%
1129 \def\Large{\slide@setsize\Large{18pt}\xivpt\@xivpt}%
1130 \def\LARGE{\slide@setsize\LARGE{22pt}\xviipt\@xviipt}%
1131 \def\huge{\slide@setsize\huge{25pt}\xxpt\@xxpt}%
1132 \def\Huge{\slide@setsize\Huge{30pt}\xxvpt\@xxvpt}}
1133 \@namedef{12@semptsize}{%
1134 \def\@normalsize{\slide@@setsize\normalsize{14.5pt}\xiipt\@xiipt}%
1135 \def\small{\slide@@setsize\small{13.6pt}\xipt\@xipt}%
1136 \def\footnotesize{\slide@@setsize\footnotesize{12pt}\xpt\@xpt}%
1137 \def\scriptsize{\slide@setsize\scriptsize{9.5pt}\viiipt\@viiipt}%
1138 \def\tiny{\slide@setsize\tiny{7pt}\vipt\@vipt}%
1139 \def\large{\slide@setsize\large{18pt}\xivpt\@xivpt}%
1140 \def\Large{\slide@setsize\Large{22pt}\xviipt\@xviipt}%
1141 \def\LARGE{\slide@setsize\LARGE{25pt}\xxpt\@xxpt}%
1142 \def\huge{\slide@setsize\huge{30pt}\xxvpt\@xxvpt}%
1144 \@namedef{14@semptsize}{%
1145 \def\@normalsize{\slide@@setsize\normalsize{18pt}\xivpt\@xivpt}%
1146 \def\small{\slide@@setsize\small{14.5pt}\xiipt\@xiipt}%
1147 \def\footnotesize{\slide@@setsize\footnotesize{13.6pt}\xipt\@xipt}%
1148 \def\scriptsize{\slide@setsize\scriptsize{12pt}\xpt\@xpt}%
1149 \def\tiny{\slide@setsize\tiny{9.5pt}\viiipt\@viiipt}%
1150 \def\large{\slide@setsize\large{22pt}\xviipt\@xviipt}%
1151 \def\Large{\slide@setsize\Large{25pt}\xxpt\@xxpt}%
1152 \def\LARGE{\slide@setsize\LARGE{30pt}\xxvpt\@xxvpt}%
1155 \@namedef{17@semptsize}{%
1156 \def\@normalsize{\slide@@setsize\normalsize{22pt}\xviipt\@xviipt}%
1157 \def\small{\slide@@setsize\small{18pt}\xivpt\@xivpt}%
1158 \def\footnotesize{\slide@@setsize\footnotesize{14.5pt}\xiipt\@xiipt}%
1159 \def\scriptsize{\slide@setsize\scriptsize{13.6pt}\xipt\@xipt}%
1160 \def\tiny{\slide@setsize\tiny{12pt}\xpt\@xpt}%
1161 \def\large{\slide@setsize\large{25pt}\xxpt\@xxpt}%
1162 \def\Large{\slide@setsize\Large{30pt}\xxvpt\@xxvpt}%
1166 \def\twoup{\@ifnextchar[{\@twoup}{\@twoup[0]}}
1170 \@tempcnta=\the@articlemag\relax
1171 \@tempcntb=\@tempcnta
1172 \advance\@tempcntb by #1\relax
1173 \advance\@tempcntb by -2\relax
1174 \ifnum\@tempcntb>-6\relax
1176 \source{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
1177 \target{\@magstep\@tempcntb}{\paperwidth}{\paperheight}%
1178 \targetlayout{topbottom}%
1179 \printlandscapefalse
1181 \@seminarerr{Article magnification is too low for
1182 \string\twoup\space to handle}\@eha
1184 \def\articlemag##1{\@semtwoupmagerr\articlemag}}
1187 \@tempcnta=\the@articlemag\relax
1188 \@tempcntb=\@tempcnta
1189 \advance\@tempcntb by #1\relax
1190 \advance\@tempcntb by -2\relax
1191 \ifnum\@tempcntb>-6\relax
1193 \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}%
1194 \target{\@magstep\@tempcntb}{\paperheight}{\paperwidth}%
1196 \targetlayout{twosided}%
1200 \@seminarerr{Article magnification is too low for
1201 \string\twoup\space to handle}\@eha
1203 \def\articlemag##1{\@semtwoupmagerr\articlemag}}
1208 \@tempcnta=\the@slidesmag\relax
1209 \@tempcntb=\@tempcnta
1210 \advance\@tempcntb by #1\relax
1211 \advance\@tempcntb by -3\relax
1212 \ifnum\@tempcntb>-6\relax
1214 \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}%
1215 \advance\@tempcnta by -3
1216 \target{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
1219 \@seminarerr{Slides magnification is too low for
1220 \string\twoup\space to handle}\@eha
1222 \def\slidesmag##1{\@semtwoupmagerr\slidesmag}}
1225 \@tempcnta=\the@slidesmag\relax
1226 \@tempcntb=\@tempcnta
1227 \advance\@tempcntb by #1\relax
1228 \advance\@tempcntb by -3\relax
1229 \ifnum\@tempcntb>-6\relax
1231 \source{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
1232 \target{\@magstep\@tempcntb}{\paperwidth}{\paperheight}%
1233 \targetlayout{topbottom}%
1234 \printlandscapefalse
1236 \@seminarerr{Slides magnification is too low for
1237 \string\twoup\space to handle}\@eha
1239 \def\slidesmag##1{\@semtwoupmargerr\slidesmag}}%
1242 \def\@semtwoupmagerr#1{%
1243 \@seminarerr{\string#1 must come before \string\twoup}\@eha}
1244 \addto@preamblecmds{\twoup\do\@twoup}
1245 \openin1 seminar.con
1246 \ifeof1\else\closein1 \relax\@@input seminar.con\fi
1250 %% BEGIN semhelv.sty
1251 \def\fileversion{1.0 (2e)}
1252 \def\filedate{94/09/11}
1254 %% LaTeX style option `semhelv.sty' for the `seminar' document style.
1255 %% For use with the LaTeX v2.09 and the New Font Selection Scheme (1 or 2),
1256 %% or (some day) with LaTeX2e.
1258 %% COPYRIGHT 1994, by Timothy Van Zandt, tvz@Princeton.EDU
1259 %% See seminar.sty or seminar.doc for copying restrictions.
1261 %% ************************************************************************
1262 %% **** DESCRIPTION ****
1263 %% ************************************************************************
1265 % This file contains the external font information needed to load
1267 % the PostScript Helvetica fonts for use by seminar.sty.
1269 % You must have the New Font Selection Scheme (NFSS or NFSS2) or LaTeX2e.
1270 % The file npsfont.sty, which is distributed with seminar.sty, is also
1271 % required with NFSS (but not with NFSS2 or LaTeX2e).
1274 % As distributed, the following font file names are assumed for the
1275 % `standard' TeX encoding:
1278 % Helvetica-Oblique phvro
1279 % Helvetica-Bold phvb
1280 % Helvetica-BoldOblique phvbo
1283 % Courier-Oblique pcro
1284 % Courier-BoldOblique pcrbo
1286 % With the NFSS2 and LaTeX2e, you can also use the CORK encoding. The
1287 % assumed file names are as above, but with `q' appended to each name.
1289 % This means, e.g., that phvr.tfm or phvr.vf must be the name of the
1290 % TeX .tfm or .vf (virtual font) file for the PostScript Helvetica font.
1291 % See the documentation of your dvi-to-ps driver for information on using
1294 % Fonts are scaled so that the x-heights match those of the cmr fonts;
1295 % this makes in-line math look acceptable.
1297 % Note: The Courier font is not that great.
1300 \csname semhelv@loaded\endcsname
1301 \let\semhelv@loaded\endinput
1302 \@ifundefined{selectfont}
1303 {\@seminarerr{`semhelv' style option can only be used
1304 with the New Font Selection Scheme}\@eha\endinput}{}
1308 \expandafter\ifx\csname DeclareSizeFunction\endcsname\relax
1312 \@ifundefined{newpsfamily}{\input{npsfont.sty}}{}%
1314 % See npsfont.sty for the definition of \newpsfamily.
1316 \newpsfamily[.82]{helvetica}{
1317 {m}{n}{phvr}, %Helvetica
1318 {m}{it}{phvro}, %Helvetica-Oblique
1319 {m}{sl}{phvro}, %Helvetica-Oblique
1320 {bx}{n}{phvb}, %Helvetica-Bold
1321 {bx}{it}{phvbo}, %Helvetica-BoldOblique
1322 {bx}{sl}{phvbo}} %Helvetica-BoldOblique
1323 \newpsfamily[.82]{courier}{
1324 {m}{n}{pcrr}, %Courier
1325 {bx}{n}{pcrb}, %Courier-Bold
1326 {m}{it}{pcrro}, %Courier-Oblique
1327 {bx}{it}{pcrbo}} %Courier-BoldOblique
1329 % Use fonts or use \slidefonts:
1331 \renewcommand{\slidefonts}{%
1332 \renewcommand{\default@family}{helvetica}%
1333 \renewcommand{\rmdefault}{helvetica}%
1334 \renewcommand{\ttdefault}{courier}%
1335 \renewcommand{\sfdefault}{helvetica}%
1336 \family\default@family\selectfont}
1338 \renewcommand{\default@family}{helvetica}%
1339 \renewcommand{\rmdefault}{helvetica}%
1340 \renewcommand{\ttdefault}{courier}%
1341 \renewcommand{\sfdefault}{helvetica}%
1342 \family\default@family\selectfont
1347 % FOR NFSS2 OR LATEX2E:
1349 \def\helv@scale{.82}
1351 \DeclareFontFamily{T1}{helvetica}{}%
1352 \DeclareFontShape{T1}{helvetica}{m}{n}{<->s*[\helv@scale]phvrq}{}%
1353 \DeclareFontShape{T1}{helvetica}{m}{it}{<->s*[\helv@scale]phvroq}{}%
1354 \DeclareFontShape{T1}{helvetica}{m}{sc}{<->s*[\helv@scale]phvrcq}{}%
1355 \DeclareFontShape{T1}{helvetica}{b}{n}{<->s*[\helv@scale]phvbq}{}%
1356 \DeclareFontShape{T1}{helvetica}{b}{it}{<->s*[\helv@scale]phvboq}{}%
1357 \DeclareFontShape{T1}{helvetica}{m}{sl}{<->ssub * helvetica/m/it}{}%
1358 \DeclareFontShape{T1}{helvetica}{b}{sc}{<->sub * helvetica/m/sc}{}%
1359 \DeclareFontShape{T1}{helvetica}{b}{sl}{<->ssub * helvetica/b/it}{}%
1360 \DeclareFontShape{T1}{helvetica}{bx}{n}{<->ssub * helvetica/b/n}{}%
1361 \DeclareFontShape{T1}{helvetica}{bx}{it}{<->ssub * helvetica/b/it}{}%
1362 \DeclareFontShape{T1}{helvetica}{bx}{sc}{<->sub * helvetica/m/sc}{}%
1363 \DeclareFontShape{T1}{helvetica}{bx}{sl}{<->ssub * helvetica/b/it}{}%
1365 \DeclareFontFamily{OT1}{helvetica}{}%
1366 \DeclareFontShape{OT1}{helvetica}{m}{n}{<->s*[\helv@scale]phvr}{}%
1367 \DeclareFontShape{OT1}{helvetica}{m}{it}{<->s*[\helv@scale]phvro}{}%
1368 \DeclareFontShape{OT1}{helvetica}{m}{sc}{<->s*[\helv@scale]phvrc}{}%
1369 \DeclareFontShape{OT1}{helvetica}{b}{n}{<->s*[\helv@scale]phvb}{}%
1370 \DeclareFontShape{OT1}{helvetica}{b}{it}{<->s*[\helv@scale]phvbo}{}%
1371 \DeclareFontShape{OT1}{helvetica}{m}{sl}{<->ssub * helvetica/m/it}{}%
1372 \DeclareFontShape{OT1}{helvetica}{b}{sc}{<->sub * helvetica/m/sc}{}%
1373 \DeclareFontShape{OT1}{helvetica}{b}{sl}{<->ssub * helvetica/b/it}{}%
1374 \DeclareFontShape{OT1}{helvetica}{bx}{n}{<->ssub * helvetica/b/n}{}%
1375 \DeclareFontShape{OT1}{helvetica}{bx}{it}{<->ssub * helvetica/b/it}{}%
1376 \DeclareFontShape{OT1}{helvetica}{bx}{sc}{<->sub * helvetica/m/sc}{}%
1377 \DeclareFontShape{OT1}{helvetica}{bx}{sl}{<->ssub * helvetica/b/it}{}%
1379 \def\courier@scale{.82}
1381 \DeclareFontFamily{T1}{courier}{\hyphenchar \font\m@ne}%
1382 \DeclareFontShape{T1}{courier}{m}{n}{<->s*[\courier@scale]pcrrq}{}%
1383 \DeclareFontShape{T1}{courier}{m}{it}{<->s*[\courier@scale]pcrroq}{}%
1384 \DeclareFontShape{T1}{courier}{m}{sc}{<->s*[\courier@scale]pcrrcq}{}%
1385 \DeclareFontShape{T1}{courier}{b}{n}{<->s*[\courier@scale]pcrbq}{}%
1386 \DeclareFontShape{T1}{courier}{b}{it}{<->s*[\courier@scale]pcrboq}{}%
1387 \DeclareFontShape{T1}{courier}{m}{sl}{<->ssub * courier/m/it}{}%
1388 \DeclareFontShape{T1}{courier}{b}{sc}{<->sub * courier/m/sc}{}%
1389 \DeclareFontShape{T1}{courier}{b}{sl}{<->ssub * courier/b/it}{}%
1390 \DeclareFontShape{T1}{courier}{bx}{n}{<->ssub * courier/b/n}{}%
1391 \DeclareFontShape{T1}{courier}{bx}{it}{<->ssub * courier/b/it}{}%
1392 \DeclareFontShape{T1}{courier}{bx}{sc}{<->sub * courier/m/sc}{}%
1393 \DeclareFontShape{T1}{courier}{bx}{sl}{<->ssub * courier/b/it}{}%
1395 \DeclareFontFamily{OT1}{courier}{\hyphenchar \font\m@ne}%
1396 \DeclareFontShape{OT1}{courier}{m}{n}{<->s*[\courier@scale]pcrr}{}%
1397 \DeclareFontShape{OT1}{courier}{m}{it}{<->s*[\courier@scale]pcrro}{}%
1398 \DeclareFontShape{OT1}{courier}{m}{sc}{<->s*[\courier@scale]pcrrc}{}%
1399 \DeclareFontShape{OT1}{courier}{b}{n}{<->s*[\courier@scale]pcrb}{}%
1400 \DeclareFontShape{OT1}{courier}{b}{it}{<->s*[\courier@scale]pcrbo}{}%
1401 \DeclareFontShape{OT1}{courier}{m}{sl}{<->ssub * courier/m/it}{}%
1402 \DeclareFontShape{OT1}{courier}{b}{sc}{<->sub * courier/m/sc}{}%
1403 \DeclareFontShape{OT1}{courier}{b}{sl}{<->ssub * courier/b/it}{}%
1404 \DeclareFontShape{OT1}{courier}{bx}{n}{<->ssub * courier/b/n}{}%
1405 \DeclareFontShape{OT1}{courier}{bx}{it}{<->ssub * courier/b/it}{}%
1406 \DeclareFontShape{OT1}{courier}{bx}{sc}{<->sub * courier/m/sc}{}%
1407 \DeclareFontShape{OT1}{courier}{bx}{sl}{<->ssub * courier/b/it}{}%
1409 % Use fonts or use \slidefonts:
1411 \renewcommand{\slidefonts}{%
1412 \renewcommand{\default@family}{helvetica}%
1413 \renewcommand{\rmdefault}{helvetica}%
1414 \renewcommand{\ttdefault}{courier}%
1415 \renewcommand{\sfdefault}{helvetica}%
1416 \fontfamily\default@family\selectfont}
1418 \renewcommand{\default@family}{helvetica}%
1419 \renewcommand{\rmdefault}{helvetica}%
1420 \renewcommand{\ttdefault}{courier}%
1421 \renewcommand{\sfdefault}{helvetica}%
1422 \fontfamily\default@family\selectfont
1430 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1432 %% Style-File: vorl.sty
1434 %% Mark Minas <minas@informatik.uni-erlangen.de>
1438 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1439 \DeclareSymbolFont{operators} {OT1}{ptmcm}{m}{n}
1440 \DeclareSymbolFont{letters} {OML}{ptmcm}{m}{it}
1441 \DeclareSymbolFont{symbols} {OMS}{pzccm}{m}{n}
1442 \DeclareSymbolFont{largesymbols}{OMX}{psycm}{m}{n}
1443 \DeclareSymbolFont{bold} {OT1}{ptm}{bx}{n}
1444 \DeclareSymbolFont{italic} {OT1}{ptm}{m}{it}
1446 % If we're in compatibility mode, defined \mathbf and \mathit.
1448 \@ifundefined{mathbf}{}{\DeclareMathAlphabet{\mathbf}{OT1}{ptm}{bx}{n}}
1449 \@ifundefined{mathit}{}{\DeclareMathAlphabet{\mathit}{OT1}{ptm}{m}{it}}
1451 % An \omicron command, to fill the gap.
1453 \DeclareMathSymbol{\omicron}{0}{operators}{`\o}
1455 % Reduce the space around math operators
1458 \medmuskip=2.5mu plus 1mu minus 1mu
1459 \thickmuskip=4mu plus 1.5mu minus 1mu
1464 \@warning{there is no bold Symbol font}%
1465 \global\let\boldmath=\relax
1470 \DeclareMathSizes{5}{5}{5}{5}
1471 \DeclareMathSizes{6}{6}{5}{5}
1472 \DeclareMathSizes{7}{7}{5}{5}
1473 \DeclareMathSizes{8}{8}{6}{5}
1474 \DeclareMathSizes{9}{9}{7}{5}
1475 \DeclareMathSizes{10}{10}{7.4}{6}
1476 \DeclareMathSizes{10.95}{10.95}{8}{6}
1477 \DeclareMathSizes{12}{12}{9}{7}
1478 \DeclareMathSizes{14.4}{14.4}{10.95}{8}
1479 \DeclareMathSizes{17.28}{17.28}{12}{10}
1480 \DeclareMathSizes{20.74}{20.74}{14.4}{12}
1481 \DeclareMathSizes{24.88}{24.88}{17.28}{14.4}
1483 %% including file verbatim
1485 \def\verbatimfile#1{\begingroup
1486 \@verbatim \frenchspacing \@vobeyspaces
1490 %% verbatim environment using \tt\bfseries
1492 \begingroup \catcode `|=0 \catcode `[= 1
1493 \catcode`]=2 \catcode `\{=12 \catcode `\}=12
1494 \catcode`\\=12 |gdef|@xbfverbatim#1\end{bfverbatim}[#1|end[bfverbatim]]
1495 |gdef|@sxverbatim#1\end{verbatim*}[#1|end[verbatim*]]
1497 \def\@bfverbatim{\trivlist \item\relax
1498 \if@minipage\else\vskip\parskip\fi
1499 \leftskip\@totalleftmargin\rightskip\z@skip
1500 \parindent\z@\parfillskip\@flushglue\parskip\z@skip
1505 \leavevmode \null \@@par\penalty\interlinepenalty
1508 \ifhmode\@@par\penalty\interlinepenalty\fi
1510 \obeylines \bfverbatim@font \@noligs
1511 \let\do\@makeother \dospecials
1512 \everypar \expandafter{\the\everypar \unpenalty}%
1514 \def\bfverbatim{\@bfverbatim \frenchspacing\@vobeyspaces \@xbfverbatim}
1515 \def\endbfverbatim{\if@newlist \leavevmode\fi\endtrivlist}
1516 \def\bfverbatim@font{\normalfont\ttfamily\bfseries}
1518 %% minipage environment with enclosing colorbox
1519 %% usage is identical to minipage with an additional
1520 %% argument, the color of the colorbox (see color.sty)
1525 {\@iiicolorpage c\@empty[s]}}
1526 \def\@icolorpage[#1]{%
1528 {\@iicolorpage{#1}}%
1529 {\@iiicolorpage{#1}\@empty[s]}}
1530 \def\@iicolorpage#1[#2]{%
1532 {\@iiicolorpage{#1}{#2}}%
1533 {\@iiicolorpage{#1}{#2}[#1]}}
1534 \def\@iiicolorpage#1#2[#3]#4#5{%
1537 \setlength\@tempdima{#4}%
1538 \def\@cboxcolor{#5}%
1539 \def\@mpargs{{#1}{#2}[#3]{#4}}%
1540 \setbox\@tempboxa\vbox\bgroup
1543 \textwidth\hsize \columnwidth\hsize
1545 \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
1546 \let\@footnotetext\@mpfootnotetext
1547 \let\@listdepth\@mplistdepth \@mplistdepth\z@
1548 \@colorpagerestore\global\@minipagetrue %% \global added 24 May 89
1549 \everypar{\global\@minipagefalse\everypar{}}}
1550 \let\@colorpagerestore=\relax
1554 \ifvoid\@mpfootins\else
1555 \vskip\skip\@mpfootins
1560 \global\@minipagefalse %% added 24 May 89
1563 \colorbox{\@cboxcolor}{\expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}}
1566 %% BEGIN fancybox.sty
1568 \def\fileversion{1.0}
1569 \def\filedate{93/02/10}
1571 %% COPYRIGHT 1993, by Timothy Van Zandt, tvz@Princeton.EDU
1574 %% fancybox.sty is a LaTeX style option, consisting of:
1575 %% * Variants of \fbox: \shadowbox, \doublebox, \ovalbox, \Ovalbox.
1576 %% * Helpful tools for using box macros.
1577 %% * Extensive documentation about how to use box macros.
1578 %% * Flexible verbatim macros.
1581 %% Put this file where your TeX looks for inputs.
1584 %% See fancybox.doc, which might be appended to this file.
1587 %% Copying of part or all of this file is allowed under the following
1589 %% (1) You may freely distribute unchanged copies of the file. Please
1590 %% include the documentation when you do so.
1591 %% (2) You may modify a renamed copy of the file, but only for personal
1592 %% use or use within an organization.
1593 %% (3) You may copy fragments from the file, for personal use or for
1594 %% distribution, as long as credit is given where credit is due.
1596 %% You are NOT ALLOWED to take money for the distribution or use of
1597 %% this file or modified versions or fragments thereof, except for
1598 %% a nominal charge for copying etc.
1601 \expandafter\ifx\csname fb@framepage\endcsname\relax\else
1602 \expandafter\endinput
1605 \@ifundefined{@tempdimc}{\newdimen\@tempdimc}{}
1609 \newdimen\shadowsize
1612 \def\shadowbox{\VerbBox\@shadowbox}
1614 \setbox\@fancybox\hbox{\fbox{#1}}%
1618 \advance\dimen@ .5\fboxrule
1619 \hbox{\copy\@fancybox\kern-.5\fboxrule\lower\shadowsize\hbox{%
1620 \vrule \@height\ht\@fancybox \@depth\dp\@fancybox \@width\dimen@}}%
1622 \moveright\shadowsize\vbox{%
1623 \hrule \@width\wd\@fancybox \@height\dimen@}}}
1627 \def\cornersize{\@ifstar{\@cornersize}{\@@cornersize}}
1628 \def\@cornersize#1{%
1630 \edef\the@cornersize{\number\@tempdima sp}}
1631 \def\@@cornersize#1{%
1632 \edef\the@cornersize{#1\noexpand\@tempdimb}}
1635 % This is just a simple change to \oval, making use of the \cornersize
1636 % parameter instead of making the corner arcs are large as possible.
1638 \def\fancyoval(#1,#2){\@ifnextchar[{\fancy@oval(#1,#2)}{\fancy@oval(#1,#2)[]}}
1640 \def\fancy@oval(#1,#2)[#3]{%
1642 \fancy@@oval{#1\unitlength}{#2\unitlength}{#3}%
1643 \@put{-.5\wd\@tempboxa}{-.5\ht\@tempboxa}{\ht\@tempboxa=\z@\box\@tempboxa}%
1646 \def\copyrightline{}
1648 \gdef\@ovbottom{\hb@xt@\@ovxx{\kern \@ovro
1649 \if@ovr \else \kern \@ovdx \fi
1650 \leaders \hrule \@height \@wholewidth \hfil \mbox{\tiny\copyrightline}
1651 \if@ovl \else \kern \@ovdx \fi
1654 \def\fancy@@oval#1#2#3{%
1655 \boxmaxdepth \maxdimen
1656 \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
1657 \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}%
1659 \advance\@ovxx-\@wholewidth
1661 \advance\@ovyy-\@wholewidth
1662 \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
1663 \advance\@tempdimb-2\p@
1664 \ifdim\@tempdimb>\the@cornersize\relax
1665 \@tempdimb=\the@cornersize
1668 \@ovro\ht\@tempboxa \@ovri\dp\@tempboxa
1669 \@ovdx\@ovxx \advance\@ovdx-\@tempdima \divide\@ovdx \tw@
1670 \@ovdy\@ovyy \advance\@ovdy-\@tempdima \divide\@ovdy \tw@
1672 \setbox\@tempboxa\hbox{%
1673 \if@ovr \@ovvert32\kern -\@tempdima \fi
1674 \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
1675 \if@ovt \@ovbottom \kern -\@ovxx \fi
1676 \if@ovb \raise \@ovyy \@ovhorz \fi}%
1677 \advance\@ovdx\@ovro
1678 \advance\@ovdy\@ovro
1679 \advance\@ovxx\@wholewidth
1680 \wd\@tempboxa=\@ovxx
1685 \def\ovalbox{\VerbBox{\@ovalbox\thinlines}}
1686 \def\Ovalbox{\VerbBox{\@ovalbox\thicklines}}
1690 \setbox\@fancybox\hbox{{#2}}%
1691 \@tempdimc\fboxsep \advance\@tempdimc\@wholewidth
1692 \@tempdima\ht\@fancybox \advance\@tempdima\dp\@fancybox
1693 \advance\@tempdima2\@tempdimc
1694 \@tempdimb\wd\@fancybox \advance\@tempdimb2\@tempdimc
1695 \fancy@@oval\@tempdimb\@tempdima{}%
1696 \@tempdima\dp\@fancybox \advance\@tempdima\@tempdimc
1699 \lower\@tempdima\box\@tempboxa
1700 \kern\@tempdimc\box\@fancybox\kern\@tempdimc}%
1705 \def\doublebox{\VerbBox\@doublebox}
1708 \setbox\@fancybox\hbox{{#1}}%
1709 \fboxrule=.75\fboxrule
1710 \setbox\@fancybox\hbox{\fbox{\box\@fancybox}}%
1711 \fboxrule=2\fboxrule
1713 \advance\fboxsep .5pt
1714 \fbox{\box\@fancybox}%
1717 % Frames for seminar.sty:
1719 \@ifundefined{newslideframe}{}{%
1720 \newslideframe{shadow}{\shadowbox{#1}}
1721 \newslideframe{double}{\doublebox{#1}}
1722 \newslideframe{oval}{\ovalbox{#1}}
1723 \newslideframe{Oval}{\Ovalbox{#1}}}
1729 \def\Sbox{\global\setbox\@Sbox\hbox\bgroup\ignorespaces}
1732 \@testtrue\ifhmode\ifinner\@testfalse\fi\fi
1733 \if@test\@latexerr{Misplaced \string\endSbox! Should be in LR mode}\@ehd\fi
1738 \@latexerr{\string\TheSbox\space is empty!}\@ehd
1743 \def\beginsbox#1{\setbox#1\hbox\bgroup\ignorespaces}
1745 \def\endsbox{\endSbox}
1753 \afterassignment\begin@VerbBox
1754 \setbox\@fancybox=\hbox}
1755 \def\begin@VerbBox{\aftergroup\end@VerbBox}
1756 \def\end@VerbBox{\the\do@VerbBox{\box\@fancybox}}%
1760 \def\@Blistrestore{%
1762 \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii
1763 \lineskip\normallineskip \baselineskip\normalbaselineskip}
1765 \def\Btrivlist#1{\@ifnextchar[{\@Btrivlist{#1}}{\@Btrivlist{#1}[]}}
1766 \def\@Btrivlist#1[#2]{%
1768 \let\\=\@Btrivlistcr
1771 \if#1l\else\@empty\hfil\fi
1772 \ignorespaces##\unskip
1773 \if#1r\@empty\else\hfil\fi\cr}
1774 \def\endBtrivlist{\crcr\egroup\egroup\if@pboxsw$\fi}
1776 \def\fb@beginvbox#1{%
1779 \if#1b\@empty\vbox\else\if#1t\@empty\vtop\else
1780 \ifmmode\vcenter\else\@pboxswtrue$\vcenter\fi
1783 \def\@Btrivlistcr{\@ifstar
1784 {\@ifnextchar[{@@Btrivlistcr}{\cr}}{\@ifnextchar[{\@@Btrivlistcr}{\cr}}}
1785 \def\@@Btrivlistcr[#1]{\cr\noalign{\vskip #1}}
1787 \def\Bcenter{\Btrivlist{c}}
1788 \def\endBcenter{\endBtrivlist}
1790 \def\Bflushleft{\Btrivlist{l}}
1791 \def\endBflushleft{\endBtrivlist}
1793 \def\Bflushright{\Btrivlist{r}}
1794 \def\endBflushright{\endBtrivlist}
1798 \def\Blist#1#2{\@ifnextchar[{\@Blist{#1}{#2}}{\@Blist{#1}{#2}[]}}
1800 \def\@Blist#1#2[#3]{%
1804 \global\advance\@listdepth\@ne
1807 \csname @list\romannumeral\the\@listdepth\endcsname
1808 \def\@itemlabel{#1}%
1809 \let\makelabel\@mklab
1818 \ignorespaces##&\hskip\labelsep\ignorespaces##\unskip\hfil\cr}
1820 \def\endBlist{\endBtrivlist\global\advance\@listdepth\m@ne}
1824 \def\Bitem{\@ifnextchar({\@Bitemcr\Bitem@skip}{\@Bitemcr\@Bitem}}
1828 \def\next{\cr\noalign{\vskip\itemsep}}%
1830 \def\next{\global\@Bitemswtrue}%
1834 \def\Bitem@skip(#1){\noalign{\vskip #1}\@Bitem}
1836 \def\@Bitem{\@ifnextchar[{\Bitem@label}{\Bitem@nolabel}}
1838 \def\Bitem@label[#1]{\makelabel{#1}&}
1840 \def\Bitem@nolabel{%
1842 \expandafter\advance\csname c@\@listctr\endcsname1 \fi
1843 \makelabel{\@itemlabel}%
1845 \if@nmbrlist\refstepcounter{\@listctr}\fi}
1847 \def\@Blistcr{\@ifstar
1848 {\@ifnextchar[{@@Blistcr}{\cr&}}{\@ifnextchar[{\@@Blistcr}{\cr&}}}
1850 \def\@@Blistcr[#1]{\cr\noalign{\vskip #1}&}
1858 \advance\@itemdepth\@ne
1860 \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
1861 \Blist{\csname\@itemitem\endcsname}{\def\makelabel####1{\hfil####1}}}
1862 \def\endBitemize{\endBlist}
1866 \def\Bdescription{\Blist{}{\def\makelabel####1{\bf####1\hfil}}}
1867 \def\endBdescription{\endBlist}
1875 \advance\@enumdepth\@ne
1877 \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
1878 \Blist{\csname label\@enumctr\endcsname}%
1879 {\usecounter{\@enumctr}\def\makelabel####1{\hfil####1}}}
1880 \def\endBenumerate{\endBlist}
1885 \stepcounter{equation}%
1886 \let\@currentlabel\theequation
1887 \def\@eqnnum{{\csname reset@font\endcsname\rm (\theequation)}}%
1888 \global\@eqnswtrue\m@th
1896 $\displaystyle\tabskip\z@{##}$%
1898 \hskip 2\arraycolsep
1901 \hskip 2\arraycolsep
1902 $\displaystyle\tabskip\z@{##}$%
1905 &\if@eqnsw\hskip 1em\fi
1906 \hfil{##}\tabskip\z@
1912 \global\advance\c@equation\m@ne
1914 \global\@ignoretrue}
1916 \@namedef{Beqnarray*}{\def\@eqncr{\nonumber\@seqncr}\Beqnarray}
1917 \@namedef{endBeqnarray*}{\nonumber\endBeqnarray}
1921 % Here we insert various hooks for rotating or framing the page.
1922 % Otherwise, it is the usual \@outputpage
1924 \def\fb@outputpage{%
1932 \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%
1936 \let\@thehead\@oddhead
1937 \let\@thefoot\@oddfoot
1938 \let\@themargin\oddsidemargin
1940 \let\@thehead\@evenhead
1941 \let\@thefoot\@evenfoot
1942 \let\@themargin\evensidemargin
1945 \csname reset@font\endcsname
1950 \ifx\this@fancypage\@empty\else
1952 \gdef\this@fancypage{}%
1954 \ifx\the@fancypage\@empty\else
1955 \setbox\@outputbox\hbox{\the@fancypage{\box\@outputbox}}%
1957 \ifx\fb@@rotatepage\@empty\else
1958 \setbox\@outputbox\hbox{\fb@@rotatepage{\box\@outputbox}}%
1960 \setbox\@outputbox\vbox{%
1961 \@tempdima=\wd\@outputbox
1962 \setbox\@tempboxa=\hbox to\@tempdima{%
1965 \let\glossary\@gobble
1967 \ht\@tempboxa\headheight
1972 \baselineskip\footskip
1973 \hbox to\@tempdima{%
1976 \let\glossary\@gobble
1978 \ifx\the@@fancypage\@empty\else
1979 \setbox\@outputbox\hbox{\the@@fancypage{\box\@outputbox}}%
1981 \setbox\@outputbox\vbox{%
1982 \ifnum\fancyput@flag>-1 \do@fancyput\fi
1984 \moveright\@themargin\box\@outputbox}%
1985 \ifx\fb@rotatepage\@empty\else
1986 \setbox\@outputbox\hbox{\lower\ht\@outputbox\box\@outputbox}%
1989 \setbox\@outputbox\hbox{\fb@rotatepage{\box\@outputbox}}%
1990 \expandafter\fb@setoffsets\fb@theoffsets
1992 \shipout\box\@outputbox
1993 \global\@colht\textheight
1996 \let\firstmark\botmark}
2000 \def\the@fancypage{}
2001 \def\the@@fancypage{}
2002 \def\this@fancypage{}
2004 \def\fancypage#1#2{%
2005 \def\the@fancypage{#1}%
2006 \def\the@@fancypage{#2}%
2007 \def\@outputpage{\fb@outputpage}}
2009 \def\thisfancypage#1#2{%
2010 \gdef\@outputpage{\fb@outputpage}%
2011 \gdef\this@fancypage{\def\the@fancypage{#1}\def\the@@fancypage{#2}}}
2015 % Token registers used to make it easier to put definitions in argument.
2016 % Boxes not processed until output so that contents can depend, e.g., on
2017 % current page or marks or whatever. This makes everything slightly more
2018 % complicated than one would expect.
2020 \newtoks\the@fancyput
2021 \newtoks\this@fancyput
2022 \def\fancyput@flag{-1}%
2024 % \fancyput@flag=-1 if no fancyput, 0 if regular fancyput, 1 if thisfancyput.
2027 \def\@outputpage{\fb@outputpage}
2028 \@ifstar{\@testtrue\@fancyput}{\@testfalse\@fancyput}}
2029 \def\@fancyput{\@ifnextchar({\@@fancyput}{\@@fancyput(\z@,\z@)}}
2030 \def\@@fancyput(#1,#2)#3{%
2032 \expandafter\the@fancyput\expandafter{\the\the@fancyput\do{#1}{#2}{#3}}%
2034 \the@fancyput{\do{#1}{#2}{#3}}%
2036 \gdef\fancyput@flag{\z@}}
2039 \gdef\@outputpage{\fb@outputpage}
2040 \@ifstar{\@testtrue\@thisfancyput}{\@testfalse\@thisfancyput}}
2041 \def\@thisfancyput{\@ifnextchar({\@@thisfancyput}{\@@thisfancyput(\z@,\z@)}}
2042 \def\@@thisfancyput(#1,#2)#3{%
2044 \ifnum\fancyput@flag=\z@
2045 \expandafter\global\expandafter\this@fancyput\expandafter{%
2046 \the\this@fancyput\do{#1}{#2}{#3}}%
2048 \expandafter\global\expandafter\this@fancyput\expandafter{%
2049 \the\the@fancyput\do{#1}{#2}{#3}}%
2052 \global\this@fancyput{\do{#1}{#2}{#3}}%
2054 \gdef\fancyput@flag{1}}
2057 \def\do##1##2##3{\raise##2\hbox to\z@{\kern##1\relax##3\hss}}%
2058 \setbox\@tempboxa=\hbox to\z@{%
2060 \raise\voffset\hbox{%
2061 \ifnum\fancyput@flag=\z@\the\the@fancyput\else\the\this@fancyput\fi}%
2063 \ht\@tempboxa=\z@ \dp\@tempboxa=\z@
2065 \gdef\fancyput@flag{\z@}%
2066 \global\this@fancyput{}}
2070 \def\UsePageParameters{%
2072 \global\@colht\textheight
2075 \def\fb@rotatepage{}
2077 \def\Landscape{\@ifstar{\@testtrue\@Landscape}{\@testfalse\@Landscape}}
2078 \def\@Landscape#1#2#3{%
2080 \def\fb@rotatepage{#3}%
2081 \def\@outputpage{\fb@outputpage}%
2085 \edef\fb@theoffsets{{\voffset}{\hoffset}{\number\@tempdima sp}}%
2087 \edef\fb@theoffsets{{\hoffset}{\voffset}{\number\@tempdimb sp}}%
2089 \advance\@tempdimb-\@tempdima
2090 \advance\textwidth\@tempdimb
2091 \advance\textheight-\@tempdimb
2093 \def\endLandscape{\clearpage\aftergroup\UsePageParameters}
2095 \def\fb@setoffsets#1#2#3{%
2100 \advance#2-\@tempdima}
2102 \@namedef{Landscape*}{\@testtrue\@Landscape}
2103 \@namedef{endLandscape*}{\endLandscape}
2107 \def\fb@@rotatepage{}
2111 \def\fb@@rotatepage{#1}%
2112 \def\@outputpage{\fb@outputpage}%
2113 \@tempdima\textheight
2114 \textheight\textwidth
2115 \textwidth\@tempdima
2117 \def\endLandScape{\clearpage\aftergroup\UsePageParameters}
2121 \def\GenericCaption#1{%
2127 \setbox\@tempboxa\hbox{#1}%
2128 \ifdim\wd\@tempboxa>\hsize
2131 \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
2138 \def\landfloat#1#2{%
2139 \gdef\curr@landfloat{#1}%
2140 \gdef\float@rotation{#2}%
2142 \setbox\@tempboxa\vbox\bgroup
2148 \setbox\@tempboxa\hbox{\float@rotation{\box\@tempboxa}}%
2149 \centerline{\box\@tempboxa}%
2150 \expandafter\end\expandafter{\curr@landfloat}}
2154 \def\boxput{\@ifstar{\@testtrue\@boxput}{\@testfalse\@boxput}}
2155 \def\@boxput{\@ifnextchar({\@@boxput}{\@@boxput(0,0)}}
2156 \long\def\@@boxput(#1,#2)#3#4{%
2157 \setbox\@fancybox\hbox{{#4}}%
2158 \setbox\@tempboxa\vbox to\z@{\vss\hbox to\z@{\hss{#3}\hss}\vss}%
2159 \@tempdima=#1\wd\@fancybox
2160 \advance\@tempdima\wd\@fancybox
2165 \@tempdimb=.5\ht\@fancybox
2166 \advance\@tempdimb.5\dp\@fancybox
2167 \@tempdimc=\@tempdimb
2168 \advance\@tempdimc-\dp\@fancybox
2169 \@tempdimb=#2\@tempdimb
2170 \advance\@tempdimb\@tempdimc
2172 \setbox\@tempboxa\hbox to \z@{%
2173 \if@test\kern-\wd\@fancybox\fi
2174 \kern\@tempdima\raise\@tempdimb\box\@tempboxa\hss}%
2175 \ht\@tempboxa=\z@ \dp\@tempboxa=\z@
2178 \hbox{\box\@fancybox\box\@tempboxa}%
2180 \hbox{\box\@tempboxa\box\@fancybox}%
2185 \def\VerbatimFootnotes{\let\@footnotetext\V@footnotetext}
2187 \long\def\V@footnotetext{%
2188 \afterassignment\V@@footnotetext
2190 \def\V@@footnotetext{%
2191 \insert\footins\bgroup
2192 \csname reset@font\endcsname
2194 \interlinepenalty\interfootnotelinepenalty
2195 \splittopskip\footnotesep
2196 \splitmaxdepth\dp\strutbox
2197 \floatingpenalty \@MM
2200 \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
2202 \rule{\z@}{\footnotesep}%
2204 \aftergroup\V@@@footnotetext
2206 \def\V@@@footnotetext{\strut\egroup}
2210 % The main idea is to separate the reading and formatting of the
2211 % verbatim listing. It's pretty simple.
2213 \def\Verbatim@Codes{%
2216 \Verbatim@ObeyThings
2217 \ThisVerbCodes\relax\gdef\ThisVerbCodes{}}
2219 \def\EveryVerbatimCodes{}
2221 % \Verbatim is redefined temporarilly in \Get@Verbatim to scan the
2222 % verbatim text. \Verbatim is used so that error messages are more
2223 % enlightening. \next checks whether \Verbatim found its argument,
2224 % and attempts to recover if not.
2226 % Heuristically, if current environment is `foo' and argument of
2227 % \Get@Verbatim is \The@Verbatim, then definition of \Verbatim is
2229 % \def\Verbatim#1^^M#2^^M\the\EndVerbatimTokens\end{foo}{%
2230 % \xdef\The@Verbatim{\noexpand\Every@VerbatimLine#2}%
2231 % \endgroup\end{foo}}
2233 % \The@Verbatim is then equal to the verbatim text, with spaces
2234 % replaced by \Verbatim@Space, tabs replaced by \Verbatim@Tab,
2235 % and ` replaced by \@lquote. In addition, each line begins with
2236 % \Every@VerbatimLine, and each line but the last ends with
2237 % \Verbatim@Par. It is then possible to redefine these when formatting
2238 % the verbatim text. To insert each line as an argument to \foo, use
2239 % \def\Every@VerbatimLine#1\Verbatim@Par{\foo{#1}}
2240 % \The@Verbatim\Verbatim@Par
2242 \newtoks\EndVerbatimTokens
2251 |gdef|Get@Verbatim#1[%
2253 |Verbatim@Codes|EveryVerbatimCodes%
2254 |let|protect|noexpand%
2255 |VerbatimEnvironment%
2256 |edef|next[|noexpand|def|noexpand|Verbatim####1|noexpand^^M####2%
2257 |noexpand^^M|the|EndVerbatimTokens\end{|@VerbEnvir}]%
2258 |edef|endVerbatim[|noexpand|endgroup|noexpand|end[|@VerbEnvir]]%
2259 |global|let|@VerbEnvir|relax%
2260 |next[|@nil|xdef#1[|noexpand|Every@VerbatimLine##2]|endVerbatim]%
2261 |def|next[|@ifnextchar|@nil[|@gobble]% If \@nil is there, then
2262 [|gdef#1[]|endVerbatim|end[document]]]% \Verbatim found its argument.
2263 |expandafter|next|Verbatim]% Otherwise, try to recover.
2264 |gdef|AltGet@Verbatim#1[%
2266 |Verbatim@Codes|EveryVerbatimCodes%
2268 |ifx|@nil##2|@empty|else%
2269 |noexpand|Verbatim@Par|noexpand|Every@VerbatimLine##1%
2270 |expandafter^^M|expandafter##2%
2272 |let|protect|noexpand%
2273 |VerbatimEnvironment%
2274 |edef|next[|noexpand|def|noexpand|Verbatim####1|noexpand^^M####2%
2276 |edef|endVerbatim[|noexpand|endgroup|noexpand|end[|@VerbEnvir]]%
2277 |global|let|@VerbEnvir|relax%
2278 |next[|@nil|xdef#1[|noexpand|Every@VerbatimLine##2^^M|@nil]|endVerbatim]%
2279 |def|next[|@ifnextchar|@nil[|@gobble]%
2280 [|gdef#1[]|endVerbatim|end[document]]]%
2281 |expandafter|next|Verbatim]%
2283 \def\AltGetVerbatim{\let\Get@Verbatim\AltGet@Verbatim}
2285 % It is enough to not use \begin or \end when defining new verbatim
2286 % environments, as the default is for \Get@Verbatim to look for the
2287 % end of the current environment, but using \VerbatimEnvironment
2288 % is easier to explain to users.
2290 \def\VerbatimEnvironment{%
2291 \ifx\@VerbEnvir\relax\xdef\@VerbEnvir{\@currenvir}\fi}
2293 \let\@VerbEnvir\relax
2295 \def\The@VerbatimErr{%
2296 \gdef\The@Verbatim{\@latexerr{Misplaced \string\end{Verbatim}}\@ehd}}
2300 \catcode`\^^M=\active%
2301 \catcode`\ =\active%
2302 \catcode`\^^I=\active%
2303 \gdef\Verbatim@ObeyThings{%
2304 \catcode`\^^M=\active%
2305 \catcode`\ =\active%
2306 \catcode`\^^I=\active%
2308 \def^^M{\noexpand\Verbatim@Par\noexpand\Every@VerbatimLine}%
2309 \def^^I{\noexpand\Verbatim@Tab}%
2310 \def {\noexpand\Verbatim@Space}%
2312 \gdef\Verbatim@DontObeyLines{\outer\def^^M{}}%
2315 \def\SaveVerbatim{\@bsphack\Get@Verbatim}
2317 \def\endSaveVerbatim{\@esphack}
2319 {\catcode``13 \gdef\Verbatim@NoLigs{\def`{\noexpand\@lquote}}}
2321 \def\Verbatim@Prep{%
2323 \ThisVerb\relax\gdef\ThisVerb{}%
2326 \let\Every@VerbatimLine\EveryVerbatimLine
2327 \def\Verbatim@Space{\leavevmode\penalty\@M\VerbatimSpace}%
2328 \def\Verbatim@Tab{\leavevmode\penalty\@M\VerbatimTab}}%
2332 \ThisVerb\relax\gdef\ThisVerb{}%
2335 \let\Every@VerbatimLine\EveryVerbatimLine
2336 \def\Verbatim@Space{\leavevmode\penalty\@M\VerbSpace}%
2337 \def\Verbatim@Tab{\leavevmode\penalty\@M\VerbTab}}%
2339 \def\Verbatim@Par{\leavevmode\null\@@par\penalty\interlinepenalty}
2341 % Parameter initialization:
2343 \def\VerbatimSpace{\ }
2345 {\catcode`\ =12\gdef\ttspace{{\tt }}}
2349 \def\VerbatimTab{\ \ \ \ \ \ \ \ }
2353 \def\EveryVerbatim{}
2359 \def\EveryVerbatimLine{}%
2361 \def\EveryVerbOutLine{}
2363 \def\VerbatimFont{\tt}
2367 \def\VerbatimFuzz{2pt}%
2369 \def\EveryVerbatimCodes{}
2371 \def\EveryVerbCodes{}
2373 \def\EveryVerbOutCodes{}
2375 \def\ThisVerbCodes{}
2377 \def\Verbatim@List#1{%
2378 \if@minipage\else\vskip\parskip\fi
2379 \leftskip\@totalleftmargin
2380 \@rightskip\@flushglue \rightskip\@rightskip
2383 \parfillskip\@flushglue
2384 \hfuzz\VerbatimFuzz\relax
2386 \global\@inlabelfalse %Prevents vspace from being inserted when
2387 \Verbatim@Prep %first line exceeds \hsize.
2391 \def\UseVerbatim#1{%
2392 \begingroup\trivlist\item[]\Verbatim@List{#1}\endtrivlist\endgroup}
2394 \def\Verbatim{\Get@Verbatim\The@Verbatim}
2395 \def\endVerbatim{\UseVerbatim\The@Verbatim\The@VerbatimErr}
2397 \def\LUseVerbatim#1{%
2398 \begingroup\list{}{}\item[]\Verbatim@List{#1}\endlist\endgroup}
2400 \def\LVerbatim{\Get@Verbatim\The@Verbatim}
2401 \def\endLVerbatim{\LUseVerbatim\The@Verbatim\The@VerbatimErr}
2404 \@ifnextchar[{\@BUseVerbatim}{\@BUseVerbatim[]}}
2405 \def\@BUseVerbatim[#1]#2{%
2408 \let\Verbatim@Par\@Btrivlistcr
2415 \catcode`\^^M=13\relax
2416 \@ifnextchar[{\@BVerbatim}{\@BVerbatim[]}}
2417 \def\@BVerbatim[#1]{\def\@tempa{[#1]}\Get@Verbatim\The@Verbatim}
2419 \expandafter\@BUseVerbatim\@tempa\The@Verbatim\The@VerbatimErr}
2421 \newwrite\Verbatim@Outfile
2422 \def\VerbatimOut#1{%
2425 \immediate\openout\Verbatim@Outfile #1\relax
2426 \def\EveryVerbatimCodes{\EveryVerbOutCodes}%
2427 \Get@Verbatim\The@Verbatim}
2428 \def\endVerbatimOut{%
2429 \Verbatim@ObeyThings
2430 \def\Verbatim@Par{^^J}%
2431 \def\Verbatim@Space{\space}%
2432 \def\Verbatim@Tab{\space}%
2433 \def\@lquote{\string`}%
2434 \ThisVerb\relax\gdef\ThisVerb{}%
2435 \let\Every@VerbatimLine\EveryVerbOutLine
2436 \immediate\write\Verbatim@Outfile{\The@Verbatim}%
2437 \immediate\closeout\Verbatim@Outfile
2442 % This one is a little tricky because:
2443 % * we want to ignore the ^^M at the end of the last line,
2444 % * we want to handle files that end with newline and files that don't
2445 % * we want comment characters to work properly,
2446 % * we want to expand each line before inserting \Every@VerbatimLine and
2449 % \The@GVerbatim is used as scratch with global redefinition.
2450 \newread\Verbatim@Infile
2451 \def\Verbatim@Input#1#2{%
2453 \Verbatim@Codes\EveryVerbatimCodes
2454 \immediate\openin\Verbatim@Infile #1\relax
2455 \ifeof\Verbatim@Infile
2456 \@latexerr{No verbatim file #1}\@ehd
2458 \def\The@GVerbatim{}\Verbatim@NextLine
2459 \ifeof\Verbatim@Infile
2460 \@latexerr{Verbatim file #1 is empty}\@ehd
2462 \let\The@Verbatim\The@GVerbatim
2463 \def\The@GVerbatim{}\Verbatim@NextLine
2464 #2{\Verbatim@@Input}%
2467 \immediate\closein\Verbatim@Infile
2469 \def\Verbatim@@Input{%
2470 \let\protect\noexpand
2471 \edef\The@Verbatim{%
2472 \noexpand\Every@VerbatimLine
2474 \ifeof\Verbatim@Infile\else\noexpand\Verbatim@Par\fi}%
2477 \ifeof\Verbatim@Infile\else
2478 \let\The@Verbatim\The@GVerbatim
2479 \def\The@GVerbatim{}\Verbatim@NextLine
2480 \expandafter\Verbatim@@Input
2482 \begingroup\catcode`\^^M=\active%
2483 \gdef\Verbatim@NextLine{%
2484 \ifeof\Verbatim@Infile\else%
2485 \immediate\read\Verbatim@Infile to\@tempa%
2486 \expandafter\Verbatim@@NextLine\@tempa^^M\relax^^M\@nil%
2488 % #2 is empty if line ends in ^^M, #2=\relax otherwise.
2489 \gdef\Verbatim@@NextLine#1^^M#2^^M#3\@nil{%
2490 \expandafter\gdef\expandafter\The@GVerbatim\expandafter{\The@GVerbatim#1}%
2491 \ifx#2\@empty\@empty\else\expandafter\Verbatim@NextLine\fi}%
2494 \def\UseVerb#1{\begingroup\Verb@Prep#1\endgroup}
2496 \def\SaveVerb{\@ifnextchar[{\Save@Verb}{\Save@Verb[]}}
2498 \long\def\Save@Verb[#1]#2{%
2500 \Verbatim@Codes\Verbatim@DontObeyLines\EveryVerbCodes
2501 \Save@@Verb{#1}{#2}}
2503 \long\def\Save@@Verb#1#2#3{%
2504 \let\protect\noexpand
2505 \def\next{\@ifnextchar\@nil{\@gobble}{\endgroup}}%
2506 \long\def\Verb##1#3{\@nil\xdef#2{##1}\endgroup#1}%
2507 \expandafter\next\Verb}
2509 \def\Verb{\Save@Verb[\UseVerb{\The@Verbatim}]{\The@Verbatim}}
2511 \def\VerbatimInput#1{\begingroup\Verbatim@Input{#1}\UseVerbatim\endgroup}
2513 \def\LVerbatimInput#1{\begingroup\Verbatim@Input{#1}\LUseVerbatim\endgroup}
2515 \def\BVerbatimInput{\@ifnextchar[{\@BVerbatimInput}{\@BVerbatimInput[]}}
2516 \def\@BVerbatimInput[#1]#2{%
2517 \begingroup\Verbatim@Input{#2}{\@BUseVerbatim[#1]}\endgroup}
2526 \parskip 1.5ex plus0.5ex minus0.3ex
2530 \renewcommand{\slidetopmargin}{13mm}
2531 \renewcommand{\slidebottommargin}{13mm}
2532 \renewcommand{\slideheadfont}{\small}
2533 \renewcommand{\slidefootfont}{\small}
2538 \newpagestyle{foliensty}%
2539 {\Kapitel \hfill \Titel}%
2540 {\Reihe \hfill \pageprefix\thepage}
2542 \pagestyle{foliensty}
2546 \def\copyrightline{\copyright{} Lehrstuhl f\"ur Programmiersprachen,
2547 Universit\"at Erlangen-N\"urnberg}
2548 \newcommand{\Copyright}[1]{\def\copyrightline{#1}}
2550 \newcommand{\heading}[1]{%
2555 \vspace{1ex minus 1ex}}
2557 \newcommand{\BF}[1]{{\bf #1:}\hspace{1em}\ignorespaces}
2559 \newenvironment{folie}[1]{\def\Titel{#1}\begin{slide*}}{\end{slide*}}
2560 \newcommand{\Folien}[3]{\def\Reihe{#1}\def\Kapitel{#2}\def\pageprefix{#3}}
2562 \newenvironment{itemlist}[1]%
2564 {\settowidth{\labelwidth}{#1}
2565 \setlength{\leftmargin}{\labelwidth}
2566 \addtolength{\leftmargin}{\labelsep}
2568 \parsep 0.5ex plus 0.3ex minus 0.3ex
2570 \renewcommand{\makelabel}[1]{##1\hfill}}}%
2573 \newenvironment{itemtext}[1]{\begin{itemlist}{#1}\item[#1]}{\end{itemlist}}
2576 \definecolor{white}{gray}{1}
2577 \definecolor{lightshaded}{gray}{0.9}
2578 \definecolor{shaded}{gray}{0.75}
2579 \definecolor{darkshaded}{gray}{0.65}
2581 \newcommand{\shadedbox}[3]{\colorbox{#1}{\parbox{#2}{#3}}}
2582 \newcommand{\plainbox}[2]{{\fboxrule0em \fbox{\parbox{#1}{#2}}}}
2584 \shadedbox{lightshaded}{17\semcm}{
2585 \begin{itemtext}{{\bf #1}}
2591 \def\folgt{\mbox{$\Rightarrow$}}
2592 \def\impl{$\Rightarrow$}
2593 \def\density#1{\renewcommand{\baselinestretch}{#1}\small\normalsize}
2597 %% END `seminar.cls'.