summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/seminar/src
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-06-26 03:00:56 +0000
committerNorbert Preining <norbert@preining.info>2021-06-26 03:00:56 +0000
commit3d1055e1e00548f29b9d4ba0a79c717b9b6b2ae3 (patch)
tree81d89c6859163c396aa9344ddb05c271e9ab760c /macros/latex/contrib/seminar/src
parent644c44d0c55a2960e53623b0c19448c1b8015d1e (diff)
CTAN sync 202106260300
Diffstat (limited to 'macros/latex/contrib/seminar/src')
-rw-r--r--macros/latex/contrib/seminar/src/sem-code.tex110
-rw-r--r--macros/latex/contrib/seminar/src/sem-make.tex27
-rw-r--r--macros/latex/contrib/seminar/src/seminar.doc2048
-rw-r--r--macros/latex/contrib/seminar/src/semlayer.doc271
4 files changed, 0 insertions, 2456 deletions
diff --git a/macros/latex/contrib/seminar/src/sem-code.tex b/macros/latex/contrib/seminar/src/sem-code.tex
deleted file mode 100644
index 451baaeed7..0000000000
--- a/macros/latex/contrib/seminar/src/sem-code.tex
+++ /dev/null
@@ -1,110 +0,0 @@
-%% BEGIN sem-code.tex.
-\def\FileVersion{1.0}
-\def\FileDate{93/04/01}
-%%
-%% For printing documented code for seminar.sty.
-%%
-%% 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.
-%%
-%% This LaTeX file inputs seminar.doc and semlayer.doc,
-%% and prints the documented code.
-%%
-%% You must also have Frank Mittelbach's
-%% doc.sty and gind.ist
-%% (available from ftp.uni-stuttgart.de), as well as my
-%% tvz-hax.sty, tvz-code.sty and fancybox.sty
-%% (distributed with seminar.sty).
-%%
-%% gind.ist is for the index. I.e.,
-%% makeindex -s gind.ist sem-code.idx
-%%
-%% STYLE OPTIONS:
-%% `a4' : For A4 paper.
-%% `twoside' : For two-sided printing.
-%% `2up' : For two-up printing. (Uses non-standard font magnifications.
-%% See 2up.doc for details.)
-
-\documentstyle{tvz-code}
-
-\CheckVersion{seminar.doc}
-
-% Comment out to suppress generation of .idx file. Speeds things up.
-\MakeIndex
-
-% Include to suppress checksums for drafts:
-% \def\StopEventually#1{\let\Finale\relax}
-
-\MakeShortVerb\"
-
-\ShortMeta
-
-\begin{document}
-
-\def\thetitle{{\tt seminar.sty}: Documented Code}
-
-\begingroup
- \renewcommand{\thefootnote}{\fnsymbol{footnote}}
- \thispagestyle{empty}
- \let\footnotesize\small
- \let\footnoterule\relax
- \setcounter{page}{0}
- \null
- \vfill
- \begin{center}
- {\Huge\bf seminar.sty}\\[10pt]
- {\huge\bf A \bLaTeX{} style for slides and notes}\\[18pt]
- {\huge\bf Documented Code}\par
- \vskip 1cm
- \large Timothy Van Zandt\\[2pt]
- {\normalsize\tt Timothy.VAN-ZANDT@insead.edu}
- \vskip 1cm
- {\large \thefiledate\\ Version \fileversion\par}
- \end{center}
- \par
-\endgroup
-
-\vfill
-\begin{quote}
-"seminar.sty" is a \LaTeX{} document style for typesetting slides or
-transparencies, and accompanying notes.
-
-This is the documented code. There is also a {\em User's Guide}, which
-contains installation instructions.
-\end{quote}
-\vfill
-
-\clearpage
-
-\pagenumbering{roman}
-\thispagestyle{empty}
-\tableofcontents
-\clearpage
-\pagenumbering{arabic}
-
-\StopEventually{}
-\DocInput{seminar.doc}
-\Finale
-\clearpage
-
-\StopEventually{}
-\DocInput{semlayer.doc}
-\Finale
-\clearpage
-
-\DeleteShortMeta
-
-\PrintIndex
-
-\end{document}
-%% END sem-code.tex
diff --git a/macros/latex/contrib/seminar/src/sem-make.tex b/macros/latex/contrib/seminar/src/sem-make.tex
deleted file mode 100644
index 4a2f81365c..0000000000
--- a/macros/latex/contrib/seminar/src/sem-make.tex
+++ /dev/null
@@ -1,27 +0,0 @@
-%% BEGIN sem-make.tex
-%%
-%% A batch file for extracting the code from seminar.doc and semlayer.doc,
-%% using Frank Mittelbach's docstrip.tex utility.
-%% Tested with docstrip.tex V2.0r. Might not work with other versions.
-%%
-%% Run with TeX or LaTeX.
-%%
-%% 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\batchfile{sem-make.tex}
-\input docstrip
-\preamble
-\endpreamble
-\processFile{seminar}{doc}{sty}{t}
-\processFile{semlayer}{doc}{sty}{t}
-%%
-%% END sem-make.tex
diff --git a/macros/latex/contrib/seminar/src/seminar.doc b/macros/latex/contrib/seminar/src/seminar.doc
deleted file mode 100644
index 5813afc3b8..0000000000
--- a/macros/latex/contrib/seminar/src/seminar.doc
+++ /dev/null
@@ -1,2048 +0,0 @@
-% BEGIN seminar.doc
-%%
-\def\fileversion{1.0}
-\def\filedate{93/04/01}
-%%
-%% 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
-%%
-%%
-%% 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 is `seminar.doc', the documented code for `seminar.sty'.
-% You can copy this to `seminar.sty' and use it as is.
-% You can also create a stripped input file `seminar.sty' using sem-make.tex.
-% You can print the documented code using sem-code.tex.
-% sem-make.tex and sem-code.tex are distributed with seminar.sty.
-% **************************************************************************
-%
-% \EndDocPreamble
-%
-% \CheckSum{3062}
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-%
-% \section{Overview}
-%
-% In principle, a slides style is a simple matter; just a question of
-% resetting the magnification and changing a few page parameters. However,
-% allowing notes and slides to be put in the same file but treated
-% differently, and allowing everything to be printed in various formats,
-% complicates things a bit.
-%
-% The code starts by checking that the file is not loaded, and announcing the
-% file on the terminal.
-% \begin{macrocode}
-\@ifundefined{@seminarerr}{}{\endinput}
-\typeout{%
- Document Style: `seminar' v\fileversion \space <\filedate> (tvz)}
-% \end{macrocode}
-%
-%
-% \section{Useful hacks}
-%
-% \begin{macro}{\test@member}
-% The second argument to "\test@member" is a comma-separated list.
-% "\test@member" checks whether the first argument is a member of this list
-% (after expanding both the list and the first argument), setting "\if@test"
-% appropriately.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\addto@hook}
-% The first argument of "\addto@hook" is a token register. "\addto@hook" adds
-% its second argument to this register. This is a standard macro in the Mainz
-% distribution,.
-% \begin{macrocode}
-\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\reset@font}
-% "\reset@font" is part of later releases of \LaTeX.
-% \begin{macrocode}
-\@ifundefined{reset@font}{\def\reset@font{\normalsize\rm}}{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@seminarerr}
-% "\@seminarerr" is analogous to "\@latexerr".
-% \begin{macrocode}
-\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}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\notslide@err}
-% \begin{macrocode}
-\def\notslide@err#1{Cannot use \string#1 in slide environments}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\new@slidebox}
-% Since "\newbox" is "\outer".
-% \begin{macrocode}
-\def\new@slidebox{\alloc@4\box\chardef\insc@unt}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slidewidth,\slideheight}
-% \begin{macrocode}
-\newdimen\slidewidth \slidewidth 8.5in
-\newdimen\slideheight \slideheight 6.3in
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\paperwidth,\paperheight}
-% "\paperwidth" and "\paperheight" are used by "sem-page.sty" to set the page
-% parameters. "\twoup" also uses the values.
-% \begin{macrocode}
-\@ifundefined{paperwidth}{\def\paperwidth{8.5in}}{}
-\@ifundefined{paperheight}{\def\paperheight{11in}}{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\addto@preamblecmds}
-% Various commands used in this style are added to "\@preamblecmds". This
-% macros makes it easier to do this as we go along. Argument is a list of
-% commands separated by "\do".
-% \begin{macrocode}
-\def\addto@preamblecmds#1{%
- \begingroup
- \def\do{\noexpand\do\noexpand}%
- \xdef\@preamblecmds{\@preamblecmds\do#1}%
- \endgroup}
-\addto@preamblecmds{\addto@preamblecmds\do\@preamblecmds}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Auxilary files and style options}
-%
-% The formats and selections are specified using style options, but these do
-% not correspond to independent files.
-% It is possible to set the flags before inputting "seminar.sty".
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% This style is based in part on the \LaTeX{} "article" style, which we now
-% input. "article.sty" takes care of executing the options.
-% \begin{macrocode}
-\@@input article.sty
-\ifnotesonly\else\notesonlystarfalse\fi
-\@@input sem-page.sty
-% \end{macrocode}
-%
-% \section{Document hooks}
-%
-% \begin{macro}{\document}
-% "\document" is redefined to incorporate hooks, in the following order:
-% \begin{LVerbatim}
-% \endgroup
-% \the\before@document
-% \begingroup
-% \document
-% \the\after@document
-% \xcomment@hook
-% \end{LVerbatim}
-% "\before@document" and "\after@document" are token registers that can be
-% added to using "\addto@hook". These will be used for things like invoking
-% "\landscape". "\xcomment@hook" is a command sequence that will be used to
-% invoke the "xcomment" macros for commenting out the notes in the
-% "slidesonly" selection.
-%
-% Messing with the definition of "\document" creates potential conflicts with
-% other optional style files that do the same. However, we add these commands
-% in a very friendly way: (i) it shouldn't cause problems even if "\document"
-% does not have its standard definition, and (ii) if some other macros
-% subsequently change the definition of "\document" in the same way,
-% "seminar.sty" should not break. Styles designed specifically for use with
-% "seminar.sty" should use "\before@document" and "\after@document" to add
-% their own modifications to the "\document" command. \codelabel{document}
-%
-% In the code below, "\before@document" and "\after@document" are used as
-% temporary token registers during the modification of "\document".
-% \begin{macrocode}
-\newtoks\before@document
-\newtoks\after@document
-\let\xcomment@hook\relax
-\before@document{\endgroup\the\before@document\begingroup}
-\after@document{\the\after@document\xcomment@hook}
-\expandafter\@temptokena\expandafter{\document}
-\edef\document{\the\before@document\the\@temptokena\the\after@document}
-\before@document{}
-\after@document{}
-% \end{macrocode}
-% \codelabel*{document*}
-% \end{macro}
-%
-% \begin{macro}{\enddocument}
-% Now we do something similar with "\end@document", adding the token register
-% "\before@enddocument" to the beginning of the definition of "\enddocument".
-% This might be used, for example, to warn the user to print in landscape
-% mode.
-% \begin{macrocode}
-\newtoks\before@enddocument
-\before@enddocument{\the\before@enddocument}
-\expandafter\@temptokena\expandafter{\enddocument}
-\edef\enddocument{\the\before@enddocument\the\@temptokena}
-\before@enddocument{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\landscape}
-% "\printlandscape" is invoked at the beginning of landscape documents. It is
-% defined here to warn the user to print in landscape mode.
-% \begin{macrocode}
-\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%
- *******************************************************}}}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Slide-making macros}
-%
-% \begin{macro}{\slide,\endslide,\slide*,\endslide*}
-% Let's start from the outside and move in.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\theslide}
-% "slide" is the counter for slides. "slide@count" keeps track of the number
-% of slides in the current slide environment.
-% \begin{macrocode}
-\newcounter{slide}
-\def\theslide{\arabic{slide}}
-\newcount\slide@count
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@slidebox}
-% Each slide is stored in the box "\@slidebox". The current page of notes
-% might be saved in "\not@slidebox".
-% \begin{macrocode}
-\newbox\@slidebox
-\newbox\not@slidebox
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\ifslide,\iflandscape}
-% "\ifslide" is true in any slide environment. This allows commands to be
-% active only in slide environments (important for overlays, for example).
-% "\iflandscape" is true for landscape slides, and false for portrait slides.
-% This allows embellishments to customize their behavior, although it is not
-% actually used by any of the macros defined in "seminar.sty".
-% \begin{macrocode}
-\newif\ifslide
-\newif\iflandscape
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@landscapeonly,\landscapeonly,\portraitonly}
-% "\@landscapeonly" is defined to be "1" if only landscape slides should be
-% printed, "-1" if only portrait slides should be printed, and "0" if both
-% orientations should be printed.
-% \begin{macrocode}
-\def\@landscapeonly{0}
-\def\landscapeonly{\def\@landscapeonly{1}}
-\def\portraitonly{\def\@landscapeonly{-1}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\NestedSlide@Error}
-% We will check for nested slide environments, and attempt to recover the best
-% we can. Otherwise, forgetting the end of a slide environment could cause
-% \TeX{} to procede to the end of the document without generating any input,
-% and then give unlightening error messages.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\begin@slide}
-% This is the meat of "\slide" and "\slide*".
-% \begin{macrocode}
-\def\begin@slide[#1,#2]{%
- \slide@clearpage
- \setlength\slidewidth{#1}%
- \setlength\slideheight{#2}%
-% \end{macrocode}
-% The current contents of the page is saved in "\not@slidebox", and then the
-% output routine is set to "\slide@output".
-% \begin{macrocode}
- \begingroup
- \ifarticle
- \output{%
- \advance\count@ 1
- \global\setbox\not@slidebox\box\@cclv}%
- \par\@@par\penalty-\@M
- \fi
- \output{\slide@output}%
-% \end{macrocode}
-% The flag "\ifslide" is set, and the counter "\slide@count", which keeps
-% track of the number of slides in the current slide environment, is
-% initialized.
-% \begin{macrocode}
- \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
-% \end{macrocode}
-% Save current "\textheight" and "\textwidth", to be used later by the output
-% routine in the "slides" format.
-% \begin{macrocode}
- \ifarticle\else
- \edef\page@textheight{\number\textheight sp}%
- \edef\page@textwidth{\number\textwidth sp}%
- \fi
- \set@slidesize
-% \end{macrocode}
-% Now we finish customizing the slide environment.
-% \begin{macrocode}
- \slidebox@restore
- \the\slide@hook
- \the\before@newslide
- \everyslide}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\end@slide}
-% This is "\endslide" and "\endslide*". We first make sure that there are
-% balanced groups so that the normal output routine is restored.
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% If there is anything on the page, it was inserted with "\aftergroup" and
-% should be discarded. (This can happen with color commands, for example.)
-% \begin{macrocode}
- \begingroup
- \output{\setbox\@tempboxa\box\@cclv}%
- \@@par\penalty-\@M
- \endgroup
-% \end{macrocode}
-% The slide counter was stepped when the last slide was output. Now we need to
-% set it back one. With the "article" format, we now have to output all the
-% acculumulated slides.
-% \begin{macrocode}
- \global\advance\c@slide-1
- \def\do##1{\setcounter{##1}{\@nameuse{saved@c@##1}}}%
- \slide@reset
- \ifarticle\outputloop@savedslides\fi
- \the\after@slide}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slideclearpagetrue,\slideclearpagefalse,\slide@clearpage}
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slide@hook,\everyslide,\after@slide}
-% "\slide@hook" and "\everyslide" are hooks for modifying the slide
-% environments. "\slide@hook" is a token register. Commands can be added to it
-% without destroying previously added commands using the "\addto@hook"
-% command.
-% "\everyslide" is an ordinary command sequence to be used by users.
-% "\after@slide" can be used to initialize things for notes.
-% \begin{macrocode}
-\newtoks\slide@hook
-\def\everyslide{}
-\newtoks\after@slide
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{$\setminus$slidebox@restore\label{everyslide}}
-%
-% \begin{macro}{\slidebox@restore}
-% "\slidebox@restore" sets up the spacing parameters at the beginning of every
-% slide. The component commands are defined following this macro.
-% \begin{macrocode}
-\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}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\thedate,\theauthor,\thetitle,\thethanks}
-% The "\date", "\author" and "\title" commands are redefined so that they save
-% their information in accessible command sequences, "\thedate", "\theauthor"
-% and "\thetitle". "\thanks" is saved so that it can be restored during slide
-% environments. "\thethanks" is set to "\@thanks" so that it is easier to
-% redefine "\slidemaketitle" in the preamble.
-% \begin{macrocode}
-\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}%
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slidemaketitle}
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\fix@floats}
-% Floats are neutralized, but the captions work as usual. This makes it easier
-% to just transfer a float from some other document to a slide. This only
-% works if end of floating environment is "\def"ined to be "\end@float",
-% rather than "\let" to be "\end@float", or if "\@float{foo}" is ended by
-% "\endfoo". This should get 99\% of the cases.
-% \begin{macrocode}
-\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}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\fix@whatsits}
-% The whatsits "\write", "\openout" and "\closeout" are problematic in slides
-% for two reasons:
-% \begin{enumerate}
-% \item First, an otherwise empty vertical list with a whatsit is not empty.
-% Thus, if a slide begins with a "\write" command, followed by a line a text,
-% "\parskip" is inserted before the text. This can be quite noticable in a
-% slide environment, since by default "\parskip" is about 2.5\% of the height
-% of a slide. This problem is likely to arise because it is convenient to put
-% a slide's "\label" command first.
-% \item Second, the slides are omitted in the "notesonly" selection, but we
-% want to preserve cross-referencing.
-% \end{enumerate}
-% We solve both problems by making the three whatsits mentioned above
-% "\immediate" within the slide environments. This might cause unforeseen
-% problems for some macros. It also introduces a known problem: slide
-% cross-references may not be accurate if \TeX\ is doing the page breaking
-% automatically.
-% \begin{macrocode}
-\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}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slide@footins,\theslidefootnote,\slide@footnotes}
-% We want to set up a parallel footnote system for slides. It acts just like
-% regular footnotes, but
-% \begin{LVerbatim}
-% \interfootnotelinepenalty\@M
-% \end{LVerbatim}
-% means that footnotes will not be split across pages.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slidefonts,\ifslidefonts}
-% "\slidefonts" should set up any special fonts for the slides.
-% \begin{macrocode}
-\def\slidefonts{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slidestretch,\slidearraystretch}
-% \begin{macrocode}
-\def\slidestretch{1.18}
-\def\slidearraystretch{1.2}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\raggedslides}
-% "\ragggedslides[0pt]" means justified, "\raggedslides[1fil]" means
-% "\raggedright". Ideally, we would also like a version that breaks lines the
-% same way as with justified text, but then doesn't stretch any glue to
-% justify the margin. This is impossible, but "\raggedslides[1em]", e.g., is
-% meant to be an intermediate case.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\slide@listparameters}
-% The list parameters are generally tightened up, compared to the usual
-% spacing in "article.sty", to compensate for the large "\parskip" and
-% "\baselinestretch".
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \codelabel{defaultpar*}%
-% \end{macro}
-%
-% \section{Slide output routines: $\setminus$output}
-%
-% \begin{macro}{\save@slidespecials}
-% First, a trick to make sure that "\special"'s in the preamble end up on the
-% first page of the document, even if the first slide is omitted, or if the
-% first item in the document is a float (in which case \LaTeX\ discards
-% "\special"'s). "\@textop" is used to insert the specials if the first page
-% is processed by \LaTeX's usual output routines, and "\insert@specials" is
-% used to insert the specials if the first page is a slide in the "slides"
-% format (see the definition of "\output@slide" below).
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\extraslideheight}
-% This increases the height of a slide for the purpose of page-breaking. We
-% use unscaled dimensions so that \TeX's warnings about overfull "\vbox"'s
-% will be comparable.
-% \begin{macrocode}
-\def\extraslideheight#1{%
- \@tempdima #1\relax
- \edef\X@SlideHeight{\number\@tempdima sp}
- \ifslide\set@slidesize\fi}
-\extraslideheight{6pt}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\set@slidesize}
-% In addition to setting "\hsize" and "\vsize", this sets the \LaTeX\
-% parameters such as "\textheight" and "\textwidth" so that slides seem like a
-% regular page, whatever format is being used.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\newslide}
-% This includes things you want to initialize whenever a new page is started
-% \begin{macrocode}
-\def\newslide{%
- \par\penalty-\@M
- \def\do##1{\setcounter{##1}\z@}\slide@reset
- \the\before@newslide
- \set@slidesize}
-\newtoks\before@newslide
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slidereset,\addtoslidereset}
-% "\addto@slidereset{foo,bar}" sets "\slide@reset" to
-% \begin{quote}
-% "\slide@reset\do{foo}\do{bar}"
-% \end{quote}
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slide@output}
-% "\os@test" checks whether according to some "\onlyslides" or "\notslides"
-% command, this slide should not be output; "\os@test" is defined in Section
-% \ref{os}.
-% \begin{macrocode}
-\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}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\reset@slideoutput}
-% Some things should be reset for the slide embellishments. E.g., you don't
-% want slide labels or headers and footers to be affected by the current font.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\ifcenterslides}
-% This is the flag for vertically centering slides.
-% \begin{macrocode}
-\newif\ifcenterslides
-\centerslidestrue
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@makeslide,\@@makeslide}
-% Take care of footnotes and verticle positioning.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\after@slidepage}
-% "\after@slidepage" is executed at the end of each page of a slide
-% environment during the slide output routine. It is meant to reset things
-% that might have been set by "\special"'s within the slide.
-% \begin{macrocode}
-\newtoks\after@slidepage
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Rotation}
-%
-% Rotation macros must be implemented by "\special"'s, such as in
-% "semcolor.sty". The interface for rotation is built into "seminar.sty",
-% however.
-%
-% \begin{macro}{\ifrotateheaders}
-% In the "slides" format, the slides can either be rotated before being placed
-% on the page, or the whole page can be rotated, including headers.
-% "\ifrotateheaders" controls which procedure is used.
-% \begin{macrocode}
-\newif\ifrotateheaders
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\sliderotation}
-% \begin{macrocode}
-\def\sliderotation#1{\@ifundefined{semsr@#1}%
- {\@latexerr{Slide rotation `#1' not defined.}\@eha}%
- {\@nameuse{semsr@#1}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\semsr@none,\semsr@left,\semsr@right}
-% A slide rotation should define "\rotate@slide" to rotate "\@slidebox"..
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\leftsliderotation,\rightsliderotation}
-% \begin{macrocode}
-\def\leftsliderotation#1{%
- \@seminarerr{\string\leftsliderotation\space has not been defined}%
- \@ehd}
-\let\rightsliderotation\leftsliderotation
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@ifrotateslide}
-% \begin{macrocode}
-\def\@ifrotateslide#1{%
- \ifx\rotate@slide\relax\else
- \iflandscape\ifportrait#1\fi\else\ifportrait\else#1\fi\fi
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Slide output routines: $\setminus$process@slide\label{slideoutput}}
-%
-% This is the version-dependent stuff, where we decide what to do with the
-% slide.
-%
-% \begin{macro}{\process@slide}
-% "\process@@slide" is kept separate because it can be redefined for doing
-% overlays.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\finish@slide}
-% \begin{macrocode}
-\def\finish@slide{%
- \theslideframe
- \add@slidelabel\slidelabel}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\output@slide}
-% In the "article" format, the slides are saved until the end of the slide
-% environment.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% In the "slides" format, we use a modification of \LaTeX's "\@outputpage".
-% "\do@fancyput" is stuck in here in case "fancybox.sty" is being used.
-% "\fancyput@flag" is initialized in case it is not
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\output@savedslide}
-% Now we take care of the saved slides in the "article" format. Lots of things
-% can happen.
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\outputloop@savedslides}
-% This is the loop that spits out each of the saved slides. We start by
-% reinserting whatever was on the current page when the slide environment
-% started.
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\make@slidemarker}
-% \begin{macrocode}
-\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}%
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Page numbering in the {\tt slides} format}
-%
-% In the "slides" format, we let the "page" counter be stepped as usual by the
-% output routine, but we don't use it for anything except perhaps to keep
-% track of the absolute page number. Instead, we have a counter "note" to keep
-% track of the pages of notes, and "\thepage" is set to "\thenote" for notes
-% and "\theslide" for slides (and "\theoverlay" for overlays and "\thelayer"
-% for layers).
-%
-% \begin{macro}{\c@note}
-% The "note" counter has to be stepped by the output routine, and reset by the
-% slide environments. In the "article" format, we just make the "note" counter
-% the same as the "page" counter.
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% \end{macro}
-%
-% Which counter should the dvi driver pay attention to when numbering the
-% pages in the "slides" format? This makes a difference when using the dvi
-% driver to select pages. If the driver numbers pages by the slide number,
-% then it is easier to use the driver to print selected slides.
-% However, this can be cumbersome when there are many pages of notes or
-% overlays, especially if the driver cannot pick out the $n^{th}$ occurence of
-% a page, because many pages will have the same page number. In this case,
-% keeping track of physical page numbers may be preferred. We allow both
-% options.
-%
-% By default, the dvi driver pays attention to the slide counter; i.e., this
-% counter is assigned register 0
-% \begin{macrocode}
-\ifarticle\else
- \let\c@page\c@slide
- \countdef\c@slide=0
- \c@slide=0
- \c@page=1
-\fi
-% \end{macrocode}
-%
-% \begin{macro}{\truepagenumbers}
-% This switches back to having the driver recognize physical page numbers.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Slide frames}
-%
-% \begin{macro}{\slideframewidth,\slideframesep}
-% \begin{macrocode}
-\newdimen\slideframewidth \slideframewidth 4pt
-\newdimen\slideframesep \slideframesep .3in
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\newslideframe,\slideframe}
-% \begin{macrocode}
-\def\newslideframe#1{%
- \@ifnextchar[{\@newslideframe{#1}}{\@newslideframe{#1}[]}}
-\def\@newslideframe#1[#2]{%
- \@namedef{semsfops@#1}{#2}%
- \@namedef{semsf@#1}##1}
-\newslideframe{plain}{\fbox{#1}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slideframe,\@slideframe}
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Slide styles\label{slidestyles}}
-%
-% \begin{macro}{\slidestyle}
-% \begin{macrocode}
-\def\slidestyle#1{\@ifundefined{ss@#1}%
- {\@seminarerr{Slide style `#1' undefined}\@eha}%
- {\@nameuse{ss@#1}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\ss@empty,\ss@plain,\ss@plainbottom}
-% The "plain" slide style places the slide label on the left side of the
-% framed slide, centered vertically. The caption is set in a box with zero
-% width so that it does not affect the centering of the slide on the page. In
-% the "plainbottom" style, the label is centered at the bottom of the slide.
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slidelabel}
-% \begin{macrocode}
-\def\slidelabel{\bf Slide \theslide}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Page styles}
-%
-% \begin{macro}{\newpagestyle,\renewpagestyle}
-% The next two commands allow one to define new pages styles in the preamble
-% of a document without playing around with the catcode of "@".
-% \begin{macrocode}
-\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}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slidepagestyle}
-% \begin{macrocode}
-\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{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\ps@align}
-% \begin{macrocode}
-\ifarticle
- \def\ps@align{}
-\else
- \def\ps@align{%
- \def\@oddhead{\thepage\hfil+}\let\@evenhead\@oddhead
- \def\@oddfoot{+\hfil+}\let\@evenfoot\@oddfoot}
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slideheadfont,\slidefootfont}
-% \begin{macrocode}
-\def\slideheadfont{\scriptsize}
-\def\slidefootfont{\scriptsize}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Magnification}
-%
-% \begin{macro}{\magstep,\magstepminus}
-% We extend the definition of "\magstep"$n$ to $n=0,\ldots,9$, and define an
-% analogous macro for reduction. The argument of "\@magstep" {\em must be a
-% count register}.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\invert@mag}
-% If "\cs" is a command sequence (not a count register) that expands to an
-% integer $n>0$, then "\invert@mag\cs" sets "\cs" to $1000 n^{-1}$. E.g.,
-% after the commands
-% \begin{Ex}
-% "\def\mymag{\magstep2}"
-% "\invert@mag\mymag"
-% \end{Ex}
-% the meaning of "\mymag" is ".694444". We use dimension registers to access
-% \TeX's internal arithmetic routines.
-% \begin{macrocode}
-{\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@slidesmag,\@articlemag}
-% "\@slidesmag" and "\@articlemag" define "\inverseslidesmag" and
-% "\inverseartmag" for use by "\setslidelength", etc., using the "\invert@mag"
-% routine defined above. They also set the magnification of the document in
-% the "slides" or "article" format. Their arguments can be any magnification.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slidesmag,\articlemag}
-% "\slidesmag" and "\articlemag" are an interface to "\@slidesmag" and
-% "\@articlemag", and allow only "\magstep" type magnifications.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\setslidelength,\addtoslidelength}
-% \begin{macrocode}
-\def\setslidelength#1#2{%
- #1=#2\relax
- #1=\inverseslidesmag#1}%
-\def\addtoslidelength#1#2{%
- \dimen@=#2\relax
- \advance#1 by \inverseslidesmag\dimen@}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\setartlength,\addtoartlength}
-% \begin{macrocode}
-\def\setartlength#1#2{%
- #1=#2\relax
- #1=\inverseartmag#1}
-\def\addtoartlength#1#2{%
- \dimen@=#2\relax
- \advance#1 by \inverseartmag\dimen@}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slide@epsfsize,\epsfslidesize}
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% Now the default magnifications are set:
-% \begin{macrocode}
-\slidesmag{4}
-\articlemag{0}
-% \end{macrocode}
-%
-%
-% \section{Page parameters\label{pageparameters}}
-%
-% When the the document begins, the page parameters are scaled depending on
-% the format and the magnification for that format, so that it is as if the
-% parameters were set with "true" dimensions. This allows a user to change the
-% magnification in the preamble without having to go back and rescale the page
-% parameters.
-%
-% \begin{macro}{\do@pageparameters}
-% First, we define "\do@pageparameters" like "\do@specials", but with all the
-% page parameters listed on page 163 of Lamport's \LaTeX{} User's Guide and
-% Reference Manual. Parameters can be added the same way commands are added to
-% "\@preamblecmds".
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\scale@pageparameters}
-% Now we define "\scale@pageparameters", which is invoked at the beginning of
-% the document, to scale the page parameters.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \section{Omitting and including notes}
-%
-% \begin{macro}{\allversions,\endallversions,\allversions*,\endallversions*}
-% The "allversions" environments are processed in any version.
-% \begin{macrocode}
-\def\allversions{}
-\let\endallversions\relax
-\@namedef{allversions*}{\@bsphack\globaldefs=1}
-\@namedef{endallversions*}{\@esphack}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slide@list,\addtoslidelist}
-% "\slide@list" stores the list of environments that are to be included with
-% the "slidesonly" selection. Environments are added to it using the
-% "\addtoslidelist" command.
-% \begin{macrocode}
-\def\slide@list{slide,slide*,allversions,allversions*}
-\def\addtoslidelist#1{\xdef\slide@list{\slide@list,#1}}
-\addto@preamblecmds{\addtoslidelist}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\xcomment@hook}
-% The macro "\@xcomment", defined in "xcomment.sty", does the actual omitting
-% of notes in the "slidesonly" format. Only environments in "\slide@list" are
-% processed.
-% \begin{macrocode}
-\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{}}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Omitting and including slides\label{os}}
-%
-% This is pretty bad code, but it works.
-%
-% \begin{macro}{\onlyslides,\notslides}
-% "\onlyslides" and "\notslides" store their arguments, which should expand to
-% a comma separated list of numbers and ranges, in the command sequence
-% "\os@list". It is not immediately expanded, because the argument may contain
-% references that are not yet defined; recall that the ".aux" file is
-% processed at the beginning of the document.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\os@expandlist}
-% "\os@expandlist" is invoked at the beginning of the document, after the
-% ".aux" files has been processed.
-% \begin{macrocode}
-\addto@hook\after@document{%
- \ifx\os@list\@empty\else\os@expandlist\fi}
-% \end{macrocode}
-% "\os@expandlist" first expands the list, and then processes each
-% comma-separated entry with "\os@expandrange".
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\os@expandrange}
-% "\os@expandrange" expands entries of the form $m$-$n$ to $(m-1)$+$(n+1)$,
-% which will simplify checking slide numbers against the list ("+" is used as
-% a separator instead of "-" to allow for negative numbers). Entries that
-% consist of a single number $n$ are treated like a range $n$-$n$.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\os@test}
-% "\os@test" checks whether a slide should be processed. For each entry
-% $m$-$n$ in the list "\os@list", if the slide number is greater than $m$ and
-% less than $n$, "\if@test" is set to "\if@os". Recall that "\if@os" is
-% "\iftrue" is "\os@list" is a list of slides to be included, and is
-% "\iffalse" if "\os@list" is a list of slides to be excluded.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\onlynotestoo}
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Font size declarations\label{fontsize}}
-%
-% \begin{macro}{\ptsize}
-% The "\ptsize{"$n$"}" command invokes a macro so that the font size
-% declarations are defined as in "art"$n$".sty", except that the font size
-% declarations only affect the sizes of fonts, and not the list or display
-% parameters. These parameters are set at the beginning of each slide
-% environment. "\ptsize" should only be used in slide environments.
-% \begin{macrocode}
-\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??
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slide@setsize}
-% This is a variant of "\@setsize" that makes the minimum space between lines
-% be "\slideskip" times the extra space between lines.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\slidedisplayskips}
-% "\slidedisplayskips" sets the displays skips to smaller values than they
-% would usually have in the "article" document style.
-% \begin{macrocode}
-\def\slidedisplayskips{%
- \abovedisplayskip 1.75ex minus .35ex
- \belowdisplayskip \abovedisplayskip
- \abovedisplayshortskip .2ex minus .2ex
- \belowdisplayshortskip 1ex minus .2ex}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\sem@ptsize}
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\8@semptsize}
-% \begin{macrocode}
-\@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}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\9@semptsize}
-% \begin{macrocode}
-\@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}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\10@semptsize}
-% \begin{macrocode}
-\@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}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\11@semptsize}
-% \begin{macrocode}
-\@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}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\12@semptsize}
-% \begin{macrocode}
-\@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}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\14@semptsize}
-% \begin{macrocode}
-\@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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\17@semptsize}
-% \begin{macrocode}
-\@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}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{The $\setminus$twoup macro}
-%
-% \begin{macro}{\twoup}
-% See "2up.sty" for details.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \section{Configuration file}
-%
-% \begin{macrocode}
-\openin1 seminar.con
-\ifeof1\else\closein1 \relax\@@input seminar.con\fi
-% \end{macrocode}
-%
-\endinput
-% END: seminar.doc
diff --git a/macros/latex/contrib/seminar/src/semlayer.doc b/macros/latex/contrib/seminar/src/semlayer.doc
deleted file mode 100644
index 6cb020b8ea..0000000000
--- a/macros/latex/contrib/seminar/src/semlayer.doc
+++ /dev/null
@@ -1,271 +0,0 @@
-% BEGIN 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.
-%%
-%%
-% **************************************************************************
-% This is `semlayer.doc', which contains the documented code for
-% `semlayer.sty'. You can use it in this form as the input file
-% `semlayer.sty'. You can also create a stripped input file using
-% sem-make.tex. You can print the documented code using sem-code.tex.
-% sem-make.tex and sem-code.tex are distributed with seminar.sty.
-% **************************************************************************
-%
-% \EndDocPreamble
-%
-% \CheckSum{276}
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-%
-% \section{Overlays}
-%
-% The main thing that the "\process@slide" macro does is successively send the
-% main slide and then each overlay and layer to a slide output routine. In
-% order to make the definition of that macro easier to understand, we first
-% set up the overlays interface.
-%
-% Overlays must be implemented by some extra macros, such as in
-% "semcolor.sty". Specifically, the commands "\@overlay" and "\make@overlay"
-% should be defined.
-%
-% The reason for including the interface in "seminar.sty" is to encourage
-% those who implement overlays to use a uniform interface, and to illustrate
-% how overlays work. To be honest, though, it may not be possible to implement
-% overlays without PostScript or a graphics language with similar capabilities
-% using the interface that is defined here and without rewriting the basic
-% slides macros.
-%
-% This system of overlays is so good and the system using invisible fonts is
-% so lousy, that no special provisions have been made for supporting the
-% latter. Actually, overlay should (and could easily) be implemented as \TeX{}
-% primitives, saving everyone a lot of trouble.
-%
-% The system for overlays is not explained here in great detail. See
-% "semcolor.sty" and "pstricks.tex" for an example of how overlays can be
-% implemented.
-%
-% \begin{macrocode}
-\addto@hook\before@newslide{%
- \global\def\overlay@list{}%
- \setcounter{overlay}{0}}
-% \end{macrocode}
-%
-% \begin{macro}{\process@slide,\overlay@loop,\layer@loop}
-% "\process@slide" is the beginning of the ``output'' routine for slides.
-% "\@slidebox" is copied to "\@@slidebox". The "\make@overlay#1" macro should
-% set "\@slidebox" to the contents of "\@@slidebox", but with only the
-% material for overlay "#1" visible.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\layer@prep,\overlay@prep}
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\layerframe,\overlayframe}
-% \begin{macrocode}
-\def\layerframe{\@slideframe{layer}}
-\def\overlayframe{\@slideframe{overlay}}
-\def\thelayerframe{}
-\def\theoverlayframe{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\overlaylabel,\layerlabel}
-% \begin{macrocode}
-\def\overlaylabel{\bf Overlay \theoverlay}
-\def\layerlabel{\bf Layer \thelayer}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\theoverlay,\thelayer}
-% \begin{macrocode}
-\newcounter{overlay}
-\def\theoverlay{\theslide-\alph{overlay}}
-\def\currlayer{}
-\def\thelayer{\theoverlay-\currlayer}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\ifoverlays,\iflayers}
-% Overlays and layers can be turned on and off independently.
-% \begin{macrocode}
-\newif\ifoverlays
-\newif\iflayers
-\@ifundefined{@overlay}%
- {\let\@overlay\relax}%
- {\ifarticle\else\overlaystrue\layerstrue\fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\nooverlays@err,\@overlay}
-% "\@overlay" is set to "\relax" if it is not defined, for easy error
-% detection.
-% \begin{macrocode}
-\def\nooverlays@err{%
- \@seminarerr{You need to use additional macros for overlays,
- e.g., semcolor.sty}\@ehd
- \global\overlaysfalse
- \global\layersfalse}
-\@ifundefined{@overlay}{}{}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\overlay}
-% The "\overlay" command starts by checking that the argument is a number
-% between 0 and 9. If so, "\@overlay" is invoked. Except for overlay 0, the
-% counter for cross-references is set to "overlay", and its value is set to
-% the argument of "\overlay".
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\colorlayers}
-% Color layers use the same mechanism as overlays; only the interface differs.
-% \begin{macrocode}
-\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{}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\layerpagestyle,\overlaypagestyle}
-% \begin{macrocode}
-\def\overlaypagestyle#1{\@ifgoodps{#1}{\edef\overlay@pagestyle{#1}}}
-\def\layerpagestyle#1{\@ifgoodps{#1}{\edef\layer@pagestyle{#1}}}
-\overlaypagestyle{}
-\layerpagestyle{}
-% \end{macrocode}
-% \end{macro}
-%
-\endinput
-% END semlayer.doc