summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/seminar/latex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/seminar/latex')
-rw-r--r--macros/latex/contrib/seminar/latex/npsfont.sty191
-rw-r--r--macros/latex/contrib/seminar/latex/sem-a4.sty21
-rw-r--r--macros/latex/contrib/seminar/latex/sem-dem.sty96
-rw-r--r--macros/latex/contrib/seminar/latex/sem-page.sty95
-rw-r--r--macros/latex/contrib/seminar/latex/semcolor.sty77
-rw-r--r--macros/latex/contrib/seminar/latex/semhelv.sty193
-rw-r--r--macros/latex/contrib/seminar/latex/seminar.bg2600
-rw-r--r--macros/latex/contrib/seminar/latex/seminar.bg3608
-rw-r--r--macros/latex/contrib/seminar/latex/seminar.bug209
-rw-r--r--macros/latex/contrib/seminar/latex/seminar.cls1218
-rw-r--r--macros/latex/contrib/seminar/latex/seminar.con1126
-rw-r--r--macros/latex/contrib/seminar/latex/seminar.sty1167
-rw-r--r--macros/latex/contrib/seminar/latex/semlayer.sty158
-rw-r--r--macros/latex/contrib/seminar/latex/semlcmss.sty170
-rw-r--r--macros/latex/contrib/seminar/latex/semrot.sty80
-rw-r--r--macros/latex/contrib/seminar/latex/slidesec.sty198
16 files changed, 6207 insertions, 0 deletions
diff --git a/macros/latex/contrib/seminar/latex/npsfont.sty b/macros/latex/contrib/seminar/latex/npsfont.sty
new file mode 100644
index 0000000000..d6d8d20046
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/npsfont.sty
@@ -0,0 +1,191 @@
+%% BEGIN npsfont.sty
+%%
+\def\fileversion{v1.0}
+\def\filedate{91/11/20}
+%%
+%% Style option npsfont.sty, for use with LaTeX 2.09
+%% and the New Font Selection Scheme.
+%%
+%% COPYRIGHT 1992, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu
+%%
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%%
+% DESCRIPTION:
+%
+% Defining new PostScript fonts with the New Font Selection Scheme is easy,
+% but these macros make it easier. They save on keystrokes, and most
+% importantly, they make it easy to change the file names used for fonts
+% because you only have to type the file name once instead of 12 times (for
+% the 12 standard LaTeX sizes). An optional argument lets you scale the fonts.
+%
+% These macros are substitutes for the NFSS's \new@fontshape command. For
+% information on the purpose of this command, and on how to select fonts that
+% are defined with it, see the documentation of the NFSS. If you don't have
+% the NFSS, it is available from
+% rusmv1.rus.uni-stuttgart.de
+% in
+% soft/tex/latex-style-supported/New-Font-Selection
+% and from
+% ymir.claremont.edu
+% in
+% [.anonymous.tex.inputs.latex-mainz]
+% The NFSS is undoubtably the best way to use PostScript fonts (or any non-
+% standard fonts) with LaTeX, and is well worth upgrading to.
+%
+% USAGE:
+%
+% \newpsfont[<scaling>]{<family>}{<series>}{<shape>}{<filename>}
+%
+% \newpsfamily[<scaling>]{<family>}{
+% {<series 1>}{<shape 1>}{<filename 1>},
+% {<series 2>}{<shape 2>}{<filename 2>},
+% . . .
+% {<series n>}{<shape n>}{<filename n>}}
+%
+% The scaling argument is optional. Like the \new@fontshape command, these
+% commands can only be used in the preamble.
+%
+% EXAMPLE:
+%
+% Suppose the Helvetica-Oblique virtual font on your system has the name
+% phvro.vf. The following defines the <helvetica> family, <m>edium series, and
+% <it>alic shape to be the Helvetica-Oblique font, at the standard LaTeX
+% font sizes, scaled by .82:
+%
+% \newpsfont[.82]{helvetica}{m}{it}{phvro}
+%
+% This is equivalent to:
+%
+% \new@fontshape{helvetica}{m}{it}{%
+% <5>phvro at 4.1pt%
+% <6>phvro at 4.92pt%
+% <7>phvro at 5.74pt%
+% <8>phvro at 6.56pt%
+% <9>phvro at 7.38pt%
+% <10>phvro at 8.2pt%
+% <11>phvro at 8.979pt%
+% <12>phvro at 9.84pt%
+% <14>phvro at 11.808pt%
+% <17>phvro at 14.1696pt%
+% <20>phvro at 17.0068pt%
+% <25>phvro at 20.4016pt}{}
+%
+% The following command sets up the standard Helvetica family:
+%
+% \newpsfamily[.82]{helvetica}{%
+% {m}{n}{phvr}, %Helvetica
+% {m}{it}{phvro}, %Helvetica-Oblique
+% {m}{sl}{phvro}, %Helvetica-Oblique
+% {bx}{n}{phvb}, %Helvetica-Bold
+% {bx}{it}{phvbo}, %Helvetica-BoldOblique
+% {bx}{sl}{phvbo}} %Helvetica-BoldOblique
+%
+% (Don't forget the commas.) It is equivalent to:
+%
+% \newpsfont[.82]{helvetica}{m}{n}{phvr} %Helvetica
+% \newpsfont[.82]{helvetica}{m}{it}{phvro} %Helvetica-Oblique
+% \newpsfont[.82]{helvetica}{m}{sl}{phvro} %Helvetica-Oblique
+% \newpsfont[.82]{helvetica}{bx}{n}{phvb} %Helvetica-Bold
+% \newpsfont[.82]{helvetica}{bx}{it}{phvbo} %Helvetica-BoldOblique
+% \newpsfont[.82]{helvetica}{bx}{sl}{phvbo} %Helvetica-BoldOblique
+% \extra@def{helvetica}{}{}
+%
+% WHY SCALE FONTS?:
+%
+% Disclaimer: The suggestions that follow come from someone who doesn't know
+% anything about fonts.
+%
+% Mixing fonts that are not designed to be used together is not for purists,
+% but many of us do it anyway. Scaling the fonts can at least correct for
+% differences in the x-heights. This is important if you use Computer
+% Modern fonts for in-line math and some other fonts for text.
+%
+% To find out the x-height of the 10pt size of a font, load this style and
+% use the command
+%
+% \showxheight{<filename>}
+%
+% E.g., \showxheight{phvr} and \showxheight{cmr10} displays
+%
+% x-height of cmr10 at 10pt is 4.30554pt
+% x-height of phvr at 10pt is 5.24998pt
+%
+% on the terminal. Scaling the Helvetica fonts by 4.30554/5.24990 = .82
+% gets the x-heights of these fonts in line. It is best to set the x-heights
+% the same for the medium weight, normal shaped fonts, and then scale the
+% rest of the fonts in the same family by the same amount.
+%
+% David Jones has a psfonts.sty that sets up the standard PostScript fonts,
+% all scaled so that the x-heights match that of the Computer Modern medium
+% roman font. It is available via anonymous ftp from theory.lcs.mit.edu in
+% /pub/dmjones.
+%
+% IMPLEMENTATION:
+%
+% \scale@stdsizes has at its argument a scaling factor. It uses \font@scale
+% to define \scaled@sizes to be the macro whose argument is the name of a
+% font, and which expands to the definitions of the standard \LaTeX{} sizes
+% for New Font Selection Schemes \new@fontshape command.
+%
+\message{\space\space\fileversion\space\space\filedate
+ \space\space<tvz>}
+\@ifundefined{new@psfontshape}{}{\endinput}
+\def\font@scale#1#2#3{\dimen@=#2\dimen@=#3\dimen@
+ \edef\scaled@sizes##1{\scaled@sizes{##1}<#1>##1 at\number\dimen@ sp}}
+\def\scale@stdsizes#1{%
+ \edef\scaled@sizes##1{}%
+ \font@scale{5}{5pt}{#1}%
+ \font@scale{6}{6pt}{#1}%
+ \font@scale{7}{7pt}{#1}%
+ \font@scale{8}{8pt}{#1}%
+ \font@scale{9}{9pt}{#1}%
+ \font@scale{10}{10pt}{#1}%
+ \font@scale{11}{10.95pt}{#1}%
+ \font@scale{12}{12pt}{#1}%
+ \font@scale{14}{14.4pt}{#1}%
+ \font@scale{17}{17.28pt}{#1}%
+ \font@scale{20}{20.74pt}{#1}%
+ \font@scale{25}{24.88pt}{#1}}
+\def\new@psfontshape#1#2#3#4{%
+ \new@fontshape{#1}{#2}{#3}{\scaled@sizes{#4}}{}}
+\def\new@psfont[#1]#2#3#4#5{%
+ \scale@stdsizes{#1}%
+ \new@psfontshape{#2}{#3}{#4}{#5}}
+\def\newpsfont{%
+ \@ifnextchar [{\new@psfont}{\new@psfont[1]}}
+\def\newpsfamily{%
+ \@ifnextchar [{\new@psfamily}{\new@psfamily[1]}}
+\def\new@psfamily[#1]#2#3{%
+ \scale@stdsizes{#1}%
+ \@for\@tempa:=#3\do{%
+ \edef\@tempb{\noexpand\new@psfontshape{#2}\@tempa}
+ \@tempb}%
+ \extra@def{#2}{}{}}
+\def\showxheight#1{%
+ \font\@tempfont=#1 at 10pt%
+ \typeout{^^J x-height of #1 at 10pt is \the\fontdimen5\@tempfont}}
+% The commands are added to \@preamblecmds to save memory.
+\begingroup
+ \def\do{\noexpand\do\noexpand}
+ \xdef\@preamblecmds{\@preamblecmds
+ \do\font@scale
+ \do\scale@stdsizes
+ \do\scaled@sizes
+ \do\new@psfontshape
+ \do\new@psfont
+ \do\newpsfont
+ \do\newpsfamily
+ \do\new@psfamily}
+\endgroup
+\endinput
+%% END npsfont.sty
diff --git a/macros/latex/contrib/seminar/latex/sem-a4.sty b/macros/latex/contrib/seminar/latex/sem-a4.sty
new file mode 100644
index 0000000000..4a9a4e5b0c
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/sem-a4.sty
@@ -0,0 +1,21 @@
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%% BEGIN sem-a4.sty
+%\def\paperwidth{210mm}
+%\def\paperheight{297mm}
+\paperwidth=210mm
+\paperheight=297mm
+\input sem-page.sty
+\slidewidth=222mm
+\slideheight=152mm
+\endinput
+%% END sem-a4.sty
diff --git a/macros/latex/contrib/seminar/latex/sem-dem.sty b/macros/latex/contrib/seminar/latex/sem-dem.sty
new file mode 100644
index 0000000000..e671c22498
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/sem-dem.sty
@@ -0,0 +1,96 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% sem-dem.sty --- General utility macros for these Seminar demonstration files
+%%
+%% Author : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr>
+%% Created the : Sun Dec 9 21:49:38 2001
+%% Last mod. by : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr>
+%% Last mod. the : Fri Apr 5 21:02:35 2002
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Identification of the file (constant parameters)
+\def\FileAuthor{Denis Girou}
+\def\FileInfoA{Seminar demonstration files}
+\def\FileName{\jobname}
+
+% Write identification in the PDF file (if one will be generated)
+\RequirePackage{hyperref}
+\newcommand{\HyperSetUp}{%
+\hypersetup{pdftitle={\FileInfoA{} - \FileInfoB},
+ pdfsubject={\FileName{}
+ [\FileDate{} - Version \FileVersion]},
+ pdfauthor={\FileAuthor},
+ pdfkeywords={\FileInfoB{} PSTricks Seminar slides}}}
+
+% Header/footer initialization
+\def\SeminarStandardHeaderFooterDemos{%
+\date{\HLa{\FileDate}}%
+\SeminarStandardHeaderFooter
+ {\LARGE\HLe{Demonstration of \MakeLowercase{\FileInfoB}}}
+ {\HLa{\FileInfoA{} -- \FileInfoB}}
+ {\HLa{Version \FileVersion{} -- }}
+ {\HLe{\FileAuthor}}}
+
+\SeminarStandardHeaderFooterDemos
+
+% General first slide for all the demonstration files
+\newcommand{\SeminarFirstSlide}{{%
+\SeminarSlideFrameBackground{SeminarBackgroundSolid}
+\begin{slide}
+ \ifx\SeminarPaperVersion\AnswerYes
+ \else
+ \vspace*{\stretch{1}} % Due to the special annotation for full screen mode
+ \fi
+
+ \begin{center}
+ \psframebox[fillstyle=solid,fillcolor=red,framearc=0.2]{%
+ \Large\bfseries\color{yellow}
+ \begin{tabular}{c}
+ Seminar demonstration files\\
+ \setlength{\pst@dimg}{\widthof{Seminar demonstration files}}%
+ \setlength{\pst@dimh}{\widthof{\FileInfoB}}%
+ \ifdim\pst@dimg>\pst@dimh
+ \rule[1mm]{\pst@dimg}{0.6mm}\\
+ \else
+ \rule[1mm]{\pst@dimh}{0.6mm}\\
+ \fi
+ \FileInfoB
+ \end{tabular}}
+
+ \vspace{1cm}
+ \psframebox[fillstyle=solid,fillcolor=LightBlue,
+ framesep=0.2,framearc=0.4]{%
+ \bfseries
+ \begin{tabular}{c}
+ \FileAuthor\\
+ \FileDate
+ \end{tabular}}
+
+ \ifx\SeminarPaperVersion\AnswerYes
+ \else
+ \vspace{\stretch{1}}
+ \hfill%
+ \rput[br](0.2,0){%
+ \psframebox[linewidth=0.02,framesep=0.05]{%
+ \footnotesize\bfseries
+ \shortstack[l]{%
+ With Acroread, \textcolor{red}{CTRL-L} switch\\[-1mm]
+ between full screen and window mode}}}
+ \fi
+ \end{center}
+\end{slide}}}
+
+% List of slides
+\newcommand{\SeminarListOfSlides}{{%
+% Background changing
+\ifx\SeminarColorVersion\AnswerYes
+ \renewcommand{\SeminarBackgroundGradientColorBegin}{PaleGreen}%
+ \renewcommand{\SeminarBackgroundGradientColorEnd}{green}%
+ \renewcommand{\SeminarBackgroundGradientAngle}{-90}%
+ \SeminarSlideFrameBackground{SeminarBackgroundGradient}
+\fi
+\renewcommand{\slidestretch}{0.7}% We compress the lines
+\begin{slide}
+ \listofslides
+\end{slide}}}
+
+\endinput
diff --git a/macros/latex/contrib/seminar/latex/sem-page.sty b/macros/latex/contrib/seminar/latex/sem-page.sty
new file mode 100644
index 0000000000..a013fcf3ad
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/sem-page.sty
@@ -0,0 +1,95 @@
+%% BEGIN sem-page.sty
+\def\fileversion{1.0}
+\def\filedate{93/04/01}
+%%
+%% Contains the page parameters for the `seminar' LaTeX document style.
+%%
+%% COPYRIGHT 1993, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%%
+\def\slideleftmargin{.6in}
+\def\sliderightmargin{.6in}
+\def\slidetopmargin{.6in}
+\def\slidebottommargin{.6in}
+\ifarticle
+ \ifportrait
+ \twocolumn
+ \sloppy
+ \topmargin 0pt
+ \headheight 15pt
+ \headsep 25pt
+ \footskip 30pt
+ \footheight 15pt
+ \textheight\paperwidth\relax
+ \advance\textheight -1in
+ \advance\textheight -\headsep
+ \advance\textheight -\headheight
+ \advance\textheight -\footskip
+ \advance\textheight -\footheight
+ \advance\textheight -.5in
+ \textwidth\paperheight\relax
+ \advance\textwidth by -2in
+ \oddsidemargin 0pt
+ \evensidemargin 0pt
+ \leftmargini 2em
+ \leftmarginv .5em
+ \leftmarginvi .5em
+ \columnsep 40pt
+ \marginparwidth 0pt
+ \marginparsep 0pt
+ \else
+ \textwidth 5.5in
+ \oddsidemargin\paperwidth\relax
+ \advance\oddsidemargin -\textwidth
+ \divide\oddsidemargin 2
+ \advance\oddsidemargin -1in
+ \evensidemargin\oddsidemargin
+ \if@twoside
+ \advance\oddsidemargin -18pt
+ \advance\evensidemargin 18pt
+ \fi
+ \topmargin -20pt
+ \headheight 15pt
+ \headsep 25pt
+ \footskip 33pt
+ \footheight 15pt
+ \textheight\paperheight\relax
+ \advance\textheight -1in
+ \advance\textheight -\topmargin
+ \advance\textheight -\headsep
+ \advance\textheight -\headheight
+ \advance\textheight -\footskip
+ \advance\textheight -.5in
+ \fi
+\else
+ \oddsidemargin 0pt
+ \evensidemargin 0pt
+ \marginparwidth 0pt
+ \marginparsep 0pt
+ \ifportrait
+ \textwidth\paperwidth\relax
+ \textheight\paperheight\relax
+ \else
+ \textwidth\paperheight\relax
+ \textheight\paperwidth\relax
+ \fi
+ \advance\textwidth by -2in
+ \topmargin -1in
+ \headheight .5in
+ \headsep .5in
+ \advance\textheight by -2in
+ \footskip .75in
+ \footheight .25in
+\fi
+\endinput
+%% END sem-page.sty
diff --git a/macros/latex/contrib/seminar/latex/semcolor.sty b/macros/latex/contrib/seminar/latex/semcolor.sty
new file mode 100644
index 0000000000..84fc61986c
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/semcolor.sty
@@ -0,0 +1,77 @@
+%%
+%% This is file `semcolor.sty', version 1.01
+%%
+%% IMPORTANT NOTICE:
+%%
+%% semcolor.sty Copyright (C) 1993 Timothy Van Zandt
+%%
+%% This package may be distributed under the terms of the LaTeX Project
+%% Public License, as described in lppl.txt in the base LaTeX distribution.
+%% Either version 1.0 or, at your option, any later version.
+%%
+\def\fileversion{1.02}
+\def\filedate{2014/01/17}
+%%
+%% LaTeX style option `semcolor.sty'.
+%% For use with LaTeX v2.09 and the `seminar' document style.
+%%
+%% COPYRIGHT 1993, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%%
+%% You must install the PSTricks package v0.9 or later to use semcolor.sty.
+%%
+\@ifundefined{SemcolorFrameOps}{}{\endinput}
+\typeout{Style Option: `semcolor' for doc style `seminar'
+ \fileversion\space <\filedate> (tvz)}
+% RN modification begin -- 2004/05/04; Rolf.Niepraschk@ptb.de
+%\input{pstricks}
+\ProvidesFile{semcolor.sty}[\filedate\space v\fileversion\space (tvz)]
+%\RequirePackage{pstricks}
+\RequirePackage{pst-ovl}
+% RN modification end
+%
+% Set up the frame styles:
+\def\SemcolorFrameOps{\psset{%
+ fillstyle=none,%
+ linewidth=\slideframewidth,%
+ framesep=\slideframesep,%
+ cornersize=absolute,%
+ linearc=.5cm,%
+ shadowsize=2pt,%
+ shadowcolor=darkgray}}%
+\newslideframe{scplain}[\SemcolorFrameOps]{\psframebox{#1}}
+\newslideframe{scdouble}[\SemcolorFrameOps]{\psdblframebox{#1}}
+\newslideframe{scshadow}[\SemcolorFrameOps]{\psshadowbox{#1}}
+\slideframe{scplain}
+%
+% Rotation:
+\def\leftsliderotation#1{\rotateleft{#1}}
+\def\rightsliderotation#1{\rotateright{#1}}
+\sliderotation{left}
+%
+% Color:
+\addto@hook\after@slidepage{\pstVerb{0 setgray}}
+%
+% Overlays:
+\def\make@overlay#1{%
+ \setbox\@slidebox=\hbox{%
+ \pst@initoverlay{#1}%
+ \pst@Verb{ 0 \tx@BOL }%
+ \copy\@@slidebox
+ \pst@Verb{ -1 \tx@BOL }}}
+\def\@overlay{\pst@overlay}
+\addto@hook\before@newslide{\def\curr@overlay{0}}
+\@ifundefined{overlaystrue}{}{\ifarticle\else\overlaystrue\layerstrue\fi}
+%
+\endinput
+%% END semcolor.sty
diff --git a/macros/latex/contrib/seminar/latex/semhelv.sty b/macros/latex/contrib/seminar/latex/semhelv.sty
new file mode 100644
index 0000000000..cbb1ba1fe2
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/semhelv.sty
@@ -0,0 +1,193 @@
+%% BEGIN semhelv.sty
+\def\fileversion{1.4}
+\def\filedate{2000/05/08}
+%%
+%% LaTeX style option `semhelv.sty' for the `seminar' document class.
+%% For use with LaTeX2e.
+%%
+%% COPYRIGHT 1994, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%% Edited by Sebastian Rahtz <sebastian.rahtz@oucs.ox.ac.uk>
+%% and Denis Girou <denis.girou@idris.fr>
+%% To use OT1-encoding 7t names
+%% ************************************************************************
+%% **** DESCRIPTION ****
+%% ************************************************************************
+%%
+% This file contains the external font information needed to load
+% the PostScript Helvetica fonts for use by seminar.cls.
+%
+% IMPORTANT:
+% As distributed, the following font file names are assumed for the
+% `standard' TeX encoding:
+%
+% Helvetica phvr7t
+% Helvetica-Oblique phvro7t
+% Helvetica-Bold phvb7t
+% Helvetica-BoldOblique phvbo7t
+% Courier pcrr7t
+% Courier-Bold pcrb7t
+% Courier-Oblique pcrro7t
+% Courier-BoldOblique pcrbo7t
+%
+% With the NFSS2 and LaTeX2e, you can also use the CORK encoding. The
+% assumed file names are as above, but with `8t' instead of `7t'
+%
+% This means, e.g., that phvr7t.tfm or phvr7t.vf must be the name of the
+% TeX .tfm or .vf (virtual font) file for the PostScript Helvetica font.
+% See the documentation of your dvi-to-ps driver for information on using
+% PostScript fonts.
+%
+% Fonts are scaled so that the x-heights match those of the cmr fonts;
+% this makes in-line math look acceptable.
+%
+% Note: The Courier font is not that great.
+%
+% Preliminaries:
+\csname semhelv@loaded\endcsname
+\let\semhelv@loaded\endinput
+\typeout{Style Option: `semhelv' for the `seminar' doc style
+ \fileversion\space <\filedate> (tvz)}
+\typeout{Modified by Stefan (see source for details)}
+\@ifundefined{selectfont}
+ {\@seminarerr{`semhelv' style option can only be used
+ with the New Font Selection Scheme}\@eha\endinput}{}
+%
+% Font definitions.
+
+\expandafter\ifx\csname DeclareSizeFunction\endcsname\relax
+
+% FOR NFSS:
+
+\@ifundefined{newpsfamily}{\input{npsfont.sty}}{}%
+
+% See npsfont.sty for the definition of \newpsfamily.
+
+\newpsfamily[.82]{helvetica}{
+ {m}{n}{phvr7t}, %Helvetica
+ {m}{it}{phvro7t}, %Helvetica-Oblique
+ {m}{sl}{phvro7t}, %Helvetica-Oblique
+ {bx}{n}{phvb7t}, %Helvetica-Bold
+ {bx}{it}{phvbo7t}, %Helvetica-BoldOblique
+ {bx}{sl}{phvbo7t}} %Helvetica-BoldOblique
+\newpsfamily[.985]{courier}{
+ {m}{n}{pcrr7t}, %Courier
+ {bx}{n}{pcrb7t}, %Courier-Bold
+ {m}{it}{pcrro7t}, %Courier-Oblique
+ {bx}{it}{pcrbo7t}} %Courier-BoldOblique
+
+% Use fonts or use \slidefonts:
+\ifarticle
+ \renewcommand{\slidefonts}{%
+ \renewcommand{\default@family}{helvetica}%
+ \renewcommand{\rmdefault}{helvetica}%
+ \renewcommand{\ttdefault}{courier}%
+ \renewcommand{\sfdefault}{helvetica}%
+ \family\default@family\selectfont}
+\else
+ \renewcommand{\default@family}{helvetica}%
+ \renewcommand{\rmdefault}{helvetica}%
+ \renewcommand{\ttdefault}{courier}%
+ \renewcommand{\sfdefault}{helvetica}%
+ \family\default@family\selectfont
+\fi
+
+\else
+
+% FOR NFSS2 OR LATEX2E:
+
+\def\helv@scale{.82}
+
+\DeclareFontFamily{T1}{helvetica}{}%
+\DeclareFontShape{T1}{helvetica}{m}{n}{<->s*[\helv@scale]phvr8t}{}%
+\DeclareFontShape{T1}{helvetica}{m}{it}{<->s*[\helv@scale]phvro8t}{}%
+\DeclareFontShape{T1}{helvetica}{m}{sc}{<->s*[\helv@scale]phvrc8t}{}%
+\DeclareFontShape{T1}{helvetica}{b}{n}{<->s*[\helv@scale]phvb8t}{}%
+\DeclareFontShape{T1}{helvetica}{b}{it}{<->s*[\helv@scale]phvbo8t}{}%
+\DeclareFontShape{T1}{helvetica}{m}{sl}{<->ssub * helvetica/m/it}{}%
+\DeclareFontShape{T1}{helvetica}{b}{sc}{<->sub * helvetica/m/sc}{}%
+\DeclareFontShape{T1}{helvetica}{b}{sl}{<->ssub * helvetica/b/it}{}%
+\DeclareFontShape{T1}{helvetica}{bx}{n}{<->ssub * helvetica/b/n}{}%
+\DeclareFontShape{T1}{helvetica}{bx}{it}{<->ssub * helvetica/b/it}{}%
+\DeclareFontShape{T1}{helvetica}{bx}{sc}{<->sub * helvetica/m/sc}{}%
+\DeclareFontShape{T1}{helvetica}{bx}{sl}{<->ssub * helvetica/b/it}{}%
+
+\DeclareFontFamily{OT1}{helvetica}{}%
+\DeclareFontShape{OT1}{helvetica}{m}{n}{<->s*[\helv@scale]phvr7t}{}%
+\DeclareFontShape{OT1}{helvetica}{m}{it}{<->s*[\helv@scale]phvro7t}{}%
+\DeclareFontShape{OT1}{helvetica}{m}{sc}{<->s*[\helv@scale]phvrc7t}{}%
+\DeclareFontShape{OT1}{helvetica}{b}{n}{<->s*[\helv@scale]phvb7t}{}%
+\DeclareFontShape{OT1}{helvetica}{b}{it}{<->s*[\helv@scale]phvbo7t}{}%
+\DeclareFontShape{OT1}{helvetica}{m}{sl}{<->ssub * helvetica/m/it}{}%
+\DeclareFontShape{OT1}{helvetica}{b}{sc}{<->sub * helvetica/m/sc}{}%
+\DeclareFontShape{OT1}{helvetica}{b}{sl}{<->ssub * helvetica/b/it}{}%
+\DeclareFontShape{OT1}{helvetica}{bx}{n}{<->ssub * helvetica/b/n}{}%
+\DeclareFontShape{OT1}{helvetica}{bx}{it}{<->ssub * helvetica/b/it}{}%
+\DeclareFontShape{OT1}{helvetica}{bx}{sc}{<->sub * helvetica/m/sc}{}%
+\DeclareFontShape{OT1}{helvetica}{bx}{sl}{<->ssub * helvetica/b/it}{}%
+
+\def\courier@scale{.985}
+
+% DG/SR modification begin - May. 13, 1998
+% Update some names (phvrq -> phvr7t etc.)
+% DG/SR modification end
+
+\DeclareFontFamily{T1}{courier}{\hyphenchar \font\m@ne}%
+\DeclareFontShape{T1}{courier}{m}{n}{<->s*[\courier@scale]pcrr8t}{}%
+\DeclareFontShape{T1}{courier}{m}{it}{<->s*[\courier@scale]pcrro8t}{}%
+\DeclareFontShape{T1}{courier}{m}{sc}{<->s*[\courier@scale]pcrrc8t}{}%
+\DeclareFontShape{T1}{courier}{b}{n}{<->s*[\courier@scale]pcrb8t}{}%
+\DeclareFontShape{T1}{courier}{b}{it}{<->s*[\courier@scale]pcrbo8t}{}%
+\DeclareFontShape{T1}{courier}{m}{sl}{<->ssub * courier/m/it}{}%
+\DeclareFontShape{T1}{courier}{b}{sc}{<->sub * courier/m/sc}{}%
+\DeclareFontShape{T1}{courier}{b}{sl}{<->ssub * courier/b/it}{}%
+\DeclareFontShape{T1}{courier}{bx}{n}{<->ssub * courier/b/n}{}%
+\DeclareFontShape{T1}{courier}{bx}{it}{<->ssub * courier/b/it}{}%
+\DeclareFontShape{T1}{courier}{bx}{sc}{<->sub * courier/m/sc}{}%
+\DeclareFontShape{T1}{courier}{bx}{sl}{<->ssub * courier/b/it}{}%
+
+\DeclareFontFamily{OT1}{courier}{\hyphenchar \font\m@ne}%
+\DeclareFontShape{OT1}{courier}{m}{n}{<->s*[\courier@scale]pcrr7t}{}%
+\DeclareFontShape{OT1}{courier}{m}{it}{<->s*[\courier@scale]pcrro7t}{}%
+\DeclareFontShape{OT1}{courier}{m}{sc}{<->s*[\courier@scale]pcrrc7t}{}%
+\DeclareFontShape{OT1}{courier}{b}{n}{<->s*[\courier@scale]pcrb7t}{}%
+\DeclareFontShape{OT1}{courier}{b}{it}{<->s*[\courier@scale]pcrbo7t}{}%
+\DeclareFontShape{OT1}{courier}{m}{sl}{<->ssub * courier/m/it}{}%
+\DeclareFontShape{OT1}{courier}{b}{sc}{<->sub * courier/m/sc}{}%
+\DeclareFontShape{OT1}{courier}{b}{sl}{<->ssub * courier/b/it}{}%
+\DeclareFontShape{OT1}{courier}{bx}{n}{<->ssub * courier/b/n}{}%
+\DeclareFontShape{OT1}{courier}{bx}{it}{<->ssub * courier/b/it}{}%
+\DeclareFontShape{OT1}{courier}{bx}{sc}{<->sub * courier/m/sc}{}%
+\DeclareFontShape{OT1}{courier}{bx}{sl}{<->ssub * courier/b/it}{}%
+
+% Use fonts or use \slidefonts:
+\ifarticle
+ \renewcommand{\slidefonts}{%
+ \renewcommand{\default@family}{helvetica}%
+ \renewcommand{\rmdefault}{helvetica}%
+ \renewcommand{\ttdefault}{courier}%
+ \renewcommand{\sfdefault}{helvetica}%
+ \fontfamily\default@family\selectfont}
+\else
+ \renewcommand{\default@family}{helvetica}%
+ \renewcommand{\rmdefault}{helvetica}%
+ \renewcommand{\ttdefault}{courier}%
+ \renewcommand{\sfdefault}{helvetica}%
+ \fontfamily\default@family\selectfont
+\fi
+
+\fi
+
+\endinput
+%% END semhelv.sty
+
diff --git a/macros/latex/contrib/seminar/latex/seminar.bg2 b/macros/latex/contrib/seminar/latex/seminar.bg2
new file mode 100644
index 0000000000..6f9a50078b
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/seminar.bg2
@@ -0,0 +1,600 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% seminar.bg2 --- Corrections for compatibility problems and new bugs
+%% found in the Seminar package, and few new additions
+%% to help overlays management for PDF output files.
+%% (see also the seminar.bug file in Seminar distribution)
+%%
+%% Disclaimer: this file is mine and doesn't engage TVZ!
+%%
+%% Note: insert it after \usepackage{graphicx} if you use `graphicx'
+%% and after \usepackage{longtable} if you use `longtable'
+%%
+%% Author : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr>
+%% Created the : 1995
+%% Last mod. by : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr>
+%% Last mod. the : Fri May 31 20:19:22 2002
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\FileVersion{2.3}
+\def\FileDate{2014/05/12}
+\typeout{seminar.bg2: various corrections for the Seminar document class^^J%
+ added since seminar.bug and few add-ons for overlays^^J%
+ (Version \FileVersion\space of <\FileDate> (DG, hv))}
+
+\RequirePackage{pst-ovl}
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+
+% 1 - To correct a bug in the note environment
+% (reported by Denis Girou (CNRS/IDRIS) <Denis.Girou@idris.fr> - 1995)
+\@savsf=1
+
+
+% 2 - To correct several bugs to generate a list of slides with subsection
+% entries
+% (reported by Denis Girou (CNRS/IDRIS) <Denis.Girou@idris.fr> - Jul. 18, 1995)
+% - To clear the subheading when a new heading is defined
+% (reported by Axel Thimm - <thimm@physik.fu-berlin.de> - June 5, 1997)
+% - To assure coherence between heading and subheading when used
+% in header/footer, for article mode
+% (reported by Axel Thimm - <thimm@physik.fu-berlin.de> - June 5, 1997)
+% - Improvements (\refstepcounter and \@addtoreset) by Jeremy Gibbons
+% <jgibbons@brookes.ac.uk> - Sep. 30, 1997
+
+% Used by the \slide@subheading macro but undefined
+\def\theslidesubsection{\theslidesection.\arabic{slidesubsection}}
+
+%% Requires main pst-ovl
+\ifx\PSTovlloaded\endinput\else\input pst-ovl \fi
+
+
+\def\slide@heading[#1]#2{%
+ \refstepcounter{slidesection}%
+ \@addtoreset{slidesubsection}{slidesection}
+ \addtocontents{los}{\protect\l@slide
+ {\the\c@slidesection}{\ignorespaces#1}{\@SCTR}}%
+ \def\@tempa{#2}%
+ \ifx\@tempa\@empty\else
+ {\edef\@currentlabel{\csname p@slidesection\endcsname\theslidesection}%
+ \makeslideheading{#2}}%
+ \fi
+ \gdef\theslideheading{#1}%
+ \gdef\theslidesubheading{}%
+}
+
+\def\slide@subheading[#1]#2{%
+ \refstepcounter{slidesubsection}%
+ \addtocontents{los}{\protect\l@subslide
+ {\the\c@slidesubsection}{\ignorespaces#1}{\@SCTR}}%
+ \def\@tempa{#2}%
+ \ifx\@tempa\@empty\else
+ {\edef\@currentlabel{\csname p@slidesubsection\endcsname
+ \theslidesubsection}\makeslidesubheading{#2}}%
+ \fi
+ \gdef\theslidesubheading{#1}%
+}
+% 3 - To correct a bug in the \slidecontents macro
+% (reported by Denis Roegel (LORIA) <Denis.Roegel@loria.fr> - Sep. 22, 1996)
+
+\long\def\@gobblethree #1#2#3{}
+
+\def\slide@contents{%
+ \def\l@slide##1##2##3{%
+ \slide@cline{\slidenumberline{##1}{##2}}{##3}}%
+ \let\l@subslide\@gobblethree
+ \@startlos}
+
+% 4 - To solve incompatibility between the `graphicx' package and Seminar.
+% The \espfslidesize Seminar macro work only with the old version of
+% the `epsfig' package, so with \includegraphics the PostScript files are
+% always scaled without the possibility to leave them to there natural
+% size. And also these files are not correctly scaled when we switch
+% from normal to article mode under Seminar. So, we must redefined the
+% \epsfslidesize macro of Seminar and modify few internal macros of
+% `graphicx'.
+% (Note: I consider only the `graphicX' package, not the 'graphicS' one)
+% (reported by Karl Tombre (LORIA) <Karl.Tombre@loria.fr> and
+% Denis Roegel (LORIA) <Denis.Roegel@loria.fr> - Jan. 16, 1997)
+
+\def\GraphicsNotScaled{%
+\ifx\Gin@viewport\undefined
+\else % Graphicx package detected
+\def\Gin@i{%
+ \def\Gin@req@sizes{%
+ \Gin@nat@height=\inverseslidesmag\Gin@nat@height
+ \Gin@nat@width=\inverseslidesmag\Gin@nat@width
+ \Gin@req@height\Gin@nat@height
+ \Gin@req@width\Gin@nat@width}%
+ \@ifnextchar[\Gin@ii{\Gin@ii[]}}
+\define@key{Gin}{width}{%
+\@tempdima=##1\@tempdima=\inverseslidesmag\@tempdima\def\Gin@ewidth{\@tempdima}}
+\define@key{Gin}{height}{%
+\@tempdima=##1\@tempdima=\inverseslidesmag\@tempdima\def\Gin@eheight{\@tempdima}}
+\define@key{Gin}{totalheight}{%
+\def\Gin@eresize{\totalheight}%
+\@tempdima=##1\@tempdima=\inverseslidesmag\@tempdima\def\Gin@eheight{\@tempdima}}
+\fi}
+
+\def\epsfslidesize{%
+\let\epsfsize\slide@epsfsize
+\GraphicsNotScaled}
+
+% 5 - To solve incompatibily between the LongTable package and Seminar
+% (reported by Bhaskar Manda (UIUC) <bhaskar@or4.me.uiuc.edu> - May 7, 1997)
+% - Problem in article format seen later
+% (reported by Axel Thimm <thimm@physik.fu-berlin.de> - June 5, 1997)
+
+% From seminar.cls
+\def\slide@outputLT{% (from \slide@output)
+ \@makeslide
+ \@testfalse
+ \ifnotesonly\else
+ \iflandscape
+ \ifnum\@landscapeonly>-1 \os@test\fi
+ \else
+ \ifnum\@landscapeonly<1 \os@test\fi
+ \fi
+ \fi
+ \if@test
+ \reset@slideoutput
+ \@@makeslideLT
+ \process@slide
+ \fi
+ \refstepcounter{slide}}
+\def\@@makeslideLT{% (from \@@makeslide)
+ \overfullslide@warning
+ \setbox\@slidebox\hbox{%
+ \vfuzz=\slidefuzz\relax
+ \vbox to\slide@vsize{%
+ \box\@outputbox
+ \ifcenterslides\vskip\z@ plus .0001fil \fi
+ \unvbox\@slidebox
+ \vskip\z@ plus .0001fil}%
+ \the\after@slidepage}%
+ \wd\@slidebox\textwidth}
+
+% From LongTable
+\def\LT@output{%
+ \ifnum\outputpenalty <-\@Mi
+ \ifnum\outputpenalty > -\LT@end@pen
+ \LT@err{floats and marginpars not allowed in a longtable}\@ehc
+ \else
+ \setbox\z@\vbox{\unvbox\@cclv}%
+ \ifdim \ht\LT@lastfoot>\ht\LT@foot
+ \dimen@\pagegoal
+ \advance\dimen@-\ht\LT@lastfoot
+ \ifdim\dimen@<\ht\z@
+ \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
+ \@makecol
+ \slide@outputLT
+ \setbox\z@\vbox{\box\LT@head}%
+ \fi
+ \fi
+ \global\@colroom\@colht
+ \global\vsize\@colht
+ \vbox
+ {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%
+ \fi
+ \else
+ \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
+ \@makecol
+ \slide@outputLT
+ \copy\LT@head
+ \fi}
+
+% We must adjust \textheight. Sometimes, you must increase it a little by
+% something like \addtolength{\textheight}{5mm}
+% But if you use slides like \begin{slide*}[15cm,10cm]
+% you must define locally \textheight=15cm
+\addtolength{\textheight}{-\headheight}
+
+
+% 6 - To allow automatic changes of language dependent labels,
+% for instance by loading the `french' package after Seminar
+% (suggested by Bernard Gaulle (IDRIS) <gaulle@idris.fr> - Nov. 20, 1997)
+% From seminar.cls
+\def\slidename{Slide}
+\def\slidelabel{\bf\slidename{} \theslide}
+% From slidesec.sty
+\def\listslidename{List of Slides}%
+\def\listofslides{\section*{\listslidename%
+\@mkboth{\expandafter\MakeUppercase\listslidename}%
+ {\expandafter\MakeUppercase\listslidename}}%
+ \def\l@slide##1##2##3{%
+ \slide@undottedcline{\slidenumberline{##3}{##2}}{}}%
+ \let\l@subslide\l@slide
+ \@startlos}
+
+
+% 7 - There were several problems when doing a global change of color
+% outside the "slide"environment (using the \color{ColorName} macro
+% of the `color' package) if this change was not done globally
+% (that is to say before the "\begin{document}") but inside the document,
+% for a part of the slides.
+% These problems can be seen specially for screen presentations,
+% when we want to use a dark background, so a light foreground color
+% for the text.
+% First, the header (defining for instance with the `fancyhdr' package)
+% changed of color one slide later and was restored one slide later too
+% if the change of the color was mas inside a group for some slides,
+% and second, the black color was forced by the footer.
+% We solve the first problem by usage of the same technique than the one
+% used by Seminar for global changes based on \special macros and made
+% before the "\begin{document}". We save the \specials in the
+% \saved@specials box and insert it at the beginning of the \@slidebox box
+% with the \insert@specials macro, as for the first slide.
+% And we solve the second problem by suppression of the command in the
+% hook which force the black color (defined in the `semcolor' package).
+% (reported by Denis Girou (CNRS/IDRIS) <Denis.Girou@idris.fr> - 1999-2002)
+
+% Built from \save@srlidespecials (for all slides excepted the first one)
+\def\save@slidespecials@ii{%
+ \begingroup
+ \output{%
+ \global\setbox\saved@specials=\box\@cclv
+ \global\wd\saved@specials=\z@
+ \global\dp\saved@specials=\z@
+ \global\ht\saved@specials=\z@}%
+ \hbox{}\penalty-\@M
+ \endgroup}%
+
+% The first slide is already managed, so we will define \save@slidespecials@i
+% started to the second one only...
+\def\save@slidespecials@i{}%
+
+\ifarticle\else
+ \def\insert@specials{%
+ \ifvoid\saved@specials\else
+ \setbox\@slidebox\hbox{\box\saved@specials\box\@slidebox}%
+ \fi
+ \global\let\save@slidespecials@i\save@slidespecials@ii}
+\fi
+
+\addto@hook{\before@newslide}{\save@slidespecials@i}
+\after@slidepage={}
+
+% 7 - To vertically correctly center the footer, if defined
+% (this is mainly visible when using the `fancyhdr' package, and specially
+% when a footer rule line is defined)
+% (reported by Denis Girou (CNRS/IDRIS) - <Denis.Girou@idris.fr> - April 1998)
+
+% 8 - Add-on to allow "full screen" backgrounds.
+% Seminar originally support only partial backgrounds, which doesn't cover
+% the full page but only the place of the text. It cannot be easily
+% modified, as there are dependancies between the header and the text.
+% So, we choose to define new macros \SeminarNewSlideFrameBackground
+% and \SeminarSlideFrameBackground to manage the full screen backgrounds,
+% designed on the model of the \newslideframe and \slideframe ones.
+% (added by Denis Girou (CNRS/IDRIS) <Denis.Girou@idris.fr> - Jun. 30, 1999)
+
+\newbox\Seminar@SlideBoxBackground
+
+\ifarticle
+\else
+ \def\output@slide{%
+ \begingroup
+ \hoffset=-\inverseslidesmag in
+ \voffset=-\inverseslidesmag in
+ \setslidelength\@tempdima{%
+ \ifportrait\paperwidth\else\paperheight\fi}%
+ \setslidelength\@tempdimb{%
+ \ifportrait\paperheight\else\paperwidth\fi}%
+ \ifrotateheaders
+ \@ifrotateslide{%
+ \dimen@=\@tempdima
+ \@tempdima=\@tempdimb
+ \@tempdimb=\dimen@}
+ \fi
+ % \oddsidemargin, \evensidemargin, \headheight, \footheight
+ % used for scratch:
+ % Some page styles like to know \textwidth:
+ \setslidelength\headheight\slidetopmargin
+ \setslidelength\footheight\slidebottommargin
+ \ifautoslidemargins
+ \textwidth=\wd\@slidebox
+ \oddsidemargin=\@tempdima
+ \advance\oddsidemargin-\textwidth
+ \divide\oddsidemargin 2
+ \else
+ \setslidelength\oddsidemargin\slideleftmargin
+ \setslidelength\evensidemargin\sliderightmargin
+ \textwidth=\@tempdima
+ \advance\textwidth-\oddsidemargin
+ \advance\textwidth-\evensidemargin
+ \fi
+ \setbox\@slidebox=\hbox to \@tempdima{%
+ \box\Seminar@SlideBoxBackground
+ \kern\oddsidemargin
+ \vbox to\@tempdimb{%
+ \ifnum\fancyput@flag>-1
+ \hbox{\kern-\oddsidemargin\do@fancyput}%
+ \fi
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble
+ \vbox to\headheight{%
+ \vfill
+ \hbox{%
+ \slideheadfont\relax\strut
+ \hbox to\textwidth{\@oddhead}}%
+ \kern\z@}%
+ \vfill
+ \hbox to\textwidth{\hss\box\@slidebox\hss}%
+ \vfill
+ \vbox to\footheight{%
+ \vfill
+ \hbox{%
+ \slidefootfont\relax\strut
+ \hbox to\textwidth{\@oddfoot}}%
+ \vfill}}%
+ \hss}%
+ \ifrotateheaders\@ifrotateslide\rotate@slide\fi
+ \insert@specials
+ \let\protect\noexpand
+ \shipout\box\@slidebox
+ \endgroup
+ \let\firstmark\botmark}
+ \@ifundefined{fancyput@flag}{\def\fancyput@flag{-1}}{}
+\fi
+
+\def\finish@slide{%
+ \theSlideFrameBackground
+ \theslideframe
+ \add@slidelabel\slidelabel}
+
+
+\def\SeminarNewSlideFrameBackground#1{%
+ \@ifnextchar[{\@SeminarNewSlideFrameBackground{#1}}%
+ {\@SeminarNewSlideFrameBackground{#1}[]}}
+\def\@SeminarNewSlideFrameBackground#1[#2]{%
+ \@namedef{semsfbops@#1}{#2}%
+ \@namedef{semsfb@#1}##1}
+
+\def\SeminarSlideFrameBackground{\Seminar@SlideFrameBackground{Slide}}
+\def\Seminar@SlideFrameBackground#1{%
+ \@ifstar{\@testtrue\Seminar@@SlideFrameBackground{#1}}%
+ {\@testfalse\Seminar@@SlideFrameBackground{#1}}}
+\def\Seminar@@SlideFrameBackground#1{%
+ \@ifnextchar[{\Seminar@@@SlideFrameBackground{#1}}%
+ {\Seminar@@@SlideFrameBackground{#1}[]}}
+\def\Seminar@@@SlideFrameBackground#1[#2]#3{%
+ \def\@tempa{none}%
+ \def\@tempb{#3}%
+ \ifx\@tempa\@tempb
+ \@namedef{the#1FrameBackground}{\relax}%
+ \else
+ \ifx\@tempb\@empty
+ \@namedef{the#1FrameBackground}{}%
+ \else
+ \@ifundefined{semsfb@#3}%
+ {\@seminarerr{Background slide frame `#3' undefined}\@eha}%
+ {\if@test
+ \Seminar@@@@SlideFrameBackground{#1}[#2]{#3}%
+ \else
+ \@namedef{the#1FrameBackground}{%
+ \setbox\Seminar@SlideBoxBackground=\hbox{{%
+ \@nameuse{semsfbops@#3}#2%
+ \@nameuse{semsfb@#3}{\box\Seminar@SlideBoxBackground}}}}%
+ \fi}%
+ \fi
+ \fi}
+\def\Seminar@@@@SlideFrameBackground#1[#2]#3{%
+ \expandafter\let\expandafter\@tempa\csname the#1FrameBackground\endcsname
+ \edef\next{%
+ \noexpand\def\expandafter\noexpand\csname the#1FrameBackground\endcsname}%
+ \expandafter\next\expandafter{\@tempa
+ \setbox\Seminar@SlideBoxBackground=\hbox{{%
+ \@nameuse{semsfbops@#3}%
+ #2%
+ \@nameuse{semsfb@#3}{\box\Seminar@SlideBoxBackground}}}}}%
+
+\SeminarSlideFrameBackground{none}
+
+
+% 9 - For screen presentations, and specially animated graphics,
+% we need more than 10 overlays. We increase the limit to 676 (26^2).
+% (added by Denis Girou (CNRS/IDRIS) <Denis.Girou@idris.fr> - Dec. 5, 2001)
+
+\def\overlay#1{%
+ \ifoverlays\ifx\@overlay\relax\nooverlays@err\fi\fi
+ \ifslide
+ \@tempcnta=#1
+ \@testfalse
+ \ifnum\@tempcnta>-2 \ifnum\@tempcnta<677 \@testtrue\fi\fi
+ \if@test
+ \c@overlay=\@tempcnta
+ \ifnum\c@overlay=0
+ \advance\c@slide by -1
+ \refstepcounter{slide}%
+ \else
+ \advance\c@overlay by -1
+ \refstepcounter{overlay}%
+ \ifoverlays
+ \xdef\overlay@list{\overlay@list,\the\c@overlay}%
+ \fi
+ \fi
+ \ifoverlays
+ \@overlay{\the\c@overlay}%
+ \fi
+ \else
+ \@seminarerr{\string\overlay\space argument must be
+ an integer between 0 and 676}\@eha
+ \fi
+ \else
+ \@seminarerr{\string\overlay\space can only be used
+ in slide environments}\@eha
+ \fi
+ \ignorespaces}
+
+\def\overlay@loop{%
+ \begingroup
+ \overlay@prep
+ \c@overlay=1
+ \@whilenum\c@overlay<677
+ \do{%
+ \test@member{\the\c@overlay}{\overlay@list}%
+ \if@test
+ \make@overlay{\the\c@overlay}%
+ \finish@slide
+ \output@slide
+ \fi
+ \layer@loop{\the\c@overlay}%
+ \advance\c@overlay by 1}%
+ \endgroup}
+
+\def\theoverlay{{%
+\ifnum\c@overlay>26
+ \@tempcnta=\c@overlay
+ \advance\@tempcnta\m@ne
+ \divide\@tempcnta by 26
+ \multiply\@tempcnta by 26
+ \@tempcntb=\c@overlay
+ \advance\@tempcntb-\@tempcnta
+ \@tempcnta=\c@overlay
+ \advance\@tempcnta\m@ne
+ \divide\@tempcnta by 26
+ \theslide-\@alph{\@tempcnta}\@alph{\@tempcntb}%
+\else
+ \theslide-\alph{overlay}%
+\fi}}
+
+
+% 10 - Addition for management of cumulative and progressive overlays.
+% Due to PSTricks, Seminar had since the beginning the required
+% capabilities to manage overlays in various ways. The only thing
+% to do is to redefine the PSTricks \pst@initoverlay macro in the
+% relevant way.
+% (added by Denis Girou (CNRS/IDRIS) <Denis.Girou@idris.fr> - 1999-2001)
+
+% From `semcolor'
+\def\make@overlay#1{%
+ \setbox\@slidebox=\hbox{%
+ \pst@initoverlay{#1}%
+ \pst@Verb{0 \tx@BOL }%
+ \copy\@@slidebox
+ \pst@Verb{-1 \tx@BOL }}}
+
+% We must redefine too the /BeginOL macro form pstricks.pro, as "all" is now -1
+% \def\pst@initoverlay#1{\pst@Verb{\tx@InitOL /TheOL (#1) def}}
+\def\pst@initoverlay#1{%
+\pst@Verb{
+/BeginOL {
+ dup -1 eq exch TheOL eq or
+ {IfVisible not
+ {Visible /IfVisible true def}
+ if}
+ {IfVisible
+ {Invisible /IfVisible false def}
+ if}
+ ifelse} def
+\tx@InitOL end
+/TheOL #1 def}}
+
+\def\pst@overlay#1{%
+\edef\curr@overlay{#1}%
+\pst@Verb{#1 \tx@BOL }%
+\aftergroup\pst@endoverlay}
+\def\pst@endoverlay{%
+\pst@Verb{\curr@overlay\space \tx@BOL }}
+
+% Cumulative overlays
+% ===================
+
+% Cumulative overlays, to force to print all preceding ones
+\def\SeminarCumulativeOverlays{%
+\def\pst@initoverlay##1{%
+\pst@Verb{
+/BeginOL {
+ dup -1 eq exch TheOL le or
+ {IfVisible not
+ {Visible /IfVisible true def}
+ if}
+ {IfVisible
+ {Invisible /IfVisible false def}
+ if}
+ ifelse} def
+\tx@InitOL end
+/TheOL ##1 def}}%
+}
+
+% Alternative method for same goal (needed when PSTricks nodes are used)
+\def\SeminarAltCumulativeOverlays{%
+\def\pst@initoverlay##1{%
+\pst@Verb{
+\tx@InitOL end
+/Visible {initclip} def
+/Invisible {CP newpath OLUnit itransform moveto clip newpath moveto} def
+/TheOL ##1 def}}
+}
+
+% Progressive overlays
+% ===================
+
+% Progressive overlays (at step i, only overlays 0 and i are shown)
+\def\SeminarProgressiveOverlays{%
+\def\pst@initoverlay##1{%
+\pst@Verb{%
+/BeginOL {%
+ /NumOL ED
+ NumOL -1 eq NumOL 0 eq NumOL TheOL eq or or
+ {IfVisible not
+ {Visible /IfVisible true def}
+ if}
+ {IfVisible
+ {Invisible /IfVisible false def}
+ if}
+ ifelse} def
+\tx@InitOL end
+/TheOL ##1 def}}}
+
+% Alternative method for the same goal (needed when PSTricks nodes are used)
+\def\SeminarAltProgressiveOverlays{%
+\def\pst@initoverlay##1{%
+\pst@Verb{%
+/BeginOL {%
+ /NumOL ED
+ NumOL -1 eq NumOL 0 eq NumOL TheOL eq or or
+ {IfVisible not
+ {Visible /IfVisible true def}
+ if}
+ {IfVisible
+ {Invisible /IfVisible false def}
+ if}
+ ifelse} def
+\tx@InitOL end
+/Visible {initclip} def
+/Invisible {CP newpath OLUnit itransform moveto clip newpath moveto} def
+/TheOL ##1 def}}}
+
+% Generation of the next overlay (minor add-on)
+% =============================================
+% (it increment automatically the number of the current overlay)
+\providecommand{\SeminarNextOverlay}[1]{%
+\addtocounter{overlay}{1}%
+\begin{overlay}{\the\c@overlay}#1\end{overlay}}
+
+% To force all items in the various list environments to appear
+% in their own overlay (minor add-on)
+% =============================================================
+\let\itemORIG\item
+
+\def\SeminarItemInOverlay{%
+\def\item{%
+\addtocounter{overlay}{1}%
+\overlay{\the\c@overlay}%
+\itemORIG}}
+
+\catcode`\@=\TheAtCode\relax
+\endinput
+%% END seminar.bg2
diff --git a/macros/latex/contrib/seminar/latex/seminar.bg3 b/macros/latex/contrib/seminar/latex/seminar.bg3
new file mode 100644
index 0000000000..33deadae09
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/seminar.bg3
@@ -0,0 +1,608 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% seminar.bg3 --- Corrections for compatibility problems and new bugs
+%% found in the Seminar package, and few new additions
+%% to help overlays management for PDF output files.
+%% (see also the seminar.bug file in Seminar distribution)
+%%
+%% Disclaimer: this file is mine and doesn't engage TVZ!
+%%
+%% Note: insert it after \usepackage{graphicx} if you use `graphicx'
+%% and after \usepackage{longtable} if you use `longtable'
+%%
+%% Author : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr>
+%% Created the : 1995
+%% Last mod. by : Patrice MEGRET (FPMs - Belgium) <patrice.megret@fpms.ac.be>
+%% Last mod. the : Sunday February 29 2004
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\FileVersion{2.3}
+\def\FileDate{2014/05/12}
+\typeout{seminar.bg3: various corrections for the Seminar document class^^J%
+ added since seminar.bug and few add-ons for overlays^^J%
+ (Version \FileVersion\space of <\FileDate> (P.M.))}
+
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+
+% PM modification begin PM December 6, 2003
+% ce nouveau test permet de choisir entre un footer
+% verticalement centré \footervcenter = true (default)
+% ou non \footervcenter = false
+\newif\iffootervcenter \footervcentertrue
+% PM modification end December 6, 2003
+
+
+% 1 - To correct a bug in the note environment
+% (reported by Denis Girou (CNRS/IDRIS) <Denis.Girou@idris.fr> - 1995)
+\@savsf=1
+
+
+% 2 - To correct several bugs to generate a list of slides with subsection
+% entries
+% (reported by Denis Girou (CNRS/IDRIS) <Denis.Girou@idris.fr> - Jul. 18, 1995)
+% - To clear the subheading when a new heading is defined
+% (reported by Axel Thimm - <thimm@physik.fu-berlin.de> - June 5, 1997)
+% - To assure coherence between heading and subheading when used
+% in header/footer, for article mode
+% (reported by Axel Thimm - <thimm@physik.fu-berlin.de> - June 5, 1997)
+% - Improvements (\refstepcounter and \@addtoreset) by Jeremy Gibbons
+% <jgibbons@brookes.ac.uk> - Sep. 30, 1997
+
+% Used by the \slide@subheading macro but undefined
+\def\theslidesubsection{\theslidesection.\arabic{slidesubsection}}
+
+\def\slide@heading[#1]#2{%
+ \refstepcounter{slidesection}%
+ \@addtoreset{slidesubsection}{slidesection}
+ \addtocontents{los}{\protect\l@slide
+ {\the\c@slidesection}{\ignorespaces#1}{\@SCTR}}%
+ \def\@tempa{#2}%
+ \ifx\@tempa\@empty\else
+ {\edef\@currentlabel{\csname p@slidesection\endcsname\theslidesection}%
+ \makeslideheading{#2}}%
+ \fi
+ \gdef\theslideheading{#1}%
+ \gdef\theslidesubheading{}%
+}
+
+\def\slide@subheading[#1]#2{%
+ \refstepcounter{slidesubsection}%
+ \addtocontents{los}{\protect\l@subslide
+ {\the\c@slidesubsection}{\ignorespaces#1}{\@SCTR}}%
+ \def\@tempa{#2}%
+ \ifx\@tempa\@empty\else
+ {\edef\@currentlabel{\csname p@slidesubsection\endcsname
+ \theslidesubsection}\makeslidesubheading{#2}}%
+ \fi
+ \gdef\theslidesubheading{#1}%
+}
+
+
+% 3 - To correct a bug in the \slidecontents macro
+% (reported by Denis Roegel (LORIA) <Denis.Roegel@loria.fr> - Sep. 22, 1996)
+
+\long\def\@gobblethree #1#2#3{}
+
+\def\slide@contents{%
+ \def\l@slide##1##2##3{%
+ \slide@cline{\slidenumberline{##1}{##2}}{##3}}%
+ \let\l@subslide\@gobblethree
+ \@startlos}
+
+
+% 4 - To solve incompatibility between the `graphicx' package and Seminar.
+% The \espfslidesize Seminar macro work only with the old version of
+% the `epsfig' package, so with \includegraphics the PostScript files are
+% always scaled without the possibility to leave them to there natural
+% size. And also these files are not correctly scaled when we switch
+% from normal to article mode under Seminar. So, we must redefined the
+% \epsfslidesize macro of Seminar and modify few internal macros of
+% `graphicx'.
+% (Note: I consider only the `graphicX' package, not the 'graphicS' one)
+% (reported by Karl Tombre (LORIA) <Karl.Tombre@loria.fr> and
+% Denis Roegel (LORIA) <Denis.Roegel@loria.fr> - Jan. 16, 1997)
+
+\def\GraphicsNotScaled{%
+\ifx\Gin@viewport\undefined
+\else % Graphicx package detected
+\def\Gin@i{%
+ \def\Gin@req@sizes{%
+ \Gin@nat@height=\inverseslidesmag\Gin@nat@height
+ \Gin@nat@width=\inverseslidesmag\Gin@nat@width
+ \Gin@req@height\Gin@nat@height
+ \Gin@req@width\Gin@nat@width}%
+ \@ifnextchar[\Gin@ii{\Gin@ii[]}}
+\define@key{Gin}{width}{%
+\@tempdima=##1\@tempdima=\inverseslidesmag\@tempdima\def\Gin@ewidth{\@tempdima}}
+\define@key{Gin}{height}{%
+\@tempdima=##1\@tempdima=\inverseslidesmag\@tempdima\def\Gin@eheight{\@tempdima}}
+\define@key{Gin}{totalheight}{%
+\def\Gin@eresize{\totalheight}%
+\@tempdima=##1\@tempdima=\inverseslidesmag\@tempdima\def\Gin@eheight{\@tempdima}}
+\fi}
+
+\def\epsfslidesize{%
+\let\epsfsize\slide@epsfsize
+\GraphicsNotScaled}
+
+
+% 5 - To solve incompatibily between the LongTable package and Seminar
+% (reported by Bhaskar Manda (UIUC) <bhaskar@or4.me.uiuc.edu> - May 7, 1997)
+% - Problem in article format seen later
+% (reported by Axel Thimm <thimm@physik.fu-berlin.de> - June 5, 1997)
+
+% From seminar.cls
+\def\slide@outputLT{% (from \slide@output)
+ \@makeslide
+ \@testfalse
+ \ifnotesonly\else
+ \iflandscape
+ \ifnum\@landscapeonly>-1 \os@test\fi
+ \else
+ \ifnum\@landscapeonly<1 \os@test\fi
+ \fi
+ \fi
+ \if@test
+ \reset@slideoutput
+ \@@makeslideLT
+ \process@slide
+ \fi
+ \refstepcounter{slide}}
+\def\@@makeslideLT{% (from \@@makeslide)
+ \overfullslide@warning
+ \setbox\@slidebox\hbox{%
+ \vfuzz=\slidefuzz\relax
+ \vbox to\slide@vsize{%
+ \box\@outputbox
+ \ifcenterslides\vskip\z@ plus .0001fil \fi
+ \unvbox\@slidebox
+ \vskip\z@ plus .0001fil}%
+ \the\after@slidepage}%
+ \wd\@slidebox\textwidth}
+
+% From LongTable
+\def\LT@output{%
+ \ifnum\outputpenalty <-\@Mi
+ \ifnum\outputpenalty > -\LT@end@pen
+ \LT@err{floats and marginpars not allowed in a longtable}\@ehc
+ \else
+ \setbox\z@\vbox{\unvbox\@cclv}%
+ \ifdim \ht\LT@lastfoot>\ht\LT@foot
+ \dimen@\pagegoal
+ \advance\dimen@-\ht\LT@lastfoot
+ \ifdim\dimen@<\ht\z@
+ \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
+ \@makecol
+ \slide@outputLT
+ \setbox\z@\vbox{\box\LT@head}%
+ \fi
+ \fi
+ \global\@colroom\@colht
+ \global\vsize\@colht
+ \vbox
+ {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%
+ \fi
+ \else
+ \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
+ \@makecol
+ \slide@outputLT
+ \copy\LT@head
+ \fi}
+
+% We must adjust \textheight. Sometimes, you must increase it a little by
+% something like \addtolength{\textheight}{5mm}
+% But if you use slides like \begin{slide*}[15cm,10cm]
+% you must define locally \textheight=15cm
+\addtolength{\textheight}{-\headheight}
+
+
+% 6 - To allow automatic changes of language dependent labels,
+% for instance by loading the `french' package after Seminar
+% (suggested by Bernard Gaulle (IDRIS) <gaulle@idris.fr> - Nov. 20, 1997)
+% From seminar.cls
+\def\slidename{Slide}
+\def\slidelabel{\bf\slidename{} \theslide}
+% From slidesec.sty
+\def\listslidename{List of Slides}%
+\def\listofslides{\section*{\listslidename%
+\@mkboth{\expandafter\MakeUppercase\listslidename}%
+ {\expandafter\MakeUppercase\listslidename}}%
+ \def\l@slide##1##2##3{%
+ \slide@undottedcline{\slidenumberline{##3}{##2}}{}}%
+ \let\l@subslide\l@slide
+ \@startlos}
+
+
+% 7 - There were several problems when doing a global change of color
+% outside the "slide"environment (using the \color{ColorName} macro
+% of the `color' package) if this change was not done globally
+% (that is to say before the "\begin{document}") but inside the document,
+% for a part of the slides.
+% These problems can be seen specially for screen presentations,
+% when we want to use a dark background, so a light foreground color
+% for the text.
+% First, the header (defining for instance with the `fancyhdr' package)
+% changed of color one slide later and was restored one slide later too
+% if the change of the color was mas inside a group for some slides,
+% and second, the black color was forced by the footer.
+% We solve the first problem by usage of the same technique than the one
+% used by Seminar for global changes based on \special macros and made
+% before the "\begin{document}". We save the \specials in the
+% \saved@specials box and insert it at the beginning of the \@slidebox box
+% with the \insert@specials macro, as for the first slide.
+% And we solve the second problem by suppression of the command in the
+% hook which force the black color (defined in the `semcolor' package).
+% (reported by Denis Girou (CNRS/IDRIS) <Denis.Girou@idris.fr> - 1999-2002)
+
+% Built from \save@srlidespecials (for all slides excepted the first one)
+\def\save@slidespecials@ii{%
+ \begingroup
+ \output{%
+ \global\setbox\saved@specials=\box\@cclv
+ \global\wd\saved@specials=\z@
+ \global\dp\saved@specials=\z@
+ \global\ht\saved@specials=\z@}%
+ \hbox{}\penalty-\@M
+ \endgroup}%
+
+% The first slide is already managed, so we will define \save@slidespecials@i
+% started to the second one only...
+\def\save@slidespecials@i{}%
+
+\ifarticle\else
+ \def\insert@specials{%
+ \ifvoid\saved@specials\else
+ \setbox\@slidebox\hbox{\box\saved@specials\box\@slidebox}%
+ \fi
+ \global\let\save@slidespecials@i\save@slidespecials@ii}
+\fi
+
+\addto@hook{\before@newslide}{\save@slidespecials@i}
+
+\after@slidepage={}
+
+
+% 7 - To vertically correctly center the footer, if defined
+% (this is mainly visible when using the `fancyhdr' package, and specially
+% when a footer rule line is defined)
+% (reported by Denis Girou (CNRS/IDRIS) - <Denis.Girou@idris.fr> - April 1998)
+
+% 8 - Add-on to allow "full screen" backgrounds.
+% Seminar originally support only partial backgrounds, which doesn't cover
+% the full page but only the place of the text. It cannot be easily
+% modified, as there are dependancies between the header and the text.
+% So, we choose to define new macros \SeminarNewSlideFrameBackground
+% and \SeminarSlideFrameBackground to manage the full screen backgrounds,
+% designed on the model of the \newslideframe and \slideframe ones.
+% (added by Denis Girou (CNRS/IDRIS) <Denis.Girou@idris.fr> - Jun. 30, 1999)
+
+\newbox\Seminar@SlideBoxBackground
+\ifarticle
+\else
+ \def\output@slide{%
+ \begingroup
+ \hoffset=-\inverseslidesmag in
+ \voffset=-\inverseslidesmag in
+ \setslidelength\@tempdima{%
+ \ifportrait\paperwidth\else\paperheight\fi}%
+ \setslidelength\@tempdimb{%
+ \ifportrait\paperheight\else\paperwidth\fi}%
+ \ifrotateheaders
+ \@ifrotateslide{%
+ \dimen@=\@tempdima
+ \@tempdima=\@tempdimb
+ \@tempdimb=\dimen@}
+ \fi
+ % \oddsidemargin, \evensidemargin, \headheight, \footheight
+ % used for scratch:
+ % Some page styles like to know \textwidth:
+ \setslidelength\headheight\slidetopmargin
+ \setslidelength\footheight\slidebottommargin
+ \ifautoslidemargins
+ \textwidth=\wd\@slidebox
+ \oddsidemargin=\@tempdima
+ \advance\oddsidemargin-\textwidth
+ \divide\oddsidemargin 2
+ \else
+ \setslidelength\oddsidemargin\slideleftmargin
+ \setslidelength\evensidemargin\sliderightmargin
+ \textwidth=\@tempdima
+ \advance\textwidth-\oddsidemargin
+ \advance\textwidth-\evensidemargin
+ \fi
+ \setbox\@slidebox=\hbox to \@tempdima{%
+ \box\Seminar@SlideBoxBackground
+ \kern\oddsidemargin
+ \vbox to\@tempdimb{%
+ \ifnum\fancyput@flag>-1
+ \hbox{\kern-\oddsidemargin\do@fancyput}%
+ \fi
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble
+ \vbox to\headheight{%
+ \vfill
+ \hbox{%
+ \slideheadfont\relax\strut
+ \hbox to\textwidth{\@oddhead}}%
+ \kern\z@}%
+ \vfill
+ \hbox to\textwidth{\hss\box\@slidebox\hss}%
+ \vfill
+ \vbox to\footheight{%
+ \iffootervcenter
+ \vfill
+ \fi
+ \hbox{%
+ \slidefootfont\relax\strut
+ \hbox to\textwidth{\@oddfoot}}%
+ \vfill}}%
+ \hss}%
+ \ifrotateheaders\@ifrotateslide\rotate@slide\fi
+ \insert@specials
+ \let\protect\noexpand
+ \shipout\box\@slidebox
+ \endgroup
+ \let\firstmark\botmark}
+ \@ifundefined{fancyput@flag}{\def\fancyput@flag{-1}}{}
+\fi
+
+
+\def\finish@slide{%
+ \theSlideFrameBackground
+ \theslideframe
+ \add@slidelabel\slidelabel}
+
+
+\def\SeminarNewSlideFrameBackground#1{%
+ \@ifnextchar[{\@SeminarNewSlideFrameBackground{#1}}%
+ {\@SeminarNewSlideFrameBackground{#1}[]}}
+\def\@SeminarNewSlideFrameBackground#1[#2]{%
+ \@namedef{semsfbops@#1}{#2}%
+ \@namedef{semsfb@#1}##1}
+
+\def\SeminarSlideFrameBackground{\Seminar@SlideFrameBackground{Slide}}
+\def\Seminar@SlideFrameBackground#1{%
+ \@ifstar{\@testtrue\Seminar@@SlideFrameBackground{#1}}%
+ {\@testfalse\Seminar@@SlideFrameBackground{#1}}}
+\def\Seminar@@SlideFrameBackground#1{%
+ \@ifnextchar[{\Seminar@@@SlideFrameBackground{#1}}%
+ {\Seminar@@@SlideFrameBackground{#1}[]}}
+\def\Seminar@@@SlideFrameBackground#1[#2]#3{%
+ \def\@tempa{none}%
+ \def\@tempb{#3}%
+ \ifx\@tempa\@tempb
+ \@namedef{the#1FrameBackground}{\relax}%
+ \else
+ \ifx\@tempb\@empty
+ \@namedef{the#1FrameBackground}{}%
+ \else
+ \@ifundefined{semsfb@#3}%
+ {\@seminarerr{Background slide frame `#3' undefined}\@eha}%
+ {\if@test
+ \Seminar@@@@SlideFrameBackground{#1}[#2]{#3}%
+ \else
+ \@namedef{the#1FrameBackground}{%
+ \setbox\Seminar@SlideBoxBackground=\hbox{{%
+ \@nameuse{semsfbops@#3}#2%
+ \@nameuse{semsfb@#3}{\box\Seminar@SlideBoxBackground}}}}%
+ \fi}%
+ \fi
+ \fi}
+\def\Seminar@@@@SlideFrameBackground#1[#2]#3{%
+ \expandafter\let\expandafter\@tempa\csname the#1FrameBackground\endcsname
+ \edef\next{%
+ \noexpand\def\expandafter\noexpand\csname the#1FrameBackground\endcsname}%
+ \expandafter\next\expandafter{\@tempa
+ \setbox\Seminar@SlideBoxBackground=\hbox{{%
+ \@nameuse{semsfbops@#3}%
+ #2%
+ \@nameuse{semsfb@#3}{\box\Seminar@SlideBoxBackground}}}}}%
+
+\SeminarSlideFrameBackground{none}
+
+
+% 9 - For screen presentations, and specially animated graphics,
+% we need more than 10 overlays. We increase the limit to 676 (26^2).
+% (added by Denis Girou (CNRS/IDRIS) <Denis.Girou@idris.fr> - Dec. 5, 2001)
+
+\def\overlay#1{%
+ \ifoverlays\ifx\@overlay\relax\nooverlays@err\fi\fi
+ \ifslide
+ \@tempcnta=#1
+ \@testfalse
+ \ifnum\@tempcnta>-2 \ifnum\@tempcnta<677 \@testtrue\fi\fi
+ \if@test
+ \c@overlay=\@tempcnta
+ \ifnum\c@overlay=0
+ \advance\c@slide by -1
+ \refstepcounter{slide}%
+ \else
+ \advance\c@overlay by -1
+ \refstepcounter{overlay}%
+ \ifoverlays
+ \xdef\overlay@list{\overlay@list,\the\c@overlay}%
+ \fi
+ \fi
+ \ifoverlays
+ \@overlay{\the\c@overlay}%
+ \fi
+ \else
+ \@seminarerr{\string\overlay\space argument must be
+ an integer between 0 and 676}\@eha
+ \fi
+ \else
+ \@seminarerr{\string\overlay\space can only be used
+ in slide environments}\@eha
+ \fi
+ \ignorespaces}
+
+\def\overlay@loop{%
+ \begingroup
+ \overlay@prep
+ \c@overlay=1
+ \@whilenum\c@overlay<677
+ \do{%
+ \test@member{\the\c@overlay}{\overlay@list}%
+ \if@test
+ \make@overlay{\the\c@overlay}%
+ \finish@slide
+ \output@slide
+ \fi
+ \layer@loop{\the\c@overlay}%
+ \advance\c@overlay by 1}%
+ \endgroup}
+
+\def\theoverlay{{%
+\ifnum\c@overlay>26
+ \@tempcnta=\c@overlay
+ \advance\@tempcnta\m@ne
+ \divide\@tempcnta by 26
+ \multiply\@tempcnta by 26
+ \@tempcntb=\c@overlay
+ \advance\@tempcntb-\@tempcnta
+ \@tempcnta=\c@overlay
+ \advance\@tempcnta\m@ne
+ \divide\@tempcnta by 26
+ \theslide-\@alph{\@tempcnta}\@alph{\@tempcntb}%
+\else
+ \theslide-\alph{overlay}%
+\fi}}
+
+
+% 10 - Addition for management of cumulative and progressive overlays.
+% Due to PSTricks, Seminar had since the beginning the required
+% capabilities to manage overlays in various ways. The only thing
+% to do is to redefine the PSTricks \pst@initoverlay macro in the
+% relevant way.
+% (added by Denis Girou (CNRS/IDRIS) <Denis.Girou@idris.fr> - 1999-2001)
+
+% From `semcolor'
+\def\make@overlay#1{%
+ \setbox\@slidebox=\hbox{%
+ \pst@initoverlay{#1}%
+ \pst@Verb{0 \tx@BOL }%
+ \copy\@@slidebox
+ \pst@Verb{-1 \tx@BOL }}}
+
+\iffalse
+% We must redefine too the /BeginOL macro form pstricks.pro, as "all" is now -1
+\def\pst@initoverlay#1{%
+\pst@Verb{%
+/BeginOL {%
+ dup -1 eq exch TheOL eq or
+ {IfVisible not
+ {Visible /IfVisible true def}
+ if}
+ {IfVisible
+ {Invisible /IfVisible false def}
+ if}
+ ifelse} def
+\tx@InitOL end
+/TheOL #1 def}}
+
+\def\pst@overlay#1{%
+\edef\curr@overlay{#1}%
+\pst@Verb{#1 \tx@BOL }%
+\aftergroup\pst@endoverlay}
+\def\pst@endoverlay{%
+\pst@Verb{\curr@overlay\space \tx@BOL }}
+\fi
+
+% Cumulative overlays
+% ===================
+
+% Cumulative overlays, to force to print all preceding ones
+\def\SeminarCumulativeOverlays{%
+\def\pst@initoverlay##1{%
+\pst@Verb{%
+/BeginOL {%
+ dup -1 eq exch TheOL le or
+ {IfVisible not
+ {Visible /IfVisible true def}
+ if}
+ {IfVisible
+ {Invisible /IfVisible false def}
+ if}
+ ifelse} def
+\tx@InitOL end
+/TheOL ##1 def}}}
+
+% Alternative method for same goal (needed when PSTricks nodes are used)
+\def\SeminarAltCumulativeOverlays{%
+\def\pst@initoverlay##1{%
+\pst@Verb{%
+/BeginOL {%
+ dup -1 eq exch TheOL le or
+ {IfVisible not
+ {Visible /IfVisible true def}
+ if}
+ {IfVisible
+ {Invisible /IfVisible false def}
+ if}
+ ifelse} def
+\tx@InitOL end
+/Visible {initclip} def
+/Invisible {CP newpath OLUnit itransform moveto clip newpath moveto} def
+/TheOL ##1 def}}}
+
+% Progressive overlays
+% ====================
+
+% Progressive overlays (at step i, only overlays 0 and i are shown)
+\def\SeminarProgressiveOverlays{%
+\def\pst@initoverlay##1{%
+\pst@Verb{%
+/BeginOL {%
+ /NumOL ED
+ NumOL -1 eq NumOL 0 eq NumOL TheOL eq or or
+ {IfVisible not
+ {Visible /IfVisible true def}
+ if}
+ {IfVisible
+ {Invisible /IfVisible false def}
+ if}
+ ifelse} def
+\tx@InitOL end
+/TheOL ##1 def}}}
+
+% Alternative method for the same goal (needed when PSTricks nodes are used)
+\def\SeminarAltProgressiveOverlays{%
+\def\pst@initoverlay##1{%
+\pst@Verb{%
+/BeginOL {%
+ /NumOL ED
+ NumOL -1 eq NumOL 0 eq NumOL TheOL eq or or
+ {IfVisible not
+ {Visible /IfVisible true def}
+ if}
+ {IfVisible
+ {Invisible /IfVisible false def}
+ if}
+ ifelse} def
+\tx@InitOL end
+/Visible {initclip} def
+/Invisible {CP newpath OLUnit itransform moveto clip newpath moveto} def
+/TheOL ##1 def}}}
+
+% Generation of the next overlay (minor add-on)
+% =============================================
+% (it increment automatically the number of the current overlay)
+\providecommand{\SeminarNextOverlay}[1]{%
+\addtocounter{overlay}{1}%
+\begin{overlay}{\the\c@overlay}#1\end{overlay}}
+
+% To force all items in the various list environments to appear
+% in their own overlay (minor add-on)
+% ==================================
+\let\itemORIG\item
+
+\def\SeminarItemInOverlay{%
+\def\item{%
+\addtocounter{overlay}{1}%
+\overlay{\the\c@overlay}%
+\itemORIG}}
+
+\catcode`\@=\TheAtCode\relax
+\endinput
+%% END seminar.bg3
diff --git a/macros/latex/contrib/seminar/latex/seminar.bug b/macros/latex/contrib/seminar/latex/seminar.bug
new file mode 100644
index 0000000000..a0aafe664f
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/seminar.bug
@@ -0,0 +1,209 @@
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%% BEGIN seminar.bug
+% LAST MODIFIED: December 1997
+% The latest version of this file can be obtained from Princeton.EDU.
+
+% This file list some bugs and latebreaking news for seminar.sty,
+% version 1.0, released April 1, 1993.
+
+% 1. Typo in the user's guide: \espfslidesize should be \epsfslidesize.
+
+% 2. fancyheadings.sty does not work well with slides.
+% WORKAROUND: Ignore the footnote in the User's Guide that discusses this.
+% Instead:
+%
+% - If you want the width of the header to be "\textwidth"
+% (the usual state of affairs), then put
+%
+% \renewcommand{\headwidth}{\textwidth}
+%
+% in the preamble and do not change "\headwidth" after that.
+%
+% - If you want to set the width to something else, then you have to scale
+% it appropriately. E.g., use
+%
+% \setslidelength{\headwidth}{<dim>}
+%
+% or, if are using the "fancy" page style with both the article and
+% slides formats, use
+% \ifarticle
+% \setartlength{\headwidth}{<dim1>}
+% \else
+% \setslidelength{\headwidth}{<dim2>}
+% \fi
+
+% 3. Some people prefer that the headers/footers automatically adjust their
+% size to the width of the framed slide (I don't, which I guess is why
+% seminar.sty does not work this way.) I have added an option for this.
+% Put the command
+%
+% \autoslidemarginstrue
+%
+% in the preamble. You must also input this file (seminar.bug), which
+% contains the patch.
+
+% 4. The optional argument in \twoup[int] does not work with the
+% portrait option and slides format.
+% PATCH: Input this file.
+
+% 5. Slide labels can come out in the wrong size font.
+% PATCH: Input this file.
+
+% 6. When \newslide is used inside a list environment, subsequent nested
+% list environments can have the wrong line width.
+% PATCH: Input this file.
+
+% 7. \overlaypagestyle and \layerpagestyle commands ignored.
+% PATCH: Input this file, AFTER inputting semlayer.sty.
+
+% 8. boxedEPS.tex won't work inside slide environments (because seminar.sty
+% erroneously modifies \read so that it is preceded by \immediate).
+% PATCH: Input this file.
+
+%%%% PATCHES
+
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+
+% 3.
+\newif\ifautoslidemargins
+\ifarticle\else
+ \def\output@slide{%
+ \begingroup
+ \hoffset=-\inverseslidesmag in
+ \voffset=-\inverseslidesmag in
+ \setslidelength\@tempdima{%
+ \ifportrait\paperwidth\else\paperheight\fi}%
+ \setslidelength\@tempdimb{%
+ \ifportrait\paperheight\else\paperwidth\fi}%
+ \ifrotateheaders
+ \@ifrotateslide{%
+ \dimen@=\@tempdima
+ \@tempdima=\@tempdimb
+ \@tempdimb=\dimen@}%
+ \fi
+ % \oddsidemargin, \evensidemargin, \headheight, \footheight
+ % used for scratch:
+ % Some page styles like to know \textwidth:
+ \setslidelength\headheight\slidetopmargin
+ \setslidelength\footheight\slidebottommargin
+ \ifautoslidemargins
+ \textwidth=\wd\@slidebox
+ \oddsidemargin=\@tempdima
+ \advance\oddsidemargin-\textwidth
+ \divide\oddsidemargin 2
+ \else
+ \setslidelength\oddsidemargin\slideleftmargin
+ \setslidelength\evensidemargin\sliderightmargin
+ \textwidth=\@tempdima
+ \advance\textwidth-\oddsidemargin
+ \advance\textwidth-\evensidemargin
+ \fi
+ \setbox\@slidebox=\hbox to \@tempdima{%
+ \kern\oddsidemargin
+ \vbox to\@tempdimb{%
+ \ifnum\fancyput@flag>-1
+ \hbox{\kern-\oddsidemargin\do@fancyput}%
+ \fi
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble
+ \vbox to\headheight{%
+ \vfill
+ \hbox{%
+ \slideheadfont\relax\strut
+ \hbox to\textwidth{\@oddhead}}%
+ \kern\z@}%
+ \vfill
+ \hbox to\textwidth{\hss\box\@slidebox\hss}%
+ \vfill
+ \vbox to\footheight{%
+ \hbox{%
+ \slidefootfont\relax\strut
+ \hbox to\textwidth{\@oddfoot}}%
+ \vfill}}%
+ \hss}%
+ \ifrotateheaders\@ifrotateslide\rotate@slide\fi
+ \insert@specials
+ \shipout\box\@slidebox
+ \endgroup
+ \let\firstmark\botmark}
+ \@ifundefined{fancyput@flag}{\def\fancyput@flag{-1}}{}
+\fi
+
+% 4.
+\ifarticle\else
+ \ifportrait
+ \def\@twoup[#1]{%
+ \@tempcnta=\the@slidesmag\relax
+ \@tempcntb=\@tempcnta
+ \advance\@tempcntb by #1\relax
+ \advance\@tempcntb by -3\relax
+ \ifnum\@tempcntb>-6\relax
+ \@@input 2up.tex
+ \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}%
+ \target{\@magstep\@tempcntb}{\paperheight}{\paperwidth}%
+ \printlandscapetrue
+ \else
+ \@seminarerr{Slides magnification is too low for
+ \string\twoup\space to handle}\@eha
+ \fi
+ \def\slidesmag##1{\@semtwoupmagerr\slidesmag}}
+ \fi
+\fi
+
+% 5.
+\def\reset@slideoutput{%
+ \let\par\@@par
+ \reset@font
+ \normalsize
+ \def\baselinestretch{1}%
+ \@nameuse{1\@ptsize @semptsize}%
+ \catcode`\ =10
+ \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii}
+
+% 6.
+\def\extraslideheight#1{%
+ \@tempdima #1\relax
+ \edef\X@SlideHeight{\number\@tempdima sp}
+ \ifslide\set@slideheight\fi}
+\def\set@slideheight{%
+ \iflandscape
+ \vsize=\inverseslidesmag\slideheight
+ \else
+ \vsize=\inverseslidesmag\slidewidth
+ \fi
+ \edef\slide@vsize{\number\vsize sp}%
+ \textheight\vsize
+ \advance\vsize\X@SlideHeight\relax}
+\def\newslide{%
+ \par\penalty-\@M
+ \def\do##1{\setcounter{##1}\z@}\slide@reset
+ \the\before@newslide}
+
+% 7. Must be input after semlayer.sty.
+\def\layer@prep{%
+ \ifarticle\else\pagestyle{\layer@pagestyle}\fi
+ \let\thepage\thelayer
+ \ifx\thelayerframe\@empty\else\let\theslideframe\thelayerframe\fi
+ \let\slidelabel\layerlabel}
+\def\overlay@prep{%
+ \ifarticle\else\pagestyle{\overlay@pagestyle}\fi
+ \let\thepage\theoverlay
+ \ifx\theoverlayframe\@empty\else\let\theslideframe\theoverlayframe\fi
+ \let\slidelabel\overlaylabel}
+
+
+\catcode`\@=\TheAtCode\relax
+\endinput
+%% END seminar.bug
diff --git a/macros/latex/contrib/seminar/latex/seminar.cls b/macros/latex/contrib/seminar/latex/seminar.cls
new file mode 100644
index 0000000000..b2d6bfeec0
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/seminar.cls
@@ -0,0 +1,1218 @@
+%% BEGIN seminar.cls
+%% LaTeX2e seminar class, derived by Sebastian Rahtz from
+%% LaTeX document style `seminar', for use with LaTeX v2.09.
+%% generated on <1993/10/8>.
+%% Fixes from David Carlisle, Denis Girou,
+%% and Frank Küster/Günter Milde (a4paper option fix)
+%%
+\def\fileversion{1.63}
+\def\filedate{2021/06/30}
+%%
+%% This is a style for typesetting notes and slides.
+%%
+%% COPYRIGHT 1993--, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{seminar}[\filedate, \fileversion]
+\typeout{%
+ Documentclass: `seminar' v\fileversion \space <\filedate> (tvz,hv)}
+%%%%%%%%%%%%%%%% fix hv
+\def\tx@BOL{}
+%%%%%%%%%%%%%%%
+\def\test@member#1#2{%
+ \edef\@tempg{,#2,#1,}%
+ \edef\@temph{####1,#1,}%
+ \expandafter\def\expandafter\@temph\@temph##2\@nil{%
+ \def\@tempg{##2}%
+ \ifx\@tempg\@empty\@testfalse\else\@testtrue\fi}%
+ \expandafter\@temph\@tempg\@nil}
+\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
+\@ifundefined{reset@font}{\def\reset@font{\normalsize\rm}}{}
+\def\@seminarerr#1#2{%
+ \edef\@tempc{#2}\expandafter\errhelp\expandafter{\@tempc}%
+ \typeout{^^JSeminar.sty error.\space\space\space
+ Type \space H <return> \space for immediate help.^^J}%
+ \errmessage{#1^^J}}
+\def\notslide@err#1{\message{Cannot use \string#1 in slide environments}}
+\def\new@slidebox{\alloc@4\box\chardef\insc@unt}
+\RequirePackage{pst-ovl}
+%%
+%\RequirePackage{geometry}
+%\geometry{dvips,paperwidth=8.5in,paperheight=11in}
+\newdimen\slidewidth \slidewidth 8.5in
+\newdimen\slideheight \slideheight 6.3in
+\paperwidth=8.5in
+\paperheight=11in
+%%
+\def\addto@preamblecmds#1{%
+ \begingroup
+ \def\do{\noexpand\do\noexpand}%
+ \xdef\@preamblecmds{\@preamblecmds\do#1}%
+ \endgroup}
+\addto@preamblecmds{\addto@preamblecmds\do\@preamblecmds}
+\def\sem@temp#1{\@ifundefined{if#1}%
+ {\def\@tempa{\csname newif\endcsname}
+ \expandafter\@tempa\csname if#1\endcsname}{}}
+\sem@temp{article}{}
+\sem@temp{slidesonly}{}
+\sem@temp{notes}{}
+\sem@temp{notesonly}{}
+\sem@temp{notesonlystar}{}
+\sem@temp{portrait}{}
+\DeclareOption{article}{\articletrue}
+\DeclareOption{noxcomment}{\def\xcomment@hook{}}
+\DeclareOption{slidesonly}{\slidesonlytrue\notesfalse\notesonlyfalse}
+\DeclareOption{notes}{\notestrue\slidesonlyfalse\notesonlyfalse}
+\DeclareOption{notesonly}{\notesonlytrue\slidesonlyfalse\notesfalse}
+\DeclareOption{notesonly*}{%
+ \notesonlytrue\slidesonlyfalse\notesfalse\notesonlystartrue}
+\DeclareOption{portrait}{\portraittrue}
+\DeclareOption{a4}{%
+ \paperwidth 210mm
+ \paperheight 297mm
+% \geometry{paperwidth=210mm,paperheight=297mm}
+ \slidewidth 222mm
+ \slideheight 152mm\relax}
+\DeclareOption{a4paper}{\csname ds@a4\endcsname}%
+\DeclareOption{semrot}{\AtEndOfClass{\input{semrot.sty}}}
+\DeclareOption{semhelv}{\AtEndOfClass{\input{semhelv.sty}}}
+\DeclareOption{semcolor}{\AtEndOfClass{\input{semcolor.sty}}}
+\DeclareOption{semlcmss}{\AtEndOfClass{\input{semlcmss.sty}}}
+\DeclareOption{slidesec}{\AtEndOfClass{\input{slidesec.sty}}}
+\DeclareOption{semlayer}{\AtEndOfClass{\input{semlayer.sty}}}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+\ProcessOptions
+\ifnotesonly\else\notesonlystarfalse\fi
+\newdimen\footheight % seminar.sty v1.0 uses it, but its not in LaTeX2e.
+% Don't want these changed by article.cls:
+\let\sem@paperheight\paperheight
+\let\sem@paperwidth\paperwidth
+\let\paperheight\footheight
+\let\paperwidth\footheight
+\LoadClass{article}
+
+\RequirePackage{pst-ovl}% hv 20131224
+
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@slide@listi}
+\let\paperheight\sem@paperheight
+\let\paperwidth\sem@paperwidth
+\RequirePackage{sem-page}
+\newtoks\before@document
+\newtoks\after@document
+\let\xcomment@hook\relax
+\before@document{\the\before@document}
+%\before@document{\endgroup\the\before@document\begingroup}
+\after@document{\the\after@document\xcomment@hook}
+\expandafter\@temptokena\expandafter{\document}
+\edef\document{\the\before@document\the\@temptokena\the\after@document}
+\before@document{}
+\after@document{}
+\newtoks\before@enddocument
+\before@enddocument{\the\before@enddocument}
+\expandafter\@temptokena\expandafter{\enddocument}
+\edef\enddocument{\the\before@enddocument\the\@temptokena}
+\before@enddocument{}
+\newif\ifprintlandscape
+\ifportrait
+ \ifarticle\printlandscapetrue\fi
+\else
+ \ifarticle\else\printlandscapetrue\fi
+\fi
+\addto@hook\before@document{\ifprintlandscape\printlandscape\fi}
+\addto@preamblecmds{\printlandscape}
+\def\printlandscape{\addto@hook\before@enddocument{%
+ \typeout{^^J%
+ *******************************************************^^J%
+ ***** !! PRINT THIS DOCUMENT IN LANDSCAPE MODE !! *****^^J%
+ *******************************************************}}}
+\def\slide{%
+ \NestedSlide@Error{slide}%
+ \landscapetrue
+ \@ifnextchar[{\begin@slide}{\begin@slide[\slidewidth,\slideheight]}}
+\def\endslide{\end@slide}
+\@namedef{slide*}{%
+ \NestedSlide@Error{slide*}%
+ \landscapefalse
+ \@ifnextchar[{\begin@slide}{\begin@slide[\slidewidth,\slideheight]}}%
+\@namedef{endslide*}{\end@slide}
+\newcounter{slide}
+\def\theslide{\arabic{slide}}
+\newcount\slide@count
+\newbox\@slidebox
+\newbox\not@slidebox
+\newif\ifslide
+\newif\iflandscape
+\def\@landscapeonly{0}
+\def\landscapeonly{\def\@landscapeonly{1}}
+\def\portraitonly{\def\@landscapeonly{-1}}
+\def\NestedSlide@Error#1{%
+ \ifslide
+ \endgroup
+ \@seminarerr{Nested slide environments. Perhaps missing
+ \string\end{\@currenvir}. May be fatal}\@ehd
+ \expandafter\end\expandafter{\@currenvir}%
+ \ifslide\expandafter\end\expandafter{\@currenvir}\fi
+ \begingroup
+ \def\@currenvir{#1}%
+ \fi}
+\def\begin@slide[#1,#2]{%
+ \slide@clearpage
+ \setlength\slidewidth{#1}%
+ \setlength\slideheight{#2}%
+ \begingroup
+ \ifarticle
+ \output{%
+ \advance\count@ 1
+ \global\setbox\not@slidebox\box\@cclv}%
+ \par\@@par\penalty-\@M
+ \fi
+ \output{\slide@output}%
+ \slidetrue
+ \ifarticle\global\slide@count=\z@\fi
+ \refstepcounter{slide}%
+ \ifnotesonlystar\xdef\first@slidemarker{\the\c@slide}\fi
+ \def\do##1{\setcounter{##1}\z@}\slide@reset
+ \ifarticle\else
+ \edef\page@textheight{\number\textheight sp}%
+ \edef\page@textwidth{\number\textwidth sp}%
+ \fi
+ \set@slidesize
+ \slidebox@restore
+ \the\slide@hook
+ \the\before@newslide
+ \everyslide}
+\def\end@slide{%
+ \par\penalty-\@M
+ \xdef\@tempg{\@currenvir}%
+ \endgroup
+ \ifslide
+ \@seminarerr{Perhaps missing `\string\end{\@tempg}',
+ \iffalse{\fi`\string}' or `\string\endgroup'}\@ehd
+ \def\next{\endgroup\ifslide\expandafter\next\fi}%
+ \next
+ \fi
+ \begingroup
+ \output{\setbox\@tempboxa\box\@cclv}%
+ \@@par\penalty-\@M
+ \endgroup
+ \global\advance\c@slide-1
+ \def\do##1{\setcounter{##1}{\@nameuse{saved@c@##1}}}%
+ \slide@reset
+ \ifarticle\outputloop@savedslides\fi
+ \the\after@slide}
+\let\slideclearpagetrue\relax
+\let\slideclearpagefalse\relax
+\ifarticle
+ \def\slide@clearpage{\par\penalty\z@}
+ \ifnotes
+ \def\slideclearpagetrue{\def\slide@clearpage{\clearpage}}
+ \def\slideclearpagefalse{\def\slide@clearpage{\par\penalty\z@}}
+ \else
+ \ifnotesonly
+ \def\slideclearpagetrue{\def\slide@clearpage{\clearpage}}
+ \def\slideclearpagefalse{\def\slide@clearpage{\par\penalty\z@}}
+ \fi
+ \fi
+\else
+ \def\slide@clearpage{\clearpage}
+\fi
+\newtoks\slide@hook
+\def\everyslide{}
+\newtoks\after@slide
+\def\slidebox@restore{%
+ \def\thepage{\theslide}%
+ \def\newpage{\newslide}%
+ \def\clearpage{\newslide}%
+ \def\thispagestyle##1{\notslide@err{\thispagestyle}}%
+ \pagestyle{\slide@pagestyle}%
+ \@twocolumnfalse
+ \def\twocolumn{\notslide@err{\twocolumn}}%
+ \def\onecolumn{\notslide@err{\onecolumn}}%
+ \def\marginpar##1{\notslide@err{\marginpar}}%
+ \def\thanks{\slidethanks}%
+ \def\maketitle{\slidemaketitle}%
+ \fix@floats
+ \fix@whatsits
+ \slide@footnotes
+ \def\do##1{\expandafter\xdef\csname
+ saved@c@##1\endcsname{\the\@nameuse{c@##1}}}%
+ \slide@reset
+ \topskip\z@ \maxdepth\z@
+ \slide@listparameters
+ \slidefonts
+ \def\baselinestretch{\slidestretch}%
+ \def\arraystretch{\slidearraystretch}%
+ \sem@ptsize{\slide@ptsize}}
+\def\date#1{\gdef\@date{#1}\gdef\thedate{#1}}
+\def\author#1{\gdef\@author{#1}\gdef\theauthor{#1}}
+\def\title#1{\gdef\@title{#1}\gdef\thetitle{#1}}
+\date{\today}
+\let\slidethanks\thanks
+\def\thethanks{\@thanks}%
+\def\slidemaketitle{%
+ \par
+ \begin{center}\bf
+ {\large \thetitle}\par\vskip 1ex
+ \begin{tabular}[t]{c} \theauthor \end{tabular}\par\vskip 1ex
+ \thedate
+ \end{center}%
+ \thethanks\par}
+\def\fix@floats{%
+ \def\@xfloat##1[##2]{%
+ \expandafter\let\csname end##1\endcsname\end@float
+ \par\medskip\vbox\bgroup\def\@captype{##1}\parindent\z@
+ \ignorespaces}%
+ \def\end@float{\par\vskip\z@\egroup\medskip}%
+ \def\@dblfloat{\@float}\def\end@dblfloat{\end@float}%
+ \def\endfigure{\end@float}\def\endtable{\end@float}}
+\let\normal@write\write
+\let\normal@read\read
+\let\normal@openout\openout
+\let\normal@closeout\closeout
+% changed as per DPC 1997/09/16
+\def\fix@whatsits{%
+ \long\def \protected@write##1##2##3{%
+ \begingroup
+ ##2%
+ \let\protect\noexpand
+ \immediate\normal@write##1{##3}%
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi}%
+}
+% end change
+\newinsert\slide@footins
+\skip\slide@footins=\bigskipamount
+\count\slide@footins=1000
+\dimen\slide@footins=4in
+\def\theslidefootnote{\alph{footnote}}
+\def\slide@footnotes{%
+ \def\thefootnote{\theslidefootnote}%
+ \let\footins\slide@footins
+ \interfootnotelinepenalty\@M}
+\def\slidefonts{}
+\def\slidestretch{1.18}
+\def\slidearraystretch{1.2}
+\def\raggedslides{\@ifnextchar[{\@raggedslides}{\@raggedslides[1fil]}}
+\def\@raggedslides[#1]{%
+ \edef\slide@@rightskip{#1}%
+ \ifslide\slide@rightskip\fi}
+\def\slide@rightskip{%
+ \@rightskip\z@ plus \slide@@rightskip\relax \rightskip\@rightskip}
+\def\slide@@rightskip{1fil}
+\newcount\slide@listdepth
+\def\slide@listparameters{%
+ \let\@listdepth\slide@listdepth
+ \slide@listdepth\z@
+ \def\@listi{\slide@listi}%
+ \def\@listii{\slide@listii}%
+ \def\@listiii{\slide@listiii}%
+ \let\@listiv\relax\let\@listv\relax\let\@listvi\relax}
+\def\slide@listi{%
+ \leftmargin\leftmargini
+ \labelwidth\leftmargini \advance\labelwidth-\labelsep
+ \parsep\parskip \divide\parsep2
+ \partopsep\slidepartopsep\relax
+ \advance\partopsep-\parskip
+ \ifdim\partopsep<\z@\partopsep\z@\fi
+ \itemsep\slideitemsep\relax
+ \ifdim\parsep<\itemsep
+ \topsep\itemsep \advance\topsep-\parsep
+ \else
+ \itemsep\parsep \topsep\z@
+ \fi}
+\def\slide@listii{%
+ \leftmargin\leftmarginii
+ \labelwidth\leftmarginii \advance\labelwidth-\labelsep
+ \divide\itemsep2 \divide\parsep2
+ \divide\topsep2 \divide\partopsep2\relax}%
+\def\slide@listiii{%
+ \leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii \advance\labelwidth-\labelsep
+ \itemsep \z@ \parsep\z@ \topsep\z@}%
+\def\slideleftmargini{1.8em}
+\def\slideleftmarginii{1.4em}
+\def\slideleftmarginiii{1em}
+\def\slidelabelsep{.5em}
+\def\slideitemsep{.8ex minus .2ex}
+\def\slidepartopsep{1ex minus .2ex}
+\newbox\saved@specials
+\def\save@slidespecials{%
+ \begingroup
+ \output{%
+ \global\setbox\saved@specials=\box\@cclv
+ \global\wd\saved@specials=\z@
+ \global\dp\saved@specials=\z@
+ \global\ht\saved@specials=\z@}%
+ \hbox{}\penalty-\@M
+ \global\let\saved@texttop\@texttop
+ \gdef\@texttop{%
+ \ifvoid\saved@specials\else\box\saved@specials\nointerlineskip\fi
+ \saved@texttop
+ \global\let\@texttop\saved@texttop}%
+ \endgroup}
+\addto@hook\after@document{\save@slidespecials}
+\ifarticle\else
+ \def\insert@specials{%
+ \ifvoid\saved@specials\else
+ \setbox\@slidebox\hbox{\box\saved@specials\box\@slidebox}%
+ \fi
+ \global\let\insert@specials\relax}
+\fi
+\def\extraslideheight#1{%
+ \@tempdima #1\relax
+ \edef\X@SlideHeight{\number\@tempdima sp}
+ \ifslide\set@slidesize\fi}
+\extraslideheight{6pt}
+\def\set@slidesize{%
+ \iflandscape
+ \hsize=\inverseslidesmag\slidewidth
+ \vsize=\inverseslidesmag\slideheight
+ \else
+ \hsize=\inverseslidesmag\slideheight
+ \vsize=\inverseslidesmag\slidewidth
+ \fi
+ \edef\slide@vsize{\number\vsize sp}%
+ \textheight\vsize
+ \advance\vsize\X@SlideHeight\relax
+ \textwidth\hsize\columnwidth\hsize\linewidth\hsize}
+\def\newslide{%
+ \par\penalty-\@M
+ \def\do##1{\setcounter{##1}\z@}\slide@reset
+ \the\before@newslide
+ \set@slidesize}
+\newtoks\before@newslide
+\def\slide@reset{\do{footnote}}
+\def\slidereset#1{\def\slide@reset{}\addtoslidereset{#1}}
+\def\addtoslidereset#1{%
+ \edef\@tempa{#1}\expandafter\addto@slidereset\@tempa,\@nil,}
+\def\addto@slidereset#1,{%
+ \ifx\@nil#1\else
+ \@ifundefined{c@#1}%
+ {\@seminarerr{Counter `#1' not defined}\@ehd}%
+ {\expandafter\def\expandafter\slide@reset\expandafter{%
+ \slide@reset\do{#1}}}%
+ \expandafter\addto@slidereset
+ \fi}
+\def\slide@output{%
+ \@makeslide
+ \@testfalse
+ \ifnotesonly\else
+ \iflandscape
+ \ifnum\@landscapeonly>-1 \os@test\fi
+ \else
+ \ifnum\@landscapeonly<1 \os@test\fi
+ \fi
+ \fi
+ \if@test
+ \reset@slideoutput
+ \@@makeslide
+ \process@slide
+ \fi
+ \refstepcounter{slide}}
+\def\reset@slideoutput{%
+ \let\par\@@par
+ \reset@font
+ \def\baselinestretch{1}%
+ \@nameuse{1\@ptsize @semptsize}%
+ \catcode`\ =10
+ \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii}
+\newif\ifcenterslides
+\centerslidestrue
+\providecommand\@begindvi{} % added 1997/04/15 SPQR, to cope with very
+ % old LaTeXs
+\def\@makeslide{%
+ \setbox\@slidebox\vbox{%
+ \@begindvi % added 1997/04/15 SPQR
+ \unvbox\@cclv
+ \ifvoid\slide@footins\else
+ \vskip\skip\slide@footins
+ \footnoterule
+ \unvbox\slide@footins
+ \fi
+ \vskip\z@}}
+\def\@@makeslide{%
+ \overfullslide@warning
+ \setbox\@slidebox\hbox{%
+ \vfuzz=\slidefuzz\relax
+ \vbox to\slide@vsize{%
+ \ifcenterslides\vskip\z@ plus .0001fil \fi
+ \unvbox\@slidebox
+ \vskip\z@ plus .0001fil}%
+ \the\after@slidepage}%
+ \wd\@slidebox\textwidth}
+\def\overfullslide@warning{%
+ \dimen@\ht\@slidebox
+ \advance\dimen@-\slide@vsize\relax
+ \ifdim\dimen@>\slidefuzz\relax
+ \@warning{Slide \theslide\space overfull by \the\dimen@}%
+ \fi}
+\def\slidefuzz{2pt}
+\newtoks\after@slidepage
+\newif\ifrotateheaders
+\def\sliderotation#1{\@ifundefined{semsr@#1}%
+ {\@latexerr{Slide rotation `#1' not defined.}\@eha}%
+ {\@nameuse{semsr@#1}}}
+\def\semsr@left{%
+ \def\rotate@slide{%
+ \setbox\@slidebox\hbox{\leftsliderotation{\box\@slidebox}}}}
+\def\semsr@right{%
+ \def\rotate@slide{%
+ \setbox\@slidebox\hbox{\rightsliderotation{\box\@slidebox}}}}
+\def\semsr@none{\let\rotate@slide\relax}
+\sliderotation{none}
+\def\leftsliderotation#1{%
+ \@seminarerr{\string\leftsliderotation\space has not been defined}%
+ \@ehd}
+\let\rightsliderotation\leftsliderotation
+\def\@ifrotateslide#1{%
+ \ifx\rotate@slide\relax\else
+ \iflandscape\ifportrait#1\fi\else\ifportrait\else#1\fi\fi
+ \fi}
+\def\process@slide{%
+ \slideframewidth=\inverseslidesmag\slideframewidth
+ \slideframesep=\inverseslidesmag\slideframesep
+ \fboxrule\slideframewidth
+ \fboxsep\slideframesep
+ \ifarticle
+ \@ifrotateslide\rotate@slide
+ \else
+ \ifrotateheaders\else\@ifrotateslide\rotate@slide\fi
+ \fi
+ \process@@slide}
+\def\process@@slide{\finish@slide\output@slide}
+\def\finish@slide{%
+ \theslideframe
+ \add@slidelabel\slidelabel}
+\ifarticle
+ \def\output@slide{%
+ \global\advance\slide@count1
+ \@ifundefined{slidebox@\the\slide@count}%
+ {{\globaldefs=1\expandafter
+ \new@slidebox\csname slidebox@\the\slide@count\endcsname}}{}%
+ \expandafter\global\expandafter\setbox\csname
+ slidebox@\the\slide@count\endcsname\box\@slidebox}
+\else
+ \def\output@slide{%
+ \begingroup
+ \hoffset=-\inverseslidesmag in
+ \voffset=-\inverseslidesmag in
+ \setslidelength\@tempdima{%
+ \ifportrait\paperwidth\else\paperheight\fi}
+ \setslidelength\@tempdimb{%
+ \ifportrait\paperheight\else\paperwidth\fi}
+ \ifrotateheaders
+ \@ifrotateslide{%
+ \dimen@=\@tempdima
+ \@tempdima=\@tempdimb
+ \@tempdimb=\dimen@}
+ \fi
+ % \oddsidemargin, \evensidemargin, \headheight, \footheight
+ % used for scratch:
+ \setslidelength\oddsidemargin\slideleftmargin
+ \setslidelength\evensidemargin\sliderightmargin
+ \setslidelength\headheight\slidetopmargin
+ \setslidelength\footheight\slidebottommargin
+ % Some page styles like to know \textwidth:
+ \textwidth=\@tempdima
+ \advance\textwidth-\oddsidemargin
+ \advance\textwidth-\evensidemargin
+ \setbox\@slidebox=\hbox to \@tempdima{%
+ \kern\oddsidemargin
+ \vbox to\@tempdimb{%
+ \ifnum\fancyput@flag>-1
+ \hbox{\kern-\oddsidemargin\do@fancyput}%
+ \fi
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble
+ \vbox to\headheight{%
+ \vfill
+ \hbox{%
+ \slideheadfont\relax\strut
+ \hbox to\textwidth{\@oddhead}}%
+ \kern\z@}%
+ \vfill
+ \hbox to\textwidth{\hss\box\@slidebox\hss}%
+ \vfill
+ \vbox to\footheight{%
+ \hbox{%
+ \slidefootfont\relax\strut
+ \hbox to\textwidth{\@oddfoot}}%
+ \vfill}}%
+ \hss}%
+ \ifrotateheaders\@ifrotateslide\rotate@slide\fi
+ \insert@specials
+ \shipout\box\@slidebox
+ \endgroup
+ \let\firstmark\botmark}
+ \@ifundefined{fancyput@flag}{\def\fancyput@flag{-1}}{}
+\fi
+\newskip\slidesep
+\slidesep\intextsep
+\ifarticle
+ \def\fps@fslide{htbp}
+ \def\ftype@fslide{32}
+ \def\float@savedslide{%
+ \begingroup\@float{fslide}%
+ \centerline{\box\@slidebox}%
+ \end@float\endgroup}%
+ \@namedef{float*@savedslide}{%
+ \begingroup\@dblfloat{fslide}%
+ \centerline{\box\@slidebox}%
+ \end@dblfloat\endgroup}%
+ \def\center@slide{\hbox{%
+ \kern-\@totalleftmargin
+ \hbox to \columnwidth{\hss\box\@slidebox\hss}}}%
+ \def\onepercol@savedslide{%
+ \vbox to .996\textheight{\vss\center@slide\vss}\goodbreak}%
+ \def\twopercol@savedslide{%
+ \dimen@.5\textheight
+ \advance\dimen@-\slidesep
+ \ifdim\ht\@slidebox>\dimen@
+ \onepercol@savedslide
+ \else
+ \vbox to .498\textheight{\vss\center@slide\vss}\goodbreak
+ \fi}
+ \def\here@savedslide{%
+ \addvspace\slidesep\center@slide\addvspace\slidesep}
+ \@namedef{here*@savedslide}{%
+ \goodbreak \hrule \@height\z@ \nobreak \vskip\slidesep \nobreak
+ \center@slide
+ \nobreak \vskip\slidesep \nobreak \hrule\@height\z@ \goodbreak}
+\fi
+\ifarticle
+ \def\slideplacement#1{\@ifundefined{#1@savedslide}%
+ {\@seminarerr{Slide placement `#1' undefined}\@ehd}%
+ {\expandafter\let\expandafter\output@savedslide
+ \csname #1@savedslide\endcsname}}
+\else
+ \def\slideplacement#1{}
+\fi
+\ifarticle
+ \ifnotes
+ \ifportrait
+ \slideplacement{float}
+ \else
+ \slideplacement{float*}
+ \fi
+ \else
+ \ifportrait
+ \slideplacement{onepercol}
+ \else
+ \slideplacement{twopercol}
+ \fi
+ \fi
+\fi
+\ifarticle
+ \def\outputloop@savedslides{%
+ \global\maxdepth\@maxdepth
+ \ifvoid\not@slidebox\else
+ \dimen@=\dp\not@slidebox
+ \unvbox\not@slidebox
+ \hrule height\z@
+ \prevdepth\dimen@
+ \penalty\z@
+ \fi
+ \edef\slide@@count{\the\slide@count\relax}%
+ \slide@count\z@
+ \loop
+ \ifnum\slide@count<\slide@@count
+ \advance\slide@count1
+ \expandafter\setbox\expandafter\@slidebox\expandafter\box
+ \csname slidebox@\the\slide@count\endcsname
+ \output@savedslide
+ \repeat
+ \ifnotesonlystar\make@slidemarker\fi}
+\fi
+\def\make@slidemarker{%
+ \addvspace\slidesep
+ \moveleft\@totalleftmargin
+ \vbox{%
+ \hsize\columnwidth
+ \hrule height 1pt
+ \kern 8pt
+ \hbox to \columnwidth{%
+ \hss
+ \LARGE\bf\the@slidemarker
+ \hss}%
+ \kern 8pt
+ \hrule height 1pt}%
+ \addvspace\slidesep}
+\def\the@slidemarker{%
+ Slide%
+ \ifnum\c@slide=\first@slidemarker\else
+ s {\c@slide\first@slidemarker\relax\theslide} --\fi
+ { }\theslide}%
+\ifarticle
+ \let\c@note\c@page
+ \def\p@note{\p@page}
+ \def\thenote{\thepage}
+\else
+ \newcounter{note}
+ \def\thenote{\theslide-\arabic{note}}
+ \def\thepage{\thenote}
+ \addto@hook\after@slide{\setcounter{note}{1}}
+ \expandafter\def\expandafter\@outputpage\expandafter{%
+ \@outputpage\stepcounter{note}}
+\fi
+\ifarticle\else
+ \let\c@page\c@slide
+ \countdef\c@slide=0
+ \c@slide=0
+ \c@page=1
+\fi
+\ifarticle
+ \let\truepagenumbers\relax
+\else
+ \def\truepagenumbers{%
+ \let\c@slide\c@page
+ \countdef\c@page=0
+ \c@page=1
+ \c@slide=0
+ \let\truepagenumbers\relax}
+\fi
+\addto@preamblecmds{\truepagenumbers}
+\newdimen\slideframewidth \slideframewidth 4pt
+\newdimen\slideframesep \slideframesep .3in
+\def\newslideframe#1{%
+ \@ifnextchar[{\@newslideframe{#1}}{\@newslideframe{#1}[]}}
+\def\@newslideframe#1[#2]{%
+ \@namedef{semsfops@#1}{#2}%
+ \@namedef{semsf@#1}##1}
+\newslideframe{plain}{\fbox{#1}}
+\def\slideframe{\@slideframe{slide}}
+\def\@slideframe#1{%
+ \@ifstar{\@testtrue\@@slideframe{#1}}{\@testfalse\@@slideframe{#1}}}
+\def\@@slideframe#1{%
+ \@ifnextchar[{\@@@slideframe{#1}}{\@@@slideframe{#1}[]}}
+\def\@@@slideframe#1[#2]#3{%
+ \def\@tempa{none}%
+ \def\@tempb{#3}%
+ \ifx\@tempa\@tempb
+ \@namedef{the#1frame}{\relax}%
+ \else
+ \ifx\@tempb\@empty
+ \@namedef{the#1frame}{}%
+ \else
+ \@ifundefined{semsf@#3}%
+ {\@seminarerr{Slide frame `#3' undefined}\@eha}%
+ {\if@test
+ \@@@@slideframe{#1}[#2]{#3}%
+ \else
+ \@namedef{the#1frame}{\setbox\@slidebox=\hbox{{%
+ \@nameuse{semsfops@#3}#2\@nameuse{semsf@#3}{\box\@slidebox}}}}%
+ \fi}%
+ \fi
+ \fi}
+\def\@@@@slideframe#1[#2]#3{%
+ \expandafter\let\expandafter\@tempa\csname the#1frame\endcsname
+ \edef\next{%
+ \noexpand\def\expandafter\noexpand\csname the#1frame\endcsname}%
+ \expandafter\next\expandafter{\@tempa
+ \setbox\@slidebox=\hbox{{%
+ \@nameuse{semsfops@#3}%
+ #2%
+ \@nameuse{semsf@#3}{\box\@slidebox}}}}}%
+\slideframe{plain}
+\def\slidestyle#1{\@ifundefined{ss@#1}%
+ {\@seminarerr{Slide style `#1' undefined}\@eha}%
+ {\@nameuse{ss@#1}}}
+\def\ss@empty{\let\add@slidelabel\@gobble}
+\def\ss@left{\def\add@slidelabel##1{%
+ \setbox\@slidebox=\hbox{%
+ \vbox to \ht\@slidebox{\vss
+ \hbox to 0pt{\hss##1\hskip 15pt}%
+ \vss}\box\@slidebox}}}
+\def\ss@bottom{\def\add@slidelabel##1{%
+ \setbox\@slidebox=\vbox{\copy\@slidebox\vskip 9pt
+ \hbox to\wd\@slidebox{\hss##1\hss}}}}%
+\ifarticle
+ \ifportrait\slidestyle{bottom}\else\slidestyle{left}\fi
+\else
+ \slidestyle{empty}
+\fi
+\def\slidelabel{\bf Slide \theslide}
+\def\newpagestyle#1#2#3{%
+ \expandafter\newcommand\csname ps@#1\endcsname{%
+ \def\@oddhead{#2}\let\@evenhead\@oddhead
+ \def\@oddfoot{#3}\let\@evenfoot\@oddfoot}}
+\def\renewpagestyle#1#2#3{%
+ \expandafter\renewcommand\csname ps@#1\endcsname{%
+ \def\@oddhead{#2}\let\@evenhead\@oddhead
+ \def\@oddfoot{#3}\let\@evenfoot\@oddfoot}}
+\def\@ifgoodps#1{%
+ \@ifundefined{ps@#1}{\@seminarerr{Page style `#1' undefined}\@eha}}
+\def\slidepagestyle#1{%
+ \@ifgoodps{#1}%
+ {\ifslide\pagestyle{#1}\else\edef\slide@pagestyle{#1}\fi}}
+\def\ps@{}
+\slidepagestyle{}
+\ifarticle
+ \def\ps@align{}
+\else
+ \def\ps@align{%
+ \def\@oddhead{\thepage\hfil+}\let\@evenhead\@oddhead
+ \def\@oddfoot{+\hfil+}\let\@evenfoot\@oddfoot}
+\fi
+\def\slideheadfont{\scriptsize}
+\def\slidefootfont{\scriptsize}
+\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or
+ 2074\or 2488\or 2986\or 3583\or 4300\or 5160\fi\relax}
+\def\magstepminus#1{%
+ \ifcase#1 \@m\or 833\or 694\or 579\or 482\or 401\fi\relax}
+\def\@magstep#1{%
+ \ifnum#1<\z@\magstepminus{-#1}\else\magstep#1\fi}
+{\catcode`\p=12\catcode`\t=12
+ \gdef\@@inv@@mag#1pt#2{\def#2{#1}}}
+\def\invert@mag#1{\@tempdima=1000pt
+ \divide\@tempdima by #1\relax
+ \expandafter\@@inv@@mag\the\@tempdima#1}
+\def\@slidesmag#1{%
+ \@tempcnta=#1\relax%
+ \ifnum\@tempcnta>0
+ \edef\inverseslidesmag{\the\@tempcnta}%
+ \invert@mag\inverseslidesmag
+ \ifarticle\else\mag\@tempcnta\fi
+ \else
+ \@seminarerr{\string\@slidesmag\space argument must be an
+ integer equal to 1000 times the magnification}\@eha
+ \fi}
+\def\@articlemag#1{%
+ \@tempcnta=#1\relax%
+ \ifnum\@tempcnta>0
+ \edef\inverseartmag{\the\@tempcnta}%
+ \invert@mag\inverseartmag
+ \ifarticle\mag\@tempcnta\fi
+ \else
+ \@seminarerr{\string\articlemag\space argument must be an
+ integer equal to 1000 times the magnification}\@eha
+ \fi}
+\addto@preamblecmds{\@slidesmag\do\@articlemag}
+\newdimen\semin
+\newdimen\semcm
+\def\@semmagerr#1{%
+ \@seminarerr{\string#1 argument must be an integer
+ between -5 and 9}\@eha}
+\def\slidesmag#1{%
+ \@tempcnta=#1\relax
+ \ifnum\@tempcnta>-6
+ \ifnum\@tempcnta<10
+ \edef\the@slidesmag{\the\@tempcnta}%
+ \@slidesmag{\@magstep\@tempcnta}%
+ \else
+ \@semmagerr\slidesmag
+ \fi
+ \else
+ \@semmagerr\slidesmag
+ \fi
+ \setslidelength\semin\seminlength
+ \setslidelength\semcm\semcmlength}
+\def\seminlength{1in}
+\def\semcmlength{1cm}
+\def\articlemag#1{%
+ \@tempcnta=#1\relax
+ \ifnum\@tempcnta>-6
+ \ifnum\@tempcnta<10
+ \edef\the@articlemag{\the\@tempcnta}%
+ \@articlemag{\@magstep\@tempcnta}%
+ \else
+ \@semmagerr\articlemag
+ \fi
+ \else
+ \@semmagerr\articlemag
+ \fi}
+\addto@preamblecmds{\slidesmag\do\articlemag}
+\def\setslidelength#1#2{%
+ #1=#2\relax
+ #1=\inverseslidesmag#1}%
+\def\addtoslidelength#1#2{%
+ \dimen@=#2\relax
+ \advance#1 by \inverseslidesmag\dimen@}
+\def\setartlength#1#2{%
+ #1=#2\relax
+ #1=\inverseartmag#1}
+\def\addtoartlength#1#2{%
+ \dimen@=#2\relax
+ \advance#1 by \inverseartmag\dimen@}
+\def\slide@epsfsize#1#2{%
+ \ifdim\epsfxsize=0pt
+ \ifdim\epsfysize=0pt
+ \inverseslidesmag#1%
+ \else
+ 0pt
+ \fi
+ \else
+ \inverseslidesmag\epsfxsize
+ \fi
+ \epsfysize
+ \ifdim\epsfysize=0pt
+ \ifdim\epsfxsize=0pt
+ \inverseslidesmag#2%
+ \else
+ 0pt
+ \fi
+ \else
+ \inverseslidesmag\epsfysize
+ \fi}
+\def\epsfslidesize{\let\epsfsize\slide@epsfsize}
+\slidesmag{4}
+\articlemag{0}
+\def\do@pageparameters{%
+ \do\oddsidemargin
+ \do\evensidemargin
+ \do\marginparwidth
+ \do\marginparsep
+ \do\topmargin
+ \do\headheight
+ \do\headsep
+ \do\textheight
+ \do\textwidth
+ \do\topskip
+ \do\footskip
+ \do\footheight}
+\ifarticle
+ \def\scale@pageparameters{%
+ \begingroup
+ \def\do##1{\global##1=\inverseartmag##1\relax}%
+ \do@pageparameters
+ \endgroup}
+\else
+ \def\scale@pageparameters{%
+ \begingroup
+ \def\do##1{\global##1=\inverseslidesmag##1\relax}%
+ \do@pageparameters
+ \endgroup}
+\fi
+\addto@hook\before@document{\scale@pageparameters}
+\addto@preamblecmds{\scale@pageparameters\do\do@pageparameters}
+\def\allversions{}
+\let\endallversions\relax
+\@namedef{allversions*}{\@bsphack\globaldefs=1}
+\@namedef{endallversions*}{\@esphack}
+\def\slide@list{slide,slide*,allversions,allversions*}
+\def\addtoslidelist#1{\xdef\slide@list{\slide@list,#1}}
+\addto@preamblecmds{\addtoslidelist}
+\ifslidesonly
+ \@ifundefined{xcomment@@@}{\@@input xcomment.sty }{}
+ \def\xcomment@hook{\@xcomment{@@@}{\slide@list}}
+ \newxcomment[]{note}
+\else
+ \def\note{\@bsphack}%
+ \def\endnote{\@esphack}%
+\fi
+\def\noxcomment{\def\xcomment@hook{}}
+\def\os@list{}
+\newif\if@os
+\def\onlyslides#1{\def\os@list{#1}\@ostrue
+ \def\os@warning{\@warning{\string\onlyslides\space argument
+ contains undefined references}}}
+\def\notslides#1{\def\os@list{#1}\@osfalse
+ \def\os@warning{\@warning{\string\notslides\space argument
+ contains undefined references}}}
+\addto@preamblecmds{\onlyslides\do\notslides}
+\addto@hook\after@document{%
+ \ifx\os@list\@empty\else\os@expandlist\fi}
+\def\os@expandlist{%
+ \let\os@@warning\relax
+ \begingroup
+ \def\ref##1{\@ifundefined{r@##1}{?}%
+ {\noexpand\@car\@nameuse{r@##1}\noexpand\@nil}}%
+ \edef\@tempd{\os@list}%
+ \xdef\os@list{}%
+ \@for\@tempc:=\@tempd
+ \do{\expandafter\os@expandrange\@tempc-:-:\@nil}%
+ \os@@warning
+ \endgroup
+ \let\os@expandrange\relax
+ \let\os@checknum\relax
+ \let\os@expandlist\relax}
+\def\os@expandrange#1-#2-#3\@nil{%
+ \def\@tempa{?}\def\@tempb{#1}%
+ \ifx\@tempa\@tempb
+ \let\os@@warning\os@warning
+ \else
+ \@tempcnta=#1\relax
+ \def\@tempb{#2}%
+ \ifx\@tempa\@tempb
+ \let\os@@warning\os@warning
+ \else
+ \def\@tempa{:}%
+ \ifx\@tempa\@tempb
+ \@tempcntb=\@tempcnta
+ \else
+ \@tempcntb=#2\relax
+ \fi
+ \advance\@tempcnta by -1
+ \advance\@tempcntb by 1
+ \ifx\os@list\@empty
+ \xdef\os@list{\the\@tempcnta+\the\@tempcntb}%
+ \else
+ \xdef\os@list{\os@list,\the\@tempcnta+\the\@tempcntb}%
+ \fi
+ \fi
+ \fi}
+\def\os@test{%
+ \@testtrue
+ \iflandscape
+ \ifnum\@landscapeonly=-1 \@testfalse\fi
+ \else
+ \ifnum\@landscapeonly=1 \@testfalse\fi
+ \fi
+ \if@test
+ \ifx\os@list\@empty\else
+ \if@os\@testfalse\fi
+ \@for\@tempa:=\os@list\do{\expandafter\os@testrange\@tempa\@nil}%
+ \fi
+ \fi}
+\def\os@testrange#1+#2\@nil{%
+ \ifnum\c@slide>#1
+ \ifnum\c@slide<#2
+ \if@os\@testtrue\else\@testfalse\fi
+ \fi
+ \fi}
+\def\onlynotestoo{%
+ \ifnotes\@testtrue\else\ifnotesonly\@testtrue\else\@testfalse\fi\fi
+ \if@test
+ \@ifundefined{xcomment@@@}{%
+ \edef\sem@temp{\the\catcode`\@}%
+ \catcode`\@=11
+ \@@input xcomment.sty
+ \catcode`\@=\sem@temp\relax}{}%
+ \def\xcomment@hook{\@xcomment{@@@}{\slide@list}}%
+ \addto@hook\after@slide\onlynotes@too
+ \fi}
+\def\onlynotes@too{%
+ \os@test
+ \if@test\gdef\do@end{}\else\gdef\do@end{\xc@begin}\fi}
+\addto@preamblecmds\onlynotestoo
+\def\ptsize#1{%
+ \@ifundefined{#1@semptsize}%
+ {\@seminarerr{\string\ptsize\space `#1' not valid.}\@eha}%
+ {\ifslide
+ \sem@ptsize{#1}\large\normalsize
+ \else
+ \edef\slide@ptsize{#1}%
+ \fi}}
+\edef\slide@ptsize{1\@ptsize}%
+\def\slidefontsizes{\ptsize} %For backwards compatibility??
+\def\slide@setsize#1#2#3#4{%
+ \@setsize{#1}{#2}{#3}{#4}%
+ \set@slideskip{#2}}
+\def\slide@@setsize#1#2#3#4{%
+ \slide@setsize{#1}{#2}{#3}{#4}\slidedisplayskips}
+\def\set@slideskip#1{%
+ \normallineskiplimit=#1
+ \advance\normallineskiplimit-\normalbaselineskip
+ \multiply\normallineskiplimit-1
+ \normallineskiplimit\slideskip\normallineskiplimit
+ \ifdim\normallineskiplimit<1pt\normallineskiplimit=1pt\fi
+ \normallineskip=\normallineskiplimit
+ minus \slideshrink\normallineskiplimit
+ \dimen@=\normalbaselineskip
+ \normalbaselineskip=\dimen@ minus \slideshrink\normallineskiplimit
+ \normalbaselines}
+\def\slideskip{.75}
+\def\slideshrink{.25}
+\def\slidedisplayskips{%
+ \abovedisplayskip 1.75ex minus .35ex
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip .2ex minus .2ex
+ \belowdisplayshortskip 1ex minus .2ex}
+\def\sem@ptsize#1{%
+ \@nameuse{#1@semptsize}%
+ \large\normalsize
+ \leftmargini\slideleftmargini\relax
+ \leftmarginii\slideleftmarginii\relax
+ \leftmarginiii\slideleftmarginiii\relax
+ \labelsep\slidelabelsep\relax
+ \parskip\slideparskip\relax
+ \parindent\slideparindent\relax
+ \slide@rightskip
+ \slide@listi
+ \skip\footins\slidefootins\relax
+ \footnotesep\slidefootnotesep\relax}
+\def\slidefootins{2ex minus .8ex}
+\def\slidefootnotesep{1.2ex}
+\def\slideparindent{\z@}
+\def\slideparskip{1ex minus .2ex}
+\@namedef{8@semptsize}{%
+ \def\normalsize{\slide@@setsize\normalsize{9.5pt}\viiipt\@viiipt}%
+ \def\small{\slide@@setsize\small{8pt}\viipt\@viipt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{8pt}\vipt\@vipt}%
+ \def\scriptsize{\slide@setsize\scriptsize{7pt}\vipt\@vipt}%
+ \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
+ \def\large{\slide@setsize\large{12pt}\xpt\@xpt}%
+ \def\Large{\slide@setsize\Large{14pt}\xiipt\@xiipt}%
+ \def\LARGE{\slide@setsize\LARGE{17pt}\xivpt\@xivpt}%
+ \def\huge{\slide@setsize\huge{20pt}\xviipt\@xviipt}%
+ \def\Huge{\slide@setsize\Huge{25pt}\xxpt\@xxpt}}
+\@namedef{9@semptsize}{%
+ \def\normalsize{\slide@@setsize\normalsize{11pt}\ixpt\@ixpt}%
+ \def\small{\slide@@setsize\small{9.5pt}\viiipt\@viiipt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{8pt}\viipt\@viipt}%
+ \def\scriptsize{\slide@setsize\scriptsize{7pt}\vipt\@vipt}%
+ \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
+ \def\large{\slide@setsize\large{12pt}\xpt\@xpt}%
+ \def\Large{\slide@setsize\Large{14pt}\xiipt\@xiipt}%
+ \def\LARGE{\slide@setsize\LARGE{17pt}\xivpt\@xivpt}%
+ \def\huge{\slide@setsize\huge{20pt}\xviipt\@xviipt}%
+ \def\Huge{\slide@setsize\Huge{25pt}\xxpt\@xxpt}}
+\@namedef{10@semptsize}{%
+ \def\normalsize{\slide@@setsize\normalsize{12pt}\xpt\@xpt}%
+ \def\small{\slide@@setsize\small{11pt}\ixpt\@ixpt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{9.5pt}\viiipt\@viiipt}%
+ \def\scriptsize{\slide@setsize\scriptsize{8pt}\viipt\@viipt}%
+ \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
+ \def\large{\slide@setsize\large{14pt}\xiipt\@xiipt}%
+ \def\Large{\slide@setsize\Large{18pt}\xivpt\@xivpt}%
+ \def\LARGE{\slide@setsize\LARGE{22pt}\xviipt\@xviipt}%
+ \def\huge{\slide@setsize\huge{25pt}\xxpt\@xxpt}%
+ \def\Huge{\slide@setsize\Huge{30pt}\xxvpt\@xxvpt}}
+\@namedef{11@semptsize}{%
+ \def\normalsize{\slide@@setsize\normalsize{13.6pt}\xipt\@xipt}%
+ \def\small{\slide@@setsize\small{12pt}\xpt\@xpt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{11pt}\ixpt\@ixpt}%
+ \def\scriptsize{\slide@setsize\scriptsize{9.5pt}\viiipt\@viiipt}%
+ \def\tiny{\slide@setsize\tiny{7pt}\vipt\@vipt}%
+ \def\large{\slide@setsize\large{14pt}\xiipt\@xiipt}%
+ \def\Large{\slide@setsize\Large{18pt}\xivpt\@xivpt}%
+ \def\LARGE{\slide@setsize\LARGE{22pt}\xviipt\@xviipt}%
+ \def\huge{\slide@setsize\huge{25pt}\xxpt\@xxpt}%
+ \def\Huge{\slide@setsize\Huge{30pt}\xxvpt\@xxvpt}}
+\@namedef{12@semptsize}{%
+ \def\normalsize{\slide@@setsize\normalsize{14.5pt}\xiipt\@xiipt}%
+ \def\small{\slide@@setsize\small{13.6pt}\xipt\@xipt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{12pt}\xpt\@xpt}%
+ \def\scriptsize{\slide@setsize\scriptsize{9.5pt}\viiipt\@viiipt}%
+ \def\tiny{\slide@setsize\tiny{7pt}\vipt\@vipt}%
+ \def\large{\slide@setsize\large{18pt}\xivpt\@xivpt}%
+ \def\Large{\slide@setsize\Large{22pt}\xviipt\@xviipt}%
+ \def\LARGE{\slide@setsize\LARGE{25pt}\xxpt\@xxpt}%
+ \def\huge{\slide@setsize\huge{30pt}\xxvpt\@xxvpt}%
+ \let\Huge\huge}
+\@namedef{14@semptsize}{%
+ \def\normalsize{\slide@@setsize\normalsize{18pt}\xivpt\@xivpt}%
+ \def\small{\slide@@setsize\small{14.5pt}\xiipt\@xiipt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{13.6pt}\xipt\@xipt}%
+ \def\scriptsize{\slide@setsize\scriptsize{12pt}\xpt\@xpt}%
+ \def\tiny{\slide@setsize\tiny{9.5pt}\viiipt\@viiipt}%
+ \def\large{\slide@setsize\large{22pt}\xviipt\@xviipt}%
+ \def\Large{\slide@setsize\Large{25pt}\xxpt\@xxpt}%
+ \def\LARGE{\slide@setsize\LARGE{30pt}\xxvpt\@xxvpt}%
+ \let\huge\LARGE
+ \let\Huge\LARGE}
+\@namedef{17@semptsize}{%
+ \def\normalsize{\slide@@setsize\normalsize{22pt}\xviipt\@xviipt}%
+ \def\small{\slide@@setsize\small{18pt}\xivpt\@xivpt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{14.5pt}\xiipt\@xiipt}%
+ \def\scriptsize{\slide@setsize\scriptsize{13.6pt}\xipt\@xipt}%
+ \def\tiny{\slide@setsize\tiny{12pt}\xpt\@xpt}%
+ \def\large{\slide@setsize\large{25pt}\xxpt\@xxpt}%
+ \def\Large{\slide@setsize\Large{30pt}\xxvpt\@xxvpt}%
+ \let\LARGE\Large
+ \let\huge\Large
+ \let\Huge\Large}
+\def\twoup{\@ifnextchar[{\@twoup}{\@twoup[0]}}
+\ifarticle
+ \ifportrait
+ \def\@twoup[#1]{%
+ \@tempcnta=\the@articlemag\relax
+ \@tempcntb=\@tempcnta
+ \advance\@tempcntb by #1\relax
+ \advance\@tempcntb by -2\relax
+ \ifnum\@tempcntb>-6\relax
+ \@@input 2up.tex
+ \source{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
+ \target{\@magstep\@tempcntb}{\paperwidth}{\paperheight}%
+ \targetlayout{topbottom}%
+ \printlandscapefalse
+ \else
+ \@seminarerr{Article magnification is too low for
+ \string\twoup\space to handle}\@eha
+ \fi
+ \def\articlemag##1{\@semtwoupmagerr\articlemag}}
+ \else
+ \def\@twoup[#1]{%
+ \@tempcnta=\the@articlemag\relax
+ \@tempcntb=\@tempcnta
+ \advance\@tempcntb by #1\relax
+ \advance\@tempcntb by -2\relax
+ \ifnum\@tempcntb>-6\relax
+ \@@input 2up.tex
+ \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}%
+ \target{\@magstep\@tempcntb}{\paperheight}{\paperwidth}%
+ \if@twoside
+ \targetlayout{twosided}%
+ \fi
+ \printlandscapetrue
+ \else
+ \@seminarerr{Article magnification is too low for
+ \string\twoup\space to handle}\@eha
+ \fi
+ \def\articlemag##1{\@semtwoupmagerr\articlemag}}
+ \fi
+\else
+ \ifportrait
+ \def\@twoup[#1]{%
+ \@tempcnta=\the@slidesmag\relax
+ \@tempcntb=\@tempcnta
+ \advance\@tempcntb by #1\relax
+ \advance\@tempcntb by -3\relax
+ \ifnum\@tempcntb>-6\relax
+ \@@input 2up.tex
+ \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}%
+ \advance\@tempcnta by -3
+ \target{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
+ \printlandscapetrue
+ \else
+ \@seminarerr{Slides magnification is too low for
+ \string\twoup\space to handle}\@eha
+ \fi
+ \def\slidesmag##1{\@semtwoupmagerr\slidesmag}}
+ \else
+ \def\@twoup[#1]{%
+ \@tempcnta=\the@slidesmag\relax
+ \@tempcntb=\@tempcnta
+ \advance\@tempcntb by #1\relax
+ \advance\@tempcntb by -3\relax
+ \ifnum\@tempcntb>-6\relax
+ \@@input 2up.tex
+ \source{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
+ \target{\@magstep\@tempcntb}{\paperwidth}{\paperheight}%
+ \targetlayout{topbottom}%
+ \printlandscapefalse
+ \else
+ \@seminarerr{Slides magnification is too low for
+ \string\twoup\space to handle}\@eha
+ \fi
+ \def\slidesmag##1{\@semtwoupmargerr\slidesmag}}%
+ \fi
+\fi
+\def\@semtwoupmagerr#1{%
+ \@seminarerr{\string#1 must come before \string\twoup}\@eha}
+\addto@preamblecmds{\twoup\do\@twoup}
+%
+\InputIfFileExists{seminar.con}{}
+%\ifeof1\else\closein1 \relax\@@input seminar.con\fi
+%
+\endinput
+%%
+%% END `seminar.cls'.
+
diff --git a/macros/latex/contrib/seminar/latex/seminar.con b/macros/latex/contrib/seminar/latex/seminar.con
new file mode 100644
index 0000000000..6731d2b728
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/seminar.con
@@ -0,0 +1,1126 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% seminar.con --- Customization of the Seminar document class.
+%% We take care to do this for easy adaptations in other
+%% institutions and contexts.
+%%
+%% Author : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr>
+%% Created the : 1993
+%% Last mod. by : hv
+%% Last mod. the : 2021-06-24 <hvoss@tug.org>
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\fileversion{3.4}
+\def\filedate{2021/06/24}
+%
+\typeout{seminar.con file: example of customization of the Seminar
+ document class^^J%
+ (Version \fileversion\space of <\filedate> (DG,hv))}
+\ProvidesFile{seminar.con}[\filedate\space v\fileversion\space `seminar.con' (dg,hv)]
+
+% Packages used
+% -------------
+
+% General packages (all are on CTAN)
+\PassOptionsToPackage{pdffitwindow,colorlinks,pdfpagemode=UseNone,bookmarks,setpagesize=false}{hyperref}
+\PassOptionsToPackage{dvipsnames,svgnames}{xcolor}
+\usepackage{calc} % Simple computations with LaTeX variables
+\usepackage[hang]{caption} % Improved captions
+\usepackage{fancybox} % To have several backgrounds
+ % (must be loaded before `fancyvrb')
+\usepackage{fancyhdr} % Headers and footers definitions
+\usepackage{fancyvrb} % Fancy verbatim environments
+%\usepackage{pstricks} % PSTricks with the standard color package
+% % (before `graphicx' for the \scalebox macro)
+\usepackage{graphicx} % Standard graphics package
+\usepackage{multido} % General loop macro
+\usepackage{pifont} % Ding symbols (mainly for lists)
+\usepackage{pst-node} % PSTricks nodes
+\usepackage{semcolor} % Seminar colored slides
+\usepackage{semhelv} % Seminar helvetica fonts
+\usepackage{semlayer} % Seminar overlays
+\usepackage{slidesec} % Seminar sections and list of slides
+\usepackage{pst-grad} % PSTricks gradient mode
+\usepackage{pst-fr3d} % PSTricks 3D framed boxes
+\usepackage{pst-slpe} % Improved PSTricks gradients
+\usepackage{thumbpdf} % Thumbnails for PDF versions
+\usepackage[breakwords]{truncate}% To truncate a string at a specified length
+\usepackage{url} % Convenient URL typesetting
+
+
+\edef\SeminarAtCode{\the\catcode`\@}
+\catcode`\@=11\relax
+
+%\ifx\VTeXversion\@undefined
+ \input{seminar.bug} % Official bugs corrections
+ \input{seminar.bg2} % Unofficial bugs corrections
+ % (warning: you must load `longtable' before
+ % if you use it)
+\input{seminar.bg2}
+%\else
+% \input{/usr/local/vtex/texmf/vtex/config/seminar.con}% Adjust this path%%%%%%%%%%%%%%%%%%%
+ % As VTeX does not support the HSB color model, we make it identical
+ % to the RGB one. This will obviously produce strange color results,
+ % but this will allow to compile the sources using here our
+ % \PstFrameBoxThreeD macro.
+% \def\color@hsb#1#2{\c@lor@@hsb#2\@@#1}
+% \def\c@lor@@hsb#1,#2,#3\@@#4{%
+ % From the VTeX \c@lor@@rgb definition
+% \vtexdef@checkarg{#1}{1}{rgb}%
+% \vtexdef@fixedhex{#1}\vtexdef@hex@a
+% \vtexdef@checkarg{#2}{1}{rgb}%
+% \vtexdef@fixedhex{#2}\vtexdef@hex@b
+% \vtexdef@checkarg{#3}{1}{rgb}%
+% \vtexdef@fixedhex{#3}\vtexdef@hex@c
+% \edef#4{c"\vtexdef@hex@a\vtexdef@hex@b\vtexdef@hex@c}}%
+%\fi
+
+% Compatibility patch between `pst-key' and the \RequirePackage macro
+% to avoid later a LaTeX warning about the version of `keyval'
+% From pst-key.tex
+\def\next[#1]{\catcode`\@=11
+% D.G. modification begin - Apr. 25, 2002
+% \expandafter\let\csname ver@keyval.sty\endcsname\empty
+ \expandafter\xdef\csname ver@keyval.sty\endcsname{#1}%
+% D.G. modification end
+ \wlog{keyval: #1}}\next
+ [1998/07/23 v1.11 key=value parser (DPC)]
+
+%%%%%%%%%% begin hv 2021-6-24 %%%%%%%%%%%%%%
+
+\providecommand\theHslide{\arabic{slide}}
+\usepackage{hyperref} % Hyperlinks for PDF versions
+ % (to load after `slidesec', seminar.bg2, etc.)
+\@ifpackageloaded{slidesec}{%
+ \providecommand\theHslidesection {\arabic{slidesection}}%
+ \providecommand\theHslidesubsection{%
+ \theHslidesection.\arabic{slidesubsection}%
+ }%
+ \def\slide@heading[#1]#2{%
+ \H@refstepcounter{slidesection}%
+ \@addtoreset{slidesubsection}{slidesection}%
+ \addtocontents{los}{%
+ \protect\l@slide{\the\c@slidesection}{\ignorespaces#1}%
+ {\@SCTR}{slideheading.\theslidesection}%
+ }%
+ \def\Hy@tempa{#2}%
+ \ifx\Hy@tempa\@empty
+ \else
+ {%
+ \edef\@currentlabel{%
+ \csname p@slidesection\endcsname\theslidesection
+ }%
+ \makeslideheading{#2}%
+ }%
+ \fi
+ \gdef\theslideheading{#1}%
+ \gdef\theslidesubheading{}%
+ \ifHy@bookmarksnumbered
+ \def\Hy@slidetitle{\theslidesection\space #1}%
+ \else
+ \def\Hy@slidetitle{#1}%
+ \fi
+ \ifHy@hypertexnames
+ \ifHy@naturalnames
+ \hyper@@anchor{slideheading.\theslidesection}{\relax}%
+ \Hy@writebookmark
+ {\theslidesection}%
+ {\Hy@slidetitle}%
+ {slideheading.\theslidesection}%
+ {1}%
+ {toc}%
+ \else
+ \hyper@@anchor{slideheading.\theHslidesection}{\relax}%
+ \Hy@writebookmark
+ {\theslidesection}%
+ {\Hy@slidetitle}%
+ {slideheading.\theHslidesection}%
+ {1}%
+ {toc}%
+ \fi
+ \else
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \hyper@@anchor{slideheading.\the\Hy@linkcounter}{\relax}%
+ \Hy@writebookmark
+ {\theslidesection}%
+ {\Hy@slidetitle}%
+ {slideheading.\the\Hy@linkcounter}%
+ {1}%
+ {toc}%
+ \fi
+ }%
+ \def\slide@subheading[#1]#2{%
+ \H@refstepcounter{slidesubsection}%
+ \addtocontents{los}{%
+ \protect\l@subslide{\the\c@slidesubsection}{\ignorespaces#1}%
+ {\@SCTR}{slideheading.\theslidesubsection}%
+ }%
+ \def\Hy@tempa{#2}%
+ \ifx\Hy@tempa\@empty
+ \else
+ {%
+ \edef\@currentlabel{%
+ \csname p@slidesubsection\endcsname\theslidesubsection
+ }%
+ \makeslidesubheading{#2}%
+ }%
+ \fi
+ \gdef\theslidesubheading{#1}%
+ \ifHy@bookmarksnumbered
+ \def\Hy@slidetitle{\theslidesubsection\space #1}%
+ \else
+ \def\Hy@slidetitle{#1}%
+ \fi
+ \ifHy@hypertexnames
+ \ifHy@naturalnames
+ \hyper@@anchor{slideheading.\theslidesubsection}{\relax}%
+ \Hy@writebookmark
+ {\theslidesubsection}%
+ {\Hy@slidetitle}%
+ {slideheading.\theslidesubsection}%
+ {2}%
+ {toc}%
+ \else
+ \hyper@@anchor{slideheading.\theHslidesubsection}{\relax}%
+ \Hy@writebookmark
+ {\theslidesubsection}%
+ {\Hy@slidetitle}%
+ {slideheading.\theHslidesubsection}%
+ {2}%
+ {toc}%
+ \fi
+ \else
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \hyper@@anchor{slideheading.\the\Hy@linkcounter}{\relax}%
+ \Hy@writebookmark
+ {\theslidesubsection}%
+ {\Hy@slidetitle}%
+ {slideheading.\the\Hy@linkcounter}%
+ {1}%
+ {toc}%
+ \fi
+ }%
+ \providecommand*{\listslidename}{List of Slides}%
+ \def\listofslides{%
+ \section*{%
+ \listslidename
+ \@mkboth{%
+ \expandafter\MakeUppercase\listslidename
+ }{%
+ \expandafter\MakeUppercase\listslidename
+ }%
+ }%
+ \def\l@slide##1##2##3##4{%
+ \slide@undottedcline{%
+ \slidenumberline{##3}{\hyperlink{##4}{##2}}%
+ }{}%
+ }%
+ \let\l@subslide\l@slide
+ \@startlos
+ }%
+ \def\slide@contents{%
+ \def\l@slide##1##2##3##4{%
+ \slide@cline{\slidenumberline{##3}{\hyperlink{##4}{##2}}}{##3}%
+ }%
+ \let\l@subslide\@gobblefour
+ \@startlos
+ }%
+ \def\Slide@contents{%
+ \def\l@slide##1##2##3##4{%
+ \ifcase\lslide@flag
+ \message{##1 ** \the\c@slidesection}%
+ \ifnum##1>\c@slidesection
+ \def\lslide@flag{1}%
+ {%
+ \large
+ \slide@cline{%
+ \slidenumberline{$\Rightarrow\bullet$}%
+ {\hyperlink{##4}{##2}}%
+ }{##3}%
+ }%
+ \else
+ {%
+ \large
+ \slide@cline{%
+ \slidenumberline{$\surd\;\bullet$}%
+ {\hyperlink{##4}{##2}}%
+ }{##3}%
+ }%
+ \fi
+ \or
+ \def\lslide@flag{2}%
+ {%
+ \large
+ \slide@cline{%
+ \slidenumberline{$\bullet$}%
+ {\hyperlink{##4}{##2}}%
+ }{##3}%
+ }%
+ \or
+ {%
+ \large
+ \slide@cline{%
+ \slidenumberline{$\bullet$}%
+ {\hyperlink{##4}{##2}}%
+ }{##3}%
+ }%
+ \fi
+ }%
+ \def\l@subslide##1##2##3##4{%
+ \ifnum\lslide@flag=1 %
+ \@undottedtocline{2}{3.8em}{3.2em}{\hyperlink{##4}{##2}}{}%
+ \fi
+ }%
+ \def\lslide@flag{0}%
+ \@startlos
+ }%
+}{}
+
+%%%%%%%%%%% end hv 2021-06-24 %%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\iffalse
+% Definition of new colors
+% ------------------------
+
+\definecolor{Apricot} {cmyk}{0,0.32,0.52,0}
+\definecolor{Aquamarine} {cmyk}{0.82,0,0.30,0}
+\definecolor{CadetBlue} {cmyk}{0.62,0.57,0.23,0}
+\definecolor{DarkGray} {gray}{0.2}
+\definecolor{DarkGreen} {rgb}{0,0.5,0}
+\definecolor{ForestGreen} {cmyk}{0.91,0,0.88,0.12}
+\definecolor{Gold} {rgb}{1.,0.84,0.}
+\definecolor{Goldenrod} {cmyk}{0,0.10,0.84,0}
+\definecolor{IndianRed} {rgb}{0.8,0.36,0.36}
+\definecolor{Lavender} {cmyk}{0,0.48,0,0}
+\definecolor{LemonChiffon}{rgb}{1.,0.98,0.8}
+\definecolor{LightBlue} {rgb}{0.68,0.85,0.9}
+\definecolor{LightCyan} {rgb}{0.88,1.,1.}
+\definecolor{LightGray} {gray}{0.92}
+\definecolor{LightYellow} {rgb}{1.,1.,0.88}
+\definecolor{Melon} {cmyk}{0,0.46,0.50,0}
+\definecolor{NavyBlue} {cmyk}{0.94,0.54,0,0}
+\definecolor{Orange} {rgb}{1.,0.65,0.}
+\definecolor{PaleGreen} {rgb}{0.6,0.98,0.6}
+\definecolor{PaleGreenB} {rgb}{0.9,1,0.9}
+\definecolor{Peach} {cmyk}{0,0.50,0.70,0}
+\definecolor{PeachPuff} {rgb}{1.0,0.85,0.73}
+\definecolor{PineGreen} {cmyk}{0.92,0,0.59,0.25}
+\definecolor{Pink} {rgb}{1.,0.75,0.8}
+\definecolor{RoyalBlue} {cmyk}{1,0.50,0,0}
+\definecolor{SeaGreen} {cmyk}{0.69,0,0.50,0}
+\definecolor{Salmon} {cmyk}{0,0.53,0.38,0}
+\definecolor{Sepia} {cmyk}{0,0.83,1,0.70}
+\definecolor{SlateBlue} {rgb}{0.42,0.35,0.8}
+\definecolor{Thistle} {rgb}{0.85,0.75,0.85}
+\definecolor{Turquoise} {cmyk}{0.85,0,0.20,0}
+\definecolor{Violet} {cmyk}{0.79,0.88,0,0}
+\definecolor{YellowOrange}{cmyk}{0,0.42,1,0}
+\fi
+
+% Definition of the (La)TeX string
+\newcommand{\AllTeX}{%
+{\textrm{(L\kern-.36em\raise.3ex\hbox{\textsc{%
+a}}\kern-.05em)T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}
+
+% "dinglist" environment
+% Redefinition of it to be able to use colored symbols
+\renewenvironment{dinglist}[2][black]
+{\begin{list}{\ding{#2}}{}}{\end{list}}
+% Symbol definitions for these lists
+\newcommand{\DingListSymbolA}{43}
+\newcommand{\DingListSymbolB}{243}
+\newcommand{\DingListSymbolC}{224}
+\newcommand{\DingListSymbolD}{219}
+
+% Captions customizations
+\setlength{\abovecaptionskip}{1.5mm}
+
+% Centered paragraph title
+\newcommand{\CenteredParagraphTitle}[2][LemonChiffon]{%
+\centerline{\psshadowbox[fillstyle=solid,fillcolor=#1]{\large\HLe{#2}}}}
+
+% Paragraph title
+\newcommand{\ParagraphTitle}[2][LemonChiffon]{%
+\noindent\psshadowbox[fillstyle=solid,fillcolor=#1]{\large\HLe{#2}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% `fancyvrb' customizations
+% -------------------------
+
+% Customized "Verbatim" environment
+\RecustomVerbatimEnvironment{Verbatim}{Verbatim}
+{commandchars=§µ¶,fontfamily=tt,frame=single,numbersep=2pt,framerule=0.15mm}
+
+% "OutputResults" environment to emphasize program outputs
+\DefineVerbatimEnvironment{OutputResults}{Verbatim}
+{commandchars=§µ¶,fontfamily=tt,frame=single,numbers=none,
+rulecolor=\color{blue},framerule=1mm}
+
+% Not inside the preceding environments themselves, to allow
+% local redefinitions
+\fvset{baselinestretch=0.9,fontsize=\small,numbers=left}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Seminar macros redefinitions
+% ----------------------------
+
+\providecommand\theHslide{\arabic{slide}}% hv 2021-06-24
+
+
+
+
+
+% We redefine the format of entries of the list of slides
+\def\listofslides{%
+ \hfuzz=7pt % To avoid the "Overfull \hbox" messages
+ \def\l@slide##1##2##3##4{%
+ \slide@dottedcline{##1 -- \hyperlink{##4}{##2}}%
+ {\slidenumberline{##3}}}%
+ \def\l@subslide##1##2##3##4{%
+ \slide@dottedcline{\hspace{2mm}##1 -- \hyperlink{##4}{##2}}%
+ {\slidenumberline{##3}}}%
+ \@startlos}
+
+\def\slide@dottedcline{\@dottedtocline{1}{1.5em}{2.3em}}
+
+\def\slide@subheading[#1]#2{%
+ \H@refstepcounter{slidesubsection}%
+ \addtocontents{los}{%
+% D.G. modification begin - Jan. 2, 2002
+% \protect\l@subslide{\the\c@slidesubsection}{\ignorespaces#1}%
+ \protect\l@subslide{\the\c@slidesection.\the\c@slidesubsection}%
+ {\ignorespaces#1}%
+% D.G. modification end
+ {\@SCTR}{slideheading.\theslidesubsection}%
+ }%
+ \def\Hy@tempa{#2}%
+ \ifx\Hy@tempa\@empty
+ \else
+ {%
+ \edef\@currentlabel{%
+ \csname p@slidesubsection\endcsname\theslidesubsection
+ }%
+ \makeslidesubheading{#2}%
+ }%
+ \fi
+ \gdef\theslidesubheading{#1}%
+ \ifHy@hypertexnames
+ \ifHy@naturalnames
+ \hyper@@anchor{slideheading.\theslidesubsection}{\relax}%
+ \Hy@writebookmark
+ {\theslidesubsection}%
+ {#1}%
+ {slideheading.\theslidesubsection}%
+ {2}%
+ {toc}%
+ \else
+ \hyper@@anchor{slideheading.\theHslidesubsection}{\relax}%
+ \Hy@writebookmark
+ {\theslidesubsection}%
+ {#1}%
+ {slideheading.\theHslidesubsection}%
+ {2}%
+ {toc}%
+ \fi
+ \else
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \hyper@@anchor{slideheading.\the\Hy@linkcounter}{\relax}%
+ \Hy@writebookmark
+ {\theslidesubsection}%
+ {#1}%
+ {slideheading.\the\Hy@linkcounter}%
+ {1}%
+ {toc}%
+ \fi
+}%
+
+% We will need, for demonstration purposes, to define sections and subsections
+% without putting them in the list of slides
+\def\SlideHeadingsNoListOfSlides{%
+\def\slide@heading[##1]##2{%
+ \refstepcounter{slidesection}%
+ \@addtoreset{slidesubsection}{slidesection}
+% D.G. modification begin - Feb. 22, 2002
+% \addtocontents{los}{\protect\l@slide
+% {\the\c@slidesection}{\ignorespaces##1}{\@SCTR}}%
+% D.G. modification end
+ \def\@tempa{##2}%
+ \ifx\@tempa\@empty\else
+ {\edef\@currentlabel{\csname p@slidesection\endcsname\theslidesection}%
+ \makeslideheading{##2}}%
+ \fi
+ \gdef\theslideheading{##1}%
+ \gdef\theslidesubheading{}}
+%
+\def\slide@subheading[##1]##2{%
+ \refstepcounter{slidesubsection}%
+% D.G. modification begin - Feb. 22, 2002
+% \addtocontents{los}{\protect\l@subslide
+% {\the\c@slidesubsection}{\ignorespaces##1}{\@SCTR}}%
+% D.G. modification end
+ \def\@tempa{##2}%
+ \ifx\@tempa\@empty\else
+ {\edef\@currentlabel{\csname p@slidesubsection\endcsname
+ \theslidesubsection}\makeslidesubheading{##2}}%
+ \fi
+ \gdef\theslidesubheading{##1}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Seminar customizations
+% ----------------------
+
+% No default frame (really useful for old plastic slides only)
+\slideframe{none}
+
+% To center horizontally the headers and footers (see seminar.bug)
+\renewcommand{\headwidth}{\textwidth}
+
+% To adjust the frame length to the header and footer ones
+% \autoslidemarginstrue
+
+% Headers and footers, using the `fancyhdr' package
+
+\slidepagestyle{fancy}
+
+\newcommand{\SeminarHeader}[1]{\fancyhead[C]{\Large\textbf{\HLe{#1}}}}
+
+\newcommand{\SeminarStandardHeaderFooter}[4]{%
+\fancyhf{}%
+\fancyhead[R]{\theslide}
+\SeminarHeader{#1}
+\fancyfoot[L]{\raisebox{2.5mm}{\textbf{#2}}}
+\fancyfoot[R]{\raisebox{3mm}{\scriptsize#3 \@date}\\[-4.5mm]
+ {\tiny\textbf{#4}}}%
+% Change of the width of header and footer rules
+\def\headrulewidth{0.15mm}%
+\def\footrulewidth{0.15mm}%
+% Redefinition of the head line separator to have a double one
+\def\headrule{%
+\if@fancyplain\headrulewidth\plainheadrulewidth\fi
+\hrule\@height\headrulewidth\@width\headwidth \vskip 0.5mm
+\hrule\@height\headrulewidth\@width\headwidth \vskip -1mm}}
+
+% Customization of the headings and subheadings
+\renewcommand{\makeslideheading}[1]{%
+\CenteredParagraphTitle[red]{%
+\textcolor{white}{\textbf{\theslidesection{} -- #1}}}}
+\renewcommand{\makeslidesubheading}[1]{%
+\CenteredParagraphTitle{\theslidesubsection{} -- #1}}
+
+% For automatic definition of headers
+% ("Number - chapter : sub-chapter" or "Number - chapter" if no sub-chapter)
+% (we also suppress the first uppercase letter of the sub-chapter name,
+% if the optional "AsIs" keyword is not specified)
+\def\AsIs{AsIs}
+\def\SeminarStandardHeader@Separator{: }
+\newcommand{\SeminarStandardHeader}[1][]{%
+\SeminarHeader{%
+\ifx\theslidesubheading\empty
+ \theslidesection{} -- \theslideheading%
+\else
+ \edef\@tempa{#1}%
+ \ifx\@tempa\AsIs
+ \theslidesection{} -- \theslideheading{}\SeminarStandardHeader@Separator
+ \theslidesubheading%
+ \else
+ \theslidesection{} -- \theslideheading{}\SeminarStandardHeader@Separator %
+ \SeminarStandardHeader@i{\theslidesubheading}%
+ \fi
+\fi}}
+
+\def\SeminarStandardHeader@i#1{\expandafter\SeminarStandardHeader@ii#1\@nil}
+\def\SeminarStandardHeader@ii#1#2\@nil{\MakeLowercase{#1}#2}
+
+% Outline of the presentation
+\newcommand{\SeminarOutlinePresentation}[4]{%
+\ifx\SeminarColorVersion\AnswerYes
+ \begingroup
+ \SeminarHeader{#1}%
+ \def\SeminarOutlinePresentationBoolean{true}%
+ \renewcommand{\SeminarBackgroundCompositeColorFirst}{#2}%
+ \renewcommand{\SeminarBackgroundCompositeColorSecond}{#3}%
+ \SeminarSlideFrameBackground{SeminarBackgroundCompositeE}%
+ \pst@dimh=\slideleftmargin
+ \advance\pst@dimh by 35mm
+ \renewcommand{\slideleftmargin}{\the\pst@dimh}%
+ \setlength{\slidewidth}{289mm}%
+ \addtolength{\slidewidth}{-\slideleftmargin}%
+ \addtolength{\slidewidth}{-\sliderightmargin}%
+ \renewcommand{\slidestretch}{0}% To compact the list
+ \begin{slide}
+ \begingroup
+ \hypersetup{linkcolor=#4}%
+ \Slidecontents
+ \endgroup
+ \end{slide}
+ \endgroup
+\fi}
+
+% Backgrounds
+% -----------
+
+% Solid backgrounds
+
+% Default color
+\newcommand{\SeminarBackgroundSolidColor}{PeachPuff}
+
+\SeminarNewSlideFrameBackground{SeminarBackgroundSolid}{%
+\psframe[linestyle=none,fillstyle=solid,fillcolor=\SeminarBackgroundSolidColor]
+ (\SeminarPaperHeight,\SeminarPaperWidth)}
+
+% Gradient backgrounds
+
+% Default begin color, end color, angle and middle point
+\newcommand{\SeminarBackgroundGradientColorBegin}{LightYellow}
+\newcommand{\SeminarBackgroundGradientColorEnd}{Gold}
+\newcommand{\SeminarBackgroundGradientAngle}{0}
+\newcommand{\SeminarBackgroundGradientMidPoint}{0}
+
+\SeminarNewSlideFrameBackground{SeminarBackgroundGradient}{%
+\psframe[linestyle=none,fillstyle=gradient,
+ gradangle=\SeminarBackgroundGradientAngle,
+ gradmidpoint=\SeminarBackgroundGradientMidPoint,
+ gradbegin=\SeminarBackgroundGradientColorBegin,
+ gradend=\SeminarBackgroundGradientColorEnd]
+ (\SeminarPaperHeight,\SeminarPaperWidth)}
+
+% Default slope style, steps and center
+\newcommand{\SeminarBackgroundGradientSlopeStyle}{radslope}
+\newcommand{\SeminarBackgroundGradientSlopeSteps}{300}
+\newcommand{\SeminarBackgroundGradientSlopeCenter}{0.5 0.5}
+\newcommand{\SeminarBackgroundGradientSlopeAngle}{0}
+\newcommand{\SeminarBackgroundGradientSlopeRadius}{0}
+
+\SeminarNewSlideFrameBackground{SeminarBackgroundGradientSlope}{%
+\psframe[linestyle=none,fillstyle=\SeminarBackgroundGradientSlopeStyle,
+ slopebegin=\SeminarBackgroundGradientColorBegin,
+ slopeend=\SeminarBackgroundGradientColorEnd,
+ slopesteps=\SeminarBackgroundGradientSlopeSteps,
+ slopecenter=\SeminarBackgroundGradientSlopeCenter,
+ slopeangle=\SeminarBackgroundGradientSlopeAngle,
+ sloperadius=\SeminarBackgroundGradientSlopeRadius]
+ (\SeminarPaperHeight,\SeminarPaperWidth)}
+
+% Composite backgrounds
+
+% Default colors
+\newcommand{\SeminarBackgroundCompositeColorFirst}{LightBlue}
+\newcommand{\SeminarBackgroundCompositeColorSecond}{NavyBlue}
+\newcommand{\SeminarBackgroundCompositeColorThird}{RoyalBlue}
+
+% Utility macros for the composite backgrounds
+
+\newcount\PstFractal@DeepRecursion
+
+% The recursion macro used (from David Carlisle)
+\def\Recursion #1{%
+#1\relax
+ \expandafter\@firstoftwo
+\else
+ \expandafter\@secondoftwo
+\fi}
+
+% General definition of a fractal
+\def\PstFractal#1{%
+\ifx\PstFractalBegin\undefined
+\else
+ \PstFractalBegin
+\fi
+\Recursion
+ {\ifnum#1>\@ne\relax}
+ {\PstFractal@DeepRecursion=#1%
+ \advance\PstFractal@DeepRecursion\m@ne
+ \PstFractalRepeat{\PstFractal@DeepRecursion}}
+ {\PstFractalDefinition}}
+
+\def\PstSpiralSquare#1{%
+\def\PstFractalDefinition{\psframe(1,1)}%
+\def\PstFractalBegin{\PstFractalDefinition}%
+\def\PstFractalRepeat##1{%
+ % sqrt(0.2^2 + (1-0.2)^2)=0.824621
+ % arcsin(0.2/0.824621)=14.036246
+ \rput{-14.036246}(0,0.2){\psset{unit=0.824621}\PstFractal{##1}}}%
+\pspicture(1,1)
+ \PstFractal{#1}
+\endpspicture}
+
+% Composite background A
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeA}{{%
+\psframe[linestyle=none,
+ fillstyle=solid,fillcolor=\SeminarBackgroundCompositeColorFirst]
+ (\SeminarPaperHeight,\SeminarPaperWidth)%
+\rput(4truemm,190truemm){%
+ \psframe[linestyle=none,fillstyle=gradient,gradmidpoint=1,gradangle=90,
+ gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst](8,0.2)}}
+\rput(293truemm,14truemm){%
+ \psframe[linestyle=none,fillstyle=gradient,gradmidpoint=1,gradangle=90,
+ gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond](-8,0.2)}}
+
+% Composite background B
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeB}{{%
+\psframe[linestyle=none,
+ fillstyle=solid,fillcolor=\SeminarBackgroundCompositeColorFirst]
+ (\SeminarPaperHeight,\SeminarPaperWidth)%
+\rput(4truemm,190truemm){%
+ \psframe[linestyle=none,fillstyle=gradient,gradmidpoint=1,gradangle=90,
+ gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst](-0.1,0)(5,0.2)
+ \psframe[linestyle=none,fillstyle=gradient,gradmidpoint=1,
+ gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst](-0.1,0.03)(0.1,-5)}}
+\rput(293truemm,14truemm){%
+ \psframe[linestyle=none,fillstyle=gradient,gradmidpoint=1,gradangle=90,
+ gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond](-5,0.2)(0.1,0)
+ \psframe[linestyle=none,fillstyle=gradient,gradmidpoint=1,
+ gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond](-0.1,5)(0.1,0)}}
+
+% Composite background C
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeC}{{%
+\psframe[linestyle=none,
+ fillstyle=solid,fillcolor=\SeminarBackgroundCompositeColorFirst]
+ (\SeminarPaperHeight,\SeminarPaperWidth)}
+\psset{xunit=1.3333,linecolor=\SeminarBackgroundCompositeColorSecond}%
+\@tempdima=\SeminarPaperHeight
+\divide\@tempdima\tw@
+\@tempdimb=\SeminarPaperWidth
+\divide\@tempdimb\tw@
+\multido{\nLength=5.5+-0.2,\iAngle=0+1}{30}{%
+ \rput{\iAngle}(\@tempdima,\@tempdimb){%
+ \psframe(-\nLength,-\nLength)(\nLength,\nLength)}}}
+
+% Composite background D
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeD}{{%
+\psset{linestyle=none,fillstyle=gradient,gradmidpoint=0}%
+\psframe[gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (\SeminarPaperHeight,\SeminarPaperWidth)
+\multips(4truemm,50truemm)(10truemm,30truemm){3}{%
+ \psframe[gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst]
+ (5truemm,180truemm)}
+\@tempdima=\SeminarPaperHeight
+\advance\@tempdima -29truemm
+\multips(\@tempdima,0)(10truemm,-30truemm){3}{%
+ \psframe[gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst]
+ (5truemm,160truemm)}}}
+
+% Composite background E
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeE}{{%
+\psset{linestyle=none,fillstyle=gradient,gradmidpoint=0.5}%
+\psframe[gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (\SeminarPaperHeight,\SeminarPaperWidth)
+\psframe[gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst]
+ (5truemm,0)(35truemm,\SeminarPaperWidth)
+\multips(10truemm,10truemm)(0,20truemm){11}{%
+ \psframe[gradangle=90,
+ gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (20truemm,10truemm)}}}
+
+% Composite background F
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeF}{{%
+\psset{linestyle=none,fillstyle=gradient,gradmidpoint=1,gradangle=90}%
+\psframe[gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (\SeminarPaperHeight,\SeminarPaperWidth)
+\@tempdima=\SeminarPaperWidth
+\advance\@tempdima -15truemm
+\psframe[gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst]
+ (0,\@tempdima)(\SeminarPaperHeight,\SeminarPaperWidth)
+\psframe[gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst]
+ (0,0)(\SeminarPaperHeight,15truemm)}}
+
+% Composite background G
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeG}{{%
+\psset{linestyle=none,fillstyle=gradient,gradmidpoint=0,gradangle=30}%
+\psframe[gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (\SeminarPaperHeight,\SeminarPaperWidth)
+\@tempdima=\SeminarPaperWidth
+\advance\@tempdima -15truemm
+\psframe[gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst]
+ (15truemm,-15truemm)(\SeminarPaperHeight,\@tempdima)
+\psframe[gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (15truemm,0)(\SeminarPaperHeight,15truemm)}}
+
+% Composite background H
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeH}{{%
+\psset{linestyle=none,fillstyle=gradient,gradmidpoint=1}%
+\psframe[gradangle=0,gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (17mm,\SeminarPaperWidth)
+\@tempdima=\SeminarPaperWidth
+\advance\@tempdima -15mm
+\psframe[gradangle=90,gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (0,\@tempdima)(\SeminarPaperHeight,\SeminarPaperWidth)
+\advance\@tempdima 5mm
+\psframe*[linecolor=white,framearc=0.3](12mm,-20mm)(300mm,\@tempdima)
+\advance\@tempdima -5mm
+\psline[linestyle=solid,linewidth=0.3]{c-c}(4mm,\@tempdima)(90mm,\@tempdima)}}
+
+% Composite background I
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeI}{{%
+\psset{linestyle=none,unit=15,fillstyle=gradient,gradmidpoint=0,
+ gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst}%
+\@tempdima=\SeminarPaperHeight
+\divide\@tempdima\tw@
+\@tempdimb=\SeminarPaperWidth
+\divide\@tempdimb\tw@
+\rput(\@tempdima,\@tempdimb){\PstSpiralSquare{15}}}}
+
+% Composite background J
+
+% Sierpinski carpet
+\newcommand{\PstSierpinskiCarpet}[1]{{%
+\def\PstFractalDefinition{%
+ \psframe(1,1)
+ \psframe[fillstyle=solid,fillcolor=white](0.3333,0.3333)(0.6667,0.6667)}%
+\def\PstFractalBegin{\PstFractalDefinition}%
+\def\PstFractalRepeat##1{%
+ \rput(0,0){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0.3333,0){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0.6667,0){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0,0.3333){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0.6667,0.3333){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0,0.6667){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0.3333,0.6667){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0.6667,0.6667){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}}%
+\psset{dimen=middle}%
+\pspicture(1,1)
+ \PstFractal{#1}
+\endpspicture}}
+
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeJ}{{%
+\psset{linestyle=none,xunit=\SeminarPaperHeight,yunit=\SeminarPaperWidth,
+ fillstyle=solid,fillcolor=\SeminarBackgroundCompositeColorFirst}%
+\@tempdima=\SeminarPaperHeight
+\divide\@tempdima\tw@
+\@tempdimb=\SeminarPaperWidth
+\divide\@tempdimb\tw@
+\rput(\@tempdima,\@tempdimb){\PstSierpinskiCarpet{3}}}}
+
+% Composite background K
+
+% Sierpinski triangle
+\newcommand{\PstSierpinskiTriangle}[1]{{%
+\def\PstFractalDefinition{%
+ \pspolygon(1;0)(1;1)(1;2)
+ \rput{-2}(0,0){\pspolygon(0.5;0.5)(0.5;1.5)(0.5;2.5)}}%
+\def\PstFractalBegin{\PstFractalDefinition}%
+\def\PstFractalRepeat##1{%
+ \rput(0.5;0){\psset{unit=0.5}\PstFractal{##1}}
+ \rput(0.5;1){\psset{unit=0.5}\PstFractal{##1}}
+ \rput(0.5;2){\psset{unit=0.5}\PstFractal{##1}}}%
+\rput{90}(0,0){%
+ \SpecialCoor
+ \degrees[3]
+ \psset{dimen=middle}%
+ \PstFractal{#1}}}}
+
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeK}{{%
+\NormalCoor % Needed when \SpecialCoor is currently active
+\psset{linestyle=none,unit=6.8,fillstyle=gradient,gradmidpoint=0,
+ gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst}%
+\@tempdima=\SeminarPaperHeight
+\divide\@tempdima\tw@
+\@tempdimb=\SeminarPaperWidth
+\divide\@tempdimb\tw@
+\advance\@tempdimb -35truemm
+\rput(\@tempdima,\@tempdimb){\PstSierpinskiTriangle{4}}}}
+
+% Backgrounds with external images
+
+% With image file name
+\newcommand{\SeminarBackgroundImageAngle}{0}
+\newcommand{\SeminarBackgroundImageFile}{Undefined}
+
+\SeminarNewSlideFrameBackground{SeminarBackgroundImage}{{%
+\@tempdima=\SeminarPaperHeight
+\divide\@tempdima\tw@
+\@tempdimb=\SeminarPaperWidth
+\divide\@tempdimb\tw@
+\rput(\@tempdima,\@tempdimb){%
+ \includegraphics[angle=\SeminarBackgroundImageAngle,
+ width=\SeminarPaperHeight,height=\SeminarPaperWidth]
+ {\SeminarBackgroundImageFile}}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% To choice color or black and white version
+% ------------------------------------------
+
+% Note: we do not use booleans because we want to manage three states:
+% true, false and undefined. We must be able to force the value in front
+% of the file, before the \documentclass macro. If this is not done,
+% a question will be asked interactively (this can be falsely interactivity,
+% using for instance a command like "echo y | latex ..." on Unix systems)
+
+\def\AnswerYes{y}
+\def\SeminarColorQuestion{y}
+\def\SeminarPaperQuestion{n}
+
+% Definition of the styles to enrich text (color or black and white version)
+\def\SeminarColorVersion{\SeminarColorQuestion}
+ \usepackage{hcolor}
+
+% Screen or paper version?
+\def\SeminarPaperVersion]{\SeminarPaperQuestion}
+ \def\special@paper{297mm,210mm}% A4 format
+
+% A4 format
+\usepackage{sem-a4}
+\setlength{\slidewidth}{281mm}
+\setlength{\slideheight}{170mm}
+\def\SeminarPaperWidth{210truemm}
+\def\SeminarPaperHeight{297truemm}
+
+% Letter format
+%\setlength{\slidewidth}{261mm}
+%\setlength{\slideheight}{176mm}
+%\def\SeminarPaperWidth{215.9truemm}
+%\def\SeminarPaperHeight{279.4truemm}
+
+% General size parameters for all formats
+\renewcommand{\slidetopmargin}{15.5mm}
+\renewcommand{\slidebottommargin}{13mm}
+\renewcommand{\slideleftmargin}{4mm}
+\renewcommand{\sliderightmargin}{4mm}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Some general PSTricks useful add-ons
+% ------------------------------------
+
+% Initialization of PSTricks parameters
+
+% As \psset, but, opposite to it, this version allow the following syntax:
+% \def\MyPstFrame#1{{%
+% \def\Temp{#1}%
+% \ifx\Temp\empty
+% \else
+% \PstSet{#1}
+% \fi
+% \begin{pspicture}(2,2)
+% \psframe(2,2)
+% \end{pspicture}}}
+%
+% \def\PstParams{linecolor=red,fillstyle=solid,fillcolor=yellow}
+% \MyPstFrame{\PstParams}
+%
+% The syntax \MyPstFrame{linecolor=cyan,fillstyle=vlines} still work,
+% as with \psset
+
+\def\PstSet#1{\PstSet@i#1,\@nil\ignorespaces}
+
+\def\PstSet@i#1,{%
+\expandafter\PstSet@ii#1,\@nil
+\@ifnextchar\@nil{\@gobble}{\PstSet@i}}
+
+\def\PstSet@ii#1,{%
+\PstSet@iii#1=\@nil
+\@ifnextchar\@nil{\@gobble}{\PstSet@ii}}
+
+\def\PstSet@iii#1=#2\@nil{\psset{#1=#2}}
+
+% \DoPerChar macro from Juergen Schlegelmilch
+% °°°°°°°°°°°°°°°°
+% (<schlegel@Informatik.Uni-Rostock.de> - posted on c.t.t. Jan. 27, 1998)
+\def\DoPerChar#1#2#3\@nil{%
+#1#2%
+\edef\@tempa{#3}%
+\ifx\@tempa\@empty
+\else
+ \DoPerChar#1#3\@nil
+\fi}
+
+% To write a text vertically (but with letters horizontal)
+% °°°°°°°°°°°°°°°°°°°°°°°°°°
+\def\TextTurn#1{\DoPerChar\TextTurn@CharacterTurn#1\@nil}
+\def\TextTurn@CharacterTurn#1{\rotateleft{\,\hbox to 0mm{\hss#1\hss}}\,}
+
+% To print a string in a framebox of a specified length
+% °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
+\def\PstTab{\@ifnextchar[{\PstTab@i}{\PstTab@i[]}}
+\def\PstTab@i[#1]#2#3{{%
+\psset{#1}%
+\psframebox[framesep=0.06,framearc=0.8,shadow=true,shadowangle=45,shadowsize=0.1]{%
+ \rule[-0.5mm]{0mm}{2.5mm}%
+ \truncate[.]{#3}{\hfil#2\hfil}}}}
+
+% To print tabs for the sections
+% °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
+\def\SeminarTabs#1#2#3#4{%
+% #1 = length for each tab, #2 = font specifications (if changed),
+% #3 = color of the current section,
+% #4 = color for all sections except the current one
+%
+% Temporary redefinition of the OvalFrame PostScript macro
+% for better look for a tab
+\pst@Verb{%
+/OvalFrame {
+ x1 x2 eq y1 y2 eq or
+ { pop pop x1 y1 moveto x2 y2 L }
+ { y1 y2 sub abs
+ x1 x2 sub abs
+ 2 copy gt { exch pop } { pop } ifelse
+ 2 div exch
+ { dup 3 1 roll mul exch } if
+ 2 copy lt { pop } { exch pop } ifelse
+ /b ED
+ x1 y1 y2 add 2 div moveto
+ x1 y2 x2 y2 b arcto
+ x2 y2 x2 y1 b arcto
+% D.G. modification begin - Mar. 20, 2002
+% x2 y1 x1 y1 b arcto
+% x1 y1 x1 y2 b arcto
+ x2 y1 x1 y1 0 arcto
+ x1 y1 x1 y2 0 arcto
+% D.G. modification end
+ 16 { pop } repeat
+ closepath }
+ ifelse } def}%
+%
+\def\l@slide##1##2##3##4{\l@slide@i##1##2\@nil##4\@@nil}%
+\def\l@slide@i##1\ignorespaces ##2\@nil##3\@@nil{%
+\pst@@killglue% To eat the end of line after the \l@slide macro
+\ifnum##1=\c@slidesection
+ \def\SeminarTabsCurrentSectionColor{#3}%
+\else
+ \def\SeminarTabsCurrentSectionColor{#4}%
+\fi
+#2% To be able to change the font size, serie, etc.
+\hyperlink{##3}{%
+ \PstTab[fillstyle=solid,fillcolor=\SeminarTabsCurrentSectionColor]
+ {##2}{#1}}}%
+\let\l@subslide\@gobblefour
+\@startlos}
+
+% General annotation macro
+% °°°°°°°°°°°°°°°°°°°°°°°°
+
+% To add annotations on a page (slide), specially when using overlays
+% This is specially useful to add comments on a set of equations
+% or on program lines on a listing
+
+\newdimen\PstAnnotation@BoxBaselineskipDim
+\define@key[psset]{}{AnnotationBoxBaselineskip}{\pssetlength{\PstAnnotation@BoxBaselineskipDim}{#1}}
+\define@key[psset]{}{AnnotationBoxCommand}{\def\PstAnnotation@BoxCommand{#1}}
+\define@key[psset]{}{AnnotationBoxJustification}{\def\PstAnnotation@BoxJustification{#1}}
+
+\newdimen\PstAnnotation@BoxLengthDim
+\define@key[psset]{}{AnnotationBoxLength}{\pssetlength{\PstAnnotation@BoxLengthDim}{#1}}
+\define@key[psset]{}{AnnotationBoxStyle}{\def\PstAnnotation@BoxStyle{#1}}
+\define@key[psset]{}{AnnotationConnectionCommand}{\def\PstAnnotation@ConnectionCommand{#1}}
+
+\define@key[psset]{}{AnnotationConnectionBasicStyle}{\def\PstAnnotation@ConnectionBasicStyle{#1}}
+
+\define@key[psset]{}{AnnotationConnectionSpecialStyle}{\def\PstAnnotation@ConnectionSpecialStyle{#1}}
+
+\define@key[psset]{}{AnnotationReferencePoint}{\def\PstAnnotation@ReferencePoint{#1}}
+
+\define@key[psset]{}{AnnotationTextStyle}{\def\PstAnnotation@TextStyle{#1}}
+
+\define@key[psset]{}{AnnotationPositionX}{\def\PstAnnotation@PositionX{#1}}
+
+\define@key[psset]{}{AnnotationPositionY}{\def\PstAnnotation@PositionY{#1}}
+
+% Default values
+\psset{%
+ AnnotationBoxBaselineskip=0.5mm,
+ AnnotationBoxCommand=\psframebox,
+ AnnotationBoxLength=4cm,
+ AnnotationBoxJustification=r,
+ AnnotationBoxStyle={linewidth=0.015,framesep=0.05},
+ AnnotationConnectionCommand=\ncline,
+ AnnotationConnectionBasicStyle={arrows=->,nodesep=0.1},
+ AnnotationConnectionSpecialStyle=,
+ AnnotationReferencePoint=l,
+ AnnotationTextStyle=\scriptsize,
+ AnnotationPositionX=13.45,
+ AnnotationPositionY=0}
+
+\SpecialCoor
+
+\def\PstAnnotation{\@ifnextchar[{\PstAnnotation@i}{\PstAnnotation@i[]}}
+\def\PstAnnotation@i[#1]#2#3{{%
+\psset{#1}%
+\PstAnnotation@TextStyle
+\rput(\PstAnnotation@PositionX,0 | #2){%
+ \rput[\PstAnnotation@BoxJustification](0,\PstAnnotation@PositionY){%
+ \rnode[\PstAnnotation@ReferencePoint]{AnnotationNodeTemp}{%
+ \ifx\PstAnnotation@BoxStyle\@empty
+ \else
+ \PstSet{\PstAnnotation@BoxStyle}
+ \fi
+ \PstAnnotation@BoxCommand{%
+ \normalbaselineskip=\PstAnnotation@BoxBaselineskipDim
+ \begin{minipage}{\PstAnnotation@BoxLengthDim}
+ #3
+ \end{minipage}}}}}
+\ifx\PstAnnotation@ConnectionBasicStyle\@empty
+\else
+ \PstSet{\PstAnnotation@ConnectionBasicStyle}
+\fi
+\ifx\PstAnnotation@ConnectionSpecialStyle\@empty
+\else
+ \PstSet{\PstAnnotation@ConnectionSpecialStyle}
+\fi
+\PstAnnotation@ConnectionCommand{AnnotationNodeTemp}{#2}}}
+
+% To put a right brace to point an annotation
+\newcommand{\RightBrace}[1]{{% #1 = number of lines to put the brace around
+\@tempdima=#1 pt
+\advance\@tempdima\m@ne pt
+\divide\@tempdima\tw@
+\ifx\BaseLineStretchBrace\@undefined
+ \@tempdimb=\normalbaselineskip
+\else
+ \@tempdimb=\BaseLineStretchBrace\normalbaselineskip
+\fi
+\@tempdimc=\strip@pt\@tempdima\@tempdimb
+\advance\@tempdimc-0.1\@tempdimb
+%
+\setbox\z@\hbox{A}%
+\ifdim\@tempdimc<0.5\ht\z@
+ \advance\@tempdimc0.75\ht\z@
+\fi
+%
+$\left \}\rule[-\@tempdimc]{0mm}{\@tempdimc}\right.$}}
+
+% Macros useful when using overlays with the `listings' package
+% -------------------------------------------------------------
+
+\def\pnodeLstDown#1{%
+\@tempdima=0.5\normalbaselineskip
+\setbox\z@\hbox{A}%
+\ifdim\@tempdima<0.5\ht\z@
+ \advance\@tempdima0.25\ht\z@
+\else
+ \advance\@tempdima-0.5\ht\z@
+\fi
+\pnode(0,-\@tempdima){#1}}
+\def\pnodeLstUp#1{\setbox\z@\hbox{A}\pnode(0,0.5\ht\z@){#1}}
+\def\rnodeLst#1#2#3{\rnode[#1]{#2}{#3}}
+
+\catcode`\@=\SeminarAtCode\relax
+\endinput
+% End seminar.con
diff --git a/macros/latex/contrib/seminar/latex/seminar.sty b/macros/latex/contrib/seminar/latex/seminar.sty
new file mode 100644
index 0000000000..a5f0f7d4c0
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/seminar.sty
@@ -0,0 +1,1167 @@
+%% BEGIN seminar.sty
+%%
+%% This is file `seminar.sty'
+%%
+\def\fileversion{1.71}
+\def\filedate{24/06/30}
+%%
+%% LaTeX document style `seminar', for use with LaTeX v2.09.
+%% This is a style for typesetting notes and slides.
+%%
+%% COPYRIGHT 1993, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu
+%% 2021, by Herbert Voß
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%%
+\@ifundefined{@seminarerr}{}{\endinput}
+\typeout{%
+ Document Style: `seminar' v\fileversion \space <\filedate> (tvz)}
+\providecommand\theHslide{\arabic{slide}}%
+\def\test@member#1#2{%
+ \edef\@tempg{,#2,#1,}%
+ \edef\@temph{####1,#1,}%
+ \expandafter\def\expandafter\@temph\@temph##2\@nil{%
+ \def\@tempg{##2}%
+ \ifx\@tempg\@empty\@testfalse\else\@testtrue\fi}%
+ \expandafter\@temph\@tempg\@nil}
+\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
+\@ifundefined{reset@font}{\def\reset@font{\normalsize\rm}}{}
+\def\@seminarerr#1#2{%
+ \edef\@tempc{#2}\expandafter\errhelp\expandafter{\@tempc}%
+ \typeout{^^JSeminar.sty error.\space\space\space
+ Type \space H <return> \space for immediate help.^^J}%
+ \errmessage{#1^^J}}
+\def\notslide@err#1{Cannot use \string#1 in slide environments}
+\def\new@slidebox{\alloc@4\box\chardef\insc@unt}
+\newdimen\slidewidth \slidewidth 8.5in
+\newdimen\slideheight \slideheight 6.3in
+\@ifundefined{paperwidth}{\def\paperwidth{8.5in}}{}
+\@ifundefined{paperheight}{\def\paperheight{11in}}{}
+\def\addto@preamblecmds#1{%
+ \begingroup
+ \def\do{\noexpand\do\noexpand}%
+ \xdef\@preamblecmds{\@preamblecmds\do#1}%
+ \endgroup}
+\addto@preamblecmds{\addto@preamblecmds\do\@preamblecmds}
+\def\sem@temp#1{\@ifundefined{if#1}%
+ {\def\@tempa{\csname newif\endcsname}
+ \expandafter\@tempa\csname if#1\endcsname}{}}
+\sem@temp{article}{}
+\sem@temp{slidesonly}{}
+\sem@temp{notes}{}
+\sem@temp{notesonly}{}
+\sem@temp{notesonlystar}{}
+\sem@temp{portrait}{}
+\def\ds@article{\articletrue}
+\def\ds@slidesonly{\slidesonlytrue\notesfalse\notesonlyfalse}
+\def\ds@notes{\notestrue\slidesonlyfalse\notesonlyfalse}
+\def\ds@notesonly{\notesonlytrue\slidesonlyfalse\notesfalse}
+\@namedef{ds@notesonly*}{\ds@notesonly\notesonlystartrue}
+\def\ds@portrait{\portraittrue}
+\@namedef{ds@a4}{%
+ \def\paperwidth{210mm}
+ \def\paperheight{297mm}
+ \slidewidth 222mm
+ \slideheight 152mm\relax}
+\@@input article.sty
+\ifnotesonly\else\notesonlystarfalse\fi
+\@@input sem-page.sty
+\newtoks\before@document
+\newtoks\after@document
+\let\xcomment@hook\relax
+%\before@document{\endgroup\the\before@document\begingroup}
+\before@document{\the\before@document}
+\after@document{\the\after@document\xcomment@hook}
+\expandafter\@temptokena\expandafter{\document}
+\edef\document{\the\before@document\the\@temptokena\the\after@document}
+\before@document{}
+\after@document{}
+\newtoks\before@enddocument
+\before@enddocument{\the\before@enddocument}
+\expandafter\@temptokena\expandafter{\enddocument}
+\edef\enddocument{\the\before@enddocument\the\@temptokena}
+\before@enddocument{}
+\newif\ifprintlandscape
+\ifportrait
+ \ifarticle\printlandscapetrue\fi
+\else
+ \ifarticle\else\printlandscapetrue\fi
+\fi
+\addto@hook\before@document{\ifprintlandscape\printlandscape\fi}
+\addto@preamblecmds{\printlandscape}
+\def\printlandscape{\addto@hook\before@enddocument{%
+ \typeout{^^J%
+ *******************************************************^^J%
+ ***** !! PRINT THIS DOCUMENT IN LANDSCAPE MODE !! *****^^J%
+ *******************************************************}}}
+\def\slide{%
+ \NestedSlide@Error{slide}%
+ \landscapetrue
+ \@ifnextchar[{\begin@slide}{\begin@slide[\slidewidth,\slideheight]}}
+\def\endslide{\end@slide}
+\@namedef{slide*}{%
+ \NestedSlide@Error{slide*}%
+ \landscapefalse
+ \@ifnextchar[{\begin@slide}{\begin@slide[\slidewidth,\slideheight]}}%
+\@namedef{endslide*}{\end@slide}
+\newcounter{slide}
+\def\theslide{\arabic{slide}}
+\newcount\slide@count
+\newbox\@slidebox
+\newbox\not@slidebox
+\newif\ifslide
+\newif\iflandscape
+\def\@landscapeonly{0}
+\def\landscapeonly{\def\@landscapeonly{1}}
+\def\portraitonly{\def\@landscapeonly{-1}}
+\def\NestedSlide@Error#1{%
+ \ifslide
+ \endgroup
+ \@seminarerr{Nested slide environments. Perhaps missing
+ \string\end{\@currenvir}. May be fatal}\@ehd
+ \expandafter\end\expandafter{\@currenvir}%
+ \ifslide\expandafter\end\expandafter{\@currenvir}\fi
+ \begingroup
+ \def\@currenvir{#1}%
+ \fi}
+\def\begin@slide[#1,#2]{%
+ \slide@clearpage
+ \setlength\slidewidth{#1}%
+ \setlength\slideheight{#2}%
+ \begingroup
+ \ifarticle
+ \output{%
+ \advance\count@ 1
+ \global\setbox\not@slidebox\box\@cclv}%
+ \par\@@par\penalty-\@M
+ \fi
+ \output{\slide@output}%
+ \slidetrue
+ \ifarticle\global\slide@count=\z@\fi
+ \refstepcounter{slide}%
+ \ifnotesonlystar\xdef\first@slidemarker{\the\c@slide}\fi
+ \def\do##1{\setcounter{##1}\z@}\slide@reset
+ \ifarticle\else
+ \edef\page@textheight{\number\textheight sp}%
+ \edef\page@textwidth{\number\textwidth sp}%
+ \fi
+ \set@slidesize
+ \slidebox@restore
+ \the\slide@hook
+ \the\before@newslide
+ \everyslide}
+\def\end@slide{%
+ \par\penalty-\@M
+ \xdef\@tempg{\@currenvir}%
+ \endgroup
+ \ifslide
+ \@seminarerr{Perhaps missing `\string\end{\@tempg}',
+ \iffalse{\fi`\string}' or `\string\endgroup'}\@ehd
+ \def\next{\endgroup\ifslide\expandafter\next\fi}%
+ \next
+ \fi
+ \begingroup
+ \output{\setbox\@tempboxa\box\@cclv}%
+ \@@par\penalty-\@M
+ \endgroup
+ \global\advance\c@slide-1
+ \def\do##1{\setcounter{##1}{\@nameuse{saved@c@##1}}}%
+ \slide@reset
+ \ifarticle\outputloop@savedslides\fi
+ \the\after@slide}
+\let\slideclearpagetrue\relax
+\let\slideclearpagefalse\relax
+\ifarticle
+ \def\slide@clearpage{\par\penalty\z@}
+ \ifnotes
+ \def\slideclearpagetrue{\def\slide@clearpage{\clearpage}}
+ \def\slideclearpagefalse{\def\slide@clearpage{\par\penalty\z@}}
+ \else
+ \ifnotesonly
+ \def\slideclearpagetrue{\def\slide@clearpage{\clearpage}}
+ \def\slideclearpagefalse{\def\slide@clearpage{\par\penalty\z@}}
+ \fi
+ \fi
+\else
+ \def\slide@clearpage{\clearpage}
+\fi
+\newtoks\slide@hook
+\def\everyslide{}
+\newtoks\after@slide
+\def\slidebox@restore{%
+ \def\thepage{\theslide}%
+ \def\newpage{\newslide}%
+ \def\clearpage{\newslide}%
+ \def\thispagestyle{\notslide@err{\thispagestyle}}%
+ \pagestyle{\slide@pagestyle}%
+ \@twocolumnfalse
+ \def\twocolumn{\notslide@err{\twocolumn}}%
+ \def\onecolumn{\notslide@err{\onecolumn}}%
+ \def\marginpar{\notslide@err{\marginpar}}%
+ \def\thanks{\slidethanks}%
+ \def\maketitle{\slidemaketitle}%
+ \fix@floats
+ \fix@whatsits
+ \slide@footnotes
+ \def\do##1{\expandafter\xdef\csname
+ saved@c@##1\endcsname{\the\@nameuse{c@##1}}}%
+ \slide@reset
+ \topskip\z@ \maxdepth\z@
+ \slide@listparameters
+ \slidefonts
+ \def\baselinestretch{\slidestretch}%
+ \def\arraystretch{\slidearraystretch}%
+ \sem@ptsize{\slide@ptsize}}
+\def\date#1{\gdef\@date{#1}\gdef\thedate{#1}}
+\def\author#1{\gdef\@author{#1}\gdef\theauthor{#1}}
+\def\title#1{\gdef\@title{#1}\gdef\thetitle{#1}}
+\date{\today}
+\let\slidethanks\thanks
+\def\thethanks{\@thanks}%
+\def\slidemaketitle{%
+ \par
+ \begin{center}\bf
+ {\large \thetitle}\par\vskip 1ex
+ \begin{tabular}[t]{c} \theauthor \end{tabular}\par\vskip 1ex
+ \thedate
+ \end{center}%
+ \thethanks\par}
+\def\fix@floats{%
+ \def\@xfloat##1[##2]{%
+ \expandafter\let\csname end##1\endcsname\end@float
+ \par\medskip\vbox\bgroup\def\@captype{##1}\parindent\z@
+ \ignorespaces}%
+ \def\end@float{\par\vskip\z@\egroup\medskip}%
+ \def\@dblfloat{\@float}\def\end@dblfloat{\end@float}%
+ \def\endfigure{\end@float}\def\endtable{\end@float}}
+\let\normal@write\write
+\let\normal@read\read
+\let\normal@openout\openout
+\let\normal@closeout\closeout
+\def\fix@whatsits{%
+ \def\write{\immediate\normal@write}%
+ \def\read{\immediate\normal@read}%
+ \def\openout{\immediate\normal@openout}%
+ \def\closeout{\immediate\normal@closeout}}
+\newinsert\slide@footins
+\skip\slide@footins=\bigskipamount
+\count\slide@footins=1000
+\dimen\slide@footins=4in
+\def\theslidefootnote{\alph{footnote}}
+\def\slide@footnotes{%
+ \def\thefootnote{\theslidefootnote}%
+ \let\footins\slide@footins
+ \interfootnotelinepenalty\@M}
+\def\slidefonts{}
+\def\slidestretch{1.18}
+\def\slidearraystretch{1.2}
+\def\raggedslides{\@ifnextchar[{\@raggedslides}{\@raggedslides[1fil]}}
+\def\@raggedslides[#1]{%
+ \edef\slide@@rightskip{#1}%
+ \ifslide\slide@rightskip\fi}
+\def\slide@rightskip{%
+ \@rightskip\z@ plus \slide@@rightskip\relax \rightskip\@rightskip}
+\def\slide@@rightskip{1fil}
+\newcount\slide@listdepth
+\def\slide@listparameters{%
+ \let\@listdepth\slide@listdepth
+ \slide@listdepth\z@
+ \def\@listi{\slide@listi}%
+ \def\@listii{\slide@listii}%
+ \def\@listiii{\slide@listiii}%
+ \let\@listiv\relax\let\@listv\relax\let\@listvi\relax}
+\def\slide@listi{%
+ \leftmargin\leftmargini
+ \labelwidth\leftmargini \advance\labelwidth-\labelsep
+ \parsep\parskip \divide\parsep2
+ \partopsep\slidepartopsep\relax
+ \advance\partopsep-\parskip
+ \ifdim\partopsep<\z@\partopsep\z@\fi
+ \itemsep\slideitemsep\relax
+ \ifdim\parsep<\itemsep
+ \topsep\itemsep \advance\topsep-\parsep
+ \else
+ \itemsep\parsep \topsep\z@
+ \fi}
+\def\slide@listii{%
+ \leftmargin\leftmarginii
+ \labelwidth\leftmarginii \advance\labelwidth-\labelsep
+ \divide\itemsep2 \divide\parsep2
+ \divide\topsep2 \divide\partopsep2\relax}%
+\def\slide@listiii{%
+ \leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii \advance\labelwidth-\labelsep
+ \itemsep \z@ \parsep\z@ \topsep\z@}%
+\def\slideleftmargini{1.8em}
+\def\slideleftmarginii{1.4em}
+\def\slideleftmarginiii{1em}
+\def\slidelabelsep{.5em}
+\def\slideitemsep{.8ex minus .2ex}
+\def\slidepartopsep{1ex minus .2ex}
+\newbox\saved@specials
+\def\save@slidespecials{%
+ \begingroup
+ \output{%
+ \global\setbox\saved@specials=\box\@cclv
+ \global\wd\saved@specials=\z@
+ \global\dp\saved@specials=\z@
+ \global\ht\saved@specials=\z@}%
+ \hbox{}\penalty-\@M
+ \global\let\saved@texttop\@texttop
+ \gdef\@texttop{%
+ \ifvoid\saved@specials\else\box\saved@specials\nointerlineskip\fi
+ \saved@texttop
+ \global\let\@texttop\saved@texttop}%
+ \endgroup}
+\addto@hook\after@document{\save@slidespecials}
+\ifarticle\else
+ \def\insert@specials{%
+ \ifvoid\saved@specials\else
+ \setbox\@slidebox\hbox{\box\saved@specials\box\@slidebox}%
+ \fi
+ \global\let\insert@specials\relax}
+\fi
+\def\extraslideheight#1{%
+ \@tempdima #1\relax
+ \edef\X@SlideHeight{\number\@tempdima sp}
+ \ifslide\set@slidesize\fi}
+\extraslideheight{6pt}
+\def\set@slidesize{%
+ \iflandscape
+ \hsize=\inverseslidesmag\slidewidth
+ \vsize=\inverseslidesmag\slideheight
+ \else
+ \hsize=\inverseslidesmag\slideheight
+ \vsize=\inverseslidesmag\slidewidth
+ \fi
+ \edef\slide@vsize{\number\vsize sp}%
+ \textheight\vsize
+ \advance\vsize\X@SlideHeight\relax
+ \textwidth\hsize\columnwidth\hsize\linewidth\hsize}
+\def\newslide{%
+ \par\penalty-\@M
+ \def\do##1{\setcounter{##1}\z@}\slide@reset
+ \the\before@newslide
+ \set@slidesize}
+\newtoks\before@newslide
+\def\slide@reset{\do{footnote}}
+\def\slidereset#1{\def\slide@reset{}\addtoslidereset{#1}}
+\def\addtoslidereset#1{%
+ \edef\@tempa{#1}\expandafter\addto@slidereset\@tempa,\@nil,}
+\def\addto@slidereset#1,{%
+ \ifx\@nil#1\else
+ \@ifundefined{c@#1}%
+ {\@seminarerr{Counter `#1' not defined}\@ehd}%
+ {\expandafter\def\expandafter\slide@reset\expandafter{%
+ \slide@reset\do{#1}}}%
+ \expandafter\addto@slidereset
+ \fi}
+\def\slide@output{%
+ \@makeslide
+ \@testfalse
+ \ifnotesonly\else
+ \iflandscape
+ \ifnum\@landscapeonly>-1 \os@test\fi
+ \else
+ \ifnum\@landscapeonly<1 \os@test\fi
+ \fi
+ \fi
+ \if@test
+ \reset@slideoutput
+ \@@makeslide
+ \process@slide
+ \fi
+ \refstepcounter{slide}}
+\def\reset@slideoutput{%
+ \let\par\@@par
+ \reset@font
+ \def\baselinestretch{1}%
+ \@nameuse{1\@ptsize @semptsize}%
+ \catcode`\ =10
+ \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii}
+\newif\ifcenterslides
+\centerslidestrue
+\def\@makeslide{%
+ \setbox\@slidebox\vbox{%
+ \unvbox\@cclv
+ \ifvoid\slide@footins\else
+ \vskip\skip\slide@footins
+ \footnoterule
+ \unvbox\slide@footins
+ \fi
+ \vskip\z@}}
+\def\@@makeslide{%
+ \overfullslide@warning
+ \setbox\@slidebox\hbox{%
+ \vfuzz=\slidefuzz\relax
+ \vbox to\slide@vsize{%
+ \ifcenterslides\vskip\z@ plus .0001fil \fi
+ \unvbox\@slidebox
+ \vskip\z@ plus .0001fil}%
+ \the\after@slidepage}%
+ \wd\@slidebox\textwidth}
+\def\overfullslide@warning{%
+ \dimen@\ht\@slidebox
+ \advance\dimen@-\slide@vsize\relax
+ \ifdim\dimen@>\slidefuzz\relax
+ \@warning{Slide \theslide\space overfull by \the\dimen@}%
+ \fi}
+\def\slidefuzz{2pt}
+\newtoks\after@slidepage
+\newif\ifrotateheaders
+\def\sliderotation#1{\@ifundefined{semsr@#1}%
+ {\@latexerr{Slide rotation `#1' not defined.}\@eha}%
+ {\@nameuse{semsr@#1}}}
+\def\semsr@left{%
+ \def\rotate@slide{%
+ \setbox\@slidebox\hbox{\leftsliderotation{\box\@slidebox}}}}
+\def\semsr@right{%
+ \def\rotate@slide{%
+ \setbox\@slidebox\hbox{\rightsliderotation{\box\@slidebox}}}}
+\def\semsr@none{\let\rotate@slide\relax}
+\sliderotation{none}
+\def\leftsliderotation#1{%
+ \@seminarerr{\string\leftsliderotation\space has not been defined}%
+ \@ehd}
+\let\rightsliderotation\leftsliderotation
+\def\@ifrotateslide#1{%
+ \ifx\rotate@slide\relax\else
+ \iflandscape\ifportrait#1\fi\else\ifportrait\else#1\fi\fi
+ \fi}
+\def\process@slide{%
+ \slideframewidth=\inverseslidesmag\slideframewidth
+ \slideframesep=\inverseslidesmag\slideframesep
+ \fboxrule\slideframewidth
+ \fboxsep\slideframesep
+ \ifarticle
+ \@ifrotateslide\rotate@slide
+ \else
+ \ifrotateheaders\else\@ifrotateslide\rotate@slide\fi
+ \fi
+ \process@@slide}
+\def\process@@slide{\finish@slide\output@slide}
+\def\finish@slide{%
+ \theslideframe
+ \add@slidelabel\slidelabel}
+\ifarticle
+ \def\output@slide{%
+ \global\advance\slide@count1
+ \@ifundefined{slidebox@\the\slide@count}%
+ {{\globaldefs=1\expandafter
+ \new@slidebox\csname slidebox@\the\slide@count\endcsname}}{}%
+ \expandafter\global\expandafter\setbox\csname
+ slidebox@\the\slide@count\endcsname\box\@slidebox}
+\else
+ \def\output@slide{%
+ \begingroup
+ \hoffset=-\inverseslidesmag in
+ \voffset=-\inverseslidesmag in
+ \setslidelength\@tempdima{%
+ \ifportrait\paperwidth\else\paperheight\fi}
+ \setslidelength\@tempdimb{%
+ \ifportrait\paperheight\else\paperwidth\fi}
+ \ifrotateheaders
+ \@ifrotateslide{%
+ \dimen@=\@tempdima
+ \@tempdima=\@tempdimb
+ \@tempdimb=\dimen@}
+ \fi
+ % \oddsidemargin, \evensidemargin, \headheight, \footheight
+ % used for scratch:
+ \setslidelength\oddsidemargin\slideleftmargin
+ \setslidelength\evensidemargin\sliderightmargin
+ \setslidelength\headheight\slidetopmargin
+ \setslidelength\footheight\slidebottommargin
+ % Some page styles like to know \textwidth:
+ \textwidth=\@tempdima
+ \advance\textwidth-\oddsidemargin
+ \advance\textwidth-\evensidemargin
+ \setbox\@slidebox=\hbox to \@tempdima{%
+ \kern\oddsidemargin
+ \vbox to\@tempdimb{%
+ \ifnum\fancyput@flag>-1
+ \hbox{\kern-\oddsidemargin\do@fancyput}%
+ \fi
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble
+ \vbox to\headheight{%
+ \vfill
+ \hbox{%
+ \slideheadfont\relax\strut
+ \hbox to\textwidth{\@oddhead}}%
+ \kern\z@}%
+ \vfill
+ \hbox to\textwidth{\hss\box\@slidebox\hss}%
+ \vfill
+ \vbox to\footheight{%
+ \hbox{%
+ \slidefootfont\relax\strut
+ \hbox to\textwidth{\@oddfoot}}%
+ \vfill}}%
+ \hss}%
+ \ifrotateheaders\@ifrotateslide\rotate@slide\fi
+ \insert@specials
+ \shipout\box\@slidebox
+ \endgroup
+ \let\firstmark\botmark}
+ \@ifundefined{fancyput@flag}{\def\fancyput@flag{-1}}{}
+\fi
+\newskip\slidesep
+\slidesep\intextsep
+\ifarticle
+ \def\fps@fslide{htbp}
+ \def\ftype@fslide{32}
+ \def\float@savedslide{%
+ \begingroup\@float{fslide}%
+ \centerline{\box\@slidebox}%
+ \end@float\endgroup}%
+ \@namedef{float*@savedslide}{%
+ \begingroup\@dblfloat{fslide}%
+ \centerline{\box\@slidebox}%
+ \end@dblfloat\endgroup}%
+ \def\center@slide{\hbox{%
+ \kern-\@totalleftmargin
+ \hbox to \columnwidth{\hss\box\@slidebox\hss}}}%
+ \def\onepercol@savedslide{%
+ \vbox to .996\textheight{\vss\center@slide\vss}\goodbreak}%
+ \def\twopercol@savedslide{%
+ \dimen@.5\textheight
+ \advance\dimen@-\slidesep
+ \ifdim\ht\@slidebox>\dimen@
+ \onepercol@savedslide
+ \else
+ \vbox to .498\textheight{\vss\center@slide\vss}\goodbreak
+ \fi}
+ \def\here@savedslide{%
+ \addvspace\slidesep\center@slide\addvspace\slidesep}
+ \@namedef{here*@savedslide}{%
+ \goodbreak \hrule \@height\z@ \nobreak \vskip\slidesep \nobreak
+ \center@slide
+ \nobreak \vskip\slidesep \nobreak \hrule\@height\z@ \goodbreak}
+\fi
+\ifarticle
+ \def\slideplacement#1{\@ifundefined{#1@savedslide}%
+ {\@seminarerr{Slide placement `#1' undefined}\@ehd}%
+ {\expandafter\let\expandafter\output@savedslide
+ \csname #1@savedslide\endcsname}}
+\else
+ \def\slideplacement#1{}
+\fi
+\ifarticle
+ \ifnotes
+ \ifportrait
+ \slideplacement{float}
+ \else
+ \slideplacement{float*}
+ \fi
+ \else
+ \ifportrait
+ \slideplacement{onepercol}
+ \else
+ \slideplacement{twopercol}
+ \fi
+ \fi
+\fi
+\ifarticle
+ \def\outputloop@savedslides{%
+ \global\maxdepth\@maxdepth
+ \ifvoid\not@slidebox\else
+ \dimen@=\dp\not@slidebox
+ \unvbox\not@slidebox
+ \hrule height\z@
+ \prevdepth\dimen@
+ \penalty\z@
+ \fi
+ \edef\slide@@count{\the\slide@count\relax}%
+ \slide@count\z@
+ \loop
+ \ifnum\slide@count<\slide@@count
+ \advance\slide@count1
+ \expandafter\setbox\expandafter\@slidebox\expandafter\box
+ \csname slidebox@\the\slide@count\endcsname
+ \output@savedslide
+ \repeat
+ \ifnotesonlystar\make@slidemarker\fi}
+\fi
+\def\make@slidemarker{%
+ \addvspace\slidesep
+ \moveleft\@totalleftmargin
+ \vbox{%
+ \hsize\columnwidth
+ \hrule height 1pt
+ \kern 8pt
+ \hbox to \columnwidth{%
+ \hss
+ \LARGE\bf\the@slidemarker
+ \hss}%
+ \kern 8pt
+ \hrule height 1pt}%
+ \addvspace\slidesep}
+\def\the@slidemarker{%
+ Slide%
+ \ifnum\c@slide=\first@slidemarker\else
+ s {\c@slide\first@slidemarker\relax\theslide} --\fi
+ { }\theslide}%
+\ifarticle
+ \let\c@note\c@page
+ \def\p@note{\p@page}
+ \def\thenote{\thepage}
+\else
+ \newcounter{note}
+ \def\thenote{\theslide-\arabic{note}}
+ \def\thepage{\thenote}
+ \addto@hook\after@slide{\setcounter{note}{1}}
+ \expandafter\def\expandafter\@outputpage\expandafter{%
+ \@outputpage\stepcounter{note}}
+\fi
+\ifarticle\else
+ \let\c@page\c@slide
+ \countdef\c@slide=0
+ \c@slide=0
+ \c@page=1
+\fi
+\ifarticle
+ \let\truepagenumbers\relax
+\else
+ \def\truepagenumbers{%
+ \let\c@slide\c@page
+ \countdef\c@page=0
+ \c@page=1
+ \c@slide=0
+ \let\truepagenumbers\relax}
+\fi
+\addto@preamblecmds{\truepagenumbers}
+\newdimen\slideframewidth \slideframewidth 4pt
+\newdimen\slideframesep \slideframesep .3in
+\def\newslideframe#1{%
+ \@ifnextchar[{\@newslideframe{#1}}{\@newslideframe{#1}[]}}
+\def\@newslideframe#1[#2]{%
+ \@namedef{semsfops@#1}{#2}%
+ \@namedef{semsf@#1}##1}
+\newslideframe{plain}{\fbox{#1}}
+\def\slideframe{\@slideframe{slide}}
+\def\@slideframe#1{%
+ \@ifstar{\@testtrue\@@slideframe{#1}}{\@testfalse\@@slideframe{#1}}}
+\def\@@slideframe#1{%
+ \@ifnextchar[{\@@@slideframe{#1}}{\@@@slideframe{#1}[]}}
+\def\@@@slideframe#1[#2]#3{%
+ \def\@tempa{none}%
+ \def\@tempb{#3}%
+ \ifx\@tempa\@tempb
+ \@namedef{the#1frame}{\relax}%
+ \else
+ \ifx\@tempb\@empty
+ \@namedef{the#1frame}{}%
+ \else
+ \@ifundefined{semsf@#3}%
+ {\@seminarerr{Slide frame `#3' undefined}\@eha}%
+ {\if@test
+ \@@@@slideframe{#1}[#2]{#3}%
+ \else
+ \@namedef{the#1frame}{\setbox\@slidebox=\hbox{{%
+ \@nameuse{semsfops@#3}#2\@nameuse{semsf@#3}{\box\@slidebox}}}}%
+ \fi}%
+ \fi
+ \fi}
+\def\@@@@slideframe#1[#2]#3{%
+ \expandafter\let\expandafter\@tempa\csname the#1frame\endcsname
+ \edef\next{%
+ \noexpand\def\expandafter\noexpand\csname the#1frame\endcsname}%
+ \expandafter\next\expandafter{\@tempa
+ \setbox\@slidebox=\hbox{{%
+ \@nameuse{semsfops@#3}%
+ #2%
+ \@nameuse{semsf@#3}{\box\@slidebox}}}}}%
+\slideframe{plain}
+\def\slidestyle#1{\@ifundefined{ss@#1}%
+ {\@seminarerr{Slide style `#1' undefined}\@eha}%
+ {\@nameuse{ss@#1}}}
+\def\ss@empty{\let\add@slidelabel\@gobble}
+\def\ss@left{\def\add@slidelabel##1{%
+ \setbox\@slidebox=\hbox{%
+ \vbox to \ht\@slidebox{\vss
+ \hbox to 0pt{\hss##1\hskip 15pt}%
+ \vss}\box\@slidebox}}}
+\def\ss@bottom{\def\add@slidelabel##1{%
+ \setbox\@slidebox=\vbox{\copy\@slidebox\vskip 9pt
+ \hbox to\wd\@slidebox{\hss##1\hss}}}}%
+\ifarticle
+ \ifportrait\slidestyle{bottom}\else\slidestyle{left}\fi
+\else
+ \slidestyle{empty}
+\fi
+\def\slidelabel{\bf Slide \theslide}
+\def\newpagestyle#1#2#3{%
+ \expandafter\newcommand\csname ps@#1\endcsname{%
+ \def\@oddhead{#2}\let\@evenhead\@oddhead
+ \def\@oddfoot{#3}\let\@evenfoot\@oddfoot}}
+\def\renewpagestyle#1#2#3{%
+ \expandafter\renewcommand\csname ps@#1\endcsname{%
+ \def\@oddhead{#2}\let\@evenhead\@oddhead
+ \def\@oddfoot{#3}\let\@evenfoot\@oddfoot}}
+\def\@ifgoodps#1{%
+ \@ifundefined{ps@#1}{\@seminarerr{Page style `#1' undefined}\@eha}}
+\def\slidepagestyle#1{%
+ \@ifgoodps{#1}%
+ {\ifslide\pagestyle{#1}\else\edef\slide@pagestyle{#1}\fi}}
+\def\ps@{}
+\slidepagestyle{}
+\ifarticle
+ \def\ps@align{}
+\else
+ \def\ps@align{%
+ \def\@oddhead{\thepage\hfil+}\let\@evenhead\@oddhead
+ \def\@oddfoot{+\hfil+}\let\@evenfoot\@oddfoot}
+\fi
+\def\slideheadfont{\scriptsize}
+\def\slidefootfont{\scriptsize}
+\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or
+ 2074\or 2488\or 2986\or 3583\or 4300\or 5160\fi\relax}
+\def\magstepminus#1{%
+ \ifcase#1 \@m\or 833\or 694\or 579\or 482\or 401\fi\relax}
+\def\@magstep#1{%
+ \ifnum#1<\z@\magstepminus{-#1}\else\magstep#1\fi}
+{\catcode`\p=12\catcode`\t=12
+ \gdef\@@inv@@mag#1pt#2{\def#2{#1}}}
+\def\invert@mag#1{\@tempdima=1000pt
+ \divide\@tempdima by #1\relax
+ \expandafter\@@inv@@mag\the\@tempdima#1}
+\def\@slidesmag#1{%
+ \@tempcnta=#1\relax%
+ \ifnum\@tempcnta>0
+ \edef\inverseslidesmag{\the\@tempcnta}%
+ \invert@mag\inverseslidesmag
+ \ifarticle\else\mag\@tempcnta\fi
+ \else
+ \@seminarerr{\string\@slidesmag\space argument must be an
+ integer equal to 1000 times the magnification}\@eha
+ \fi}
+\def\@articlemag#1{%
+ \@tempcnta=#1\relax%
+ \ifnum\@tempcnta>0
+ \edef\inverseartmag{\the\@tempcnta}%
+ \invert@mag\inverseartmag
+ \ifarticle\mag\@tempcnta\fi
+ \else
+ \@seminarerr{\string\articlemag\space argument must be an
+ integer equal to 1000 times the magnification}\@eha
+ \fi}
+\addto@preamblecmds{\@slidesmag\do\@articlemag}
+\newdimen\semin
+\newdimen\semcm
+\def\@semmagerr#1{%
+ \@seminarerr{\string#1 argument must be an integer
+ between -5 and 9}\@eha}
+\def\slidesmag#1{%
+ \@tempcnta=#1\relax
+ \ifnum\@tempcnta>-6
+ \ifnum\@tempcnta<10
+ \edef\the@slidesmag{\the\@tempcnta}%
+ \@slidesmag{\@magstep\@tempcnta}%
+ \else
+ \@semmagerr\slidesmag
+ \fi
+ \else
+ \@semmagerr\slidesmag
+ \fi
+ \setslidelength\semin\seminlength
+ \setslidelength\semcm\semcmlength}
+\def\seminlength{1in}
+\def\semcmlength{1cm}
+\def\articlemag#1{%
+ \@tempcnta=#1\relax
+ \ifnum\@tempcnta>-6
+ \ifnum\@tempcnta<10
+ \edef\the@articlemag{\the\@tempcnta}%
+ \@articlemag{\@magstep\@tempcnta}%
+ \else
+ \@semmagerr\articlemag
+ \fi
+ \else
+ \@semmagerr\articlemag
+ \fi}
+\addto@preamblecmds{\slidesmag\do\articlemag}
+\def\setslidelength#1#2{%
+ #1=#2\relax
+ #1=\inverseslidesmag#1}%
+\def\addtoslidelength#1#2{%
+ \dimen@=#2\relax
+ \advance#1 by \inverseslidesmag\dimen@}
+\def\setartlength#1#2{%
+ #1=#2\relax
+ #1=\inverseartmag#1}
+\def\addtoartlength#1#2{%
+ \dimen@=#2\relax
+ \advance#1 by \inverseartmag\dimen@}
+\def\slide@epsfsize#1#2{%
+ \ifdim\epsfxsize=0pt
+ \ifdim\epsfysize=0pt
+ \inverseslidesmag#1%
+ \else
+ 0pt
+ \fi
+ \else
+ \inverseslidesmag\epsfxsize
+ \fi
+ \epsfysize
+ \ifdim\epsfysize=0pt
+ \ifdim\epsfxsize=0pt
+ \inverseslidesmag#2%
+ \else
+ 0pt
+ \fi
+ \else
+ \inverseslidesmag\epsfysize
+ \fi}
+\def\epsfslidesize{\let\epsfsize\slide@epsfsize}
+\slidesmag{4}
+\articlemag{0}
+\def\do@pageparameters{%
+ \do\oddsidemargin
+ \do\evensidemargin
+ \do\marginparwidth
+ \do\marginparsep
+ \do\topmargin
+ \do\headheight
+ \do\headsep
+ \do\textheight
+ \do\textwidth
+ \do\topskip
+ \do\footskip
+ \do\footheight}
+\ifarticle
+ \def\scale@pageparameters{%
+ \begingroup
+ \def\do##1{\global##1=\inverseartmag##1\relax}%
+ \do@pageparameters
+ \endgroup}
+\else
+ \def\scale@pageparameters{%
+ \begingroup
+ \def\do##1{\global##1=\inverseslidesmag##1\relax}%
+ \do@pageparameters
+ \endgroup}
+\fi
+\addto@hook\before@document{\scale@pageparameters}
+\addto@preamblecmds{\scale@pageparameters\do\do@pageparameters}
+\def\allversions{}
+\let\endallversions\relax
+\@namedef{allversions*}{\@bsphack\globaldefs=1}
+\@namedef{endallversions*}{\@esphack}
+\def\slide@list{slide,slide*,allversions,allversions*}
+\def\addtoslidelist#1{\xdef\slide@list{\slide@list,#1}}
+\addto@preamblecmds{\addtoslidelist}
+\ifslidesonly
+ \@ifundefined{xcomment@@@}{\@@input xcomment.sty }{}
+ \def\xcomment@hook{\@xcomment{@@@}{\slide@list}}
+ \newxcomment[]{note}
+\else
+ \def\note{\@bsphack}%
+ \def\endnote{\@esphack}%
+\fi
+\def\noxcomment{\def\xcomment@hook{}}
+\def\os@list{}
+\newif\if@os
+\def\onlyslides#1{\def\os@list{#1}\@ostrue
+ \def\os@warning{\@warning{\string\onlyslides\space argument
+ contains undefined references}}}
+\def\notslides#1{\def\os@list{#1}\@osfalse
+ \def\os@warning{\@warning{\string\notslides\space argument
+ contains undefined references}}}
+\addto@preamblecmds{\onlyslides\do\notslides}
+\addto@hook\after@document{%
+ \ifx\os@list\@empty\else\os@expandlist\fi}
+\def\os@expandlist{%
+ \let\os@@warning\relax
+ \begingroup
+ \def\ref##1{\@ifundefined{r@##1}{?}%
+ {\noexpand\@car\@nameuse{r@##1}\noexpand\@nil}}%
+ \edef\@tempd{\os@list}%
+ \xdef\os@list{}%
+ \@for\@tempc:=\@tempd
+ \do{\expandafter\os@expandrange\@tempc-:-:\@nil}%
+ \os@@warning
+ \endgroup
+ \let\os@expandrange\relax
+ \let\os@checknum\relax
+ \let\os@expandlist\relax}
+\def\os@expandrange#1-#2-#3\@nil{%
+ \def\@tempa{?}\def\@tempb{#1}%
+ \ifx\@tempa\@tempb
+ \let\os@@warning\os@warning
+ \else
+ \@tempcnta=#1\relax
+ \def\@tempb{#2}%
+ \ifx\@tempa\@tempb
+ \let\os@@warning\os@warning
+ \else
+ \def\@tempa{:}%
+ \ifx\@tempa\@tempb
+ \@tempcntb=\@tempcnta
+ \else
+ \@tempcntb=#2\relax
+ \fi
+ \advance\@tempcnta by -1
+ \advance\@tempcntb by 1
+ \ifx\os@list\@empty
+ \xdef\os@list{\the\@tempcnta+\the\@tempcntb}%
+ \else
+ \xdef\os@list{\os@list,\the\@tempcnta+\the\@tempcntb}%
+ \fi
+ \fi
+ \fi}
+\def\os@test{%
+ \@testtrue
+ \iflandscape
+ \ifnum\@landscapeonly=-1 \@testfalse\fi
+ \else
+ \ifnum\@landscapeonly=1 \@testfalse\fi
+ \fi
+ \if@test
+ \ifx\os@list\@empty\else
+ \if@os\@testfalse\fi
+ \@for\@tempa:=\os@list\do{\expandafter\os@testrange\@tempa\@nil}%
+ \fi
+ \fi}
+\def\os@testrange#1+#2\@nil{%
+ \ifnum\c@slide>#1
+ \ifnum\c@slide<#2
+ \if@os\@testtrue\else\@testfalse\fi
+ \fi
+ \fi}
+\def\onlynotestoo{%
+ \ifnotes\@testtrue\else\ifnotesonly\@testtrue\else\@testfalse\fi\fi
+ \if@test
+ \@ifundefined{xcomment@@@}{%
+ \edef\sem@temp{\the\catcode`\@}%
+ \catcode`\@=11
+ \@@input xcomment.sty
+ \catcode`\@=\sem@temp\relax}{}%
+ \def\xcomment@hook{\@xcomment{@@@}{\slide@list}}%
+ \addto@hook\after@slide\onlynotes@too
+ \fi}
+\def\onlynotes@too{%
+ \os@test
+ \if@test\gdef\do@end{}\else\gdef\do@end{\xc@begin}\fi}
+\addto@preamblecmds\onlynotestoo
+\def\ptsize#1{%
+ \@ifundefined{#1@semptsize}%
+ {\@seminarerr{\string\ptsize\space `#1' not valid.}\@eha}%
+ {\ifslide
+ \sem@ptsize{#1}\large\normalsize
+ \else
+ \edef\slide@ptsize{#1}%
+ \fi}}
+\edef\slide@ptsize{1\@ptsize}%
+\def\slidefontsizes{\ptsize} %For backwards compatibility??
+\def\slide@setsize#1#2#3#4{%
+ \@setsize{#1}{#2}{#3}{#4}%
+ \set@slideskip{#2}}
+\def\slide@@setsize#1#2#3#4{%
+ \slide@setsize{#1}{#2}{#3}{#4}\slidedisplayskips}
+\def\set@slideskip#1{%
+ \normallineskiplimit=#1
+ \advance\normallineskiplimit-\normalbaselineskip
+ \multiply\normallineskiplimit-1
+ \normallineskiplimit\slideskip\normallineskiplimit
+ \ifdim\normallineskiplimit<1pt\normallineskiplimit=1pt\fi
+ \normallineskip=\normallineskiplimit
+ minus \slideshrink\normallineskiplimit
+ \dimen@=\normalbaselineskip
+ \normalbaselineskip=\dimen@ minus \slideshrink\normallineskiplimit
+ \normalbaselines}
+\def\slideskip{.75}
+\def\slideshrink{.25}
+\def\slidedisplayskips{%
+ \abovedisplayskip 1.75ex minus .35ex
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip .2ex minus .2ex
+ \belowdisplayshortskip 1ex minus .2ex}
+\def\sem@ptsize#1{%
+ \@nameuse{#1@semptsize}%
+ \large\normalsize
+ \leftmargini\slideleftmargini\relax
+ \leftmarginii\slideleftmarginii\relax
+ \leftmarginiii\slideleftmarginiii\relax
+ \labelsep\slidelabelsep\relax
+ \parskip\slideparskip\relax
+ \parindent\slideparindent\relax
+ \slide@rightskip
+ \slide@listi
+ \skip\footins\slidefootins\relax
+ \footnotesep\slidefootnotesep\relax}
+\def\slidefootins{2ex minus .8ex}
+\def\slidefootnotesep{1.2ex}
+\def\slideparindent{\z@}
+\def\slideparskip{1ex minus .2ex}
+\@namedef{8@semptsize}{%
+ \def\@normalsize{\slide@@setsize\normalsize{9.5pt}\viiipt\@viiipt}%
+ \def\small{\slide@@setsize\small{8pt}\viipt\@viipt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{8pt}\vipt\@vipt}%
+ \def\scriptsize{\slide@setsize\scriptsize{7pt}\vipt\@vipt}%
+ \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
+ \def\large{\slide@setsize\large{12pt}\xpt\@xpt}%
+ \def\Large{\slide@setsize\Large{14pt}\xiipt\@xiipt}%
+ \def\LARGE{\slide@setsize\LARGE{17pt}\xivpt\@xivpt}%
+ \def\huge{\slide@setsize\huge{20pt}\xviipt\@xviipt}%
+ \def\Huge{\slide@setsize\Huge{25pt}\xxpt\@xxpt}}
+\@namedef{9@semptsize}{%
+ \def\@normalsize{\slide@@setsize\normalsize{11pt}\ixpt\@ixpt}%
+ \def\small{\slide@@setsize\small{9.5pt}\viiipt\@viiipt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{8pt}\viipt\@viipt}%
+ \def\scriptsize{\slide@setsize\scriptsize{7pt}\vipt\@vipt}%
+ \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
+ \def\large{\slide@setsize\large{12pt}\xpt\@xpt}%
+ \def\Large{\slide@setsize\Large{14pt}\xiipt\@xiipt}%
+ \def\LARGE{\slide@setsize\LARGE{17pt}\xivpt\@xivpt}%
+ \def\huge{\slide@setsize\huge{20pt}\xviipt\@xviipt}%
+ \def\Huge{\slide@setsize\Huge{25pt}\xxpt\@xxpt}}
+\@namedef{10@semptsize}{%
+ \def\@normalsize{\slide@@setsize\normalsize{12pt}\xpt\@xpt}%
+ \def\small{\slide@@setsize\small{11pt}\ixpt\@ixpt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{9.5pt}\viiipt\@viiipt}%
+ \def\scriptsize{\slide@setsize\scriptsize{8pt}\viipt\@viipt}%
+ \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
+ \def\large{\slide@setsize\large{14pt}\xiipt\@xiipt}%
+ \def\Large{\slide@setsize\Large{18pt}\xivpt\@xivpt}%
+ \def\LARGE{\slide@setsize\LARGE{22pt}\xviipt\@xviipt}%
+ \def\huge{\slide@setsize\huge{25pt}\xxpt\@xxpt}%
+ \def\Huge{\slide@setsize\Huge{30pt}\xxvpt\@xxvpt}}
+\@namedef{11@semptsize}{%
+ \def\@normalsize{\slide@@setsize\normalsize{13.6pt}\xipt\@xipt}%
+ \def\small{\slide@@setsize\small{12pt}\xpt\@xpt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{11pt}\ixpt\@ixpt}%
+ \def\scriptsize{\slide@setsize\scriptsize{9.5pt}\viiipt\@viiipt}%
+ \def\tiny{\slide@setsize\tiny{7pt}\vipt\@vipt}%
+ \def\large{\slide@setsize\large{14pt}\xiipt\@xiipt}%
+ \def\Large{\slide@setsize\Large{18pt}\xivpt\@xivpt}%
+ \def\LARGE{\slide@setsize\LARGE{22pt}\xviipt\@xviipt}%
+ \def\huge{\slide@setsize\huge{25pt}\xxpt\@xxpt}%
+ \def\Huge{\slide@setsize\Huge{30pt}\xxvpt\@xxvpt}}
+\@namedef{12@semptsize}{%
+ \def\@normalsize{\slide@@setsize\normalsize{14.5pt}\xiipt\@xiipt}%
+ \def\small{\slide@@setsize\small{13.6pt}\xipt\@xipt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{12pt}\xpt\@xpt}%
+ \def\scriptsize{\slide@setsize\scriptsize{9.5pt}\viiipt\@viiipt}%
+ \def\tiny{\slide@setsize\tiny{7pt}\vipt\@vipt}%
+ \def\large{\slide@setsize\large{18pt}\xivpt\@xivpt}%
+ \def\Large{\slide@setsize\Large{22pt}\xviipt\@xviipt}%
+ \def\LARGE{\slide@setsize\LARGE{25pt}\xxpt\@xxpt}%
+ \def\huge{\slide@setsize\huge{30pt}\xxvpt\@xxvpt}%
+ \let\Huge\huge}
+\@namedef{14@semptsize}{%
+ \def\@normalsize{\slide@@setsize\normalsize{18pt}\xivpt\@xivpt}%
+ \def\small{\slide@@setsize\small{14.5pt}\xiipt\@xiipt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{13.6pt}\xipt\@xipt}%
+ \def\scriptsize{\slide@setsize\scriptsize{12pt}\xpt\@xpt}%
+ \def\tiny{\slide@setsize\tiny{9.5pt}\viiipt\@viiipt}%
+ \def\large{\slide@setsize\large{22pt}\xviipt\@xviipt}%
+ \def\Large{\slide@setsize\Large{25pt}\xxpt\@xxpt}%
+ \def\LARGE{\slide@setsize\LARGE{30pt}\xxvpt\@xxvpt}%
+ \let\huge\LARGE
+ \let\Huge\LARGE}
+\@namedef{17@semptsize}{%
+ \def\@normalsize{\slide@@setsize\normalsize{22pt}\xviipt\@xviipt}%
+ \def\small{\slide@@setsize\small{18pt}\xivpt\@xivpt}%
+ \def\footnotesize{\slide@@setsize\footnotesize{14.5pt}\xiipt\@xiipt}%
+ \def\scriptsize{\slide@setsize\scriptsize{13.6pt}\xipt\@xipt}%
+ \def\tiny{\slide@setsize\tiny{12pt}\xpt\@xpt}%
+ \def\large{\slide@setsize\large{25pt}\xxpt\@xxpt}%
+ \def\Large{\slide@setsize\Large{30pt}\xxvpt\@xxvpt}%
+ \let\LARGE\Large
+ \let\huge\Large
+ \let\Huge\Large}
+\def\twoup{\@ifnextchar[{\@twoup}{\@twoup[0]}}
+\ifarticle
+ \ifportrait
+ \def\@twoup[#1]{%
+ \@tempcnta=\the@articlemag\relax
+ \@tempcntb=\@tempcnta
+ \advance\@tempcntb by #1\relax
+ \advance\@tempcntb by -2\relax
+ \ifnum\@tempcntb>-6\relax
+ \@@input 2up.tex
+ \source{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
+ \target{\@magstep\@tempcntb}{\paperwidth}{\paperheight}%
+ \targetlayout{topbottom}%
+ \printlandscapefalse
+ \else
+ \@seminarerr{Article magnification is too low for
+ \string\twoup\space to handle}\@eha
+ \fi
+ \def\articlemag##1{\@semtwoupmagerr\articlemag}}
+ \else
+ \def\@twoup[#1]{%
+ \@tempcnta=\the@articlemag\relax
+ \@tempcntb=\@tempcnta
+ \advance\@tempcntb by #1\relax
+ \advance\@tempcntb by -2\relax
+ \ifnum\@tempcntb>-6\relax
+ \@@input 2up.tex
+ \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}%
+ \target{\@magstep\@tempcntb}{\paperheight}{\paperwidth}%
+ \if@twoside
+ \targetlayout{twosided}%
+ \fi
+ \printlandscapetrue
+ \else
+ \@seminarerr{Article magnification is too low for
+ \string\twoup\space to handle}\@eha
+ \fi
+ \def\articlemag##1{\@semtwoupmagerr\articlemag}}
+ \fi
+\else
+ \ifportrait
+ \def\@twoup[#1]{%
+ \@tempcnta=\the@slidesmag\relax
+ \@tempcntb=\@tempcnta
+ \advance\@tempcntb by #1\relax
+ \advance\@tempcntb by -3\relax
+ \ifnum\@tempcntb>-6\relax
+ \@@input 2up.tex
+ \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}%
+ \advance\@tempcnta by -3
+ \target{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
+ \printlandscapetrue
+ \else
+ \@seminarerr{Slides magnification is too low for
+ \string\twoup\space to handle}\@eha
+ \fi
+ \def\slidesmag##1{\@semtwoupmagerr\slidesmag}}
+ \else
+ \def\@twoup[#1]{%
+ \@tempcnta=\the@slidesmag\relax
+ \@tempcntb=\@tempcnta
+ \advance\@tempcntb by #1\relax
+ \advance\@tempcntb by -3\relax
+ \ifnum\@tempcntb>-6\relax
+ \@@input 2up.tex
+ \source{\@magstep\@tempcnta}{\paperheight}{\paperwidth}%
+ \target{\@magstep\@tempcntb}{\paperwidth}{\paperheight}%
+ \targetlayout{topbottom}%
+ \printlandscapefalse
+ \else
+ \@seminarerr{Slides magnification is too low for
+ \string\twoup\space to handle}\@eha
+ \fi
+ \def\slidesmag##1{\@semtwoupmargerr\slidesmag}}%
+ \fi
+\fi
+\def\@semtwoupmagerr#1{%
+ \@seminarerr{\string#1 must come before \string\twoup}\@eha}
+\addto@preamblecmds{\twoup\do\@twoup}
+\openin1 seminar.con
+\ifeof1\else\closein1 \relax\@@input seminar.con\fi
+\endinput
+%%
+%% End of file `seminar.sty'.
diff --git a/macros/latex/contrib/seminar/latex/semlayer.sty b/macros/latex/contrib/seminar/latex/semlayer.sty
new file mode 100644
index 0000000000..de15ca1d9e
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/semlayer.sty
@@ -0,0 +1,158 @@
+%% BEGIN semlayer.sty
+%%
+%% This is file `semlayer.sty', generated
+%% on <1993/4/2> with the docstrip utility (2.0r).
+%%
+%% The original source files were:
+%%
+%% semlayer.doc
+%%
+\def\fileversion{1.0}
+\def\filedate{93/04/01}
+%%
+%% LaTeX style option `semlayer.sty'.
+%% For use with LaTeX v2.09 and the `seminar' document style.
+%%
+%% COPYRIGHT 1993, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%%
+\addto@hook\before@newslide{%
+ \global\def\overlay@list{}%
+ \setcounter{overlay}{0}}
+\newbox\@@slidebox
+\def\process@@slide{%
+ \ifx\overlay@list\@empty
+ \finish@slide
+ \output@slide
+ \else
+ \setbox\@@slidebox\box\@slidebox
+ \make@overlay{0}%
+ \finish@slide
+ \output@slide
+ {\let\theoverlay\theslide\layer@loop{0}}%
+ \overlay@loop
+ \fi}
+\def\overlay@loop{%
+ \begingroup
+ \overlay@prep
+ \c@overlay=1
+ \@whilenum\c@overlay<10
+ \do{%
+ \test@member{\the\c@overlay}{\overlay@list}%
+ \if@test
+ \make@overlay{\the\c@overlay}%
+ \finish@slide
+ \output@slide
+ \fi
+ \layer@loop{\the\c@overlay}%
+ \advance\c@overlay by 1}%
+ \endgroup}
+\def\layer@loop#1{%
+ \begingroup
+ \layer@prep
+ \@for\currlayer:=\layer@list\do{%
+ \test@member{#1-\currlayer}{\overlay@list}%
+ \if@test
+ \make@overlay{#1-\currlayer}%
+ \finish@slide
+ \output@slide
+ \fi}%
+ \endgroup}
+\def\layer@prep{%
+ \ifarticle\pagestyle{\layer@pagestyle}\fi
+ \let\thepage\thelayer
+ \ifx\thelayerframe\@empty\else\let\theslideframe\thelayerframe\fi
+ \let\slidelabel\layerlabel}
+\def\overlay@prep{%
+ \ifarticle\pagestyle{\overlay@pagestyle}\fi
+ \let\thepage\theoverlay
+ \ifx\theoverlayframe\@empty\else\let\theslideframe\theoverlayframe\fi
+ \let\slidelabel\overlaylabel}
+\def\layerframe{\@slideframe{layer}}
+\def\overlayframe{\@slideframe{overlay}}
+\def\thelayerframe{}
+\def\theoverlayframe{}
+\def\overlaylabel{\bf Overlay \theoverlay}
+\def\layerlabel{\bf Layer \thelayer}
+\@ifundefined{c@overlay}{\newcounter{overlay}}{}%%% hv 20131224
+%\newcounter{overlay}
+\def\theoverlay{\theslide-\alph{overlay}}
+\def\currlayer{}
+\def\thelayer{\theoverlay-\currlayer}
+\newif\ifoverlays
+\newif\iflayers
+\@ifundefined{@overlay}%
+ {\let\@overlay\relax}%
+ {\ifarticle\else\overlaystrue\layerstrue\fi}
+\def\nooverlays@err{%
+ \@seminarerr{You need to use additional macros for overlays,
+ e.g., semcolor.sty}\@ehd
+ \global\overlaysfalse
+ \global\layersfalse}
+\@ifundefined{@overlay}{}{}
+\def\overlay#1{%
+ \ifoverlays\ifx\@overlay\relax\nooverlays@err\fi\fi
+ \ifslide
+ \@tempcnta=#1
+ \@testfalse
+ \ifnum\@tempcnta>-1 \ifnum\@tempcnta<10 \@testtrue\fi\fi
+ \if@test
+ \c@overlay=\@tempcnta
+ \ifnum\c@overlay=0
+ \advance\c@slide by -1
+ \refstepcounter{slide}%
+ \else
+ \advance\c@overlay by -1
+ \refstepcounter{overlay}%
+ \ifoverlays
+ \xdef\overlay@list{\overlay@list,\the\c@overlay}%
+ \fi
+ \fi
+ \ifoverlays
+ \@overlay{\the\c@overlay}%
+ \fi
+ \else
+ \@seminarerr{\string\overlay\space argument must be
+ an integer between 0 and 9}\@eha
+ \fi
+ \else
+ \@seminarerr{\string\overlay\space can only be used
+ in slide environments}\@eha
+ \fi
+ \ignorespaces}
+\def\colorlayers#1{%
+ \edef\@tempc{#1}%
+ \edef\layer@list{\layer@list,#1}%
+ \def\@tempa##1{%
+ \@namedef{##1}{%
+ \iflayers\ifx\@overlay\relax\nooverlays@err\fi\fi
+ \ifslide
+ \iflayers
+ \xdef\overlay@list{\overlay@list,\the\c@overlay-##1}%
+ \@overlay{\the\c@overlay-##1}%
+ \fi
+ \else
+ \@seminarerr{Color layer `##1' can only be used in
+ slide environments}\@eha
+ \fi}}
+ \@for\@tempb:=\@tempc\do{%
+ \expandafter\@tempa\expandafter{\@tempb}}}
+\def\layer@list{}
+\def\overlaypagestyle#1{\@ifgoodps{#1}{\edef\overlay@pagestyle{#1}}}
+\def\layerpagestyle#1{\@ifgoodps{#1}{\edef\layer@pagestyle{#1}}}
+\overlaypagestyle{}
+\layerpagestyle{}
+
+\endinput
+%%
+%% End of file `semlayer.sty'.
diff --git a/macros/latex/contrib/seminar/latex/semlcmss.sty b/macros/latex/contrib/seminar/latex/semlcmss.sty
new file mode 100644
index 0000000000..8276f8f179
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/semlcmss.sty
@@ -0,0 +1,170 @@
+%% BEGIN semlcmss.sty
+\def\fileversion{1.0 (2e)}
+\def\filedate{94/02/01}
+%%
+%% LaTeX style option `semlcmss.sty' for the `seminar' document style.
+%% For use with LaTeX v2.09 and the New Font Selection Scheme (1 or 2)
+%% or (some day) with LaTeX2e.
+%%
+%% COPYRIGHT 1994, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%%
+%% This file contains the external font information needed to load
+%% the SliTeX sans serif fonts for use by seminar.sty.
+%%
+\csname semlcmss@loaded\endcsname
+\let\semlcmss@loaded\endinput
+\typeout{Style Option: `semlcmss' \fileversion\space <\filedate> (tvz)}
+\@ifundefined{selectfont}
+ {\@seminarerr{`semlcmss' style option can only be used
+ with the New Font Selection Scheme}\@eha\endinput}{}
+%
+\expandafter\ifx\csname DeclareSizeFunction\endcsname\relax
+
+% First, the font definitions:
+\new@fontshape{lcmss}{m}{n}{%
+ <5>lcmss8 scaled 695%
+ <6>lcmss8 scaled 833%
+ <7>lcmss8 scaled 913%
+ <8>lcmss8 %
+ <9>lcmss8 scaled 1095%
+ <10>lcmss8 scaled 1200%
+ <11>lcmss8 scaled 1314%
+ <12>lcmss8 scaled 1440%
+ <14>lcmss8 scaled 1727%
+ <17>lcmss8 scaled 2074%
+ <20>lcmss8 scaled 2488%
+ <25>lcmss8 scaled 2986%
+ }{}
+\extra@def{lcmss}{}{}
+%
+\new@fontshape{lcmss}{m}{it}{%
+ <5>lcmssi8 scaled 695%
+ <6>lcmssi8 scaled 833%
+ <7>lcmssi8 scaled 913%
+ <8>lcmssi8 %
+ <9>lcmssi8 scaled 1095%
+ <10>lcmssi8 scaled 1200%
+ <11>lcmssi8 scaled 1314%
+ <12>lcmssi8 scaled 1440%
+ <14>lcmssi8 scaled 1727%
+ <17>lcmssi8 scaled 2074%
+ <20>lcmssi8 scaled 2488%
+ <25>lcmssi8 scaled 2986%
+ }{}
+\extra@def{lcmss}{}{}
+\subst@fontshape{lcmss}{m}{sl}{lcmss}{m}{it}
+%
+\new@fontshape{lcmss}{bx}{n}{%
+ <5>lcmssb8 scaled 695%
+ <6>lcmssb8 scaled 833%
+ <7>lcmssb8 scaled 913%
+ <8>lcmssb8 %
+ <9>lcmssb8 scaled 1095%
+ <10>lcmssb8 scaled 1200%
+ <11>lcmssb8 scaled 1314%
+ <12>lcmssb8 scaled 1440%
+ <14>lcmssb8 scaled 1727%
+ <17>lcmssb8 scaled 2074%
+ <20>lcmssb8 scaled 2488%
+ <25>lcmssb8 scaled 2986%
+ }{}
+\extra@def{cmssb}{}{}
+\subst@fontshape{lcmss}{bx}{it}{lcmss}{bx}{n}
+\subst@fontshape{lcmss}{bx}{sl}{lcmss}{bx}{n}
+
+%
+% Now define \slidefonts:
+\ifarticle
+ \def\slidefonts{%
+ \def\default@family{lcmss}%
+ \def\rmdefault{lcmss}%
+ \def\sfdefault{lcmss}%
+ \family\default@family\selectfont}
+\else
+ \def\default@family{lcmss}%
+ \def\rmdefault{lcmss}%
+ \def\sfdefault{lcmss}%
+ \family\default@family\selectfont
+\fi
+
+\else
+
+\DeclareFontFamily{OT1}{lcmss}{}{}
+\DeclareFontShape{OT1}{lcmss}{m}{n}{
+ <5>s*[1.1120]lcmss8
+ <6>s*[1.1107]lcmss8
+ <7>s*[1.0434]lcmss8
+ <8>lcmss8
+ <9>s*[0.9733]lcmss8
+ <10><10.95><12><14.4><17.28><20.74><24.88>s*[0.96]lcmss8}{}
+
+\DeclareFontShape{OT1}{lcmss}{m}{sl}{
+ <5>s*[1.1120]lcmssi8
+ <6>s*[1.1107]lcmssi8
+ <7>s*[1.0434]lcmssi8
+ <8>lcmssi8
+ <9>s*[0.9733]lcmssi8
+ <10><10.95><12><14.4><17.28><20.74><24.88>s*[0.96]lcmssi8}{}
+
+\DeclareFontShape{OT1}{lcmss}{bx}{n}{
+ <5>s*[1.1120]lcmssb8
+ <6>s*[1.1107]lcmssb8
+ <7>s*[1.0434]lcmssb8
+ <8>lcmssb8
+ <9>s*[0.9733]lcmssb8
+ <10><10.95><12><14.4><17.28><20.74><24.88>s*[0.96]lcmssb8}{}
+
+\DeclareFontShape{OT1}{lcmss}{m}{it}{<-> ssub * lcmss/m/sl }{}
+\DeclareFontShape{OT1}{lcmss}{bx}{it}{<-> sub * lcmss/bx/n }{}
+\DeclareFontShape{OT1}{lcmss}{bx}{sl}{<-> sub * lcmss/bx/n }{}
+
+% Now define \slidefonts:
+\ifarticle
+ \def\slidefonts{%
+ \def\default@family{lcmss}%
+ \def\rmdefault{lcmss}%
+ \def\sfdefault{lcmss}%
+ \fontfamily\default@family\selectfont}
+\else
+ \def\default@family{lcmss}%
+ \def\rmdefault{lcmss}%
+ \def\sfdefault{lcmss}%
+ \fontfamily\default@family\selectfont
+\fi
+
+\fi
+
+% Now set up a few things for seminar.sty:
+% These fonts are intended to be used with the 10pt font size
+% declarations (and \magstep4), slightly modified:
+\ptsize{10}\slidesmag{4}\articlemag{0}
+\@namedef{10@semptsize}{%
+ \def\@normalsize{\slide@@setsize\normalsize{12pt}\xpt\@xpt}%
+ \def\small{\footnotesize}%
+ \def\footnotesize{\slide@@setsize\footnotesize{9.5pt}\viiipt\@viiipt}%
+ \def\scriptsize{\footnotesize}%
+ \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}%
+ \def\large{\slide@setsize\large{14pt}\xiipt\@xiipt}%
+ \def\Large{\slide@setsize\Large{18pt}\xivpt\@xivpt}%
+ \def\LARGE{\slide@setsize\LARGE{22pt}\xviipt\@xviipt}%
+ \def\huge{\slide@setsize\huge{25pt}\xxpt\@xxpt}%
+ \def\Huge{\huge}}
+\def\semlcmss@warning#1{%
+ \@warning{Can't use `\string#1' with the semlcmss option!}}
+\def\ptsize#1{\semlcmss@warning\ptsize}
+\def\slidesmag#1{\semlcmss@warning\slidesmag}
+\def\articlemag#1{\semlcmss@warning\articlemag}
+
+\endinput
+%% END semlcmss.sty
diff --git a/macros/latex/contrib/seminar/latex/semrot.sty b/macros/latex/contrib/seminar/latex/semrot.sty
new file mode 100644
index 0000000000..4b0d400a0d
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/semrot.sty
@@ -0,0 +1,80 @@
+%% BEGIN sem-rot.sty
+\def\fileversion{1.0}
+\def\filedate{93/04/01}
+%%
+%% LaTeX style option `semrot.sty'.
+%% For use with LaTeX v2.09 and the `seminar' document style.
+%%
+%% COPYRIGHT 1993, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%%
+%% The following is just an interface for seminar.sty:
+\def\leftsliderotation#1{\@rotate[l]{#1}}
+\def\rightsliderotation#1{\@rotate[r]{#1}}
+\sliderotation{left}
+%%
+%% And the rest is rotate.sty, as distributed with Rokicki's dvips.
+%%
+% These macros allow you to rotate or flip a \TeX\ box. Very useful for
+% sideways tables or upsidedown answers.
+%
+% To use, create a box containing the information you want to rotate.
+% (An hbox or vbox will do.) Now call \@rotr\boxnum to rotate the
+% material and create a new box with the appropriate (flipped) dimensions.
+% \@rotr rotates right, \@rotl rotates left, \@rotu turns upside down, and
+% \@rotf flips. These boxes may contain other rotated boxes.
+%
+\newdimen\@rotdimen
+\newbox\@rotbox
+
+\def\@vspec#1{\special{ps:#1}}% passes #1 verbatim to the output
+\def\@rotstart#1{\@vspec{gsave currentpoint currentpoint translate
+ #1 neg exch neg exch translate}}% #1 can be any origin-fixing transformation
+\def\@rotfinish{\@vspec{currentpoint grestore moveto}}% gets back in synch
+%
+% First, the rotation right. The reference point of the rotated box
+% is the lower right corner of the original box.
+%
+\def\@rotr#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1%
+ \hbox to\@rotdimen{\hskip\ht#1\vbox to\wd#1{\@rotstart{90 rotate}%
+ \box#1\vss}\hss}\@rotfinish}
+%
+% Next, the rotation left. The reference point of the rotated box
+% is the upper left corner of the original box.
+%
+\def\@rotl#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1%
+ \hbox to\@rotdimen{\vbox to\wd#1{\vskip\wd#1\@rotstart{270 rotate}%
+ \box#1\vss}\hss}\@rotfinish}%
+%
+% Upside down is simple. The reference point of the rotated box
+% is the upper right corner of the original box. (The box's height
+% should be the current font's xheight, \fontdimen5\font,
+% if you want that xheight to be at the baseline after rotation.)
+%
+\def\@rotu#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1%
+ \hbox to\wd#1{\hskip\wd#1\vbox to\@rotdimen{\vskip\@rotdimen
+ \@rotstart{-1 dup scale}\box#1\vss}\hss}\@rotfinish}%
+%
+% And flipped end for end is pretty ysae too. We retain the baseline.
+%
+\def\@rotf#1{\hbox to\wd#1{\hskip\wd#1\@rotstart{-1 1 scale}%
+ \box#1\hss}\@rotfinish}%
+%
+% Now the user interface for LaTeX: \rotate[type]{text} where
+% ``type'' is `l' for left, `r' for right, `u' for upside-down, or
+% `f' for flip. `l' is the default.
+%
+\def\rotate{\@ifnextchar[{\@rotate}{\@rotate[l]}}
+\def\@rotate[#1]#2{\setbox\@rotbox=\hbox{#2}\@nameuse{@rot#1}\@rotbox}
+\endinput
+%% END sem-rot.sty
diff --git a/macros/latex/contrib/seminar/latex/slidesec.sty b/macros/latex/contrib/seminar/latex/slidesec.sty
new file mode 100644
index 0000000000..a7dd283ef2
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/slidesec.sty
@@ -0,0 +1,198 @@
+%% BEGIN slidesec.sty
+\def\fileversion{v0.9}
+\def\filedate{92/05/07}
+%%
+%% Style option slidesec.sty, for use with LaTeX 2.09 or SliTeX.
+%%
+%% COPYRIGHT 1992, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu
+%%
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%%
+% DISCLAIMER:
+%
+% Someone who actually uses something like this should rewrite it.
+%
+% DESCRIPTION:
+%
+% This file contains macros for sections, headings, tables of contents,
+% and lists of slides, for slides. It can probably be used with your
+% favorite LaTeX slide package (e.g., seminar.sty).
+% However:
+%% If the counter used to keep track of slides is not slide ,
+%% then change the following line:
+\def\@SCTR{\theslide}
+%%
+% ACKNOWLEDGEMENTS:
+%
+% The idea comes from Young U. Ryu's lslides.sty.
+%
+% USAGE:
+%
+% \slideheading[#1]{#2}
+% * Analogous to \section.
+% * [#1] is optional; \slideheading{#1} is same as \slideheading[#1]{#2}.
+% * Advances slidesection counter.
+% * Sets \theslideheading to #1; can be used, e.g., in headers and footers.
+% * Adds #1 to slide contents file.
+% * If #2 is non-empty, invokes \makeslideheading{#2} to make a heading.
+% Default definition of \makeslideheading is
+% \begin{center}\large\bf #2 \end{center}
+% but you can redefine this to suit your tastes.
+%
+% \slidesubheading[#1]{#2}
+% * Analogous to \subsection.
+% * Like \slideheading, but add "sub" to all the names.
+%
+% \slideheading and \slidesubheading are meant to be used at most once in
+% a slide, but this is not a binding restriction.
+%
+% You may want to define abbreviated forms. E.g.,
+% \newcommand{heading}{\slideheading}
+% \newcommand{subheading}{\slidesubheading}
+%
+% \listofslides
+% * Analogous to \listoftables.
+%
+% \slidecontents
+% * Analogous to \tableofcontents
+%
+% \Slidecontents
+% * List \slidecontents, but puts some check marks and stuff to
+% indicate what you have covered so far and what is coming up.
+% Meant to be used in the middle of a presentation.
+%
+% To change fonts and otherwise customize what you get from \listofslides,
+% \slidecontents, and \Slidecontents, you have to hack at the definitions
+% of these macros.
+%
+% BUGS:
+%
+% These macros have not been tested very much.
+%
+% IMPLEMENTATION:
+%
+\@ifundefined{@startlos}{}{\endinput}
+\typeout{File `slidesec.sty' \fileversion\space\space
+ \filedate\space\space <tvz>}
+%
+% If we use \@starttoc{los} to read in \jobname.los, then its contents
+% are destroyed and we can't read it again. \@startlos is like \@starttoc,
+% but it sets the flae \los@flag to 1, and then we add a few commands
+% to \enddocument that open \filename.los if \los@flag=1.
+%
+\def\los@flag{0}%
+\def\@startlos{%
+ \begingroup\makeatletter\@input{\jobname.los}\endgroup
+ \gdef\los@flag{1}\global\@nobreakfalse}
+\newtoks\@temptokenb
+\@temptokena{%
+ \ifnum\los@flag=1\if@filesw
+ \newwrite\tf@los\immediate\openout\tf@los\jobname.los\relax
+ \fi\fi}
+\expandafter\@temptokenb\expandafter{\enddocument}
+\edef\enddocument{\the\@temptokena\the\@temptokenb}
+%
+\newcounter{slidesection}
+\newcounter{slidesubsection}
+\def\theslidesection{\arabic{slidesection}}
+\def\thesubslidesection{\theslidesection.\arabic{subslidesection}}
+%
+\def\slideheading{\@dblarg\slide@heading}%
+\def\slide@heading[#1]#2{%
+ \stepcounter{slidesection}%
+ \addtocontents{los}{\protect\l@slide
+ {\the\c@slidesection}{\ignorespaces#1}{\@SCTR}}%
+ \gdef\theslideheading{#1}%
+ \def\@tempa{#2}%
+ \ifx\@tempa\@empty\else
+ {\edef\@currentlabel{\csname p@slidesection\endcsname\theslidesection}%
+ \makeslideheading{#2}}%
+ \fi}
+\def\slidesubheading{\@dblarg\slide@subheading}
+\def\slide@subheading[#1]#2{%
+ \stepcounter{slidesection}%
+ \addtocontents{los}{\protect\l@subslide
+ {\the\c@slidesubsection}{\ignorespaces#1}{\@SCTR}}%
+ \gdef\theslidesubheading{#1}%
+ \def\@tempa{#2}%
+ \ifx\@tempa\@empty\else
+ {\edef\@currentlabel{\csname p@slidesubsection\endcsname
+ \theslidesubsection}\makeslideheading{#2}}%
+ \fi}
+\def\theslideheading{}\def\theslidesubheading{}
+%
+\def\makeslideheading#1{%
+ \begin{center}\large\bf #1\end{center}}
+\def\makeslidesubheading{\makeslideheading}
+%
+\def\@undottedtocline#1#2#3#4#5{\vskip \z@ plus .2pt
+ \bgroup
+ \leftskip #2\relax \parindent #2\relax\@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \@tempdima #3\relax \advance\leftskip \@tempdima
+ \hbox{}\hskip -\leftskip
+ #4\par
+ \egroup}
+\def\slide@dottedcline{\@dottedtocline{1}{1.5em}{2.3em}}
+\def\slide@undottedcline{\@undottedtocline{1}{1.5em}{2.3em}}
+\def\slide@cline{\slide@dottedcline}
+%
+\def\slidenumberline#1{\hbox to\@tempdima{\hss#1\hskip 1em}}
+%
+\def\listofslides{\section*{List of Slides%
+ \@mkboth{LIST OF SLIDES}{LIST OF SLIDES}}%
+ \def\l@slide##1##2##3{%
+ \slide@undottedcline{\slidenumberline{##3}{##2}}{}}%
+ \let\l@subslide\l@slide
+ \@startlos}
+%
+\def\slidecontents{\@ifstar%
+ {\def\slide@cline{\slide@undottedcline}\slide@contents}%
+ {\def\slide@cline{\slide@dottedcline}\slide@contents}}
+\def\slide@contents{%
+ \def\l@slide##1##2##3{%
+ \slide@cline{\slidenumberline{$\bullet$}{##2}}{##3}}%
+ \let\l@subslide\@gobbletwo
+ \@startlos}
+%
+\def\Slidecontents{\@ifstar%
+ {\def\slide@cline{\slide@undottedcline}\Slide@contents}%
+ {\def\slide@cline{\slide@dottedcline}\Slide@contents}}
+\def\Slide@contents{%
+ \def\l@slide##1##2##3{%
+ \ifcase\lslide@flag
+ \message{##1 ** \the\c@slidesection}
+ \ifnum##1>\c@slidesection
+ \def\lslide@flag{1}{\large\slide@cline{%
+ \slidenumberline{$\Rightarrow\bullet$}{##2}}{##3}}%
+ \else
+ {\large\slide@cline{%
+ \slidenumberline{$\surd\;\bullet$}{##2}}{##3}}%
+ \fi
+ \or
+ \def\lslide@flag{2}{\large\slide@cline{%
+ \slidenumberline{$\bullet$}{##2}}{##3}}%
+ \or
+ {\large\slide@cline{%
+ \slidenumberline{$\bullet$}{##2}}{##3}}%
+ \fi}%
+ \def\l@subslide##1##2##3{%
+ \ifnum\lslide@flag=1
+ \@undottedtocline{2}{3.8em}{3.2em}{##2}{}%
+ \fi}%
+ \def\lslide@flag{0}%
+ \@startlos}
+%
+\endinput
+%% END slidesec.sty