]> pere.pagekite.me Git - homepage.git/blob - mypapers/drafts/latex-Slides/immd2-folien.cls
New post about a very nice game.
[homepage.git] / mypapers / drafts / latex-Slides / immd2-folien.cls
1 \def\fileversion{1.0}
2 \def\filedate{1996/05/23}
3
4 %% IMMD-II-Folien-Style
5 %%
6 %% Extension of the seminar style
7 %%
8 %% Mark Minas, May 1996
9
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{%
16 \def\@tempg{##2}%
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}%
25 \errmessage{#1^^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
30 \paperwidth 8.5in
31 \paperheight 11in
32 \def\addto@preamblecmds#1{%
33 \begingroup
34 \def\do{\noexpand\do\noexpand}%
35 \xdef\@preamblecmds{\@preamblecmds\do#1}%
36 \endgroup}
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}{}}
41 \sem@temp{article}{}
42 \sem@temp{slidesonly}{}
43 \sem@temp{notes}{}
44 \sem@temp{notesonly}{}
45 \sem@temp{notesonlystar}{}
46 \sem@temp{portrait}{}
47 \portraittrue
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}
56 \paperwidth 210mm
57 \paperheight 297mm
58 \DeclareOption{a4}{%
59 \paperwidth 210mm
60 \paperheight 297mm
61 \slidewidth 222mm
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}}
71 \ProcessOptions
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
79 \LoadClass{article}
80 \let\paperheight\sem@paperheight
81 \let\paperwidth\sem@paperwidth
82
83 %% begin former sem-page.sty
84
85 \def\slideleftmargin{.6in}
86 \def\sliderightmargin{.6in}
87 \def\slidetopmargin{.6in}
88 \def\slidebottommargin{.6in}
89 \ifarticle
90 \ifportrait
91 \twocolumn
92 \sloppy
93 \topmargin 0pt
94 \headheight 15pt
95 \headsep 25pt
96 \footskip 30pt
97 \footheight 15pt
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
107 \oddsidemargin 0pt
108 \evensidemargin 0pt
109 \leftmargini 2em
110 \leftmarginv .5em
111 \leftmarginvi .5em
112 \columnsep 40pt
113 \marginparwidth 0pt
114 \marginparsep 0pt
115 \else
116 \textwidth 5.5in
117 \oddsidemargin\paperwidth\relax
118 \advance\oddsidemargin -\textwidth
119 \divide\oddsidemargin 2
120 \advance\oddsidemargin -1in
121 \evensidemargin\oddsidemargin
122 \if@twoside
123 \advance\oddsidemargin -18pt
124 \advance\evensidemargin 18pt
125 \fi
126 \topmargin -20pt
127 \headheight 15pt
128 \headsep 25pt
129 \footskip 33pt
130 \footheight 15pt
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
138 \fi
139 \else
140 \oddsidemargin 0pt
141 \evensidemargin 0pt
142 \marginparwidth 0pt
143 \marginparsep 0pt
144 \ifportrait
145 \textwidth\paperwidth\relax
146 \textheight\paperheight\relax
147 \else
148 \textwidth\paperheight\relax
149 \textheight\paperwidth\relax
150 \fi
151 \advance\textwidth by -2in
152 \topmargin -1in
153 \headheight .5in
154 \headsep .5in
155 \advance\textheight by -2in
156 \footskip .75in
157 \footheight .25in
158 \fi
159 %% END sem-page.sty
160
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}
168 \before@document{}
169 \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
176 \ifportrait
177 \ifarticle\printlandscapetrue\fi
178 \else
179 \ifarticle\else\printlandscapetrue\fi
180 \fi
181 \addto@hook\before@document{\ifprintlandscape\printlandscape\fi}
182 \addto@preamblecmds{\printlandscape}
183 \def\printlandscape{\addto@hook\before@enddocument{%
184 \typeout{^^J%
185 *******************************************************^^J%
186 ***** !! PRINT THIS DOCUMENT IN LANDSCAPE MODE !! *****^^J%
187 *******************************************************}}}
188 \def\slide{%
189 \NestedSlide@Error{slide}%
190 \landscapetrue
191 \@ifnextchar[{\begin@slide}{\begin@slide[\slidewidth,\slideheight]}}
192 \def\endslide{\end@slide}
193 \@namedef{slide*}{%
194 \NestedSlide@Error{slide*}%
195 \landscapefalse
196 \@ifnextchar[{\begin@slide}{\begin@slide[\slidewidth,\slideheight]}}%
197 \@namedef{endslide*}{\end@slide}
198 \newcounter{slide}
199 \def\theslide{\arabic{slide}}
200 \newcount\slide@count
201 \newbox\@slidebox
202 \newbox\not@slidebox
203 \newif\ifslide
204 \newif\iflandscape
205 \def\@landscapeonly{0}
206 \def\landscapeonly{\def\@landscapeonly{1}}
207 \def\portraitonly{\def\@landscapeonly{-1}}
208 \def\NestedSlide@Error#1{%
209 \ifslide
210 \endgroup
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
215 \begingroup
216 \def\@currenvir{#1}%
217 \fi}
218 \def\begin@slide[#1,#2]{%
219 \slide@clearpage
220 \setlength\slidewidth{#1}%
221 \setlength\slideheight{#2}%
222 \begingroup
223 \ifarticle
224 \output{%
225 \advance\count@ 1
226 \global\setbox\not@slidebox\box\@cclv}%
227 \par\@@par\penalty-\@M
228 \fi
229 \output{\slide@output}%
230 \slidetrue
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
235 \ifarticle\else
236 \edef\page@textheight{\number\textheight sp}%
237 \edef\page@textwidth{\number\textwidth sp}%
238 \fi
239 \set@slidesize
240 \slidebox@restore
241 \the\slide@hook
242 \the\before@newslide
243 \everyslide}
244 \def\end@slide{%
245 \par\penalty-\@M
246 \xdef\@tempg{\@currenvir}%
247 \endgroup
248 \ifslide
249 \@seminarerr{Perhaps missing `\string\end{\@tempg}',
250 \iffalse{\fi`\string}' or `\string\endgroup'}\@ehd
251 \def\next{\endgroup\ifslide\expandafter\next\fi}%
252 \next
253 \fi
254 \begingroup
255 \output{\setbox\@tempboxa\box\@cclv}%
256 \@@par\penalty-\@M
257 \endgroup
258 \global\advance\c@slide-1
259 \def\do##1{\setcounter{##1}{\@nameuse{saved@c@##1}}}%
260 \slide@reset
261 \ifarticle\outputloop@savedslides\fi
262 \the\after@slide}
263 \let\slideclearpagetrue\relax
264 \let\slideclearpagefalse\relax
265 \ifarticle
266 \def\slide@clearpage{\par\penalty\z@}
267 \ifnotes
268 \def\slideclearpagetrue{\def\slide@clearpage{\clearpage}}
269 \def\slideclearpagefalse{\def\slide@clearpage{\par\penalty\z@}}
270 \else
271 \ifnotesonly
272 \def\slideclearpagetrue{\def\slide@clearpage{\clearpage}}
273 \def\slideclearpagefalse{\def\slide@clearpage{\par\penalty\z@}}
274 \fi
275 \fi
276 \else
277 \def\slide@clearpage{\clearpage}
278 \fi
279 \newtoks\slide@hook
280 \def\everyslide{}
281 \newtoks\after@slide
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}%
288 \@twocolumnfalse
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}%
294 \fix@floats
295 \fix@whatsits
296 \slide@footnotes
297 \def\do##1{\expandafter\xdef\csname
298 saved@c@##1\endcsname{\the\@nameuse{c@##1}}}%
299 \slide@reset
300 \topskip\z@ \maxdepth\z@
301 \slide@listparameters
302 \slidefonts
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}}
309 \date{\today}
310 \let\slidethanks\thanks
311 \def\thethanks{\@thanks}%
312 \def\slidemaketitle{%
313 \par
314 \begin{center}\bf
315 {\large \thetitle}\par\vskip 1ex
316 \begin{tabular}[t]{c} \theauthor \end{tabular}\par\vskip 1ex
317 \thedate
318 \end{center}%
319 \thethanks\par}
320 \def\fix@floats{%
321 \def\@xfloat##1[##2]{%
322 \expandafter\let\csname end##1\endcsname\end@float
323 \par\medskip\vbox\bgroup\def\@captype{##1}\parindent\z@
324 \ignorespaces}%
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
332 \def\fix@whatsits{%
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}
346 \def\slidefonts{}
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
359 \slide@listdepth\z@
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}
364 \def\slide@listi{%
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
374 \else
375 \itemsep\parsep \topsep\z@
376 \fi}
377 \def\slide@listii{%
378 \leftmargin\leftmarginii
379 \labelwidth\leftmarginii \advance\labelwidth-\labelsep
380 \divide\itemsep2 \divide\parsep2
381 \divide\topsep2 \divide\partopsep2\relax}%
382 \def\slide@listiii{%
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{%
394 \begingroup
395 \output{%
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@}%
400 \hbox{}\penalty-\@M
401 \global\let\saved@texttop\@texttop
402 \gdef\@texttop{%
403 \ifvoid\saved@specials\else\box\saved@specials\nointerlineskip\fi
404 \saved@texttop
405 \global\let\@texttop\saved@texttop}%
406 \endgroup}
407 \addto@hook\after@document{\save@slidespecials}
408 \ifarticle\else
409 \def\insert@specials{%
410 \ifvoid\saved@specials\else
411 \setbox\@slidebox\hbox{\box\saved@specials\box\@slidebox}%
412 \fi
413 \global\let\insert@specials\relax}
414 \fi
415 \def\extraslideheight#1{%
416 \@tempdima #1\relax
417 \edef\X@SlideHeight{\number\@tempdima sp}
418 \ifslide\set@slidesize\fi}
419 \extraslideheight{6pt}
420 \def\set@slidesize{%
421 \iflandscape
422 \hsize=\inverseslidesmag\slidewidth
423 \vsize=\inverseslidesmag\slideheight
424 \else
425 \hsize=\inverseslidesmag\slideheight
426 \vsize=\inverseslidesmag\slidewidth
427 \fi
428 \edef\slide@vsize{\number\vsize sp}%
429 \textheight\vsize
430 \advance\vsize\X@SlideHeight\relax
431 \textwidth\hsize\columnwidth\hsize\linewidth\hsize}
432 \def\newslide{%
433 \par\penalty-\@M
434 \def\do##1{\setcounter{##1}\z@}\slide@reset
435 \the\before@newslide
436 \set@slidesize}
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,{%
443 \ifx\@nil#1\else
444 \@ifundefined{c@#1}%
445 {\@seminarerr{Counter `#1' not defined}\@ehd}%
446 {\expandafter\def\expandafter\slide@reset\expandafter{%
447 \slide@reset\do{#1}}}%
448 \expandafter\addto@slidereset
449 \fi}
450 \def\slide@output{%
451 \@makeslide
452 \@testfalse
453 \ifnotesonly\else
454 \iflandscape
455 \ifnum\@landscapeonly>-1 \os@test\fi
456 \else
457 \ifnum\@landscapeonly<1 \os@test\fi
458 \fi
459 \fi
460 \if@test
461 \reset@slideoutput
462 \@@makeslide
463 \process@slide
464 \fi
465 \refstepcounter{slide}}
466 \def\reset@slideoutput{%
467 \let\par\@@par
468 \reset@font
469 \def\baselinestretch{1}%
470 \@nameuse{1\@ptsize @semptsize}%
471 \catcode`\ =10
472 \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii}
473 \newif\ifcenterslides
474 \centerslidestrue
475 \def\@makeslide{%
476 \setbox\@slidebox\vbox{%
477 \unvbox\@cclv
478 \ifvoid\slide@footins\else
479 \vskip\skip\slide@footins
480 \footnoterule
481 \unvbox\slide@footins
482 \fi
483 \vskip\z@}}
484 \def\@@makeslide{%
485 \overfullslide@warning
486 \setbox\@slidebox\hbox{%
487 \vfuzz=\slidefuzz\relax
488 \vbox to\slide@vsize{%
489 \ifcenterslides\vskip\z@ plus .0001fil \fi
490 \unvbox\@slidebox
491 \vskip\z@ plus .0001fil}%
492 \the\after@slidepage}%
493 \wd\@slidebox\textwidth}
494 \def\overfullslide@warning{%
495 \dimen@\ht\@slidebox
496 \advance\dimen@-\slide@vsize\relax
497 \ifdim\dimen@>\slidefuzz\relax
498 \@warning{Slide \theslide\space overfull by \the\dimen@}%
499 \fi}
500 \def\slidefuzz{2pt}
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}}}
506 \def\semsr@left{%
507 \def\rotate@slide{%
508 \setbox\@slidebox\hbox{\leftsliderotation{\box\@slidebox}}}}
509 \def\semsr@right{%
510 \def\rotate@slide{%
511 \setbox\@slidebox\hbox{\rightsliderotation{\box\@slidebox}}}}
512 \def\semsr@none{\let\rotate@slide\relax}
513 \sliderotation{none}
514 \def\leftsliderotation#1{%
515 \@seminarerr{\string\leftsliderotation\space has not been defined}%
516 \@ehd}
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
521 \fi}
522 \def\process@slide{%
523 \slideframewidth=\inverseslidesmag\slideframewidth
524 \slideframesep=\inverseslidesmag\slideframesep
525 \fboxrule\slideframewidth
526 \fboxsep\slideframesep
527 \ifarticle
528 \@ifrotateslide\rotate@slide
529 \else
530 \ifrotateheaders\else\@ifrotateslide\rotate@slide\fi
531 \fi
532 \process@@slide}
533 \def\process@@slide{\finish@slide\output@slide}
534 \def\finish@slide{%
535 \theslideframe
536 \add@slidelabel\slidelabel}
537 \ifarticle
538 \def\output@slide{%
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}
545 \else
546 \def\output@slide{%
547 \begingroup
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}
554 \ifrotateheaders
555 \@ifrotateslide{%
556 \dimen@=\@tempdima
557 \@tempdima=\@tempdimb
558 \@tempdimb=\dimen@}
559 \fi
560 % \oddsidemargin, \evensidemargin, \headheight, \footheight
561 % used for scratch:
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{%
571 \kern\oddsidemargin
572 \vbox to\@tempdimb{%
573 \ifnum\fancyput@flag>-1
574 \hbox{\kern-\oddsidemargin\do@fancyput}%
575 \fi
576 \let\label\@gobble
577 \let\index\@gobble
578 \let\glossary\@gobble
579 \vbox to\headheight{%
580 \vfill
581 \hbox{%
582 \slideheadfont\relax\strut
583 \hbox to\textwidth{\@oddhead}}%
584 \kern\z@}%
585 \vfill
586 \hbox to\textwidth{\hss\box\@slidebox\hss}%
587 \vfill
588 \vbox to\footheight{%
589 \hbox{%
590 \slidefootfont\relax\strut
591 \hbox to\textwidth{\@oddfoot}}%
592 \vfill}}%
593 \hss}%
594 \ifrotateheaders\@ifrotateslide\rotate@slide\fi
595 \insert@specials
596 \shipout\box\@slidebox
597 \endgroup
598 \let\firstmark\botmark}
599 \@ifundefined{fancyput@flag}{\def\fancyput@flag{-1}}{}
600 \fi
601 \newskip\slidesep
602 \slidesep\intextsep
603 \ifarticle
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{%
620 \dimen@.5\textheight
621 \advance\dimen@-\slidesep
622 \ifdim\ht\@slidebox>\dimen@
623 \onepercol@savedslide
624 \else
625 \vbox to .498\textheight{\vss\center@slide\vss}\goodbreak
626 \fi}
627 \def\here@savedslide{%
628 \addvspace\slidesep\center@slide\addvspace\slidesep}
629 \@namedef{here*@savedslide}{%
630 \goodbreak \hrule \@height\z@ \nobreak \vskip\slidesep \nobreak
631 \center@slide
632 \nobreak \vskip\slidesep \nobreak \hrule\@height\z@ \goodbreak}
633 \fi
634 \ifarticle
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}}
639 \else
640 \def\slideplacement#1{}
641 \fi
642 \ifarticle
643 \ifnotes
644 \ifportrait
645 \slideplacement{float}
646 \else
647 \slideplacement{float*}
648 \fi
649 \else
650 \ifportrait
651 \slideplacement{onepercol}
652 \else
653 \slideplacement{twopercol}
654 \fi
655 \fi
656 \fi
657 \ifarticle
658 \def\outputloop@savedslides{%
659 \global\maxdepth\@maxdepth
660 \ifvoid\not@slidebox\else
661 \dimen@=\dp\not@slidebox
662 \unvbox\not@slidebox
663 \hrule height\z@
664 \prevdepth\dimen@
665 \penalty\z@
666 \fi
667 \edef\slide@@count{\the\slide@count\relax}%
668 \slide@count\z@
669 \loop
670 \ifnum\slide@count<\slide@@count
671 \advance\slide@count1
672 \expandafter\setbox\expandafter\@slidebox\expandafter\box
673 \csname slidebox@\the\slide@count\endcsname
674 \output@savedslide
675 \repeat
676 \ifnotesonlystar\make@slidemarker\fi}
677 \fi
678 \def\make@slidemarker{%
679 \addvspace\slidesep
680 \moveleft\@totalleftmargin
681 \vbox{%
682 \hsize\columnwidth
683 \hrule height 1pt
684 \kern 8pt
685 \hbox to \columnwidth{%
686 \hss
687 \LARGE\bf\the@slidemarker
688 \hss}%
689 \kern 8pt
690 \hrule height 1pt}%
691 \addvspace\slidesep}
692 \def\the@slidemarker{%
693 Slide%
694 \ifnum\c@slide=\first@slidemarker\else
695 s {\c@slide\first@slidemarker\relax\theslide} --\fi
696 { }\theslide}%
697 \ifarticle
698 \let\c@note\c@page
699 \def\p@note{\p@page}
700 \def\thenote{\thepage}
701 \else
702 \newcounter{note}
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}}
708 \fi
709 \ifarticle\else
710 \let\c@page\c@slide
711 \countdef\c@slide=0
712 \c@slide=0
713 \c@page=1
714 \fi
715 \ifarticle
716 \let\truepagenumbers\relax
717 \else
718 \def\truepagenumbers{%
719 \let\c@slide\c@page
720 \countdef\c@page=0
721 \c@page=1
722 \c@slide=0
723 \let\truepagenumbers\relax}
724 \fi
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}}
735 \def\@slideframe#1{%
736 \@ifstar{\@testtrue\@@slideframe{#1}}{\@testfalse\@@slideframe{#1}}}
737 \def\@@slideframe#1{%
738 \@ifnextchar[{\@@@slideframe{#1}}{\@@@slideframe{#1}[]}}
739 \def\@@@slideframe#1[#2]#3{%
740 \def\@tempa{none}%
741 \def\@tempb{#3}%
742 \ifx\@tempa\@tempb
743 \@namedef{the#1frame}{\relax}%
744 \else
745 \ifx\@tempb\@empty
746 \@namedef{the#1frame}{}%
747 \else
748 \@ifundefined{semsf@#3}%
749 {\@seminarerr{Slide frame `#3' undefined}\@eha}%
750 {\if@test
751 \@@@@slideframe{#1}[#2]{#3}%
752 \else
753 \@namedef{the#1frame}{\setbox\@slidebox=\hbox{{%
754 \@nameuse{semsfops@#3}#2\@nameuse{semsf@#3}{\box\@slidebox}}}}%
755 \fi}%
756 \fi
757 \fi}
758 \def\@@@@slideframe#1[#2]#3{%
759 \expandafter\let\expandafter\@tempa\csname the#1frame\endcsname
760 \edef\next{%
761 \noexpand\def\expandafter\noexpand\csname the#1frame\endcsname}%
762 \expandafter\next\expandafter{\@tempa
763 \setbox\@slidebox=\hbox{{%
764 \@nameuse{semsfops@#3}%
765 #2%
766 \@nameuse{semsf@#3}{\box\@slidebox}}}}}%
767 \slideframe{plain}
768 \def\slidestyle#1{\@ifundefined{ss@#1}%
769 {\@seminarerr{Slide style `#1' undefined}\@eha}%
770 {\@nameuse{ss@#1}}}
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}}}}%
780 \ifarticle
781 \ifportrait\slidestyle{bottom}\else\slidestyle{left}\fi
782 \else
783 \slidestyle{empty}
784 \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}}
794 \def\@ifgoodps#1{%
795 \@ifundefined{ps@#1}{\@seminarerr{Page style `#1' undefined}\@eha}}
796 \def\slidepagestyle#1{%
797 \@ifgoodps{#1}%
798 {\ifslide\pagestyle{#1}\else\edef\slide@pagestyle{#1}\fi}}
799 \def\ps@{}
800 \slidepagestyle{}
801 \ifarticle
802 \def\ps@align{}
803 \else
804 \def\ps@align{%
805 \def\@oddhead{\thepage\hfil+}\let\@evenhead\@oddhead
806 \def\@oddfoot{+\hfil+}\let\@evenfoot\@oddfoot}
807 \fi
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}
814 \def\@magstep#1{%
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}
821 \def\@slidesmag#1{%
822 \@tempcnta=#1\relax%
823 \ifnum\@tempcnta>0
824 \edef\inverseslidesmag{\the\@tempcnta}%
825 \invert@mag\inverseslidesmag
826 \ifarticle\else\mag\@tempcnta\fi
827 \else
828 \@seminarerr{\string\@slidesmag\space argument must be an
829 integer equal to 1000 times the magnification}\@eha
830 \fi}
831 \def\@articlemag#1{%
832 \@tempcnta=#1\relax%
833 \ifnum\@tempcnta>0
834 \edef\inverseartmag{\the\@tempcnta}%
835 \invert@mag\inverseartmag
836 \ifarticle\mag\@tempcnta\fi
837 \else
838 \@seminarerr{\string\articlemag\space argument must be an
839 integer equal to 1000 times the magnification}\@eha
840 \fi}
841 \addto@preamblecmds{\@slidesmag\do\@articlemag}
842 \newdimen\semin
843 \newdimen\semcm
844 \def\@semmagerr#1{%
845 \@seminarerr{\string#1 argument must be an integer
846 between -5 and 9}\@eha}
847 \def\slidesmag#1{%
848 \@tempcnta=#1\relax
849 \ifnum\@tempcnta>-6
850 \ifnum\@tempcnta<10
851 \edef\the@slidesmag{\the\@tempcnta}%
852 \@slidesmag{\@magstep\@tempcnta}%
853 \else
854 \@semmagerr\slidesmag
855 \fi
856 \else
857 \@semmagerr\slidesmag
858 \fi
859 \setslidelength\semin\seminlength
860 \setslidelength\semcm\semcmlength}
861 \def\seminlength{1in}
862 \def\semcmlength{1cm}
863 \def\articlemag#1{%
864 \@tempcnta=#1\relax
865 \ifnum\@tempcnta>-6
866 \ifnum\@tempcnta<10
867 \edef\the@articlemag{\the\@tempcnta}%
868 \@articlemag{\@magstep\@tempcnta}%
869 \else
870 \@semmagerr\articlemag
871 \fi
872 \else
873 \@semmagerr\articlemag
874 \fi}
875 \addto@preamblecmds{\slidesmag\do\articlemag}
876 \def\setslidelength#1#2{%
877 #1=#2\relax
878 #1=\inverseslidesmag#1}%
879 \def\addtoslidelength#1#2{%
880 \dimen@=#2\relax
881 \advance#1 by \inverseslidesmag\dimen@}
882 \def\setartlength#1#2{%
883 #1=#2\relax
884 #1=\inverseartmag#1}
885 \def\addtoartlength#1#2{%
886 \dimen@=#2\relax
887 \advance#1 by \inverseartmag\dimen@}
888 \def\slide@epsfsize#1#2{%
889 \ifdim\epsfxsize=0pt
890 \ifdim\epsfysize=0pt
891 \inverseslidesmag#1%
892 \else
893 0pt
894 \fi
895 \else
896 \inverseslidesmag\epsfxsize
897 \fi
898 \epsfysize
899 \ifdim\epsfysize=0pt
900 \ifdim\epsfxsize=0pt
901 \inverseslidesmag#2%
902 \else
903 0pt
904 \fi
905 \else
906 \inverseslidesmag\epsfysize
907 \fi}
908 \def\epsfslidesize{\let\epsfsize\slide@epsfsize}
909 \slidesmag{4}
910 \articlemag{0}
911 \def\do@pageparameters{%
912 \do\oddsidemargin
913 \do\evensidemargin
914 \do\marginparwidth
915 \do\marginparsep
916 \do\topmargin
917 \do\headheight
918 \do\headsep
919 \do\textheight
920 \do\textwidth
921 \do\topskip
922 \do\footskip
923 \do\footheight}
924 \ifarticle
925 \def\scale@pageparameters{%
926 \begingroup
927 \def\do##1{\global##1=\inverseartmag##1\relax}%
928 \do@pageparameters
929 \endgroup}
930 \else
931 \def\scale@pageparameters{%
932 \begingroup
933 \def\do##1{\global##1=\inverseslidesmag##1\relax}%
934 \do@pageparameters
935 \endgroup}
936 \fi
937 \addto@hook\before@document{\scale@pageparameters}
938 \addto@preamblecmds{\scale@pageparameters\do\do@pageparameters}
939 \def\allversions{}
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}
946 \ifslidesonly
947 \@ifundefined{xcomment@@@}{\@@input xcomment.sty }{}
948 \def\xcomment@hook{\@xcomment{@@@}{\slide@list}}
949 \newxcomment[]{note}
950 \else
951 \def\note{\@bsphack}%
952 \def\endnote{\@esphack}%
953 \fi
954 \def\noxcomment{\def\xcomment@hook{}}
955 \def\os@list{}
956 \newif\if@os
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}
966 \def\os@expandlist{%
967 \let\os@@warning\relax
968 \begingroup
969 \def\ref##1{\@ifundefined{r@##1}{?}%
970 {\noexpand\@car\@nameuse{r@##1}\noexpand\@nil}}%
971 \edef\@tempd{\os@list}%
972 \xdef\os@list{}%
973 \@for\@tempc:=\@tempd
974 \do{\expandafter\os@expandrange\@tempc-:-:\@nil}%
975 \os@@warning
976 \endgroup
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}%
982 \ifx\@tempa\@tempb
983 \let\os@@warning\os@warning
984 \else
985 \@tempcnta=#1\relax
986 \def\@tempb{#2}%
987 \ifx\@tempa\@tempb
988 \let\os@@warning\os@warning
989 \else
990 \def\@tempa{:}%
991 \ifx\@tempa\@tempb
992 \@tempcntb=\@tempcnta
993 \else
994 \@tempcntb=#2\relax
995 \fi
996 \advance\@tempcnta by -1
997 \advance\@tempcntb by 1
998 \ifx\os@list\@empty
999 \xdef\os@list{\the\@tempcnta+\the\@tempcntb}%
1000 \else
1001 \xdef\os@list{\os@list,\the\@tempcnta+\the\@tempcntb}%
1002 \fi
1003 \fi
1004 \fi}
1005 \def\os@test{%
1006 \@testtrue
1007 \iflandscape
1008 \ifnum\@landscapeonly=-1 \@testfalse\fi
1009 \else
1010 \ifnum\@landscapeonly=1 \@testfalse\fi
1011 \fi
1012 \if@test
1013 \ifx\os@list\@empty\else
1014 \if@os\@testfalse\fi
1015 \@for\@tempa:=\os@list\do{\expandafter\os@testrange\@tempa\@nil}%
1016 \fi
1017 \fi}
1018 \def\os@testrange#1+#2\@nil{%
1019 \ifnum\c@slide>#1
1020 \ifnum\c@slide<#2
1021 \if@os\@testtrue\else\@testfalse\fi
1022 \fi
1023 \fi}
1024 \def\onlynotestoo{%
1025 \ifnotes\@testtrue\else\ifnotesonly\@testtrue\else\@testfalse\fi\fi
1026 \if@test
1027 \@ifundefined{xcomment@@@}{%
1028 \edef\sem@temp{\the\catcode`\@}%
1029 \catcode`\@=11
1030 \@@input xcomment.sty
1031 \catcode`\@=\sem@temp\relax}{}%
1032 \def\xcomment@hook{\@xcomment{@@@}{\slide@list}}%
1033 \addto@hook\after@slide\onlynotes@too
1034 \fi}
1035 \def\onlynotes@too{%
1036 \os@test
1037 \if@test\gdef\do@end{}\else\gdef\do@end{\xc@begin}\fi}
1038 \addto@preamblecmds\onlynotestoo
1039 \def\ptsize#1{%
1040 \@ifundefined{#1@semptsize}%
1041 {\@seminarerr{\string\ptsize\space `#1' not valid.}\@eha}%
1042 {\ifslide
1043 \sem@ptsize{#1}\large\normalsize
1044 \else
1045 \edef\slide@ptsize{#1}%
1046 \fi}}
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}%
1051 \set@slideskip{#2}}
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
1064 \normalbaselines}
1065 \def\slideskip{.75}
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}
1072 \def\sem@ptsize#1{%
1073 \@nameuse{#1@semptsize}%
1074 \large\normalsize
1075 \leftmargini\slideleftmargini\relax
1076 \leftmarginii\slideleftmarginii\relax
1077 \leftmarginiii\slideleftmarginiii\relax
1078 \labelsep\slidelabelsep\relax
1079 \parskip\slideparskip\relax
1080 \parindent\slideparindent\relax
1081 \slide@rightskip
1082 \slide@listi
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}%
1143 \let\Huge\huge}
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}%
1153 \let\huge\LARGE
1154 \let\Huge\LARGE}
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}%
1163 \let\LARGE\Large
1164 \let\huge\Large
1165 \let\Huge\Large}
1166 \def\twoup{\@ifnextchar[{\@twoup}{\@twoup[0]}}
1167 \ifarticle
1168 \ifportrait
1169 \def\@twoup[#1]{%
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
1175 \@@input 2up.tex
1176 \source{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
1177 \target{\@magstep\@tempcntb}{\paperwidth}{\paperheight}%
1178 \targetlayout{topbottom}%
1179 \printlandscapefalse
1180 \else
1181 \@seminarerr{Article magnification is too low for
1182 \string\twoup\space to handle}\@eha
1183 \fi
1184 \def\articlemag##1{\@semtwoupmagerr\articlemag}}
1185 \else
1186 \def\@twoup[#1]{%
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
1192 \@@input 2up.tex
1193 \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}%
1194 \target{\@magstep\@tempcntb}{\paperheight}{\paperwidth}%
1195 \if@twoside
1196 \targetlayout{twosided}%
1197 \fi
1198 \printlandscapetrue
1199 \else
1200 \@seminarerr{Article magnification is too low for
1201 \string\twoup\space to handle}\@eha
1202 \fi
1203 \def\articlemag##1{\@semtwoupmagerr\articlemag}}
1204 \fi
1205 \else
1206 \ifportrait
1207 \def\@twoup[#1]{%
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
1213 \@@input 2up.tex
1214 \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}%
1215 \advance\@tempcnta by -3
1216 \target{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
1217 \printlandscapetrue
1218 \else
1219 \@seminarerr{Slides magnification is too low for
1220 \string\twoup\space to handle}\@eha
1221 \fi
1222 \def\slidesmag##1{\@semtwoupmagerr\slidesmag}}
1223 \else
1224 \def\@twoup[#1]{%
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
1230 \@@input 2up.tex
1231 \source{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
1232 \target{\@magstep\@tempcntb}{\paperwidth}{\paperheight}%
1233 \targetlayout{topbottom}%
1234 \printlandscapefalse
1235 \else
1236 \@seminarerr{Slides magnification is too low for
1237 \string\twoup\space to handle}\@eha
1238 \fi
1239 \def\slidesmag##1{\@semtwoupmargerr\slidesmag}}%
1240 \fi
1241 \fi
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
1247
1248
1249
1250 %% BEGIN semhelv.sty
1251 \def\fileversion{1.0 (2e)}
1252 \def\filedate{94/09/11}
1253 %%
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.
1257 %%
1258 %% COPYRIGHT 1994, by Timothy Van Zandt, tvz@Princeton.EDU
1259 %% See seminar.sty or seminar.doc for copying restrictions.
1260 %%
1261 %% ************************************************************************
1262 %% **** DESCRIPTION ****
1263 %% ************************************************************************
1264 %%
1265 % This file contains the external font information needed to load
1266
1267 % the PostScript Helvetica fonts for use by seminar.sty.
1268 %
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).
1272 %
1273 % IMPORTANT:
1274 % As distributed, the following font file names are assumed for the
1275 % `standard' TeX encoding:
1276 %
1277 % Helvetica phvr
1278 % Helvetica-Oblique phvro
1279 % Helvetica-Bold phvb
1280 % Helvetica-BoldOblique phvbo
1281 % Courier pcr
1282 % Courier-Bold pcrb
1283 % Courier-Oblique pcro
1284 % Courier-BoldOblique pcrbo
1285 %
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.
1288 %
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
1292 % PostScript fonts.
1293 %
1294 % Fonts are scaled so that the x-heights match those of the cmr fonts;
1295 % this makes in-line math look acceptable.
1296 %
1297 % Note: The Courier font is not that great.
1298 %
1299 % Preliminaries:
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}{}
1305 %
1306 % Font definitions.
1307
1308 \expandafter\ifx\csname DeclareSizeFunction\endcsname\relax
1309
1310 % FOR NFSS:
1311
1312 \@ifundefined{newpsfamily}{\input{npsfont.sty}}{}%
1313
1314 % See npsfont.sty for the definition of \newpsfamily.
1315
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
1328
1329 % Use fonts or use \slidefonts:
1330 \ifarticle
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}
1337 \else
1338 \renewcommand{\default@family}{helvetica}%
1339 \renewcommand{\rmdefault}{helvetica}%
1340 \renewcommand{\ttdefault}{courier}%
1341 \renewcommand{\sfdefault}{helvetica}%
1342 \family\default@family\selectfont
1343 \fi
1344
1345 \else
1346
1347 % FOR NFSS2 OR LATEX2E:
1348
1349 \def\helv@scale{.82}
1350
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}{}%
1364
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}{}%
1378
1379 \def\courier@scale{.82}
1380
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}{}%
1394
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}{}%
1408
1409 % Use fonts or use \slidefonts:
1410 \ifarticle
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}
1417 \else
1418 \renewcommand{\default@family}{helvetica}%
1419 \renewcommand{\rmdefault}{helvetica}%
1420 \renewcommand{\ttdefault}{courier}%
1421 \renewcommand{\sfdefault}{helvetica}%
1422 \fontfamily\default@family\selectfont
1423 \fi
1424
1425 \fi
1426
1427 %% END semhelv.sty
1428
1429
1430 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1431 %%
1432 %% Style-File: vorl.sty
1433 %%
1434 %% Mark Minas <minas@informatik.uni-erlangen.de>
1435 %%
1436 %% 2.5.1995
1437 %%
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}
1445
1446 % If we're in compatibility mode, defined \mathbf and \mathit.
1447
1448 \@ifundefined{mathbf}{}{\DeclareMathAlphabet{\mathbf}{OT1}{ptm}{bx}{n}}
1449 \@ifundefined{mathit}{}{\DeclareMathAlphabet{\mathit}{OT1}{ptm}{m}{it}}
1450
1451 % An \omicron command, to fill the gap.
1452
1453 \DeclareMathSymbol{\omicron}{0}{operators}{`\o}
1454
1455 % Reduce the space around math operators
1456
1457 \thinmuskip=2mu
1458 \medmuskip=2.5mu plus 1mu minus 1mu
1459 \thickmuskip=4mu plus 1.5mu minus 1mu
1460
1461 % No bold math.
1462
1463 \def\boldmath{%
1464 \@warning{there is no bold Symbol font}%
1465 \global\let\boldmath=\relax
1466 }
1467
1468 % Larger scripts.
1469
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}
1482
1483 %% including file verbatim
1484 %%
1485 \def\verbatimfile#1{\begingroup
1486 \@verbatim \frenchspacing \@vobeyspaces
1487 \input#1 \endgroup
1488 }
1489
1490 %% verbatim environment using \tt\bfseries
1491 %%
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*]]
1496 |endgroup
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
1501 \@@par
1502 \@tempswafalse
1503 \def\par{%
1504 \if@tempswa
1505 \leavevmode \null \@@par\penalty\interlinepenalty
1506 \else
1507 \@tempswatrue
1508 \ifhmode\@@par\penalty\interlinepenalty\fi
1509 \fi}%
1510 \obeylines \bfverbatim@font \@noligs
1511 \let\do\@makeother \dospecials
1512 \everypar \expandafter{\the\everypar \unpenalty}%
1513 }
1514 \def\bfverbatim{\@bfverbatim \frenchspacing\@vobeyspaces \@xbfverbatim}
1515 \def\endbfverbatim{\if@newlist \leavevmode\fi\endtrivlist}
1516 \def\bfverbatim@font{\normalfont\ttfamily\bfseries}
1517
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)
1521 %%
1522 \def\colorpage{%
1523 \@ifnextchar[%]
1524 \@icolorpage
1525 {\@iiicolorpage c\@empty[s]}}
1526 \def\@icolorpage[#1]{%
1527 \@ifnextchar[%]
1528 {\@iicolorpage{#1}}%
1529 {\@iiicolorpage{#1}\@empty[s]}}
1530 \def\@iicolorpage#1[#2]{%
1531 \@ifnextchar[%]
1532 {\@iiicolorpage{#1}{#2}}%
1533 {\@iiicolorpage{#1}{#2}[#1]}}
1534 \def\@iiicolorpage#1#2[#3]#4#5{%
1535 \leavevmode
1536 \@pboxswfalse
1537 \setlength\@tempdima{#4}%
1538 \def\@cboxcolor{#5}%
1539 \def\@mpargs{{#1}{#2}[#3]{#4}}%
1540 \setbox\@tempboxa\vbox\bgroup
1541 \color@begingroup
1542 \hsize\@tempdima
1543 \textwidth\hsize \columnwidth\hsize
1544 \@parboxrestore
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
1551 \def\endcolorpage{%
1552 \par
1553 \unskip
1554 \ifvoid\@mpfootins\else
1555 \vskip\skip\@mpfootins
1556 \normalcolor
1557 \footnoterule
1558 \unvbox\@mpfootins
1559 \fi
1560 \global\@minipagefalse %% added 24 May 89
1561 \color@endgroup
1562 \egroup
1563 \colorbox{\@cboxcolor}{\expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}}
1564
1565
1566 %% BEGIN fancybox.sty
1567 %%
1568 \def\fileversion{1.0}
1569 \def\filedate{93/02/10}
1570 %%
1571 %% COPYRIGHT 1993, by Timothy Van Zandt, tvz@Princeton.EDU
1572 %%
1573 %% DESCRIPTION:
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.
1579 %%
1580 %% INSTALLATION:
1581 %% Put this file where your TeX looks for inputs.
1582 %%
1583 %% DOCUMENTATION:
1584 %% See fancybox.doc, which might be appended to this file.
1585 %%
1586 %% COPYING:
1587 %% Copying of part or all of this file is allowed under the following
1588 %% conditions only:
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.
1595 %%
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.
1599 %%
1600 %% CODE:
1601 \expandafter\ifx\csname fb@framepage\endcsname\relax\else
1602 \expandafter\endinput
1603 \fi
1604 \newbox\@fancybox
1605 \@ifundefined{@tempdimc}{\newdimen\@tempdimc}{}
1606
1607 %% \shadowbox
1608
1609 \newdimen\shadowsize
1610 \shadowsize 4pt
1611
1612 \def\shadowbox{\VerbBox\@shadowbox}
1613 \def\@shadowbox#1{%
1614 \setbox\@fancybox\hbox{\fbox{#1}}%
1615 \leavevmode\vbox{%
1616 \offinterlineskip
1617 \dimen@=\shadowsize
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@}}%
1621 \vskip-\dimen@
1622 \moveright\shadowsize\vbox{%
1623 \hrule \@width\wd\@fancybox \@height\dimen@}}}
1624
1625 % \fancyoval
1626
1627 \def\cornersize{\@ifstar{\@cornersize}{\@@cornersize}}
1628 \def\@cornersize#1{%
1629 \@tempdima=#1\relax
1630 \edef\the@cornersize{\number\@tempdima sp}}
1631 \def\@@cornersize#1{%
1632 \edef\the@cornersize{#1\noexpand\@tempdimb}}
1633 \cornersize{.5}
1634
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.
1637
1638 \def\fancyoval(#1,#2){\@ifnextchar[{\fancy@oval(#1,#2)}{\fancy@oval(#1,#2)[]}}
1639
1640 \def\fancy@oval(#1,#2)[#3]{%
1641 \begingroup
1642 \fancy@@oval{#1\unitlength}{#2\unitlength}{#3}%
1643 \@put{-.5\wd\@tempboxa}{-.5\ht\@tempboxa}{\ht\@tempboxa=\z@\box\@tempboxa}%
1644 \endgroup}
1645
1646 \def\copyrightline{}
1647
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
1652 \kern \@ovri}}
1653
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}%
1658 \@ovxx#1\relax
1659 \advance\@ovxx-\@wholewidth
1660 \@ovyy#2\relax
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
1666 \fi
1667 \@getcirc\@tempdimb
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@
1671 \@circlefnt
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
1681 \dp\@tempboxa=\z@}
1682
1683 % \ovalbox
1684
1685 \def\ovalbox{\VerbBox{\@ovalbox\thinlines}}
1686 \def\Ovalbox{\VerbBox{\@ovalbox\thicklines}}
1687 \def\@ovalbox#1#2{%
1688 \begingroup
1689 #1\relax
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
1697 \wd\@tempboxa=\z@
1698 \leavevmode\hbox{%
1699 \lower\@tempdima\box\@tempboxa
1700 \kern\@tempdimc\box\@fancybox\kern\@tempdimc}%
1701 \endgroup}
1702
1703 % \doublebox
1704
1705 \def\doublebox{\VerbBox\@doublebox}
1706 \def\@doublebox#1{%
1707 \begingroup
1708 \setbox\@fancybox\hbox{{#1}}%
1709 \fboxrule=.75\fboxrule
1710 \setbox\@fancybox\hbox{\fbox{\box\@fancybox}}%
1711 \fboxrule=2\fboxrule
1712 \fboxsep=\fboxrule
1713 \advance\fboxsep .5pt
1714 \fbox{\box\@fancybox}%
1715 \endgroup}
1716
1717 % Frames for seminar.sty:
1718
1719 \@ifundefined{newslideframe}{}{%
1720 \newslideframe{shadow}{\shadowbox{#1}}
1721 \newslideframe{double}{\doublebox{#1}}
1722 \newslideframe{oval}{\ovalbox{#1}}
1723 \newslideframe{Oval}{\Ovalbox{#1}}}
1724
1725 % Sbox environment
1726
1727 \newbox\@Sbox
1728
1729 \def\Sbox{\global\setbox\@Sbox\hbox\bgroup\ignorespaces}
1730
1731 \def\endSbox{%
1732 \@testtrue\ifhmode\ifinner\@testfalse\fi\fi
1733 \if@test\@latexerr{Misplaced \string\endSbox! Should be in LR mode}\@ehd\fi
1734 \egroup}
1735
1736 \def\TheSbox{%
1737 \ifvoid\@Sbox
1738 \@latexerr{\string\TheSbox\space is empty!}\@ehd
1739 \else
1740 \box\@Sbox
1741 \fi}
1742
1743 \def\beginsbox#1{\setbox#1\hbox\bgroup\ignorespaces}
1744
1745 \def\endsbox{\endSbox}
1746
1747 % \VerbBox
1748
1749 \newtoks\do@VerbBox
1750
1751 \def\VerbBox#1{%
1752 \do@VerbBox{#1}%
1753 \afterassignment\begin@VerbBox
1754 \setbox\@fancybox=\hbox}
1755 \def\begin@VerbBox{\aftergroup\end@VerbBox}
1756 \def\end@VerbBox{\the\do@VerbBox{\box\@fancybox}}%
1757
1758 % \Btrivlist
1759
1760 \def\@Blistrestore{%
1761 \let\par\relax
1762 \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii
1763 \lineskip\normallineskip \baselineskip\normalbaselineskip}
1764
1765 \def\Btrivlist#1{\@ifnextchar[{\@Btrivlist{#1}}{\@Btrivlist{#1}[]}}
1766 \def\@Btrivlist#1[#2]{%
1767 \@Blistrestore
1768 \let\\=\@Btrivlistcr
1769 \fb@beginvbox{#2}%
1770 \halign\bgroup
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}
1775
1776 \def\fb@beginvbox#1{%
1777 \leavevmode
1778 \@pboxswfalse
1779 \if#1b\@empty\vbox\else\if#1t\@empty\vtop\else
1780 \ifmmode\vcenter\else\@pboxswtrue$\vcenter\fi
1781 \fi\fi\bgroup}
1782
1783 \def\@Btrivlistcr{\@ifstar
1784 {\@ifnextchar[{@@Btrivlistcr}{\cr}}{\@ifnextchar[{\@@Btrivlistcr}{\cr}}}
1785 \def\@@Btrivlistcr[#1]{\cr\noalign{\vskip #1}}
1786
1787 \def\Bcenter{\Btrivlist{c}}
1788 \def\endBcenter{\endBtrivlist}
1789
1790 \def\Bflushleft{\Btrivlist{l}}
1791 \def\endBflushleft{\endBtrivlist}
1792
1793 \def\Bflushright{\Btrivlist{r}}
1794 \def\endBflushright{\endBtrivlist}
1795
1796 % \Blist
1797
1798 \def\Blist#1#2{\@ifnextchar[{\@Blist{#1}{#2}}{\@Blist{#1}{#2}[]}}
1799
1800 \def\@Blist#1#2[#3]{%
1801 \ifnum\@listdepth>5
1802 \@toodeep
1803 \else
1804 \global\advance\@listdepth\@ne
1805 \fi
1806 \itemindent\z@
1807 \csname @list\romannumeral\the\@listdepth\endcsname
1808 \def\@itemlabel{#1}%
1809 \let\makelabel\@mklab
1810 \@nmbrlistfalse
1811 \@Blistrestore
1812 \let\\=\@Blistcr
1813 \let\item\Bitem
1814 \@Bitemswfalse
1815 #2\relax
1816 \fb@beginvbox{#3}%
1817 \halign\bgroup
1818 \ignorespaces##&\hskip\labelsep\ignorespaces##\unskip\hfil\cr}
1819
1820 \def\endBlist{\endBtrivlist\global\advance\@listdepth\m@ne}
1821
1822 \newif\if@Bitemsw
1823
1824 \def\Bitem{\@ifnextchar({\@Bitemcr\Bitem@skip}{\@Bitemcr\@Bitem}}
1825
1826 \def\@Bitemcr{%
1827 \if@Bitemsw
1828 \def\next{\cr\noalign{\vskip\itemsep}}%
1829 \else
1830 \def\next{\global\@Bitemswtrue}%
1831 \fi
1832 \next}
1833
1834 \def\Bitem@skip(#1){\noalign{\vskip #1}\@Bitem}
1835
1836 \def\@Bitem{\@ifnextchar[{\Bitem@label}{\Bitem@nolabel}}
1837
1838 \def\Bitem@label[#1]{\makelabel{#1}&}
1839
1840 \def\Bitem@nolabel{%
1841 \if@nmbrlist
1842 \expandafter\advance\csname c@\@listctr\endcsname1 \fi
1843 \makelabel{\@itemlabel}%
1844 &%
1845 \if@nmbrlist\refstepcounter{\@listctr}\fi}
1846
1847 \def\@Blistcr{\@ifstar
1848 {\@ifnextchar[{@@Blistcr}{\cr&}}{\@ifnextchar[{\@@Blistcr}{\cr&}}}
1849
1850 \def\@@Blistcr[#1]{\cr\noalign{\vskip #1}&}
1851
1852 % \Bitemize
1853
1854 \def\Bitemize{%
1855 \ifnum\@itemdepth>3
1856 \@toodeep
1857 \else
1858 \advance\@itemdepth\@ne
1859 \fi
1860 \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
1861 \Blist{\csname\@itemitem\endcsname}{\def\makelabel####1{\hfil####1}}}
1862 \def\endBitemize{\endBlist}
1863
1864 % \Bdescription
1865
1866 \def\Bdescription{\Blist{}{\def\makelabel####1{\bf####1\hfil}}}
1867 \def\endBdescription{\endBlist}
1868
1869 % \Benumerate
1870
1871 \def\Benumerate{%
1872 \ifnum\@enumdepth>3
1873 \@toodeep
1874 \else
1875 \advance\@enumdepth\@ne
1876 \fi
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}
1881
1882 % Beqnarray
1883
1884 \def\Beqnarray{%
1885 \stepcounter{equation}%
1886 \let\@currentlabel\theequation
1887 \def\@eqnnum{{\csname reset@font\endcsname\rm (\theequation)}}%
1888 \global\@eqnswtrue\m@th
1889 \global\@eqcnt\z@
1890 \tabskip\@centering
1891 \let\\\@eqncr
1892 \vbox\bgroup
1893 \halign\bgroup
1894 \@eqnsel
1895 \hskip\@centering
1896 $\displaystyle\tabskip\z@{##}$%
1897 &\global\@eqcnt\@ne
1898 \hskip 2\arraycolsep
1899 \hfil${##}$\hfil
1900 &\global\@eqcnt\tw@
1901 \hskip 2\arraycolsep
1902 $\displaystyle\tabskip\z@{##}$%
1903 \hfil
1904 \tabskip\@centering
1905 &\if@eqnsw\hskip 1em\fi
1906 \hfil{##}\tabskip\z@
1907 \cr}
1908
1909 \def\endBeqnarray{%
1910 \@@eqncr
1911 \egroup
1912 \global\advance\c@equation\m@ne
1913 \egroup
1914 \global\@ignoretrue}
1915
1916 \@namedef{Beqnarray*}{\def\@eqncr{\nonumber\@seqncr}\Beqnarray}
1917 \@namedef{endBeqnarray*}{\nonumber\endBeqnarray}
1918
1919 % \fb@outputage
1920
1921 % Here we insert various hooks for rotating or framing the page.
1922 % Otherwise, it is the usual \@outputpage
1923
1924 \def\fb@outputpage{%
1925 \begingroup
1926 \catcode`\ =10
1927 \let\-\@dischyph
1928 \let\'\@acci
1929 \let\`\@accii
1930 \let\=\@acciii
1931 \if@specialpage
1932 \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%
1933 \fi
1934 \if@twoside
1935 \ifodd\count\z@
1936 \let\@thehead\@oddhead
1937 \let\@thefoot\@oddfoot
1938 \let\@themargin\oddsidemargin
1939 \else
1940 \let\@thehead\@evenhead
1941 \let\@thefoot\@evenfoot
1942 \let\@themargin\evensidemargin
1943 \fi
1944 \fi
1945 \csname reset@font\endcsname
1946 \normalsize
1947 \baselineskip\z@
1948 \lineskip\z@
1949 \let\par\@@par
1950 \ifx\this@fancypage\@empty\else
1951 \this@fancypage
1952 \gdef\this@fancypage{}%
1953 \fi
1954 \ifx\the@fancypage\@empty\else
1955 \setbox\@outputbox\hbox{\the@fancypage{\box\@outputbox}}%
1956 \fi
1957 \ifx\fb@@rotatepage\@empty\else
1958 \setbox\@outputbox\hbox{\fb@@rotatepage{\box\@outputbox}}%
1959 \fi
1960 \setbox\@outputbox\vbox{%
1961 \@tempdima=\wd\@outputbox
1962 \setbox\@tempboxa=\hbox to\@tempdima{%
1963 \let\label\@gobble
1964 \let\index\@gobble
1965 \let\glossary\@gobble
1966 \@thehead}%
1967 \ht\@tempboxa\headheight
1968 \dp\@tempboxa\z@
1969 \box\@tempboxa
1970 \vskip\headsep
1971 \box\@outputbox
1972 \baselineskip\footskip
1973 \hbox to\@tempdima{%
1974 \let\label\@gobble
1975 \let\index\@gobble
1976 \let\glossary\@gobble
1977 \@thefoot}}
1978 \ifx\the@@fancypage\@empty\else
1979 \setbox\@outputbox\hbox{\the@@fancypage{\box\@outputbox}}%
1980 \fi
1981 \setbox\@outputbox\vbox{%
1982 \ifnum\fancyput@flag>-1 \do@fancyput\fi
1983 \vskip\topmargin
1984 \moveright\@themargin\box\@outputbox}%
1985 \ifx\fb@rotatepage\@empty\else
1986 \setbox\@outputbox\hbox{\lower\ht\@outputbox\box\@outputbox}%
1987 \dp\@outputbox\z@
1988 \wd\@outputbox\z@
1989 \setbox\@outputbox\hbox{\fb@rotatepage{\box\@outputbox}}%
1990 \expandafter\fb@setoffsets\fb@theoffsets
1991 \fi
1992 \shipout\box\@outputbox
1993 \global\@colht\textheight
1994 \endgroup
1995 \stepcounter{page}%
1996 \let\firstmark\botmark}
1997
1998 % \fancypage
1999
2000 \def\the@fancypage{}
2001 \def\the@@fancypage{}
2002 \def\this@fancypage{}
2003
2004 \def\fancypage#1#2{%
2005 \def\the@fancypage{#1}%
2006 \def\the@@fancypage{#2}%
2007 \def\@outputpage{\fb@outputpage}}
2008
2009 \def\thisfancypage#1#2{%
2010 \gdef\@outputpage{\fb@outputpage}%
2011 \gdef\this@fancypage{\def\the@fancypage{#1}\def\the@@fancypage{#2}}}
2012
2013 % \fancyput
2014
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.
2019
2020 \newtoks\the@fancyput
2021 \newtoks\this@fancyput
2022 \def\fancyput@flag{-1}%
2023
2024 % \fancyput@flag=-1 if no fancyput, 0 if regular fancyput, 1 if thisfancyput.
2025
2026 \def\fancyput{%
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{%
2031 \if@test
2032 \expandafter\the@fancyput\expandafter{\the\the@fancyput\do{#1}{#2}{#3}}%
2033 \else
2034 \the@fancyput{\do{#1}{#2}{#3}}%
2035 \fi
2036 \gdef\fancyput@flag{\z@}}
2037
2038 \def\thisfancyput{%
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{%
2043 \if@test
2044 \ifnum\fancyput@flag=\z@
2045 \expandafter\global\expandafter\this@fancyput\expandafter{%
2046 \the\this@fancyput\do{#1}{#2}{#3}}%
2047 \else
2048 \expandafter\global\expandafter\this@fancyput\expandafter{%
2049 \the\the@fancyput\do{#1}{#2}{#3}}%
2050 \fi
2051 \else
2052 \global\this@fancyput{\do{#1}{#2}{#3}}%
2053 \fi
2054 \gdef\fancyput@flag{1}}
2055
2056 \def\do@fancyput{%
2057 \def\do##1##2##3{\raise##2\hbox to\z@{\kern##1\relax##3\hss}}%
2058 \setbox\@tempboxa=\hbox to\z@{%
2059 \kern-\hoffset
2060 \raise\voffset\hbox{%
2061 \ifnum\fancyput@flag=\z@\the\the@fancyput\else\the\this@fancyput\fi}%
2062 \hss}%
2063 \ht\@tempboxa=\z@ \dp\@tempboxa=\z@
2064 \box\@tempboxa
2065 \gdef\fancyput@flag{\z@}%
2066 \global\this@fancyput{}}
2067
2068 % \Landscape
2069
2070 \def\UsePageParameters{%
2071 \clearpage
2072 \global\@colht\textheight
2073 \onecolumn}
2074
2075 \def\fb@rotatepage{}
2076
2077 \def\Landscape{\@ifstar{\@testtrue\@Landscape}{\@testfalse\@Landscape}}
2078 \def\@Landscape#1#2#3{%
2079 \clearpage
2080 \def\fb@rotatepage{#3}%
2081 \def\@outputpage{\fb@outputpage}%
2082 \@tempdima#1\relax
2083 \@tempdimb#2\relax
2084 \if@test
2085 \edef\fb@theoffsets{{\voffset}{\hoffset}{\number\@tempdima sp}}%
2086 \else
2087 \edef\fb@theoffsets{{\hoffset}{\voffset}{\number\@tempdimb sp}}%
2088 \fi
2089 \advance\@tempdimb-\@tempdima
2090 \advance\textwidth\@tempdimb
2091 \advance\textheight-\@tempdimb
2092 \UsePageParameters}
2093 \def\endLandscape{\clearpage\aftergroup\UsePageParameters}
2094
2095 \def\fb@setoffsets#1#2#3{%
2096 \@tempdima#1%
2097 \advance#1#2%
2098 #2#3
2099 \advance#2-2in
2100 \advance#2-\@tempdima}
2101
2102 \@namedef{Landscape*}{\@testtrue\@Landscape}
2103 \@namedef{endLandscape*}{\endLandscape}
2104
2105 % \LandScape
2106
2107 \def\fb@@rotatepage{}
2108
2109 \def\LandScape#1{%
2110 \clearpage
2111 \def\fb@@rotatepage{#1}%
2112 \def\@outputpage{\fb@outputpage}%
2113 \@tempdima\textheight
2114 \textheight\textwidth
2115 \textwidth\@tempdima
2116 \UsePageParameters}
2117 \def\endLandScape{\clearpage\aftergroup\UsePageParameters}
2118
2119 % \GenericCaption
2120
2121 \def\GenericCaption#1{%
2122 \par
2123 \begingroup
2124 \@parboxrestore
2125 \normalsize
2126 \vskip 10\p@
2127 \setbox\@tempboxa\hbox{#1}%
2128 \ifdim\wd\@tempboxa>\hsize
2129 #1\par
2130 \else
2131 \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
2132 \fi
2133 \endgroup
2134 \par}
2135
2136 % \landfloat
2137
2138 \def\landfloat#1#2{%
2139 \gdef\curr@landfloat{#1}%
2140 \gdef\float@rotation{#2}%
2141 \begin{#1}[p]%
2142 \setbox\@tempboxa\vbox\bgroup
2143 \hsize\@colht
2144 \@parboxrestore}
2145 \def\endlandfloat{%
2146 \par\vskip\z@
2147 \egroup
2148 \setbox\@tempboxa\hbox{\float@rotation{\box\@tempboxa}}%
2149 \centerline{\box\@tempboxa}%
2150 \expandafter\end\expandafter{\curr@landfloat}}
2151
2152 % \boxput
2153
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
2161 \divide\@tempdima 2
2162 \ifcat a#2\relax
2163 \@tempdimb=\z@
2164 \else
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
2171 \fi
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@
2176 \leavevmode
2177 \if@test
2178 \hbox{\box\@fancybox\box\@tempboxa}%
2179 \else
2180 \hbox{\box\@tempboxa\box\@fancybox}%
2181 \fi}
2182
2183 % \Vfootnotes
2184
2185 \def\VerbatimFootnotes{\let\@footnotetext\V@footnotetext}
2186
2187 \long\def\V@footnotetext{%
2188 \afterassignment\V@@footnotetext
2189 \let\@tempa}
2190 \def\V@@footnotetext{%
2191 \insert\footins\bgroup
2192 \csname reset@font\endcsname
2193 \footnotesize
2194 \interlinepenalty\interfootnotelinepenalty
2195 \splittopskip\footnotesep
2196 \splitmaxdepth\dp\strutbox
2197 \floatingpenalty \@MM
2198 \hsize\columnwidth
2199 \@parboxrestore
2200 \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
2201 \@makefntext{}%
2202 \rule{\z@}{\footnotesep}%
2203 \bgroup
2204 \aftergroup\V@@@footnotetext
2205 \ignorespaces}
2206 \def\V@@@footnotetext{\strut\egroup}
2207
2208 % Verbatim
2209
2210 % The main idea is to separate the reading and formatting of the
2211 % verbatim listing. It's pretty simple.
2212
2213 \def\Verbatim@Codes{%
2214 \let\do\@makeother
2215 \dospecials
2216 \Verbatim@ObeyThings
2217 \ThisVerbCodes\relax\gdef\ThisVerbCodes{}}
2218
2219 \def\EveryVerbatimCodes{}
2220
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.
2225 %
2226 % Heuristically, if current environment is `foo' and argument of
2227 % \Get@Verbatim is \The@Verbatim, then definition of \Verbatim is
2228 %
2229 % \def\Verbatim#1^^M#2^^M\the\EndVerbatimTokens\end{foo}{%
2230 % \xdef\The@Verbatim{\noexpand\Every@VerbatimLine#2}%
2231 % \endgroup\end{foo}}
2232 %
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
2241 %
2242 \newtoks\EndVerbatimTokens
2243 \begingroup
2244 \catcode`\|=0
2245 \catcode`\[=1
2246 \catcode`\]=2
2247 \catcode`\{=12
2248 \catcode`\}=12
2249 \catcode`\^^M=13%
2250 \catcode`\\=12%
2251 |gdef|Get@Verbatim#1[%
2252 |begingroup%
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[%
2265 |begingroup%
2266 |Verbatim@Codes|EveryVerbatimCodes%
2267 |def^^M##1^^M##2[%
2268 |ifx|@nil##2|@empty|else%
2269 |noexpand|Verbatim@Par|noexpand|Every@VerbatimLine##1%
2270 |expandafter^^M|expandafter##2%
2271 |fi]%
2272 |let|protect|noexpand%
2273 |VerbatimEnvironment%
2274 |edef|next[|noexpand|def|noexpand|Verbatim####1|noexpand^^M####2%
2275 \end{|@VerbEnvir}]%
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]%
2282 |endgroup
2283 \def\AltGetVerbatim{\let\Get@Verbatim\AltGet@Verbatim}
2284
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.
2289
2290 \def\VerbatimEnvironment{%
2291 \ifx\@VerbEnvir\relax\xdef\@VerbEnvir{\@currenvir}\fi}
2292
2293 \let\@VerbEnvir\relax
2294
2295 \def\The@VerbatimErr{%
2296 \gdef\The@Verbatim{\@latexerr{Misplaced \string\end{Verbatim}}\@ehd}}
2297 \The@VerbatimErr
2298
2299 \begingroup
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%
2307 \catcode``=\active%
2308 \def^^M{\noexpand\Verbatim@Par\noexpand\Every@VerbatimLine}%
2309 \def^^I{\noexpand\Verbatim@Tab}%
2310 \def {\noexpand\Verbatim@Space}%
2311 \Verbatim@NoLigs}%
2312 \gdef\Verbatim@DontObeyLines{\outer\def^^M{}}%
2313 \endgroup
2314
2315 \def\SaveVerbatim{\@bsphack\Get@Verbatim}
2316
2317 \def\endSaveVerbatim{\@esphack}
2318
2319 {\catcode``13 \gdef\Verbatim@NoLigs{\def`{\noexpand\@lquote}}}
2320
2321 \def\Verbatim@Prep{%
2322 \frenchspacing
2323 \ThisVerb\relax\gdef\ThisVerb{}%
2324 \VerbatimFont
2325 \EveryVerbatim
2326 \let\Every@VerbatimLine\EveryVerbatimLine
2327 \def\Verbatim@Space{\leavevmode\penalty\@M\VerbatimSpace}%
2328 \def\Verbatim@Tab{\leavevmode\penalty\@M\VerbatimTab}}%
2329
2330 \def\Verb@Prep{%
2331 \frenchspacing
2332 \ThisVerb\relax\gdef\ThisVerb{}%
2333 \VerbFont
2334 \EveryVerb
2335 \let\Every@VerbatimLine\EveryVerbatimLine
2336 \def\Verbatim@Space{\leavevmode\penalty\@M\VerbSpace}%
2337 \def\Verbatim@Tab{\leavevmode\penalty\@M\VerbTab}}%
2338
2339 \def\Verbatim@Par{\leavevmode\null\@@par\penalty\interlinepenalty}
2340
2341 % Parameter initialization:
2342
2343 \def\VerbatimSpace{\ }
2344
2345 {\catcode`\ =12\gdef\ttspace{{\tt }}}
2346
2347 \def\VerbSpace{\ }
2348
2349 \def\VerbatimTab{\ \ \ \ \ \ \ \ }
2350
2351 \def\VerbTab{\ }
2352
2353 \def\EveryVerbatim{}
2354
2355 \def\EveryVerb{}
2356
2357 \def\ThisVerb{}
2358
2359 \def\EveryVerbatimLine{}%
2360
2361 \def\EveryVerbOutLine{}
2362
2363 \def\VerbatimFont{\tt}
2364
2365 \def\VerbFont{\tt}
2366
2367 \def\VerbatimFuzz{2pt}%
2368
2369 \def\EveryVerbatimCodes{}
2370
2371 \def\EveryVerbCodes{}
2372
2373 \def\EveryVerbOutCodes{}
2374
2375 \def\ThisVerbCodes{}
2376
2377 \def\Verbatim@List#1{%
2378 \if@minipage\else\vskip\parskip\fi
2379 \leftskip\@totalleftmargin
2380 \@rightskip\@flushglue \rightskip\@rightskip
2381 \parindent\z@
2382 \parskip\z@
2383 \parfillskip\@flushglue
2384 \hfuzz\VerbatimFuzz\relax
2385 \@@par
2386 \global\@inlabelfalse %Prevents vspace from being inserted when
2387 \Verbatim@Prep %first line exceeds \hsize.
2388 #1%
2389 \Verbatim@Par}%
2390
2391 \def\UseVerbatim#1{%
2392 \begingroup\trivlist\item[]\Verbatim@List{#1}\endtrivlist\endgroup}
2393
2394 \def\Verbatim{\Get@Verbatim\The@Verbatim}
2395 \def\endVerbatim{\UseVerbatim\The@Verbatim\The@VerbatimErr}
2396
2397 \def\LUseVerbatim#1{%
2398 \begingroup\list{}{}\item[]\Verbatim@List{#1}\endlist\endgroup}
2399
2400 \def\LVerbatim{\Get@Verbatim\The@Verbatim}
2401 \def\endLVerbatim{\LUseVerbatim\The@Verbatim\The@VerbatimErr}
2402
2403 \def\BUseVerbatim{%
2404 \@ifnextchar[{\@BUseVerbatim}{\@BUseVerbatim[]}}
2405 \def\@BUseVerbatim[#1]#2{%
2406 \begingroup
2407 \Verbatim@Prep
2408 \let\Verbatim@Par\@Btrivlistcr
2409 \@Btrivlist{l}[#1]%
2410 #2%
2411 \endBtrivlist
2412 \endgroup}%
2413
2414 \def\BVerbatim{%
2415 \catcode`\^^M=13\relax
2416 \@ifnextchar[{\@BVerbatim}{\@BVerbatim[]}}
2417 \def\@BVerbatim[#1]{\def\@tempa{[#1]}\Get@Verbatim\The@Verbatim}
2418 \def\endBVerbatim{
2419 \expandafter\@BUseVerbatim\@tempa\The@Verbatim\The@VerbatimErr}
2420
2421 \newwrite\Verbatim@Outfile
2422 \def\VerbatimOut#1{%
2423 \@bsphack
2424 \begingroup
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
2438 \endgroup
2439 \The@VerbatimErr
2440 \@esphack}
2441
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
2447 % \Verbatim@Par,
2448 %
2449 % \The@GVerbatim is used as scratch with global redefinition.
2450 \newread\Verbatim@Infile
2451 \def\Verbatim@Input#1#2{%
2452 \begingroup
2453 \Verbatim@Codes\EveryVerbatimCodes
2454 \immediate\openin\Verbatim@Infile #1\relax
2455 \ifeof\Verbatim@Infile
2456 \@latexerr{No verbatim file #1}\@ehd
2457 \else
2458 \def\The@GVerbatim{}\Verbatim@NextLine
2459 \ifeof\Verbatim@Infile
2460 \@latexerr{Verbatim file #1 is empty}\@ehd
2461 \else
2462 \let\The@Verbatim\The@GVerbatim
2463 \def\The@GVerbatim{}\Verbatim@NextLine
2464 #2{\Verbatim@@Input}%
2465 \fi
2466 \fi
2467 \immediate\closein\Verbatim@Infile
2468 \endgroup}
2469 \def\Verbatim@@Input{%
2470 \let\protect\noexpand
2471 \edef\The@Verbatim{%
2472 \noexpand\Every@VerbatimLine
2473 \The@Verbatim
2474 \ifeof\Verbatim@Infile\else\noexpand\Verbatim@Par\fi}%
2475 \let\protect\relax
2476 \The@Verbatim
2477 \ifeof\Verbatim@Infile\else
2478 \let\The@Verbatim\The@GVerbatim
2479 \def\The@GVerbatim{}\Verbatim@NextLine
2480 \expandafter\Verbatim@@Input
2481 \fi}%
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%
2487 \fi}%
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}%
2492 \endgroup%
2493
2494 \def\UseVerb#1{\begingroup\Verb@Prep#1\endgroup}
2495
2496 \def\SaveVerb{\@ifnextchar[{\Save@Verb}{\Save@Verb[]}}
2497
2498 \long\def\Save@Verb[#1]#2{%
2499 \begingroup
2500 \Verbatim@Codes\Verbatim@DontObeyLines\EveryVerbCodes
2501 \Save@@Verb{#1}{#2}}
2502
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}
2508
2509 \def\Verb{\Save@Verb[\UseVerb{\The@Verbatim}]{\The@Verbatim}}
2510
2511 \def\VerbatimInput#1{\begingroup\Verbatim@Input{#1}\UseVerbatim\endgroup}
2512
2513 \def\LVerbatimInput#1{\begingroup\Verbatim@Input{#1}\LUseVerbatim\endgroup}
2514
2515 \def\BVerbatimInput{\@ifnextchar[{\@BVerbatimInput}{\@BVerbatimInput[]}}
2516 \def\@BVerbatimInput[#1]#2{%
2517 \begingroup\Verbatim@Input{#2}{\@BUseVerbatim[#1]}\endgroup}
2518
2519 %% END fancybox.sty
2520
2521
2522 \usepackage{color}
2523
2524
2525 \parindent 0em
2526 \parskip 1.5ex plus0.5ex minus0.3ex
2527
2528 \slidewidth 250mm
2529 \slideheight 175mm
2530 \renewcommand{\slidetopmargin}{13mm}
2531 \renewcommand{\slidebottommargin}{13mm}
2532 \renewcommand{\slideheadfont}{\small}
2533 \renewcommand{\slidefootfont}{\small}
2534
2535 \slidesmag{3}
2536 \articlemag{2}
2537
2538 \newpagestyle{foliensty}%
2539 {\Kapitel \hfill \Titel}%
2540 {\Reihe \hfill \pageprefix\thepage}
2541
2542 \pagestyle{foliensty}
2543
2544 \slideframe{Oval}
2545
2546 \def\copyrightline{\copyright{} Lehrstuhl f\"ur Programmiersprachen,
2547 Universit\"at Erlangen-N\"urnberg}
2548 \newcommand{\Copyright}[1]{\def\copyrightline{#1}}
2549
2550 \newcommand{\heading}[1]{%
2551 \begin{center}
2552 \Large\bf
2553 \shadowbox{#1}%
2554 \end{center}
2555 \vspace{1ex minus 1ex}}
2556
2557 \newcommand{\BF}[1]{{\bf #1:}\hspace{1em}\ignorespaces}
2558
2559 \newenvironment{folie}[1]{\def\Titel{#1}\begin{slide*}}{\end{slide*}}
2560 \newcommand{\Folien}[3]{\def\Reihe{#1}\def\Kapitel{#2}\def\pageprefix{#3}}
2561
2562 \newenvironment{itemlist}[1]%
2563 {\begin{list}{}%
2564 {\settowidth{\labelwidth}{#1}
2565 \setlength{\leftmargin}{\labelwidth}
2566 \addtolength{\leftmargin}{\labelsep}
2567 \rightmargin0em
2568 \parsep 0.5ex plus 0.3ex minus 0.3ex
2569 \itemsep 0.3ex
2570 \renewcommand{\makelabel}[1]{##1\hfill}}}%
2571 {\end{list}}
2572
2573 \newenvironment{itemtext}[1]{\begin{itemlist}{#1}\item[#1]}{\end{itemlist}}
2574
2575
2576 \definecolor{white}{gray}{1}
2577 \definecolor{lightshaded}{gray}{0.9}
2578 \definecolor{shaded}{gray}{0.75}
2579 \definecolor{darkshaded}{gray}{0.65}
2580
2581 \newcommand{\shadedbox}[3]{\colorbox{#1}{\parbox{#2}{#3}}}
2582 \newcommand{\plainbox}[2]{{\fboxrule0em \fbox{\parbox{#1}{#2}}}}
2583 \def\shaded#1#2{
2584 \shadedbox{lightshaded}{17\semcm}{
2585 \begin{itemtext}{{\bf #1}}
2586 #2
2587 \end{itemtext}
2588 }
2589 }
2590
2591 \def\folgt{\mbox{$\Rightarrow$}}
2592 \def\impl{$\Rightarrow$}
2593 \def\density#1{\renewcommand{\baselinestretch}{#1}\small\normalsize}
2594
2595 \endinput
2596 %%
2597 %% END `seminar.cls'.
2598