diff options
Diffstat (limited to 'macros/latex/contrib/seminar/latex')
-rw-r--r-- | macros/latex/contrib/seminar/latex/npsfont.sty | 191 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/sem-a4.sty | 21 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/sem-dem.sty | 96 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/sem-page.sty | 95 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/semcolor.sty | 77 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/semhelv.sty | 193 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/seminar.bg2 | 600 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/seminar.bg3 | 608 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/seminar.bug | 209 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/seminar.cls | 1218 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/seminar.con | 1126 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/seminar.sty | 1167 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/semlayer.sty | 158 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/semlcmss.sty | 170 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/semrot.sty | 80 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/latex/slidesec.sty | 198 |
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 |