summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ha-prosper/Source
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/ha-prosper/Source')
-rw-r--r--macros/latex/contrib/ha-prosper/Source/HA-prosper.def87
-rw-r--r--macros/latex/contrib/ha-prosper/Source/HA-prosper.dtx4242
2 files changed, 4329 insertions, 0 deletions
diff --git a/macros/latex/contrib/ha-prosper/Source/HA-prosper.def b/macros/latex/contrib/ha-prosper/Source/HA-prosper.def
new file mode 100644
index 0000000000..4972f2cbb7
--- /dev/null
+++ b/macros/latex/contrib/ha-prosper/Source/HA-prosper.def
@@ -0,0 +1,87 @@
+%%
+%% ------------------------------------------
+%% Copyright (C) 2003-2005 by Hendri Adriaens
+%% ------------------------------------------
+%%
+%% 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.
+%%
+%% Extra definitions for the HA-prosper documentation.
+\usepackage{epic}
+\usepackage{pstricks}
+\usepackage{multicol}
+\usepackage{array}
+\usepackage{url}
+\usepackage{pst-3d}
+\usepackage{pst-node}
+\SpecialCoor
+\makeatletter
+\renewenvironment{thebibliography}[1]
+ {\renewcommand{\refname}{Links}\subsection{\refname}\label{sec:links}%
+ This section contains addresses of websites which have been
+ referred to in this documentation.\par
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist
+}
+\def\DescribeSwitch{\leavevmode\@bsphack\begingroup\MakePrivateLetters
+ \Describe@Switch}
+\def\Describe@Switch#1{\endgroup
+ \marginpar{\raggedleft\PrintDescribeSwitch{#1}}%
+ \SpecialSwitchIndex{#1}\@esphack\ignorespaces}
+\def\PrintDescribeSwitch#1{\strut \MacroFont #1\ }
+\def\SpecialSwitchIndex#1{\@bsphack
+ \index{#1\actualchar{\protect\ttfamily#1}
+ (switch)\encapchar usage}%
+ \index{switches:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar
+ usage}\@esphack}
+\def\SpecialEnvIndex#1{\@bsphack
+ \index{#1\actualchar{\protect\ttfamily#1}
+ \encapchar usage}%
+ \index{environments:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar
+ usage}\@esphack}
+\def\SpecialMainEnvIndex#1{\@bsphack\special@index{%
+ #1\actualchar
+ {\string\ttfamily\space#1}
+ \encapchar main}%
+ \special@index{environments:\levelchar#1\actualchar{%
+ \string\ttfamily\space#1}\encapchar
+ main}\@esphack}
+\makeatother
+\def\HAPcmd#1{%
+ \par\addvspace{1.2ex plus 0.8ex minus 0.2ex}%
+ \vskip -\parskip\noindent
+ \begin{tabular}{|l|}\hline\rule{0pt}{1em}%
+ \ignorespaces#1\\\hline\end{tabular}%
+ \par\nopagebreak\addvspace{1.2ex plus 0.8ex minus 0.2ex}%
+ \vskip -\parskip
+}
+\def\pf#1{\textsf{#1}}
+\newcolumntype{d}{l|l}
+\newcolumntype{e}{l|l||l|l}
+\newcolumntype{f}{c|c||c|c}
+\newcolumntype{g}{|p{12em}|*{12}{p{1em}|}}
+\def\bs{\symbol{'134}}
+\def\ci#1{\texttt{\bs#1}}
+\setlength{\parindent}{0cm}
+\bibliographystyle{plain}
+\endinput
diff --git a/macros/latex/contrib/ha-prosper/Source/HA-prosper.dtx b/macros/latex/contrib/ha-prosper/Source/HA-prosper.dtx
new file mode 100644
index 0000000000..a4b717fb7b
--- /dev/null
+++ b/macros/latex/contrib/ha-prosper/Source/HA-prosper.dtx
@@ -0,0 +1,4242 @@
+% \iffalse meta-comment
+%
+% HA-prosper package by Hendri Adriaens.
+%
+% Extract package files and create documentation:
+% `latex HA-prosper.dtx'
+% `latex HA-prosper.dtx'
+% `makeindex -s gind.ist HA-prosper.idx'
+% `latex HA-prosper.dtx'
+% `latex HA-prosper.dtx'
+%
+% To generate source code documentation as well,
+% first comment line 57 of this file.
+%
+% To finish the installation you have to move the following
+% files into a directory searched by TeX:
+% HA-prosper.sty
+% HA-prosper.cfg
+%
+%% ------------------------------------------
+%% Copyright (C) 2003-2005 by Hendri Adriaens
+%% ------------------------------------------
+%%
+%% 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.
+%%
+% \fi
+%
+% \iffalse
+%<*batchfile>
+\begingroup
+\input docstrip.tex
+\keepsilent
+\preamble
+\endpreamble
+\askforoverwritefalse
+\IfFileExists{.///HA-prosper.sty}{}{
+\generate{
+\file{HA-prosper.sty}{\from{HA-prosper.dtx}{program}}
+\file{HA-prosper.cfg}{\from{HA-prosper.dtx}{config}}
+}}
+\endgroup
+%</batchfile>
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+\input{HA-prosper.def}
+\EnableCrossrefs
+\CodelineIndex
+% Comment the next line to generate source code documentation.
+\OnlyDescription
+\begin{document}
+\DocInput{HA-prosper.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{2292}
+%
+% \DoNotIndex{\def,\xdef,\edef,\global,\gdef,\let,\if,\fi,\else}
+% \DoNotIndex{\newcommand,\newenvironment,\renewcommand,\renewenvironment}
+% \DoNotIndex{\begin,\end,\ifx,\ifnum}
+%
+% \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 \~}
+%
+%\title{\vspace{-2em}\pf{HA-prosper} package\\\normalsize\emph{Documentation}\\
+%\vspace{.5em}Version 4.21}
+%\author{Hendri Adriaens\\
+%\url{http://stuwww.uvt.nl/~hendri/downloads/haprosper.html}\\Center
+%for Economic Research\\Tilburg University, the Netherlands}
+%\maketitle\tableofcontents\listoftables\listoffigures
+%
+%\clearpage\section{General information} This manual provides
+%information about working with the \pf{HA-prosper} package. This
+%package is a patch for the \pf{prosper} class. Be sure to also study
+%the documentation of the \pf{prosper} class and the \pf{hyperref}
+%package. You can find this documentation for instance at the CTAN
+%site for prosper \cite{prosperCTAN}, at the \pf{prosper} website
+%\cite{prosper} or in your local \LaTeX\ distribution (for the MiKTeX
+%distribution \cite{MiKTeX}, the documentation can be found in the
+%|doc| directory in the MiKTeX root). Information about \pf{prosper}
+%can also be found at the WikiProsper site \cite{WikiProsper}.
+%
+%If you want to start working with \pf{HA-prosper} immediately, have
+%a look at the examples (see section~\ref{sec:examples}). If you are
+%interested in how \pf{HA-prosper} actually works, have a look at the
+%first lines of the source code available in the |Source| directory
+%of the package or the |source| tree of your \LaTeX\ distribution
+%which explains how to generate the source code documentation.
+%
+%Note that from version 4.1, \pf{HA-prosper} uses the \pf{xkeyval}
+%package, which is available from CTAN \cite{xkeyvalCTAN} and is
+%included in the MiKTeX distribution. Do not forget to install this
+%package. See also section~\ref{sec:req}.
+%
+%Do not forget to check the \pf{HA-prosper} website
+%\cite{HA-prosper} from time to time to see if there are updates
+%for this package or new styles available. If, \emph{after reading
+%this manual}, you have questions or comments about
+%\pf{HA-prosper}, see section~\ref{sec:questions}.
+%
+%\subsection{The \pf{powerdot} class}\label{sec:newclass}
+%This is the last release of the \pf{HA-prosper} package. We
+%(Christopher Ellison and I) have created a new class called
+%\pf{powerdot} \cite{powerdot} which has significant improvements
+%over \pf{prosper} and \pf{HA-prosper} while keeping changes to
+%presentation sources to a minimum. Over time, the support for
+%\pf{HA-prosper} via the mailinglist will be minimized and users are
+%advised to use \pf{powerdot} for new presentations.
+%
+%Further, information in this documentation was up to date in 2004,
+%but might be outdated by now. The reason of not updating this is
+%that since then all efforts have concentrated on the \pf{powerdot}
+%class.
+%
+%\subsection{Compatibility}
+%This section discusses compatibility issues between \pf{HA-prosper}
+%and some other packages. The \pf{HA-prosper} package has been
+%created and tested in an environment of MiKTeX 2.3 \cite{MiKTeX} and
+%GhostScript 8.00 \cite{GhostScript} and newer versions of that
+%software.
+%
+%\subsubsection{prosper}
+%Since \pf{HA-prosper} is a patch for \pf{prosper}, it is important
+%that you have the right version of \pf{prosper} which is 1.5
+%(|prosper.cls| version 1.24)\footnote{This package is also
+%compatible to the CVS version 1.25 of \pf{prosper}, but that
+%version is still in beta stage and it is advisory not to use it.
+%If you still want to use version 1.25 because of v\TeX\ support,
+%delete or comment line 88 of |prosper.cls| then, namely were the
+%\pf{pstcol} package is loaded, since that causes colors not to be
+%defined properly.}. This is the CTAN version \cite{prosperCTAN}.
+%
+%\subsubsection{ppr-prv}
+%A very nice package in combination with \pf{HA-prosper} is the
+%`Prosper Preview' class, \pf{ppr-prv} \cite{ppr-prv}, created by
+%Mathieu Goutelle \cite{Mathieu}. The aim of this class is to produce
+%a printable version of the slides written with \pf{prosper} or
+%\pf{HA-prosper} with two slides (or more at will) per page and a
+%table of contents on the first page in case you are using
+%\pf{HA-prosper}. Table~\ref{tab:pprpprvcompat} shows which versions
+%of \pf{ppr-prv} and \pf{HA-prosper} are compatible. Each row of the
+%table lists the compatible versions.
+%\begin{table}[ht]
+%\centering\caption{Compatible versions of \pf{HA-prosper} and
+%\pf{ppr-prv}.}\label{tab:pprpprvcompat}
+%\begin{tabular}{f}
+%\pf{HA-prosper}&\pf{ppr-prv}&\pf{HA-prosper}&\pf{ppr-prv}\\\hline\hline
+%3.7x&0.09&3.8&0.10\\\hline
+%3.9&0.11&4.0&0.12\\\hline
+%4.11&0.13&4.2&0.13\\\hline\hline
+%\end{tabular}
+%\end{table}
+%
+%\subsubsection{semcolor/pstcol/pstricks/color/xcolor}
+%Recently, the incompatibilities of these packages have been solved
+%and through a modification of \pf{semcolor}, the improved
+%compatibility is also available to \pf{HA-prosper} users. Check the
+%documentation of these packages to see whether or not your \LaTeX\
+%distribution already includes the compatible versions. If so, then
+%you can use both \pf{pstricks} color commands in your presentation
+%or style as well as \pf{xcolor} commands.
+%
+%\subsubsection{babel}
+%\pf{HA-prosper} redefines the |itemize| and the |enumerate|
+%environments at the beginning of the document. This solves a bug
+%that would otherwise occur when using the \pf{babel} package with
+%the |french| option. The \pf{prosper} macro
+%|\NoFrenchBabelItemize| is obsolete in \pf{HA-prosper} and has
+%no function anymore. The order of loading the packages is
+%important since \pf{HA-prosper} attempts to redefine some
+%\pf{babel} macros. In case you want to use \pf{babel}, load
+%\pf{babel} first and afterwards \pf{HA-prosper}.
+%
+%\subsubsection{Miscellaneous}
+%Older versions of GhostScript might produce ugly display text and
+%logo's. However, prints are fine in general. Furthermore, it has
+%been shown that Acrobat Reader 4 \cite{AcroRead} generally does not
+%display pictures properly.
+%
+%Since the |overlays| macro is not recognized by Scientific
+%WorkPlace \cite{SWP}, this program is not supported. The advice is
+%to use an editor for creating the slides, for example WinEdt
+%\cite{WinEdt} or TexNicCenter \cite{TexNicCenter} (free).
+%
+%\subsection{Installation}\label{sec:inst}
+%This package is included in the MiKTeX distribution \cite{MiKTeX}
+%and in TeXLive \cite{TeXLive} and can be installed for you by
+%these programs. However, if you downloaded this package from the
+%\pf{HA-prosper} website \cite{HA-prosper} or from the
+%\pf{HA-prosper} CTAN directory \cite{HA-prosperCTAN}), then here
+%are some hints for installing the package into your \LaTeX\
+%distribution.
+%
+%The package includes pre-generated run and doc files, but you can
+%reproduce them from the source if necessary. See the first lines
+%of |HA-prosper.dtx| for information how to do this. The files
+%in |Doc| should go into the |doc| tree of your distribution,
+%the files in |Run| into the |tex| run tree and the files in
+%|Source| into the |source| tree. See the documentation of
+%your \LaTeX\ distribution for information on installing
+%\pf{HA-prosper} into your \LaTeX\ distribution or the TeX
+%Frequently Asked Questions \cite{TeXFAQInst}.
+%
+%If you choose not to install the package into your \LaTeX\
+%distribution, you can copy the necessary files (that is, the run
+%files of \pf{HA-prosper} in the |Run| directory and the
+%necessary files of the particular style, which can all be found in
+%the relevant subdirectory of the |Run| directory) into your
+%working directory.
+%
+%\subsection{Document set up}\label{sec:setup}
+%The structure of a presentation created with \pf{HA-prosper} is
+%comparable to that of a \pf{prosper} presentation. See the
+%\pf{prosper} documentation for an overview.
+%
+%Do not forget to include
+%\begin{verbatim}
+%\usepackage[style,options]{HA-prosper}
+%\end{verbatim}
+%directly after the \pf{prosper} document class command to be able
+%to use the new definitions provided in |HA-prosper.sty|. Here
+%|style| is the style you want to use, for instance |HA|, and
+%|options| are any package options which will be described in
+%section~\ref{sec:new}. A summary of these options can be found in
+%section~\ref{sec:packageoptions}.
+%
+%\DescribeMacro{\HAPsetup}
+%You can set up certain features like footers and types of stepping
+%environments globally (holding for the entire presentation, unless
+%specified otherwise locally) using |\HAPsetup|, for instance
+%\begin{verbatim}
+%\HAPsetup{rf={My presentation},trans=Dissolve}
+%\end{verbatim}
+%This command can set up the features that you will be discussed in
+%section~\ref{sec:new}. You can find a summary in
+%section~\ref{sec:globals}.
+%
+%\subsection{Summary of package options}\label{sec:packageoptions}
+%Table~\ref{tab:packageoptions} contains a summary of all package
+%options of \pf{HA-prosper}. The numbers in between brackets are
+%the sections where you can find more information about a specific
+%option. See section~\ref{sec:setup} how to use these options.
+%\begin{table}[ht]
+%\caption{\pf{HA-prosper} package
+%options.}\label{tab:packageoptions}\makebox[\textwidth][r]{
+%\begin{tabular}{d}
+%\hline\hline
+%|sounds|& Turns on the |sound| key for slide environments (\ref{sec:slide}).\\\hline
+%|toc|& Creates a table of contents on slides (\ref{sec:toc}).\\\hline
+%|highlight|& Highlights the current slide in the table of contents (\ref{sec:tochl}).\\\hline
+%|hlsections|& Highlights the current section on every slide within the section (\ref{sec:tochl}).\\\hline
+%|portrait|& Creates portrait slides (\ref{sec:portrait}).\\\hline
+%|notes|& Includes the notes in your presentation (\ref{sec:notes}).\\\hline
+%|notesonly|& Includes only the notes in your presentation (\ref{sec:notes}).\\\hline
+%|slidesonly|& Includes only the slides in your presentation (\ref{sec:notes}).\\\hline
+%|blackslide|& Includes a black slide at the start of the presentation (\ref{sec:blslide}).\\\hline
+%\hline
+%\end{tabular}}
+%\end{table}
+%
+%\subsection{Summary of global options}\label{sec:globals}
+%Table~\ref{tab:hapsetupfeats} lists all the features of
+%\pf{HA-prosper} that can be set using |\HAPsetup|. The numbers
+%in between brackets are the sections where you can find more
+%information about a specific feature. See section~\ref{sec:setup}
+%how to use these global options.\par
+%\begin{table}[ht]\caption{Global
+%\pf{HA-prosper} options for \ci{HAPsetup}.}\label{tab:hapsetupfeats}
+%\makebox[\textwidth][r]{
+%\begin{tabular}{e}\hline\hline
+%|lf|&Left footer (\ref{sec:footers}).&|sound|&Transition sound (\ref{sec:slide}).\\\hline
+%|rf|&Right footer (\ref{sec:footers}).&|template|&Template for parts (\ref{sec:part}).\\\hline
+%|sn|&Slide number layout (\ref{sec:footers}).&|stype|&Stepping environment type (\ref{sec:iestep}).\\\hline
+%|tsnav|&Title slide navigation (\ref{sec:navs}).&|sstart|&Starting overlay (\ref{sec:iestep}).\\\hline
+%|nsnav|&Normal slide navigation (\ref{sec:navs}).&|iacolor|&Inactive color (\ref{sec:iestep}).\\\hline
+%|trans|&Transition effect (\ref{sec:slide}).&|counters|&Protect custom counters (\ref{sec:numbering}).\\\hline\hline
+%\end{tabular}}
+%\end{table}
+%The features listed in table~\ref{tab:hapsetupfeats} all have a
+%default value, which are discussed in the relevant sections. These
+%values are defined in the file |HA-prosper.cfg|. This file can
+%be modified. Modifications will have an effect on all
+%presentations created using \pf{HA-prosper}\footnote{Note that the
+%defaults saved in the |HA-prosper.cfg| file at the moment of
+%installation are also saved in |HA-prosper.sty|. In case you
+%accidentally delete a line in the |HA-prosper.cfg| file, the
+%predefined defaults in |HA-prosper.sty| will be used.}.
+%
+%\subsection{Compilation}\label{sec:compile}
+%If you use the |pdf| option in the |\documentclass|, compile with
+%LaTeX2DVI - DVI2PS - PS2PDF to create slides with animations
+%(incrementally displayed items created by the |itemstep|
+%environment) that can be projected using for instance Acrobat Reader
+%\cite{AcroRead}. Notice that \pf{HA-prosper} is build to work with
+%papertype |letter| in the DVI2PS step (which is the default in the
+%MiKTeX distribution and which can be achieved by adding |-t letter|
+%to the command line of |dvips|), but the |Fyma| style supports |A4|
+%paper as well. See section~\ref{sec:supportt}.
+%
+%If you want to print the slides, use the |ps2pdf| option and
+%compile them with LaTeX2DVI - DVI2PS - PS2PDF and you can print
+%the slides without animations.
+%
+%You can also use the Acrobat Distiller (included in Acrobat
+%\cite{Acrobat}) to create the PDF from the PS file. This creates
+%very efficient PDF files. Also see section~\ref{sec:result}. Do
+%not forget to specify the \pf{prosper} class option `distiller' in
+%this case to avoid errors when distilling the PS document. For
+%instance
+%\begin{verbatim}
+%\documentclass[pdf,distiller]{prosper}
+%\end{verbatim}
+%
+%If you prefer to use GhostView \cite{GhostView} for printing
+%purposes, you can of course suffice with LaTeX2DVI - DVI2PS and
+%print the slides form GhostView\footnote{You might have to shrink
+%pages to fit the paper when printing the slides.}.
+%
+%A nice option for the `documentclass' is `draft'. This is provided
+%by \pf{prosper} and speeds up the process of compiling and
+%viewing the presentation by leaving out images. Deleting the
+%option produces a presentation that includes all images again. See
+%the \pf{prosper} class documentation for more details.
+%
+%\subsection{Upgrade information}
+%This section contains information how to change your presentation
+%in case you worked with an earlier version of \pf{HA-prosper}
+%before and want to upgrade it. The list below contains the hints
+%for upgrading with a single version step at a time. If you for
+%instance want to upgrade from version 3.5 to the latest version,
+%read all the entries in the list starting from the entry right the
+%entry of version 3.5. If a particular version is not mentioned,
+%this means that no changes need to be made to adapt the
+%presentation to that version when starting at the last version
+%before.
+%
+%\begin{itemize}
+%\item[\fbox{3.0}] From \pf{HA-prosper} version 3.0, the
+%package is based on the CTAN version of \pf{prosper}. This means
+%that a separate version of \pf{prosper} is not distributed with
+%this package anymore. If you used \pf{HA-prosper} before, replace
+%the old style-file with the new one to upgrade to the latest
+%version of \pf{HA-prosper} and do not forget to rename or delete
+%prosper.cls in the working directory. \item[\fbox{3.5}] From
+%version 3.5 of \pf{HA-prosper} the style definitions (template)
+%will be loaded by \pf{HA-prosper}, not by \pf{prosper} anymore.
+%This is done to avoid conflict when trying to use \pf{HA-prosper}
+%templates with \pf{prosper}. Delete the style from the
+%|\documentclass| command and put it in the |\usepackage|
+%command of \pf{HA-prosper} when updating \pf{HA-prosper}. See also
+%section~\ref{sec:inst}.
+%\item[\fbox{3.6x}]\begin{itemize} \item When upgrading to
+%\pf{HA-prosper} version 3.6, you might need to delete the
+%|.toc| file of an existing presentation first since table
+%of contents commands have changed and the new \pf{HA-prosper}
+%is not able to understand the old commands. \item The
+%|\email| and |\institution| commands have changed.
+%In earlier version, defining them in the preamble of your
+%presentation would make them appear on the title slide. Now, you
+%have to put them inside the |\author| command. See
+%section~\ref{sec:eia} for an example.
+%\end{itemize}
+%\item[\fbox{3.7x}]\begin{itemize} \item Download the full package
+%to use the latest versions of the styles that are compatible to
+%this version of \pf{HA-prosper}. \item Rename
+%|\section| and |\sectionandpart| to
+%|\tsection| and |\tsectionandpart| respectively.
+%\end{itemize}
+%\item[\fbox{3.8}]\begin{itemize} \item Download the full package
+%to use the latest versions of the styles that are compatible to
+%this version of \pf{HA-prosper}. \item Rename
+%|\figureitem| to |\hiddenitem|. See
+%section~\ref{sec:xitemwait}.\item Change slides that use the
+%|dualslide| environment to for instance a normal
+%|slide| and use the |\dualslide| macro to create a
+%dualslide on that slide. See
+%section~\ref{sec:dualslide}.\end{itemize}
+%\item[\fbox{3.9}]
+%\begin{itemize} \item |\figureitem| and
+%|\putfigureitem| are no longer supported;
+%|\putfigure| should be replaced by the more general
+%|\topbl|, see section~\ref{sec:xitemwait}. \item The
+%dualslide dimensions have changed a bit, see
+%section~\ref{sec:dualslide}.\item More optional arguments for the
+%|itemstep| environment are available now, see
+%section~\ref{sec:iestep}.
+%\end{itemize}
+%\item[\fbox{4.0}]
+%\begin{itemize} \item
+%Commands |\TitleSlideNav|, |\NormalSlideNav|, |\LeftFoot|
+%and |\RightFoot| are obsolete but still supported. You can use
+%|\HAPsetup| instead, see section~\ref{sec:globals}.
+%\item Some style commands have changed but backward
+%compatibility is provided, see section~\ref{sec:styledev}.
+%\item |\onSlide| and |\OnSlide| are provided but the \pf{prosper}
+%macros |\fromSlide|, |\FromSlide|, |\untilSlide|, |\UntilSlide|,
+%|\onlySlide| and |\OnlySlide| still work, see section~\ref{sec:onslide}.
+%\item Toc behavior has changed a little bit. Empty slide titles
+%will now produce empty toc entries and empty bookmarks. Deleting
+%these happens by using respectively |toc=| and |bm=| (see section~\ref{sec:toc}).
+%\end{itemize}
+%\item[\fbox{4.1x}]
+%\begin{itemize}
+%\item \pf{HA-prosper} now uses \pf{xkeyval} \cite{xkeyvalCTAN}. Install
+%this package to work with \pf{HA-prosper}.
+%\item
+%|\topbl| has been deleted. The macro can be found on the \TeX\ FAQ \cite{TeXFAQTop}.
+%\item Replace |\item| by |\xitem| (see section~\ref{sec:xitem}).
+%\item Replace |\hiddenitem| by |\xitemwait| (see section~\ref{sec:xitemwait}).
+%\item When using |Lakar| style, replace |emptyslide| environments by
+%|partslide| environments (see section~\ref{sec:wpe}).
+%\end{itemize}
+%\item[\fbox{4.2x}] No changes to presentations necessary.
+%\end{itemize}
+%
+%\clearpage\section{New or changed environments and
+%commands}\label{sec:new} This section describes the new commands
+%provided by \pf{HA-prosper} and the originally \pf{prosper} commands
+%that have been extended. The section assumes knowledge of the
+%\pf{prosper} documentation.
+%
+%\subsection{The slide environment}\label{sec:slide}
+%\DescribeEnv{slide}
+%A slide is created using the |slide| environment. For instance
+%\begin{verbatim}
+%\begin{slide}[trans=Replace]{Sample slide}
+%...
+%\end{slide}
+%\end{verbatim}
+%The new |slide| environment has four options. They are
+%listed in table~\ref{tab:slide}.
+%\begin{table}[ht]
+%\caption{Slide environment options.}\label{tab:slide}
+%\makebox[\textwidth][r]{
+%\begin{tabular}{d}\hline\hline
+%|toc|&When specified, it will be used for the table of contents. When not\\
+%&specified, the slide title will be used to create a toc entry (see section~\ref{sec:toc}).\\\hline
+%|bm|&When specified, it will be used to create a bookmark. If not, the slide\\
+%&title will be used as a bookmark.\\\hline
+%|trans|&Slide transition effect (see the \pf{prosper} documentation) Default: |Replace|.\\\hline
+%|sound|&Specify a sound file to be played when the slide is displayed.\\\hline
+%\hline
+%\end{tabular}}
+%\end{table}
+%Some remarks need to be made. First of all, when you supply an
+%empty string as bookmark (so |bm=|), the bookmark will not be
+%created. A similar thing holds for empty toc strings (|toc=|).
+%See section~\ref{sec:toc}. The bookmark option is supplied to
+%provide low level text for creating a bookmark in case you want
+%the slide title to contain \LaTeX\ commands which might not be
+%convertable to bookmarks\footnote{Note that the bookmarking
+%procedure uses \ci{pdfstringdef} of \pf{hyperref} which is able
+%to process things like \ci{"i}.}. For instance:
+%\begin{verbatim}
+%\begin{slide}[bm=Important!]{\red Important!}
+%\end{verbatim}
+%
+%\DescribeSwitch{sounds}
+%Second, adding transition sounds to a presentation is possible,
+%but it is important to know that the sounds will not be embedded
+%in the presentation and hence need to be supplied separately.
+%Further, the presentation becomes system dependent by using
+%sounds. It depends on the target machine if the specific sound
+%file can be played or not. To switch on the use of sounds in your
+%presentation, use the package option |sounds|, see
+%section~\ref{sec:packageoptions}.
+%
+%The options |trans| and |sound| can be set globally by |\HAPsetup|
+%(see section~\ref{sec:globals})\footnote{Notice that backward
+%compatibility for \ci{DefaultTransition} is provided.}. The |sound|
+%slide option adds the transition sound to all slides within
+%|\overlays|. For more flexibility, the sound option also has a user
+%interface to set sounds on pages directly. The sound file
+%\DescribeMacro{\SlideSound}
+%|sound.wav| is added using |\SlideSound| as follows.
+%\begin{verbatim}
+%\SlideSound{sound.wav}
+%\end{verbatim}
+%This code adds a transition sound to the first overlay only:
+%\begin{verbatim}
+%\onSlide*{1}{\SlideSound{sound.wav}}
+%\end{verbatim}
+%(see also section~\ref{sec:onslide} for the use of |\onSlide|).
+%
+%\subsection{Structuring the presentation}\label{sec:toc}
+%\subsubsection{Building a table of contents}
+%\DescribeSwitch{toc}
+%You can include a table of contents on each slide. This can be
+%used for navigational purposes during the presentation. When
+%printing the slides, you might decide to leave out the table of
+%contents. You can request a table of contents by specifying the
+%option |toc| in the |\usepackage| command for the style
+%file, like
+%\begin{verbatim}
+%\usepackage[toc,HA]{HA-prosper}
+%\end{verbatim}
+%(see also the examples in this distribution). \pf{HA-prosper} will
+%use slide titles by default to produce the table of contents, but
+%this behavior can be changed (see section~\ref{sec:slide}).
+%
+%Some remarks. First of all, the table of contents will of course
+%only be put on the slides when it has been implemented in the style
+%that you are using. See section~\ref{sec:supportt}. Second,
+%\pf{HA-prosper} offers possibilities for style developers to split
+%the table of contents into two parts the first of which will contain
+%the sections and the second will contain the content of the current
+%section.
+%
+%Third, if you specify an empty string as toc entry (so |toc=|),
+%the toc entry will be deleted from the table of contents. This
+%allows for building an overview of your presentation. Hence the
+%table of contents can both be used for navigational purposes (like
+%the bookmarks) and to provide an overview of the presentation.
+%
+%Finally, as with a usual table of contents in \LaTeX, you need to
+%run your presentation at least twice after altering slides or toc
+%entries. On the first pass, the table of contents will be updated
+%and on the second run, the new table of contents will be included
+%in the presentation.
+%
+%\subsubsection{Highlighting table of contents entries}\label{sec:tochl}
+%\DescribeSwitch{highlight}
+%If you want to highlight the current slide or the slide created by
+%a |\part| or |\tsectionandpart| command (see section~\ref{sec:pas})
+%in the table of contents, specify the
+%|highlight| option, like
+%\begin{verbatim}
+%\usepackage[toc,highlight,HA]{HA-prosper}.
+%\end{verbatim}
+%Of course, the |highlight| option only takes effect when
+%also the |toc| option has been specified (and of
+%course the style you are using should support highlighting and the
+%table of contents). This |highlight| option can be nice
+%for both yourself and the audience since everyone can clearly see
+%on which slide or in which section of the presentation you are.
+%
+%\DescribeSwitch{hlsections}
+%An extra option is the |hlsections| option. This will make the
+%current section highlighted on every slide within the current
+%section. This can be especially useful when sections and section
+%content are split in the style that you use, which would otherwise
+%result in unclarities about the current section\footnote{Splitting
+%of the table of contents is often implemented on portrait
+%templates.}. When the table of contents is not split up, this option
+%might be left out since in this case, the hierarchical structure of
+%the table of contents clearly identifies the current section.
+%
+%\subsection{Parts and sections}\label{sec:pas}
+%\subsubsection{tsection}\label{sec:section}
+%\DescribeMacro{\tsection}
+%By using the |\tsection|
+%command, it is possible to divide the table of contents in several
+%sections. The content of a section will be hidden until you access
+%a slide inside this section. The section heading in the table of
+%contents itself refers to the first slide after the section
+%command. The section command should be used between slides. The
+%following shows an example.
+%\begin{verbatim}
+%\begin{slide}{First slide}
+%Some text
+%\end{slide}
+%
+%\tsection[Bookmark for section 1]{Section 1}
+%
+%\begin{slide}{Second slide}
+%Some text
+%\end{slide}
+%\end{verbatim}
+%The optional argument of the |\tsection| macro can be used
+%to specify the string to be used for the bookmark. Notice that all
+%slides that are met before issuing the first |\tsection|
+%command will always be displayed in the table of contents.
+%Exceptions hold for two cases. The first is when issuing an empty
+%string as toc entry in the |slide| environment (see
+%section~\ref{sec:slide}). The second is when the style that you
+%are using implements a split table of contents. In this case, the
+%content of every new section will replace the content of the old
+%section when going from the old section to the new section. The
+%entries before the first section will then be replaced by the
+%entries of the first section when advancing to that section.
+%
+%\DescribeMacro{\tsection*}
+%Furthermore, |\tsection*| is available. It has the exact same
+%possibilities as |\tsection|, but this command hides the section
+%created by |\tsection*| completely until you enter it (for instance
+%with a hyperlink to a slide, by using bookmarks or by browsing the
+%slides). This can be useful if you want to include slides in your
+%presentation, that you don't want to show in the table of contents,
+%but which you could include into the presentation if you see that
+%you have some time left. But there are of course other applications
+%thinkable.
+%
+%\subsubsection{part}\label{sec:part}
+%\DescribeMacro{\part}
+%The |\part| command lets you identify separate parts in your
+%presentation. The command |\part{Part I}| produces a normal slide
+%with horizontally centered the words `Part I'. The argument will
+%also be used to create a bookmark and a toc entry (if a table of
+%contents is requested). The |\part| takes the same options as the
+%|slide| environments (see section~\ref{sec:slide}), but it should be
+%noted that in case you specify an empty string for the |bm| option,
+%the part title will be used to create the bookmark.
+%
+%An additional option for the |\part| command is the
+%|template| option. This allows to select a different
+%template (supplied by the style that you use) for the slide
+%created by the |\part| command. For instance, the HA-style
+%supplies the template `wideslide'. You can use that template for
+%the part to delete the table of contents from that particular
+%slide. Example:
+%\begin{verbatim}
+%\part[template=wideslide,toc=Part number one,bm=The first part]{Part I}
+%\end{verbatim}
+%
+%Note that the option |template| can be set globally for the entire
+%presentation (see section~\ref{sec:globals}). The default value of
+%|template| is |slide|.
+%
+%\subsubsection{tsectionandpart}\label{sec:secandpart}
+%\DescribeMacro{\tsectionandpart}
+%The
+%|\tsectionandpart| command is a combination of the
+%|\tsection| command (see section~\ref{sec:section}) and the
+%|\part| command (see section~\ref{sec:part}). This command
+%is supplied since issuing the two previous commands after each
+%other cannot replicate the output of |\tsectionandpart|.
+%The command has the same optional arguments as the |\part|
+%command and besides creating a slide, it also creates a section in
+%the table of contents. The section heading in the table of
+%contents will now refer to the slide created by the |\part|
+%command.
+%
+%\DescribeMacro{\tsectionandpart*}
+%Notice that |\tsectionandpart*| produces similar output as
+%|\tsection*|. Namely, it hides the section in the table of
+%contents completely until it is accessed by going to any slide
+%within this section. See also section~\ref{sec:section}. As
+%|\tsectionandpart|, it also creates a |\part| slide.
+%
+%\subsection{Dualslide}\label{sec:dualslide}
+%\DescribeMacro{\dualslide}
+%The |\dualslide| macro allows to split content into two
+%columns. Usage:
+%\begin{samepage}
+%\begin{verbatim}
+%\dualslide[opt1][opt2][opt3]{options}{left}{right}
+%\end{verbatim}
+%The parameters are explained in
+%table~\ref{tab:dspars}.\end{samepage}\par
+%\begin{table}[ht]\centering
+%\caption{Dualslide parameters.}\label{tab:dspars}
+%\begin{tabular}{d}
+%\hline\hline
+%|opt1|& Any \pf{PSTricks} options to change the style of the\\
+%&(optional) left frame. Example: |linestyle=dotted|.\\\hline
+%|opt2|& Idem for the line in between the two columns.\\\hline
+%|opt3|& Idem for the right column.\\\hline
+%|options|& Options for the dualslide, see table~\ref{tab:dsoptions}.\\\hline
+%|left|& The content for the left column.\\\hline
+%|right|& The content for the right column.\\\hline\hline
+%\end{tabular}
+%\end{table}
+%\begin{table}[ht]
+%\caption{Dualslide options.}\label{tab:dsoptions}
+%\makebox[\textwidth][r]{
+%\begin{tabular}{d}
+%\hline\hline
+%|lineheight|& If |lineheight| is specified, a line of the specified height will be created\\
+%&using \ci{psline} in between the two columns. Example: |lineheight=6cm|.\\\hline
+%|lfrheight|& Creates a frame of the specified height around the left column.\\\hline
+%|rfrheight|& Creates a frame of the specified height around the right column.\\\hline
+%|frsep|& Space between text and the frames. Default: |1.5mm|.\\\hline
+%|colsep|& Space between the two columns. Default: |0.06|\ci{linewidth}.\\\hline
+%|lcolwidth|& Width of the left column. Default: |0.47|\ci{linewidth}.\\\hline
+%|rcolwidth|& Width of the right column. Default: |0.47|\ci{linewidth}.\\\hline
+%|topsep|& The extra space (additional to \ci{baselineskip}) between text above\\
+%&the columns and the text within the columns. Default: |0cm|.\\\hline
+%|bottomsep|& Idem for the bottom of the columns. Default: |0cm|.\\\hline
+%|indent|&Horizontal indent left to the left column. Default: |0cm|.\\\hline\hline
+%\end{tabular}}
+%\end{table}
+%The dimensions described in table~\ref{tab:dsoptions} are
+%represented graphically in figure~\ref{fig:dsldim}.
+%\begin{figure}[ht]
+%\centering\caption{Dualslide dimensions.}\label{fig:dsldim}
+%\pspicture(0,.5)(13,10.5)
+%\psline(0,0.5)(0,10)
+%\rput[tl](.05,9.95){Top}
+%\psframe[dimen=middle](1,9)(7,2)
+%\psline{C-C}(8.5,9)(11,9)
+%\psline{C-C}(8.5,2)(8.5,9)
+%\psline{C-C}(8.5,2)(11,2)
+%\qdisk(1.7,8.3){.1cm}
+%\psset{linestyle=dashed}
+%\psline{C-C}(1.7,8.3)(6.3,8.3)
+%\psline{C-C}(1.7,8.3)(1.7,3)
+%\psline{C-C}(6.3,5)(6.3,8.3)
+%\psline{C-C}(11,9)(12,9)
+%\psline{C-C}(11,2)(12,2)
+%\psline{C-C}(11,7)(12,7)
+%\psline{C-C}(9.2,8.3)(12,8.3)
+%\psline{C-C}(9.2,8.3)(9.2,3)
+%\rput[tl](1.75,8.25){Left column text}
+%\rput[tl](9.25,8.25){Right column text}
+%\rput[tl](.05,1){Bottom}
+%\psset{linestyle=dotted,dotsep=2pt}
+%\psline(0,8.3)(1.7,8.3)
+%\psline(0,9.6)(1,9.6)
+%\psline(0,2)(1,2)
+%\psline(0,1.1)(1,1.1)
+%\psset{linestyle=solid}
+%\psline{<->}(.2,8.33)(.2,9.57)
+%\psline{<->}(4,8.33)(4,8.97)
+%\psline{<->}(1.73,7)(6.27,7)
+%\psline{<->}(1.03,6.5)(1.67,6.5)
+%\psline{<->}(0.03,5.5)(1.67,5.5)
+%\psline{<->}(6.33,7.4)(9.17,7.4)
+%\psline{<->}(8.53,6.5)(9.17,6.5)
+%\psline{<->}(6.33,6.5)(6.97,6.5)
+%\psline{<->}(10.7,8.33)(10.7,8.97)
+%\psline{<->}(7.3,8.97)(7.3,2.03)
+%\psline{<->}(.2,1.13)(.2,1.97)
+%\psline{->}(1.7,9.3)(1.7,8.45)
+%\psline{<-}(9.23,7)(11,7)
+%\cput(4,6.6){\small 1}
+%\cput(11.1,6.6){\small 2}
+%\cput(8,7){\small 3}
+%\cput(7.7,3){\small 4}
+%\cput(4.4,8.65){\small 5}
+%\cput(1.35,6.1){\small 5}
+%\cput(8.85,6.1){\small 5}
+%\cput(11.1,8.65){\small 5}
+%\cput(6.65,6.1){\small 5}
+%\cput(0.6,8.95){\small 6}
+%\cput(0.6,5.1){\small 7}
+%\cput(0.6,1.55){\small 8}
+%\cput(1.7,9.6){\small 9}
+%\endpspicture
+%\begin{center}
+%\begin{tabular}{c p{4cm}cl}
+%\multicolumn{4}{c}{Meaning of the numbers}\\\hline
+%1&|lcolwidth|&5&|frsep|\\
+%2&|rcolwidth|&6&|topsep|\\
+%3&|colsep|&7&|indent|\\
+%4&|lfrheight|, |rfrheight|,&8&|bottomsep|\\
+%&|lineheight|&9&Reference point
+%\end{tabular}
+%\end{center}
+%\end{figure}
+%Important to notice is that the |\dualslide| macro uses the
+%current cursor position as the reference point to position the
+%first line of text of the left column (see also
+%figure~\ref{fig:dsldim}). This means that optional frames can
+%extend to the text on the previous line. Use for instance
+%|topsep=0.3cm| in that case to add extra space between the
+%two lines of text. The default value of |topsep| is based
+%on the situation that there is no text on top of the two columns.
+%In that case, it is best to locate the first line of text of the
+%left column at the same spot as text that is not created by
+%|\dualslide| on other slides. The setting
+%|topsep=0cm| does exactly this. However, with a combination
+%of |topsep| and |indent| you can change this
+%behavior and position the first line of text of the left column
+%anywhere you want.
+%
+%The dualslide macro computes the height of the construction to
+%position text below the construction correctly. The computation is
+%done by taking the maximum height of |lfrheight|,
+%|rfrheight|, |lineheight| (if requested) and the
+%left and right column content. Hence when frames nor a line is
+%requested, |bottomsep| is the vertical space between the
+%lowest line of text in the columns and the text below the columns
+%(additional to |\baselineskip|).
+%
+%Furthermore, if none of the optional arguments has been specified,
+%|dualslide| will use the \pf{PSTricks} defaults for
+%creating frames and the line. Two exceptions:
+%|linewidth=.25pt| and |linecolor=HAP@framecolor| by
+%default, but these can of course again be changed using the
+%optional arguments. When only |opt1| has been specified,
+%this is used globally for both frames and the line. When both
+%|opt1| and |opt2| have been specified, |opt1|
+%will be used for both frames and |opt2| will be used for
+%the line. In case you want to change the properties of the right
+%frame only, call for instance
+%\begin{verbatim}
+%\dualslide[ ][ ][linecolor=red]{rfrheight=6cm}{left content}{right content}
+%\end{verbatim}
+%
+%More examples can be found in the example files of \pf{HA-prosper},
+%see section~\ref{sec:examples}. Also have a look at
+%section~\ref{sec:animating} for information about animating content.
+%The commands described there can also be used to animated content in
+%the two columns.
+%
+%\subsection{Animating content}\label{sec:animating}
+%\subsubsection{itemstep and enumstep}\label{sec:iestep}
+%\DescribeEnv{itemstep}
+%\DescribeEnv{enumstep}
+%The |itemstep| and |enumstep| environments are based
+%on the |itemize| and |enumerate| environments
+%respectively, but with these environments, items will be displayed
+%incrementally. Available options can be found in
+%table~\ref{tab:iestepopts}.
+%\begin{table}[ht]
+%\caption{Itemstep and enumstep
+%options.}\label{tab:iestepopts}
+%\makebox[\textwidth][r]{
+%\begin{tabular}{d}
+%\hline\hline
+%|sstart|& Starts the stepping environment on overlay |sstart|. Default: 1.\\\hline
+%|iacolor|& Inactive color, used for inactive items. Default: lightgray.\\\hline
+%|stype|& Type of stepping environment. Default: 0. Possible:\\
+%&0 -- items appear one by one, but remain active;\\
+%&1 -- items appear one by one, but turn inactive when moving to the next item;\\
+%&2 -- all items are displayed and only one is active at a time.\\
+%\hline\hline
+%\end{tabular}}
+%\end{table}
+%These environments can be nested into each other and lower level
+%environments inherit options from higher level environments. The
+%|sstart| option has effect only in the highest level stepping
+%environment (which can be embedded in an |itemize| or |enumerate|
+%environment). The items of an |itemize| environment, which is nested
+%in a stepping environment, will inherit the state (active or not)
+%from the item in the stepping environment to which the
+%(sub)environment(s) belong to. If |itemize| or |enumerate| is used
+%at the top level, all items are active on all overlays. Find an
+%example below (for the meaning of |\xitem|, refer to
+%section~\ref{sec:xitem}).
+%\begin{verbatim}
+%\overlays{6}{
+%\begin{slide}{xitem example}
+%Some text.
+% \begin{itemstep}[sstart=2,stype=0,iacolor=gray]
+% \xitem item 1
+% \begin{enumstep}[stype=1] % inherits iacolor!
+% \xitem item 1.1
+% \xitem item 1.2
+% \end{enumstep}
+% \xitem item 2
+% \xitem item 3
+% \end{itemstep}
+%\end{slide}
+%}
+%\end{verbatim}
+%See section~\ref{sec:examples} for more examples and section
+%\ref{sec:xitemwait} for a tool for these environments. The
+%options for the stepping environments can also be set globally
+%using the |\HAPsetup| macro (see section~\ref{sec:globals}).
+%
+%Note that the use of type 1 or 2 stepping environments requires
+%the definition of the color |HAP@textc| by the template
+%that you use. See section~\ref{sec:styledev}.
+%
+%\subsubsection{xitem}\label{sec:xitem}
+%\DescribeMacro{\xitem}
+%\pf{HA-prosper} defines a new command, |\xitem|, to be used within
+%|itemize|, |enumerate|, |itemstep| and |enumstep| environments.
+%Within |itemstep| and |enumstep| environments it will take care of
+%the animation effect discussed in section~\ref{sec:iestep}. Within
+%|itemize| and |enumerate| environments it will just display the
+%content. Defining this command is necessary since redefining |\item|
+%would damage macros and environments using |\item| (for instance
+%|center|, |flushright|, |flushleft|).
+%
+%The |\xitem| macro also has a version in which it takes an optional
+%value $n$ by doing |\xitem<n>|. This value is the extra number of
+%overlays that the item should remain active in a stepping
+%environment and is ignored in an |itemize| or |enumerate|
+%environment. This optional argument can be useful when you want to
+%add content to the current item on a later overlay. Notice that this
+%can make several items active at a particular overlay. To avoid
+%this, add |\xitemwait| before the next item. See the example below
+%and section~\ref{sec:xitemwait}.
+%\begin{verbatim}
+%\overlays{3}{
+%\begin{slide}{xitem example}
+%\begin{itemstep}[stype=1]
+% \xitem<1> Yes?
+% \onSlide{2-}{No!}
+% \xitemwait
+% \xitem Because...
+%\end{itemstep}
+%\end{slide}
+%}
+%\end{verbatim}
+%
+%Note that a possibly unfamiliar syntax has been chosen for
+%|\xitem<n>|. This done to easily support the other optional argument
+%that comes with |\xitem| since it is an extension of the standard
+%|\item|. The optional argument allows you to overwrite the item
+%label, for instance |\xitem[a]| or |\xitem<1>[b]|. See your favorite
+%\LaTeX\ manual for more information about the latter.
+%
+%\subsubsection{xitemwait}\label{sec:xitemwait}
+%\DescribeMacro{\xitemwait}
+%The command |\xitemwait| tells \pf{HA-prosper} to wait for one
+%overlay before passing on to the next item in a stepping
+%environment. The optional argument $n$ tells \pf{HA-prosper} to wait
+%$n$ overlays before passing on to the next item. Example:
+%\begin{verbatim}
+%\overlays{5}{
+%\begin{slide}{xitemwait example}
+% \begin{itemstep}
+% \xitem 1
+% \xitem 2
+% \xitemwait[2]
+% \xitem 3
+% \end{itemstep}
+%\end{slide}
+%}
+%\end{verbatim}
+%This might come in handy to animate custom content using |\onSlide|
+%(see section~\ref{sec:onslide}) in dualslides
+%(section~\ref{sec:dualslide}) in combination with stepping
+%environments (section~\ref{sec:iestep}). Outside stepping
+%environments, the macro has no effect.
+%
+%\subsubsection{onSlide and OnSlide}\label{sec:onslide}
+%\DescribeMacro{\onSlide}
+%The macro
+%|\onSlide{overlays}{material}| displays |material| on the
+%overlays listed in |overlays|. This can be a comma delimited
+%list and the syntax explained in table~\ref{tab:osnot} can be
+%used ($x$ and $y$ are positive integers with $y\geq x$).
+%\begin{table}[ht]\centering
+%\caption{Notation for \ci{onSlide}, \ci{onSlide*} and
+%\ci{OnSlide}.}\label{tab:osnot}
+%\begin{tabular}{d}\hline\hline
+%$x$&Display material only on overlay $x$.\\\hline
+%-$x$&Display material until and including overlay $x$.\\\hline
+%$x$-&Display material from and including overlay $x$.\\\hline
+%$x$-$y$&Display material from $x$ until $y$, including $x$ and $y$.\\\hline
+%\hline
+%\end{tabular}
+%\end{table}
+%When used inside an |itemstep| or |enumstep| environment, there is
+%extra syntax available. This syntax follows the same rules as
+%explained in table~\ref{tab:osnot}, but now $x$ and $y$ can start
+%with a |+| sign. This sign can be used to animate content relative
+%to the preceding |\xitem| in an |itemstep| or |enumstep|
+%environment. Suppose that for instance the preceding |\xitem| of
+%|\onSlide{+1-+2}{...}| will be displayed on overlay 6. Then the
+%material of |\onSlide| will be displayed from overlay 7 to 8. Since
+%this construct is relative, it is very easy to add to or delete
+%items from the list without having to adapt all of the |\onSlide|
+%commands that you used. See another example below.
+%\begin{verbatim}
+%\overlays{4}{
+%\begin{slide}{onSlide example}
+%\begin{itemstep}
+% \xitem item 1
+% \xitem item 2
+% \begin{itemize}
+% \xitem item 3 \onSlide{+1-}{and item 4}
+% \end{itemize}
+% \xitemwait
+% \xitem item 5
+%\end{itemstep}
+%\end{slide}
+%}
+%\end{verbatim}
+%
+%The |\onSlide| macro collects and generalizes all the
+%functionality of the \pf{prosper} macros |\onlySlide|,
+%|\untilSlide| and |\fromSlide|. This macro advances the
+%cursor position even if the material is not displayed. The stared
+%version |\onSlide*| does not advance the cursor position in
+%case the material is not displayed and collects the functionality
+%of the \pf{prosper} macros |\onlySlide*|, |\untilSlide*| and
+%|\fromSlide*|. Note that these macros can be nested into each
+%other, which allows for the creation of more parsimonious
+%structures (which will also become more complex). For instance,
+%\begin{verbatim}
+%\onSlide{-3,5-6,8,10-}{One}\onSlide{-2,6,8,10-}{Two}\onSlide{2,8,10-}{Three}
+%\end{verbatim}
+%and
+%\begin{verbatim}
+%\onSlide{-3,5-6,8,10-}{One\onSlide{-2,6-}{Two\onSlide{2,8-}{Three}}}
+%\end{verbatim}
+%produce the same output. The following example demonstrates the
+%difference between |\onSlide| and |\onSlide*|:
+%\begin{verbatim}
+%\onSlide{1}{One}\onSlide{2}{Two}\onSlide{3-}{Three}\par
+%\onSlide*{1}{One}\onSlide*{2}{Two}\onSlide*{3-}{Three}
+%\end{verbatim}
+%
+%\DescribeMacro{\OnSlide}
+%The macro |\OnSlide{overlays}| also accepts the same syntax as the
+%|\onSlide| macro and can be used to display or not all of the
+%following material on a slide after the |\OnSlide| macro. This macro
+%collects the functionality of the \pf{prosper} macros |\OnlySlide|,
+%|\UntilSlide| and |\FromSlide|.
+%Example:
+%\begin{verbatim}
+%\OnSlide{3-} All of this material will be displayed as from overlay 3.
+%\end{verbatim}
+%
+%\subsection{Numbering on overlays}\label{sec:numbering}
+%Mathieu Goutelle \cite{Mathieu} contributed a patch for the
+%|\overlays| macro which makes it possible to number equations,
+%tables and figures on overlays. This patch has been extended such
+%that you can also protect custom counters on overlays. For general
+%information about numbering, see your favorite \LaTeX\ book for
+%more information.
+%
+%The |counters| option for |\HAPsetup| (section~\ref{sec:globals})
+%can be used to list the counters that should be protected. For instance,
+%\begin{verbatim}
+%\newtheorem{mytheorem}{Theorem}
+%\newtheorem{myproof}{Proof}
+%\HAPsetup{counters={mytheorem,myproof}}
+%\end{verbatim}
+%in your preamble, will let you safely do
+%\begin{verbatim}
+%\overlays{3}{
+%\begin{slide}{Proof}
+% \begin{myproof}
+% Suppose that:
+% \begin{equation}
+% x^2+y^2=z^2
+% \end{equation}
+% then\dots
+% \end{myproof}
+%\end{slide}
+%}
+%\end{verbatim}
+%The counters |figure|, |equation| and |table| are protected
+%on overlays by default. The |counters| option for |\HAPsetup|
+%lists the additional counters that should be protected. Notice that
+%the counter that you want to protect needs to exist when issuing
+%|\HAPsetup| to set the protected counters.
+%
+%\subsection{Portrait slides}\label{sec:portrait}
+%\DescribeSwitch{portrait}
+%If a template supports portrait slides, you can access these by
+%specifying the |portrait| option in the |\usepackage| command
+%like
+%\begin{verbatim}
+%\usepackage[toc,portrait,HA]{HA-prosper}.
+%\end{verbatim}
+%When requesting portrait slides, a template will give an error if
+%it does not support portrait slides. See
+%section~\ref{sec:supportt} for the templates that support portrait
+%slides. When using portrait slides, the |hlsections| option might
+%be useful for you, see section~\ref{sec:tochl}.
+%
+%\subsection{Notes}\label{sec:notes}
+%\DescribeEnv{notes}
+%The \pf{HA-prosper} package provides a way to make notes in
+%your presentation. To include notes in the presentation that go
+%with a slide, start a |notes| environment after this slide.
+%For instance
+%\begin{verbatim}
+%\begin{slide}{First slide}
+%...
+%\end{slide}
+%
+%\begin{notes}{Notes for the first slide}
+%These are the notes for the first slide.
+%\end{notes}
+%\end{verbatim}
+%
+%\DescribeSwitch{slidesonly}
+%\DescribeSwitch{notesonly}
+%\DescribeSwitch{notes}
+%An additional option in the |\usepackage| command provides a
+%way to control the printing of notes and slides. Include at most
+%one of the following options.
+%\begin{itemize}
+%\item |slidesonly|: produces the slides only. This is the
+%default option. Use this to create the presentation that you want
+%to project. \item |notesonly|: produces the notes only.
+%\item |notes|: includes the notes in the presentation.
+%\end{itemize}
+%For instance
+%\begin{verbatim}
+%\usepackage[toc,notesonly,HA]{HA-prosper}
+%\end{verbatim}
+%
+%\textbf{Note}: If you want the notes only, first run the
+%presentation at least once with the option `notes' to create
+%correct labels for the notes page numbers. Once that is done, run
+%the presentation with the `notesonly' option to create the
+%notes\footnote{In case you use landscape slides, do not forget to
+%put Auto-Rotation of pages to `Individually' if you are using the
+%Acrobat Distiller to create the PDF. `Collectively by File' will
+%rotate will rotate notes to landscape just like the slides.}.
+%
+%\subsection{Bibliography}\label{sec:bib}
+%\DescribeEnv{thebibliography}
+%\pf{HA-prosper} redefines the standard \pf{article}
+%|thebibliography| environment to suppress the creation of a section
+%heading and running headers. All other properties are maintained.
+%Now you can do either of the next two (depending whether you are
+%using BiB\TeX\ or not):
+%\begin{center}
+%\begin{tabular}{p{7cm}p{5cm}}
+%\begin{verbatim}
+%\begin{slide}{slide 1}
+%\cite{someone}
+%\end{slide}
+%\begin{slide}{References}
+%\begin{thebibliography}{1}
+%\bibitem{someone} Article of someone.
+%\end{thebibliography}
+%\end{slide}
+%\end{verbatim}&
+%\begin{verbatim}
+%\begin{slide}{slide 1}
+%\cite{someone}
+%\end{slide}
+%\begin{slide}{References}
+%\bibliography{YourBib}
+%\end{slide}
+%\end{verbatim}
+%\end{tabular}
+%\end{center}
+%In case you have a big reference list that you want to spread over
+%multiple slides, have a look at the packages \pf{natbib} and
+%\pf{bibentry} \cite{natbibCTAN}. Using both packages allows you to
+%do:
+%\begin{verbatim}
+%\begin{slide}{References (1)}
+%\nobibliography{YourBib}
+%\bibentry{someone1}
+%\bibentry{someone2}
+%\end{slide}
+%\begin{slide}{References (2)}
+%\bibentry{someone3}
+%\end{slide}
+%\end{verbatim}
+%Have a look at your favorite \LaTeX\ documentation for more
+%information about citations and bibliographies.
+%
+%\subsection{Bookmarks}\label{sec:bookmarks}
+%\pf{HA-prosper} nests bookmarks within sections created by
+%|\tsection| and |\tsection*| (see section~\ref{sec:section}) and
+%|\tsectionandpart| and |\tsectionandpart*| (see
+%section~\ref{sec:secandpart}). On the first pass of a document,
+%bookmarks will be written to disk and will be read on the second
+%pass to create the bookmarks. This is necessary to identify the
+%number of slide bookmarks that should be nested within section
+%bookmarks.
+%
+%Notice that the bookmark of a |\tsection| (or
+%|\tsection*|) points to the first slide within the section,
+%just as the toc link generated by this section. Furthermore, as
+%|\part| does not create a toc section, it does not create a
+%bookmarks section. This allows for creating both a flat table of
+%contents as well as a flat bookmarks list.
+%
+%The nesting of bookmarks in sections is fully compatible to the
+%nesting of bookmarks of overlays subordinate to the bookmarks of
+%the first overlay of a slide. Bookmarks created by section
+%commands are open and the bookmarks of slides are closed by
+%default. You can change the latter by issuing the \pf{prosper}
+%command |\collapsedBookmarksfalse| in the preamble of your
+%presentation.
+%
+%\subsection{Black slide}\label{sec:blslide}
+%\DescribeSwitch{blackslide}
+%The package option |blackslide| creates a completely black
+%slide as the first slide of the presentation. The PDF-file will
+%start at page 2 when opened, the first real slide, so the black
+%slide will not be revealed. The slide has an embedded target
+%called `blackslide'. In the top left corner of the black slide, a
+%black button is positioned which performs the Acrobat menu option
+%`GoBack' when clicking it. This allows to temporarily stop the
+%presentation (for instance, to write something at the blackboard)
+%by clicking a hyperlink that points to the target `blackslide'.
+%When the writing it done, click in the top left corner of the
+%black slide to continue the presentation.
+%
+%\subsection{Footers}\label{sec:footers} The
+%footers can be defined by the |\HAPsetup| command (see
+%section~\ref{sec:globals})\footnote{Notice that backward
+%compatibility is provided for \ci{LeftFoot} and
+%\ci{RightFoot}.}, for instance
+%\begin{verbatim}
+%\HAPsetup{lf={Left footer},rf={Right footer}}
+%\end{verbatim}
+%The default values of |lf| and |rf| are empty strings. The
+%slide number layout can be specified by the |sn| option. The
+%default value of |sn| is\footnote{\ci{thepage}
+%contains the number of the current slide, \ci{totalpages} inserts
+%the total number of slides in the presentation and
+%\ci{ifallPages} is a conditional from \pf{prosper} which is false
+%if the \pf{prosper} class option |nototal| is specified by the
+%user.}
+%\begin{verbatim}
+%{-~p.~\thepage\ifallPages/\totalpages\fi}
+%\end{verbatim}
+% which resembles the standard \pf{prosper} layout.
+%\pf{HA-prosper} adds a space in between the text specified by
+%|rf| and the text specified by |sn| to create the entire
+%right footer. Another example of the slide number layout could be
+%\begin{verbatim}
+%\HAPsetup{sn={slide~\#\thepage}}.
+%\end{verbatim}
+%
+%\subsection{e-mail, institution and the
+%and-command}\label{sec:eia}
+%\DescribeMacro{\author}
+%\DescribeMacro{\email}
+%\DescribeMacro{\institution}
+%\pf{HA-prosper} changes the behavior
+%of the \pf{prosper} commands |\email| and |\institution|.
+%The package does not anymore put them directly onto the title
+%page. Instead, you can use them inside the |\author| command to
+%use the fonts that the template specifies for the e-mail address
+%and the institution. This is done to offer support for the
+%|\and| command\footnote{This was not possible in the
+%construction used by \pf{prosper}.}. Example:
+%\begin{verbatim}
+%\author{%
+% Me\\
+% \institution{My institution}\\
+% \email{My e-mail address}
+% \and
+% You\\
+% \institution{Your institution}\\
+% \email{Your e-mail address}
+%}
+%\end{verbatim}
+%
+%\clearpage\section{Style specific features} This section documents
+%several style specific features. Check table~\ref{tab:supportt} in
+%section~\ref{sec:supportt} to find which features are supported by
+%each template.
+%
+%\subsection{maketitle}\label{sec:mct}
+%\DescribeMacro{\maketitle}
+%This adapted command
+%replaces the usual |\maketitle| and takes care of defining
+%a title slide with a different layout as the first slide, include
+%the title on that slide and create the rest of the slides as
+%normal slides (unless specified differently by using for instance
+%another slide environment, see section~\ref{sec:wpe}).
+%
+%This command has the same options as the |slide| environment (see
+%section~\ref{sec:slide}. By default, the title slide will appear in
+%neither the bookmarks list nor the table of contents. You can change
+%this by specifying respectively the |bm| option and/or the |toc|
+%option (see section~\ref{sec:slide}).
+%
+%If the |\maketitle| feature is not supported by a style,
+%then the |\maketitle| uses a normal slide to display the
+%title on.
+%
+%\subsection{Wideslide and partslide}\label{sec:wpe}
+%\DescribeEnv{wideslide}
+%A |wideslide| produces a slide with an extended text area in case
+%you need to display very wide formulas or figures. In a lot of
+%templates, this means that the table of contents will not be
+%displayed on a wideslide.
+%
+%As a remark: the optional arguments possible for the
+%|\maketitle| (see section~\ref{sec:mct}) are also available
+%for the modified slide environments. So
+%\begin{verbatim}
+%\begin{wideslide}[toc=Toc slide title,trans=Replace]{Slide title}
+%...
+%\end{wideslide}
+%\end{verbatim}
+%creates a |wideslide| which does not have transition
+%effects itself and uses `Toc slide title' as the entry for the
+%(optional) table of contents. See section~\ref{sec:toc} for more
+%information about the optional table of contents.
+%
+%\DescribeEnv{partslide}
+%The |partslide| environment is available in some styles. This
+%environment uses a template which has been designed especially for
+%use with the |\part| (see section~\ref{sec:part}) and the
+%|\sectionandpart| commands (see section~\ref{sec:secandpart}).
+%
+%See section~\ref{sec:supportt} to find which styles support
+%|wideslide| or |partslide| environments.
+%
+%\subsection{Hidden navigation}\label{sec:navs} If you use Acrobat (Reader)
+%to project the slides, it is possible to embed hidden navigational
+%components. The navigational components are accessed by clicking
+%the logo on a slide (unless stated otherwise in style specific
+%documentation). These components are always hidden and hence
+%removing their definitions when you want to print the slides is
+%not necessary. Using |\HAPsetup| (see
+%section~\ref{sec:globals}), you can set the following
+%options\footnote{Notice that backward compatibility for
+%\ci{TitleSlideNav} and \ci{NormalSlideNav} is provided.}:
+%\begin{itemize}
+%\item |tsnav|\\
+%Navigation possibilities of the logo on the title slide.\\
+%For instance: |tsnav=FullScreen|: when starting the
+%presentation, you can make the presentation full screen by
+%clicking the logo.
+%
+%\item |nsnav|\\
+%Navigation possibilities on all other slides.\\
+%For instance: |nsnav=ShowBookmarks| or |nsnav=GoToPage|: the
+%former will provide a list of slide titles when viewing the
+%presentation in full screen mode. In this case, proper slide
+%titles might help you navigate your presentation. The latter will
+%show a menu where you can type the slide number of the slide that
+%you want to display.
+%\end{itemize}
+%
+%For more possibilities, see the documentation of the
+%\pf{hyperref} package.
+%
+%\subsection{Support table}\label{sec:supportt}
+%Table~\ref{tab:supportt} displays an overview of the available
+%extra features in the styles. In between brackets you can find
+%links to sections explaining the features.
+%
+%\begin{table}[ht]
+%\caption{Available features in styles.}\label{tab:supportt}
+%\makebox[\textwidth][r]{
+%\begin{tabular}{l}\rlap{
+%\pstilt{60}{%
+%\begin{tabular}{g}\hline
+%\rotateleft{\rnode{c1}{}\hphantom{ TCSTealBlue }} &
+%\rotateleft{\rnode{c2}{}\hphantom{TCSTealBlue}\rnode{c0}{}} &
+%\rotateleft{\rnode{c3}{}} &
+%\rotateleft{\rnode{c4}{}} &
+%\rotateleft{\rnode{c5}{}} &
+%\rotateleft{\rnode{c6}{}} &
+%\rotateleft{\rnode{c7}{}} &
+%\rotateleft{\rnode{c8}{}} &
+%\rotateleft{\rnode{c9}{}} &
+%\rotateleft{\rnode{c10}{}} &
+%\rotateleft{\rnode{c11}{}} &
+%\rotateleft{\rnode{c12}{}} &
+%\rotateleft{\rnode{c13}{}}
+%\end{tabular}
+%}}\\
+%\rput[rt](c0){Styles\hspace{1.5em}}
+%\rput[lb](c1){ Features}
+%\rput[lt]{60}(c2){ Aggie}
+%\rput[lt]{60}(c3){ Capsules}
+%\rput[lt]{60}(c4){ CentER}
+%\rput[lt]{60}(c5){ Ciment}
+%\rput[lt]{60}(c6){ Fyma}
+%\rput[lt]{60}(c7){ HA}
+%\rput[lt]{60}(c8){ Lakar}
+%\rput[lt]{60}(c9){ Simple}
+%\rput[lt]{60}(c10){ TCS}
+%\rput[lt]{60}(c11){ TCSgrad}
+%\rput[lt]{60}(c12){ TCSTealBlue}
+%\rput[lt]{60}(c13){ Tycja}
+%\hspace{.67em}\begin{tabular}{g}\hline
+%table of contents (\ref{sec:toc}) & x & x & x & x & x & x & x & x & x & x & x & x \\
+%portrait slides (\ref{sec:portrait}) & x & & & & & x & x & x & & & & x \\
+%A4 support & & & & & x & & & & & & & \\
+%modified \ci{maketitle} (\ref{sec:mct}) & x & x & x & x & x & x & x & x & x & x & x & x \\
+%wideslide environment (\ref{sec:wpe}) & x & x & x & x & x & x & x & x & x & x & x & x \\
+%partslide environment (\ref{sec:wpe}) & & x & & x & x & & x & & & & & \\
+%tsnav (\ref{sec:navs}) & x & & x & & & & & & x & x & x & \\
+%nsnav (\ref{sec:navs}) & x & & x & & & x & & & x & x & x & \\
+%\hline
+%\end{tabular}
+%\end{tabular}}
+%\end{table}
+%
+%Currently only the |Fyma| style supports the |A4| papersize. To use
+%it, issue the command |\FymaAFour| in your preamble and use |-t A4|
+%in the |dvips| command line to get slides in A4 dimensions.
+%
+%\clearpage\section{Information for style developers}\label{sec:styledev}
+%\subsection{General tools}
+%This section provides some information in case you want to develop
+%your own style. Remember that this package is still based on
+%\pf{prosper}, so for the standard \pf{prosper} features, see the
+%\pf{prosper} documentation. Table~\ref{tab:devfeats1} lists
+%additional features of \pf{HA-prosper} available to control the
+%layout, fonts and colors of your style. The controls in
+%table~\ref{tab:devfeats2} are \pf{HA-prosper} internals and should
+%only be used in style files. In between brackets you can find links
+%to sections explaining the related user interface commands. Do not
+%forget to take a look at existing styles since these are the ideal
+%starting point to create a new style.
+%Note that if you use |\HAP@NSNav| or |\HAP@TSNav| in a style, make
+%sure to check whether it has been defined by the user or not.
+%
+%\begin{table}[ht]\centering
+%\caption{\pf{HA-prosper} features for style development.}
+%\label{tab:devfeats1}
+%\makebox[\textwidth][r]{
+%\begin{tabular}{d}
+%\hline\hline
+%\ci{FontLeftFoot\string{C\string}\string{BW\string}},& This command is used to
+%assign a font to the left footer (\ref{sec:footers}). The\\
+%& first argument is for color slides, the second for black
+%and white ones.\\
+%& Default: font: \ci{fontText}; text height: 5pt; line height: 5pt.\\
+%\ci{fontLeftFoot\string{xx\string}}& This command writes |xx| in the font
+%defined by the former command.\\\hline
+%\ci{FontRightFoot\string{C\string}\string{BW\string}},& Idem for right footer (\ref{sec:footers}).\\
+%\ci{fontRightFoot\string{xx\string}}& Default: font: \ci{fontText}; text height: 5pt; line height: 5pt.\\\hline
+%\ci{FontAuthor\string{C\string}\string{BW\string}},& Idem for author (\ref{sec:eia}).\\
+%\ci{fontAuthor\string{xx\string}}& Default: font: \ci{fontText}.\\\hline
+%\ci{FontInst\string{C\string}\string{BW\string}},& Idem for institution (\ref{sec:eia}).\\
+%\ci{fontInst\string{xx\string}}& Default: font: \ci{fontText}; text height: 7pt; line height: 7pt.\\\hline
+%\ci{FontEmail\string{C\string}\string{BW\string}},& Idem for e-mail address (\ref{sec:eia}).\\
+%\ci{fontEmail\string{xx\string}}& Default: font: \ci{fontText}; text height: 7pt; line height: 7pt.\\\hline
+%\ci{FontToc\string{C\string}\string{BW\string}},& Idem for table of contents (\ref{sec:toc}).\\
+%\ci{fontToc\string{xx\string}}& Default: font: \ci{fontText}; text height: 4pt; line height: 6pt.\\\hline
+%\hline
+%\end{tabular}}
+%\end{table}
+%
+%\begin{table}[ht]
+%\caption{Internal \pf{HA-prosper} controls for style development.}\label{tab:devfeats2}
+%\makebox[\textwidth][r]{
+%\begin{tabular}{d}\hline\hline
+%\ci{HAP@PutLF\string{A\string}\string{C\string}}&
+%Uses \ci{rput} to position the left footer using anchor |A| and coordinates |C|.\\\hline
+%\ci{HAP@PutRF\string{A\string}\string{C\string}}&
+%Uses \ci{rput} to position the right footer using anchor |A| and coordinates |C|.\\\hline
+%\ci{HAP@NSNav}&Contains argument of \ci{NormalSlideNav}, if defined (\ref{sec:navs}).\\\hline
+%\ci{HAP@TSNav}&Contains argument of \ci{TitleSlideNav}, if defined (\ref{sec:navs}).\\\hline
+%Color |HAP@textc|&Text color, used for switching back from inactive colors; default: black (\ref{sec:iestep}).\\\hline
+%Color |HAP@framecolor|&Color for dualslide frames and lines; default: black (\ref{sec:dualslide}).\\\hline
+%\ci{ifHAP@active}&True if item is active, for use with \ci{myitem} (see \pf{prosper} docs and \ref{sec:xitem}).\\\hline
+%\ci{ifHAP@highlight}&True if highlighting has been requested by the user (\ref{sec:tochl}).\\\hline
+%\ci{ifHAP@portrait}&True if portrait slides have been requested by the user (\ref{sec:portrait}).\\\hline
+%\ci{ifHAP@notes}&If's that contain the state of requested notes, slides only or notes only.\\
+%\ci{ifHAP@notesonly}&These can take the value 0 or 1 (false or true) and it holds that\\
+%\ci{ifHAP@slidesonly}&the sum is equal to one and the product is equal to zero (\ref{sec:notes}).\\
+%\hline\hline
+%\end{tabular}}
+%\end{table}
+%
+%\subsection{Table of contents typesetting}
+%\pf{HA-prosper} uses the macros |\HAP@tocentry| and
+%|\HAP@hltocentry| to typeset table of contents entries. The latter
+%macro will be used in case the entry needs to be highlighted. By
+%default, \pf{HA-prosper} puts the toc entry at hand in a |\parbox|
+%to allow for multi-line toc entries. For |\HAP@hltoctext|, the
+%latter is inserted in a |\psframebox|. You can redefine the former
+%macros to typeset the table of contents for your style in a
+%different way. Use |\HAP@toctext| in your definitions. This will at
+%run time contain the entry at hand in the markup specified by either
+%|\HAP@tline|, |\HAP@tlineonly|, |\HAP@tsection| or
+%|\HAP@tsectiononly| depending on the type of table of contents and
+%the type of the entry. See for instance the |Fyma| style for an
+%alternative table of contents markup. See further
+%table~\ref{tab:tocmarkup} for other macros related to typesetting
+%the table of contents and section~\ref{sec:toc} for more information
+%about the table of contents.
+%
+%\begin{table}[ht]
+%\caption{Table of contents typesetting macros.}\label{tab:tocmarkup}
+%\makebox[\textwidth][r]{
+%\begin{tabular}{d}\hline\hline
+%\ci{HAP@toc}&Command that includes the toc file in \ci{fontToc}.\\\hline
+%\ci{HAP@tsections}&Includes sections of the toc file in \ci{fontToc}.\\\hline
+%\ci{HAP@tcontent}&Contains the content of the current section.\\\hline
+%\ci{ifHAP@toc}&True if a table of contents has been requested by the user.\\\hline
+%\ci{HAP@tline}&Layout of a table of contents entry in a full toc.\\\hline
+%\ci{HAP@tlineonly}&Layout of a table of contents entry in \ci{HAP@tcontent}.\\\hline
+%\ci{HAP@tsection}&Layout of a table of contents section in a full toc.\\\hline
+%\ci{HAP@tsectionm}&Section marker, inserted just before creating a section.\\\hline
+%\ci{HAP@tsectiononly}&Layout of a table of contents section in \ci{HAP@tsections}.\\\hline
+%\ci{HAP@tsectionskip}&Vertical skip above a section; default: 1.5em.\\\hline
+%\ci{HAP@titemskip}&Vertical skip in between items, not sections; default: 0.1em.\\\hline
+%\ci{HAP@tocentry}&Construct for entry, use \ci{HAP@toctext} inside, see leading text.\\\hline
+%\ci{HAP@hltocentry}&Construct for highlighting, use \ci{HAP@toctext} inside, see leading text.\\\hline
+%Color |HAP@hcolor|&Color for PostScript frame used for highlighting; default: black.\\\hline
+%Color |HAP@htcolor|&Text color for highlighted toc entry; default: white.\\\hline
+%\ci{HAP@twidth}&Width of toc, used for \ci{parbox} in \ci{HAP@tocentry} and \ci{HAP@hltocentry}.\\\hline
+%\ci{HAP@tborder}&Border size in \ci{psframebox} of \ci{HAP@hltocentry}; default: 0.05cm\\\hline\hline
+%\end{tabular}}
+%\end{table}
+%
+%Note that the macros |\HAP@hcolor|, |\HAP@htcolor|, |\HAP@twidth|
+%and |\HAP@tborder| are only used in the default definitions of
+%|\HAP@tocentry| and |\HAP@hltocentry|. If you decide to redefine the
+%latter two macros, defining and using the former four might not be
+%necessary. The default toc typesetting uses these macros to provide
+%an easy way for style designers to tweak the default markup of the
+%table of contents.
+%
+%\subsection{Reserved commands}
+%\pf{HA-prosper} knows a couple of reserved commands. If these
+%commands are defined by a style, they will be used by
+%\pf{HA-prosper} to create new slide environments. See
+%table~\ref{tab:reserved}.
+%
+%\begin{table}[ht]
+%\caption{Reserved commands in \pf{HA-prosper}.} \label{tab:reserved}
+%\makebox[\textwidth][r]{
+%\begin{tabular}{d}\hline\hline
+%\ci{HAPR@normalSlide}&Should contain the layout
+%of a standard slide.\\\hline
+%\ci{HAPR@wideSlide}&Should contain the layout of a
+%wide slide; used for |wideslide| environment (\ref{sec:wpe}).\\\hline
+%\ci{HAPR@partSlide}&Should contain the layout of a
+%part slide; used for |partslide| environment (\ref{sec:wpe}).\\\hline
+%\ci{HAPR@titleSlide}&Should contain the layout of a
+%title slide; used to create title slide,\\
+%&which will be embedded in the \ci{maketitle} command (\ref{sec:mct}).\\\hline
+%\hline
+%\end{tabular}}
+%\end{table}
+%
+%Note that |\HAPR@normalSlide| is used to switch back to after
+%creating a special slide environment like |wideslide|. If this
+%command has not been defined in your style, then \pf{HA-prosper}
+%will not be able to define the environments mentioned in
+%section~\ref{sec:wpe} for you. As a last note: don't forget the
+%power of the \pf{PSTricks} package for designing styles.
+%
+%\clearpage\section{Miscellaneous issues}
+%
+%\subsection{Examples}\label{sec:examples}
+%Examples that use the \pf{HA-prosper} package are contained in the
+%|HAPIntroduction.tex|, |HAPBigtest.tex| and |HAPDualslide.tex|
+%files in this distribution. The examples assume that you have the
+%|HA| style. More examples can be found at the \pf{HA-prosper} website
+%\cite{HA-prosper}.
+%
+%Do not forget to take a look at the documentation of the
+%\pf{prosper} class, the \pf{hyperref} package and the
+%\pf{PSTricks} package to fully understand the possibilities of
+%slides created by \pf{HA-prosper}.
+%
+%\subsection{Required packages}\label{sec:req}
+%The most important requirements of the \pf{prosper} class are:
+%\begin{multicols}{2}
+%\begin{itemize}\setlength{\itemsep}{0pt}
+%\item \pf{seminar},
+%\item \pf{hyperref},
+%\item \pf{pstricks},
+%\item \pf{graphicx}.
+%\end{itemize}
+%\end{multicols}
+%The most important requirements of the \pf{HA-prosper} package
+%are:
+%\begin{multicols}{2}\raggedright
+%\begin{itemize}\setlength{\itemsep}{0pt}
+%\item \pf{prosper} (|prosper.cls| version 1.24),
+%\item \pf{xkeyval} \cite{xkeyvalCTAN},
+%\item \pf{xcomment},
+%\item \pf{verbatim}.
+%\end{itemize}
+%\end{multicols}
+%
+%\subsection{Resulting PDF}\label{sec:result}
+%The PDF produced by PS2PDF (GhostScript) is usually very big.
+%Unfortunately, it includes a copy of the logos on the slides every
+%time they appear. In case this logo is a rendered picture, the PDF
+%will become very big. There is not much you can do about that.
+%However, you can compress a generic presentation PDF file very
+%much (often even to 10\% of the original size) using for instance
+%WinZip. And you could of course delete the logo or replace it by a
+%non-rendered picture, for instance created by \pf{PSTricks}, see
+%the \pf{PSTricks} website \cite{PSTricks}. Compare for example
+%the |HA| style and the |Lakar| style.
+%
+%Another possibility is to use `Reduce file size' in the file menu
+%of Acrobat (available from version 6). You can also use the PDF
+%Optimizer in this version of Acrobat (Tools - PDF Optimizer).
+%Using this option, you can compress the pictures inside the
+%presentation and make the presentation considerably smaller. Hint:
+%do not use JPEG or JPEG2000 for the compression of images. Even at
+%the highest level of quality, this produces poor results for
+%projecting purposes. Instead, use the ZIP compression. Also, do
+%not downsize the resolution lower than 300 pixels per inch (for
+%retaining printing quality).
+%
+%However, to get the most efficient PDF document, use the Acrobat
+%Distiller to convert the PS file into a PDF file. Do not forget to
+%include the `distiller' option in the document class in this case
+%(see section~\ref{sec:compile}).
+%
+%\subsection{Credits}
+%I want to thank the following people for their contribution(s).
+%\begin{itemize}
+%\item\textbf{Style contributors}\\
+%Chris Ellison: |TCS|, |TCSgrad| and |TCSTealBlue| styles.\\
+%Jack Stalnaker: |Aggie| style.\\
+%Laurent Jacques \cite{Laurent}: |Fyma| style.\\
+%Mathieu Goutelle \cite{Mathieu}: |Capsules| and |Ciment| styles.
+%\item\textbf{Bug reports}\\
+%Bugs have been detected and reported by Chris Ellison, Victor
+%Francisco Fonte, Johan Joubert, Fr\'ed\'eric Mayot, and Johan
+%Segers.
+%\item\textbf{Contributions and ideas}\\
+%A lot of thanks go Mathieu Goutelle \cite{Mathieu}, Herbert Vo\ss\
+%\cite{Herbert}, Murali Krishna Ganapathy \cite{Murali} and Laurent
+%Jacques for great help, code contributions and/or ideas for improvements.
+%\end{itemize}
+%
+%\subsection{Questions}\label{sec:questions}
+%If you have questions, please first consult the documentation of
+%the package that could possibly answer your question. Probably,
+%you can find the answer in the documentation of either the
+%\pf{HA-prosper} package, \pf{prosper} class, the \pf{hyperref}
+%package or the \pf{PSTricks} package. Also have a look at
+%WikiProsper \cite{WikiProsper} for a \pf{prosper} FAQ,
+%\pf{prosper} open questions, known \pf{prosper} bugs,
+%etcetera.
+%
+%If you cannot solve the problem yourself, or if you have comments or
+%requests for additional features, you may try to post a message to
+%the \pf{HA-prosper} mailinglist \cite{HAprospermaillist}. Do not
+%forget to include a \emph{minimal} example when you want help with
+%an error message.
+%
+%The use of the mailinglist will be supported as long as possible,
+%but as stated in section~\ref{sec:newclass} most effort will be done
+%to help \pf{powerdot} users and the \pf{HA-prosper} mailinglist may
+%disappear over time.
+%
+%
+%{\small
+%\begin{thebibliography}{[00]}
+%
+%\bibitem{Acrobat}
+%Acrobat.
+%\newblock \url{http://www.adobe.com/products/acrobat}.
+%
+%\bibitem{AcroRead}
+%{Acrobat Reader}.
+%\newblock \url{http://www.adobe.com/products/acrobat/readstep2.html}.
+%
+%\bibitem{GhostScript}
+%{AFPL GhostScript}.
+%\newblock \url{http://www.cs.wisc.edu/~ghost}.
+%
+%\bibitem{GhostView}
+%GhostView.
+%\newblock \url{http://www.cs.wisc.edu/~ghost/gsview}.
+%
+%\bibitem{HAprospermaillist}
+%{HA-prosper mailinglist}.
+%\newblock \url{http://listserv.surfnet.nl/archives/ha-prosper.html}.
+%
+%\bibitem{HA-prosperCTAN}
+%{HA-prosper on CTAN}.
+%\newblock
+% \url{http://www.ctan.org/tex-archive/macros/latex/contrib/ha-prosper}.
+%
+%\bibitem{HA-prosper}
+%{HA-prosper website}.
+%\newblock \url{http://stuwww.uvt.nl/~hendri/downloads/haprosper.html}.
+%
+%\bibitem{Herbert}
+%{Herbert Vo\ss}.
+%\newblock \url{http://www.perce.de}.
+%
+%\bibitem{Laurent}
+%{Laurent Jacques}.
+%\newblock \url{http://www.fyma.ucl.ac.be/~ljacques}.
+%
+%\bibitem{Mathieu}
+%{Mathieu Goutelle}.
+%\newblock \url{http://webperso.easyconnect.fr/goutelle}.
+%
+%\bibitem{MiKTeX}
+%MiKTeX.
+%\newblock \url{http://www.miktex.org}.
+%
+%\bibitem{Murali}
+%{Murali Krishna Ganapathy}.
+%\newblock \url{http://www.cs.uchicago.edu/people/gmkrishn}.
+%
+%\bibitem{natbibCTAN}
+%{Natbib on CTAN}.
+%\newblock
+% \url{http://www.ctan.org/tex-archive/macros/latex/contrib/natbib}.
+%
+%\bibitem{powerdot}
+%{powerdot on CTAN}.
+%\newblock
+% \url{http://www.ctan.org/tex-archive/macros/latex/powerdot}.
+%
+%\bibitem{ppr-prv}
+%{ppr-prv}.
+%\newblock
+% \url{http://www.ctan.org/tex-archive/macros/latex/contrib/ppr-prv}.
+%
+%\bibitem{prosperCTAN}
+%{Prosper on CTAN}.
+%\newblock
+% \url{http://www.ctan.org/tex-archive/macros/latex/contrib/prosper}.
+%
+%\bibitem{prosper}
+%{Prosper website}.
+%\newblock \url{http://prosper.sourceforge.net}.
+%
+%\bibitem{PSTricks}
+%{PSTricks website}.
+%\newblock \url{http://www.pstricks.de}.
+%
+%\bibitem{SWP}
+%{Scientific WorkPlace}.
+%\newblock \url{http://www.mackichan.com}.
+%
+%\bibitem{TeXFAQInst}
+%{TeX FAQ (Installing packages)}.
+%\newblock \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages}.
+%
+%\bibitem{TeXFAQTop}
+%{TeX FAQ (Top-aligning imported graphics)}.
+%\newblock \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=topgraph}.
+%
+%\bibitem{TeXLive}
+%{TeXLive}.
+%\newblock \url{http://www.tug.org/texlive}.
+%
+%\bibitem{TexNicCenter}
+%TeXnicCenter.
+%\newblock \url{http://www.toolscenter.org}.
+%
+%\bibitem{WikiProsper}
+%WikiProsper.
+%\newblock \url{http://wikiprosper.bbclone.de}.
+%
+%\bibitem{WinEdt}
+%WinEdt.
+%\newblock \url{http://www.winedt.com}.
+%
+%\bibitem{xkeyvalCTAN}
+%{xkeyval on CTAN}.
+%\newblock
+% \url{http://www.ctan.org/tex-archive/macros/latex/xkeyval}.
+%
+%\end{thebibliography}}
+%
+%\subsection{Copyright}
+%Copyright \copyright\ 2003-2005 by Hendri Adriaens. All rights reserved.\\
+%
+%This program 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
+%\url{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.\\
+%
+%\subsection{Version history}
+%This section lists the main changes in this package as from
+%version 3.5. Note that each version change also contains solutions
+%to known (minor) bugs and improvements in programming and user
+%interface.
+%
+%\begin{itemize}
+%\item[\fbox{3.5}] Solved a bug with toc entries in combination with
+%highlighting. This bug was mainly caused
+%by the \pf{keyval} package not undefining variables when they are
+%not used. Thanks to Mathieu Goutelle for the help; added support
+%for the |\part| command. Made \pf{HA-prosper} load slide
+%style definitions itself at the final stage; changed style names
+%to |HAP[name].sty| to identify \pf{HA-prosper} style
+%definitions from \pf{prosper} style definitions; made
+%\pf{HA-prosper} undefine |\slidetitle| before loading the
+%style definitions;
+%
+%\item[\fbox{3.6}] Improved writing of toc entries; solved an
+%inconsistency in writing definitions between |seminar| and
+%|latex.ltx|; introduced |\section| and
+%|\sectionandpart|; completely changed |notes| environment,
+%not using |seminar| note constructions anymore; added support
+%for |\and| in |\author|; added |\fontToc|;
+%\begin{itemize}
+%\item[\fbox{3.61}] Removed redundant grouping;
+%\item[\fbox{3.62}] Adapted writing definitions a bit to be more consistent with
+%|seminar|;
+%\end{itemize}
+%
+%\item[\fbox{3.7}] Prepared \pf{HA-prosper} for compatibility to the
+%|prosper preview| class \cite{ppr-prv}; integrated specific
+%style features into \pf{HA-prosper}; recoded |\figureitem|
+%command; renamed |\section| to |\tsection|,
+%|\sectionandpart| to |\tsectionandpart| to provide
+%compatibility to for instance |\bibliography|; restructured
+%\pf{HA-prosper} internals;
+%\begin{itemize}
+%\item[\fbox{3.71}] Solved a small bug writing final toc entry AtEndDocument;
+%added |TCS| style by Chris Ellison.
+%\end{itemize}
+%
+%\item[\fbox{3.8}] Added |\tsection*|, |\tsectionandpart*| and
+%nesting of bookmarks; created |\dualslide|; added
+%|\hiddenitem|, |\putfigure|, |\figureitem| and
+%|\putfigureitem|. Revised the documentation; revised the
+%examples; added the |\dualslide| example; revised the styles.
+%
+%\item[\fbox{3.9}] Deleted |\putfigureitem| and |\figureitem|
+%and replaced |\putfigure| by the more general |\topbl|;
+%improved positioning of bottom text when using |\dualslide|;
+%added |indent| option for |\dualslide|; added support for a
+%split toc; added package option |hlsections|; added package
+%option |blackslide|; solved a bug occurring when
+%|\tsectionandpart| was used to create the last slide; added
+%|enumstep|; made it possible to nest |itemstep| and
+%|enumstep| environments; added |\HAPsetup|, yet only used
+%for stepping environments.
+%
+%\item[\fbox{4.0}] Changed to |.dtx| format and wrote code
+%documentation. Added slide options |bm| and |sound|. Added
+%default behavior of stepping environments with the |ps2pdf|
+%\pf{prosper} option to be type 1, namely all active. Changed
+%bookmarking process to a system that allows for deletion of
+%bookmarks. Added global control of features through
+%|HA-prosper.cfg|. Added |Aggie| style by Jack Stalnaker.
+%Made some code more efficient. Added entrance point for
+%\pf{ppr-prv} to make redefining macros easier for that class.
+%Solved a bug in combination with loading \pf{babel}. Added
+%|\onSlide| and |\OnSlide|.
+%
+%\item[\fbox{4.1}] Moved documentation to |.dtx| file. Added
+%package option |counters|. Restored original |\item| and
+%created |\xitem|. Changed |\hiddenitem| to |\xitemwait|
+%which is a bit more general. Removed a bug in |\onSlide|.
+%Rewrote a lot of code. Made \pf{HA-prosper} use \pf{xkeyval}.
+%Changed |emptyslide| into more |partslide|. Added |Fyma| style
+%by Laurent Jacques.
+%
+%\begin{itemize}
+%\item[\fbox{4.11}] Corrected small bug in \pf{ppr-prv} compatibility
+%check. Made \pf{HA-prosper} use original \LaTeX\ macros |\title| and
+%|\author|. Added missing `=' in |\HAP@contentsline| definition.
+%\end{itemize}
+%
+%\item[\fbox{4.2}] Improved table of contents typesetting. Added
+%|\xitem<n>|. Added |thebibliography| environment. Improved
+%positioning of the slide title in the styles. Added handle for state
+%of list items. Updated styles. Added |TCSgrad| and |TCSTealBlue|
+%styles by Chris Ellison. Added extra syntax for |\onSlide| and
+%|\OnSlide| to make displaying material relative to the preceding
+%|\xitem|.
+%
+%\begin{itemize}
+%\item[\fbox{4.21}] Added |Capsules| and |Ciment| styles by Mathieu
+%Goutelle. Updated for \pf{xkeyval} version 1.4.
+%\end{itemize}
+%
+%\end{itemize}
+%
+% \StopEventually{\PrintIndex}
+%
+% \section{Implementation}\label{sec:impl}
+%
+% \subsection{Preamble and options}
+% The start of the file.
+% \begin{macrocode}
+%<*program>
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\def\HAP@Version{v4.21}
+\ProvidesPackage{HA-prosper}[2004/08/20 \HAP@Version\space Patch for prosper]
+\typeout{(c) 2003-2004 Hendri Adriaens, Tilburg, the Netherlands}
+\typeout{ }
+% \end{macrocode}
+% Required packages. Load \pf{xkeyval} safely to avoid problems with
+% \pf{pst-key} which redefines |\setkeys| as well as \pf{xkeyval}.
+% \begin{macrocode}
+\let\HAP@orig@setkeys\setkeys
+\RequirePackage{xkeyval}
+\let\xsetkeys\setkeys
+\RequirePackage{xcomment}
+\RequirePackage{verbatim}
+% \end{macrocode}
+% Check the version of \pf{ppr-prv} for compatibility.
+% \begin{macrocode}
+\def\PPRPRV@ReqVersion{v. 0.13}
+\@ifclassloaded{ppr-prv}{%
+ \ifx\PPRPRV@ReqVersion\PPRPRV@Version\else
+ \PackageError{HA-prosper}{HA-prosper \HAP@Version\space and
+ ppr-prv \PPRPRV@Version\space are incompatible}%
+ {Read the documentation of HA-prosper.}%
+ \fi}{}
+% \end{macrocode}
+% \DescribeSwitch{slidesonly}\DescribeSwitch{notesonly}\DescribeSwitch{notes}
+% Define package options using \pf{xkeyval}. We start with the options for notes.
+% \begin{macrocode}
+\newif\ifHAP@notes
+\newif\ifHAP@notesonly
+\newif\ifHAP@slidesonly
+\DeclareOptionX{notes}{\HAP@slidesonlyfalse\HAP@notestrue\HAP@notesonlyfalse}
+\DeclareOptionX{notesonly}{\HAP@notesonlytrue\HAP@slidesonlyfalse\HAP@notesfalse}
+\DeclareOptionX{slidesonly}{\HAP@slidesonlytrue\HAP@notesonlyfalse\HAP@notesfalse}
+% \end{macrocode}
+% \DescribeSwitch{toc}
+% Table of contents (toc) option.
+% \begin{macrocode}
+\newif\ifHAP@toc
+\DeclareOptionX{toc}{\HAP@toctrue}
+% \end{macrocode}
+% \DescribeSwitch{highlight}
+% Highlighting of toc entries.
+% \begin{macrocode}
+\newif\ifHAP@highlight
+\DeclareOptionX{highlight}{\HAP@highlighttrue}
+% \end{macrocode}
+% \DescribeSwitch{hlsections}
+% Permanent highlighting of toc sections.
+% \begin{macrocode}
+\newif\ifHAP@hlsections
+\DeclareOptionX{hlsections}{\HAP@hlsectionstrue}
+% \end{macrocode}
+% \DescribeSwitch{portrait}
+% Portrait slides.
+% \begin{macrocode}
+\newif\ifHAP@portrait
+\DeclareOptionX{portrait}{\HAP@portraittrue}
+% \end{macrocode}
+% \DescribeSwitch{blackslide}
+% The black slide.
+% \begin{macrocode}
+\newif\ifHAP@blackslide
+\DeclareOptionX{blackslide}{\HAP@blackslidetrue}
+% \end{macrocode}
+% \DescribeSwitch{sounds}
+% Include sounds.
+% \begin{macrocode}
+\newif\ifHAP@sounds
+\DeclareOptionX{sounds}{\HAP@soundstrue}
+% \end{macrocode}
+% Default template.
+% \begin{macrocode}
+\def\HAP@Style@chosen{HA}
+\DeclareOptionX*{\let\HAP@Style@chosen\CurrentOption}
+% \end{macrocode}
+% Default: slides only.
+% \begin{macrocode}
+\ExecuteOptionsX{slidesonly}
+\ProcessOptionsX
+% \end{macrocode}
+% Reset |\setkeys| to avoid problems for pstricks packages using
+% \pf{pst-key}.
+% \begin{macrocode}
+\let\setkeys\HAP@orig@setkeys
+% \end{macrocode}
+% \subsection{Main code}
+% \subsubsection{Some necessary stuff}
+% Temporary boxes, lengths and counters.
+% \begin{macrocode}
+\newbox\HAP@tba
+\newbox\HAP@tbb
+\newlength\HAP@tla
+\newlength\HAP@tlb
+\newlength\HAP@tlc
+\newlength\HAP@tld
+\newcounter{HAP@tca}
+% \end{macrocode}
+% Paper sizes for portrait and landscape slides.
+% \begin{macrocode}
+\ifHAP@portrait
+ \slidewidth=150mm
+ \slideheight=222mm
+\else
+ \slidewidth=222mm
+ \slideheight=150mm
+\fi
+% \end{macrocode}
+% \DescribeEnv{NewSlideStyle}
+% This environment needs to be redefined to be able to remember
+% the anchor and the position of the main text box on slides.
+% The original comes from \pf{prosper}.
+% \begin{macrocode}
+\renewcommand{\NewSlideStyle}[4][11cm]{%
+ \setlength{\slideWidth}{#1}%
+ \global\pslongbox{posit@Box}{\rput[#2](#3)}%
+ \newslideframe{the#4}{\csname #4\endcsname{##1}}%
+ \slidepagestyle{GenericPageStyle}%
+ \slideframe{the#4}%
+ \gdef\HAP@current@anchor{#2}%
+ \gdef\HAP@current@pos{#3}%
+}
+% \end{macrocode}
+% \DescribeMacro{\protected@write}
+% |Seminar| uses a somewhat different writing macro than |latex.ltx|. The
+% |seminar| definition gets inserted at every |\begin{slide}| and is local.
+% To assure
+% that this writing definition is also used in between slides (e.g.
+% for |\tsection|) we need to redefine it once. The main difference
+% is in the use of |\immediate| by |seminar| while this is not used
+% by |latex.ltx|. This difference would, without this definition, create mixing errors.
+% \begin{macrocode}
+\def\protected@write#1#2#3{%
+ \begingroup
+ #2%
+ \let\protect\noexpand
+ \immediate\normal@write#1{#3}%
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+}
+% \end{macrocode}
+% \subsubsection{Support for notes}
+% Notes are created on slides, but with an adapted template. We start
+% with defining some counters. The first is used to count the number
+% of notes with a particular slide.
+% \begin{macrocode}
+\newcounter{HAP@notes@slide}
+% \end{macrocode}
+% This counter is used to count the total number of notes.
+% \begin{macrocode}
+\newcounter{HAP@notes@true}
+% \end{macrocode}
+% And this is a temp counter to remember the slide that the notes
+% belong to.
+% \begin{macrocode}
+\newcounter{HAP@notes@temp}
+% \end{macrocode}
+% The template to be used by notes.
+% \begin{macrocode}
+\def\HAP@notes@frame#1{#1}
+\ifHAP@portrait
+ \def\HAP@notes@template{\NewSlideStyle[8.8cm]{tl}{-0.6,4}{HAP@notes@frame}}
+\else
+ \def\HAP@notes@template{\NewSlideStyle[8.8cm]{tl}{1.2,4}{HAP@notes@frame}}
+\fi
+% \end{macrocode}
+% Start writing a file to store notes page numbers.
+% \begin{macrocode}
+\ifHAP@notes
+ \newwrite\HAP@notesout\openout\HAP@notesout\jobname.not\relax
+\fi
+% \end{macrocode}
+% When notes only, use saved page numbers.
+% \begin{macrocode}
+\ifHAP@notesonly
+ \begingroup\InputIfFileExists{\jobname.not}{}{}\endgroup
+ \xcomment{notes}
+\fi
+% \end{macrocode}
+% \begin{environment}{notes}
+% This macro defines the notes environment.
+% \begin{macrocode}
+\def\notes#1{%
+ \ifHAP@slidesonly\comment\else
+% \end{macrocode}
+% Count the number of notes with a particular slide. If we are still
+% on the same slide, but have a new notes slide, add one to the counter
+% for notes slides, otherwise reset that counter.
+% \begin{macrocode}
+ \ifnum\value{slide}=\value{HAP@notes@temp}
+ \stepcounter{HAP@notes@slide}%
+ \else
+ \setcounter{HAP@notes@slide}{1}%
+ \fi
+% \end{macrocode}
+% Set the temp counter to the current slide to remember to which slide
+% the notes belong.
+% \begin{macrocode}
+ \setcounter{HAP@notes@temp}{\value{slide}}%
+ \stepcounter{HAP@notes@true}%
+% \end{macrocode}
+% If not notes only, then the notes page numbers get written to disk
+% by using labels. This makes sure that, when using the option |notesonly|
+% at the first pass of the presentation, there are no errors, only warnings.
+% \begin{macrocode}
+ \ifHAP@notesonly\else
+ \protected@write\HAP@notesout{}{\string\newlabel{notes@\number\c@HAP@notes@true}%
+ {{}{\number\c@HAP@notes@temp-\number\c@HAP@notes@slide}{\relax }{}{}}}%
+ \fi
+% \end{macrocode}
+% Save anchor and position of the text box of the previous slide.
+% \begin{macrocode}
+ \xdef\HAP@temp@anchor{\HAP@current@anchor}%
+ \xdef\HAP@temp@pos{\HAP@current@pos}%
+% \end{macrocode}
+% Start notes on a portrait slide environment.
+% \begin{macrocode}
+ \HAP@notes@template\HAP@portraittrue
+ \begin{slide}[toc=,bm=,trans=Replace]{HAP@notitle}\black
+ \rput[tl](0,1.5){\fontTitle{\black#1}}%
+% \end{macrocode}
+% Position the notes number using |PSTricks|.
+% \begin{macrocode}
+ \ifHAP@notesonly
+ \rput[tc](4.4,-10.5){\realpageref{notes@\number\c@HAP@notes@true}}%
+ \else
+ \rput[tc](4.4,-10.5){\number\c@HAP@notes@temp-\number\c@HAP@notes@slide}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% Closing the notes environment and restoring the text box position
+% and anchor to its original values to be used by the next slide (or note).
+% \begin{macrocode}
+\def\endnotes{%
+ \ifHAP@slidesonly\endcomment\else
+ \end{slide}%
+ \global\pslongbox{posit@Box}{\rput[\HAP@temp@anchor](\HAP@temp@pos)}%
+ \gdef\HAP@current@anchor{\HAP@temp@anchor}%
+ \gdef\HAP@current@pos{\HAP@temp@pos}%
+ \addtocounter{slide}{-1}%
+ \fi
+}
+% \end{macrocode}
+% \end{environment}
+% \subsubsection{Blackslide option}
+% First we create a template for the black slide.
+% \begin{macrocode}
+\def\HAP@bs@frame#1{%
+ \psframe[fillstyle=solid,fillcolor=black](-3,-3)(13,13)%
+ {#1}%
+}
+% \end{macrocode}
+% And we position that.
+% \begin{macrocode}
+\ifHAP@portrait
+ \def\HAP@bs@template{\NewSlideStyle[10cm]{tl}{-1.25,5.9}{HAP@bs@frame}}
+\else
+ \def\HAP@bs@template{\NewSlideStyle[10cm]{tl}{-1.87,5.2}{HAP@bs@frame}}
+\fi
+% \end{macrocode}
+% Do not provide blackslide when \pf{ppr-prv} is loaded since it cannot
+% be undone by that class. The black slide is a normal slide at the
+% start of the presentation, is black and has a black button in the
+% top left corner with Acrobat |GoBack| functionality.
+% \begin{macrocode}
+\ifHAP@blackslide
+ \ifx\PPRPRV@Version\@undefined
+% \end{macrocode}
+% Alter PDF starting slide to hide the black slide.
+% \begin{macrocode}
+ \def\@pdfstartpage{2}%
+ \AtBeginDocument{%
+% \end{macrocode}
+% Set the template.
+% \begin{macrocode}
+ \HAP@bs@template
+ \begin{slide}[trans=Replace,toc=,bm=]{HAP@notitle}%
+% \end{macrocode}
+% Create the button.
+% \begin{macrocode}
+ {\black\hypertarget{blackslide}{\Acrobatmenu{GoBack}%
+ {\setlength{\fboxsep}{.5cm}\fbox{GoBack}}}}%
+ \end{slide}%
+% \end{macrocode}
+% Restore the slide counter to get real slide numbers right.
+% \begin{macrocode}
+ \addtocounter{slide}{-1}%
+ \HAPR@normalSlide
+ }
+ \fi
+\fi
+% \end{macrocode}
+% \DescribeMacro{\HAP@writebm}
+% Macro that writes bookmark entries to the |.bm| file so that they
+% can be read on the next pass.
+% \HAPcmd{\ci{HAP@writebm}\marg{open}\marg{csec}\marg{title}\marg{page}\marg{bsec}}
+% |csec| is the current section label and |bsec| is the section label
+% of the section that the current slide belongs to for nesting bookmarks.
+% These are used to compute the number of bookmarks that should be
+% nested within the current bookmark.
+% |open| is `+' or `-' to open bookmarks in the PDF or not.
+% The other arguments are self-explaining.
+% \begin{macrocode}
+\def\HAP@writebm#1#2#3#4#5{%
+ \protected@write\HAP@bmout{}{%
+ \string\HAPbookmark{#1}{#2}{#3}{#4}{#5}}%
+}
+% \end{macrocode}
+% \DescribeMacro{\HAP@checkbmnumber}
+% Based on |pdfmark.def| (|hyperref|). Returns the number of bookmarks
+% to be nested within the current bookmark. Notice that the macros
+% |HAP_[label]| will contain the numbers of bookmarks to be nested
+% within the current bookmark.
+% \begin{macrocode}
+\def\HAP@checkbmnumber#1{%
+ \expandafter\ifx\csname HAP_#1\endcsname\relax
+ 0%
+ \else
+ \csname HAP_#1\endcsname
+ \fi
+}
+% \end{macrocode}
+% Temporary counter.
+% \begin{macrocode}
+\newcounter{HAP@temp@sc}
+% \end{macrocode}
+% \begin{macro}{\HAP@calcbmnumber}
+% Based on |pdfmark.def| (|hyperref|). Computes the number of bookmarks
+% to be nested within the current bookmark.
+% \begin{macrocode}
+\def\HAP@calcbmnumber#1{%
+% \end{macrocode}
+% Set the number of bookmarks for this section equal to the number
+% of slides that we already encountered.
+% \begin{macrocode}
+ \setcounter{HAP@temp@sc}{\HAP@checkbmnumber{#1}}%
+% \end{macrocode}
+% Add one bookmark to this section.
+% \begin{macrocode}
+ \stepcounter{HAP@temp@sc}%
+% \end{macrocode}
+% And save the updated number of bookmarks again in the |HAP_[label]|
+% macro which will be read later to nest the bookmarks.
+% \begin{macrocode}
+ \expandafter\xdef\csname HAP_#1\endcsname{\number\c@HAP@temp@sc}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HAPbookmark}
+% This is the macro that is written to the |.bm| file. First we
+% read the |.bm| file to compute the number of bookmarks to be
+% nested within each bookmark.
+% \begin{macrocode}
+\def\HAPbookmark#1#2#3#4#5{\HAP@calcbmnumber{#5}}%
+\InputIfFileExists{\jobname.bm}{}{}%
+% \end{macrocode}
+% Now we redefine the |\HAPbookmark| macro to create the bookmarks.
+% \begin{macrocode}
+\def\HAPbookmark#1#2#3#4#5{%
+% \end{macrocode}
+% Notice the use of |\pdfstringdef| to allow for things like |\"i|
+% in bookmarks.
+% \begin{macrocode}
+ \pdfstringdef\HAP@temp@bm{#3}%
+ \pdfmark{pdfmark=/OUT,
+ Raw={/Count #1\HAP@checkbmnumber{#2}
+ /Page #4 /View [/XYZ null null null]
+ /Title (\HAP@temp@bm)}%
+ }%
+}%
+% \end{macrocode}
+% We read the |.bm| file again and now the bookmarks will be created.
+% \begin{macrocode}
+\InputIfFileExists{\jobname.bm}{}{}%
+% \end{macrocode}
+% After reading the |.bm| file, we rewrite it for the next pass.
+% \begin{macrocode}
+\newwrite\HAP@bmout\immediate\openout\HAP@bmout\jobname.bm\relax
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\SlideSound}
+% This macro creates a link to a sound file and sets the open action
+% of the current page to play the file. Notice that this will make
+% the PDF neither self sustaining nor system independent! This macro
+% can be called from the optional arguments of slide environments, but
+% can also be called directly for more flexibility.
+% \begin{macrocode}
+\def\SlideSound#1{%
+ \ifHAP@sounds
+% \end{macrocode}
+% Check availability of the sound file in the current directory. Note
+% the use of |.///| for the current directory to circumvent a bug in
+% MiKTeX. |./| is the standard to denote the current directory but
+% MiKTeX (only) still searches the \TeX\ tree when using |./|. This
+% bug has been reported to MiKTeX and will hopefully be solved soon.
+% \begin{macrocode}
+ \IfFileExists{.///#1}{}{%
+ \PackageError{HA-prosper}{The sound file is not in the
+ current directory. You can go ahead, but any PDF viewer
+ will complain that the file is missing!}\@ehc
+ }%
+% \end{macrocode}
+% Put the link to the media on the slide.
+% \begin{macrocode}
+ \pdfmark{pdfmark=/ANN,
+ Raw={/Rect [0 0 0 0] /Subtype /Movie
+ /Title (SlideSound) /Movie << /F (#1) >>}%
+ }%
+% \end{macrocode}
+% Play the file when the current slide is displayed.
+% \begin{macrocode}
+ \pdfmark{pdfmark=/PUT,
+ Raw={{ThisPage} << /AA << /O << /S /Movie
+ /T (SlideSound) /Operation /Play >> >> >>}%
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \subsubsection{Sectioning the presentation}
+% First some counters. The first counter is used for counting slides
+% inside sections in the toc.
+% \begin{macrocode}
+\newcounter{HAP@sc@toc}
+% \end{macrocode}
+% This counter is used to count sections in the presentation.
+% \begin{macrocode}
+\newcounter{HAP@sc@pres}
+% \end{macrocode}
+% This counter is for counting the number of slides in a section.
+% \begin{macrocode}
+\newcounter{HAP@sc@slides}
+% \end{macrocode}
+% \DescribeMacro{\tsection}
+% This macro creates a section in the table of contents. The stared
+% version creates a hidden section. The optional argument is for
+% creating a bookmark. The macro uses |\HAP@@tsection| to do the job.
+% \begin{macrocode}
+\def\tsection{\@ifstar
+ {\@ifnextchar[{\HAP@@tsection{0}{2}}{\HAP@@tsection{0}{2}[]}}%
+ {\@ifnextchar[{\HAP@@tsection{0}{1}}{\HAP@@tsection{0}{1}[]}}%
+}
+% \end{macrocode}
+% \begin{macro}{\HAP@@tsection}
+% The workhorse for |\tsection|, |\tsectionandpart| and |\part|.
+% \HAPcmd{\ci{HAP@@tsection}\marg{page}\marg{type}\oarg{bm}\marg{title}} |page| indicates
+% whether the section got a page (1) or not (0). |type| indicates
+% the type of section: 0=not a section (to serve |\part|), 1=normal, 2=hidden.
+% This indicator is reused by several other macros, like |\pcontentsline|.
+% The optional argument |bm| can contain a replacement for the bookmark
+% title created by the |title| option.
+% \begin{macrocode}
+\def\HAP@@tsection#1#2[#3]#4{%
+% \end{macrocode}
+% Check whether the optional argument is empty. If yes, set it to
+% the mandatory argument. This cannot be done by |\tsection| since
+% the |\HAP@part| macro needs to access |\@tsection| macro directly.
+% \begin{macrocode}
+ \def\HAP@tempa{#3}%
+ \ifx\HAP@tempa\@empty
+ \def\HAP@tempa{#4}%
+ \fi
+% \end{macrocode}
+% Step the section counter since we have a new section.
+% \begin{macrocode}
+ \stepcounter{HAP@sc@pres}%
+% \end{macrocode}
+% Reset the counter for slides in a section.
+% \begin{macrocode}
+ \setcounter{HAP@sc@slides}{0}%
+% \end{macrocode}
+% Step this counter to get correct bookmarks.
+% \begin{macrocode}
+ \stepcounter{trueSlideCounter}%
+% \end{macrocode}
+% Add an entry to the |.toc| file.
+% \begin{macrocode}
+ \HAP@contentsline{#2}{#4}{\number\c@trueSlideCounter}{\number\c@HAP@sc@pres}%
+% \end{macrocode}
+% Write a bookmark.
+% \begin{macrocode}
+ \HAP@writebm{}{section.\number\c@HAP@sc@pres}{\HAP@tempa}%
+ {\number\c@trueSlideCounter}{}%
+% \end{macrocode}
+% Reset the main slide counter.
+% \begin{macrocode}
+ \addtocounter{trueSlideCounter}{-1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \subsubsection{part and tsectionandpart}
+% An optional key for |\part| and |\tsectionandpart|.
+% \begin{macrocode}
+\define@key{HAP@keys@slide}{template}{\def\HAP@templatekey{#1}}
+% \end{macrocode}
+% \DescribeMacro{\part}
+% This macro uses |\HAP@part|. The entry `0' indicates that this
+% macro does not produce a section. See also the |\tsection| macro.
+% \begin{macrocode}
+\def\part{\@ifnextchar[{\HAP@part{0}}{\HAP@part{0}[]}}
+% \end{macrocode}
+% \DescribeMacro{\tsectionandpart}
+% Creates a |\tsection| and a |\part|. The stared version creates
+% a hidden section and part.
+% \begin{macrocode}
+\def\tsectionandpart{\@ifstar
+ {\@ifnextchar[{\HAP@part{2}}{\HAP@part{2}[]}}%
+ {\@ifnextchar[{\HAP@part{1}}{\HAP@part{1}[]}}%
+}
+% \end{macrocode}
+% \begin{macro}{\HAP@part}
+% The workhorse for |\part| and |\tsectionandpart|.
+% \HAPcmd{\ci{HAP@part}\marg{type}\oarg{opt}\marg{title}}
+% |type| coincides with the types used by |\tsection|.
+% \begin{macrocode}
+\def\HAP@part#1[#2]#3{%
+% \end{macrocode}
+% Grouping is necessary to keep options local.
+% \begin{macrocode}
+ \begingroup
+% \end{macrocode}
+% Set options.
+% \begin{macrocode}
+ \xsetkeys{HAP@keys@slide,HAP@keys@slidespec}{#2}%
+% \end{macrocode}
+% Several cases. We start with `not a section'.
+% \begin{macrocode}
+ \ifnum#1=\z@
+ \ifx\HAP@bmkey\@empty
+% \end{macrocode}
+% If bookmark entry is empty, overwrite it to use the title.
+% \begin{macrocode}
+ \begin{\HAP@templatekey}[toc=#3,#2,bm=#3]{HAP@notitle}%
+ \else
+% \end{macrocode}
+% In all other cases, use the bookmark entry supplied by the user
+% if is actually there. By default, use the title.
+% \begin{macrocode}
+ \begin{\HAP@templatekey}[bm=#3,toc=#3,#2]{HAP@notitle}%
+ \fi
+ \else
+% \end{macrocode}
+% It is a section.
+% \begin{macrocode}
+ \ifcase
+ \ifx\HAP@tockey\@undefined\@ne\fi
+ \ifx\HAP@tockey\@empty\@ne\fi
+ \z@
+ \ifcase
+ \ifx\HAP@bmkey\@undefined\@ne\fi
+ \ifx\HAP@bmkey\@empty\@ne\fi
+ \z@
+% \end{macrocode}
+% Create the section with the supplied optional arguments.
+% \begin{macrocode}
+ \HAP@@tsection{1}{#1}[\HAP@bmkey]{\HAP@tockey}%
+ \else
+% \end{macrocode}
+% Create the section with the title as bookmark since it is absent.
+% \begin{macrocode}
+ \HAP@@tsection{1}{#1}[#3]{\HAP@tockey}%
+ \fi
+ \else
+ \ifcase
+ \ifx\HAP@bmkey\@undefined\@ne\fi
+ \ifx\HAP@bmkey\@empty\@ne\fi
+ \z@
+% \end{macrocode}
+% Use the title for the toc.
+% \begin{macrocode}
+ \HAP@@tsection{1}{#1}[\HAP@bmkey]{#3}%
+ \else
+% \end{macrocode}
+% Use the title for both the toc and the bookmark.
+% \begin{macrocode}
+ \HAP@@tsection{1}{#1}[#3]{#3}%
+ \fi
+ \fi
+% \end{macrocode}
+% For sections, do not create a toc entry or bookmark since that
+% is already done by |\HAP@@tsection|, but we do create a slide.
+% \begin{macrocode}
+ \begin{\HAP@templatekey}[#2,toc=,bm=]{HAP@notitle}%
+ \fi
+% \end{macrocode}
+% Put the text onto the slide, after \pf{prosper}.
+% \begin{macrocode}
+ \vspace*{1.5cm}%
+ \begin{center}%
+ \fontTitle{#3}%
+ \end{center}%
+ \end{\HAP@templatekey}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \subsubsection{Table of contents}
+% First some initializations. |\HAP@tempentryb| holds the toc entry
+% from one slide to the next to determine at which pages highlighting
+% of this entry needs to be created. Versions a--d of |\HAP@tempentry|
+% are all used for storing part of a toc entry.
+% \begin{macrocode}
+\let\HAP@tocentryb\@undefined
+% \end{macrocode}
+% True if a toc entry is the first inside the toc. Used to determine
+% if vertical space needs to be inserted or not.
+% \begin{macrocode}
+\newif\ifHAP@firstTocEntry
+% \end{macrocode}
+% Write the toc at the end of the document so that it can be used
+% during a pass.
+% \begin{macrocode}
+\AtEndDocument{%
+ \ifHAP@toc
+ \expandafter\newwrite\csname tf@toc\endcsname
+ \immediate\openout\csname tf@toc\endcsname\jobname.toc\relax
+% \end{macrocode}
+% When highlighting toc entries, the toc is created with a lag to be able to
+% determine the start and stop slide for highlighting and hence the
+% final entry has to be written to file at the end of the document.
+% \begin{macrocode}
+ \ifHAP@highlight\ifHAP@notesonly\else
+ \stepcounter{trueSlideCounter}%
+ \protected@write\@auxout{}{%
+ \string\@writefile{toc}{%
+ \string\pcontentsline{\HAP@tocentrya}{\HAP@tocentryb}%
+ {\HAP@tocentryc}{\number\c@trueSlideCounter}{\HAP@tocentryd}}%
+ }%
+ \fi\fi\fi
+}
+% \end{macrocode}
+% \begin{macro}{\pcontentsline}
+% This macro is used in the |.toc| file and creates the actual toc
+% entry from a set of inputs.
+% \HAPcmd{\ci{pcontentsline}\marg{type}\marg{title}\marg{start}\marg{stop}\marg{secctr}}
+% For |type|, see |\tsection|.
+% |start| is the starting page of the slide and |stop| is the
+% final slide, both used for highlighting toc entries. If no highlighting
+% is requested, only |start| is used to create a link to that page. |secctr| is
+% the number of the section in the presentation (only used when
+% |type| is 1 or 2). This macro does the first rough filtering in
+% the decision to display the inputs at a certain slide or not.
+% \begin{macrocode}
+\def\pcontentsline#1#2#3#4#5{%
+% \end{macrocode}
+% Not a section.
+% \begin{macrocode}
+ \ifnum#1=\z@
+% \end{macrocode}
+% For |\HAP@toctype| see the definitions of |\HAP@toc|, |\HAP@tcontent|
+% and |\HAP@tsections|. If 1, only sections wanted, hence do nothing.
+% Else continue to |\HAP@pcontentsline|.
+% \begin{macrocode}
+ \ifnum\HAP@toctype=\@ne\else
+ \HAP@pcontentsline{#1}{#2}{#3}{#4}{#5}%
+ \fi
+% \end{macrocode}
+% It is a section.
+% \begin{macrocode}
+ \else
+% \end{macrocode}
+% If 2, hidden section, only set counter for keeping track of the
+% section number inside the toc which is necessary for the |hlsections|
+% package option.
+% \begin{macrocode}
+ \ifnum\HAP@toctype=\tw@
+ \setcounter{HAP@sc@toc}{#5}%
+ \else
+% \end{macrocode}
+% Else continue to |\HAP@pcontentsline|.
+% \begin{macrocode}
+ \HAP@pcontentsline{#1}{#2}{#3}{#4}{#5}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HAP@pcontentsline}
+% Workhorse for |\pcontentsline|.
+% \HAPcmd{\ci{HAP@pcontentsline}\marg{type}\marg{title}\marg{start}\marg{stop}\marg{secctr}}
+% Takes the same arguments as that macro and is used to divide input
+% in all different cases and creates PDF page links from those inputs.
+% \begin{macrocode}
+\def\HAP@pcontentsline#1#2#3#4#5{%
+% \end{macrocode}
+% It is not a section.
+% \begin{macrocode}
+ \ifnum#1=\z@
+% \end{macrocode}
+% Select right typesetting for toc entry.
+% \begin{macrocode}
+ \ifnum\HAP@toctype=\tw@
+ \def\HAP@toctext{\HAP@tlineonly{#2}}%
+ \else
+ \def\HAP@toctext{\HAP@tline{#2}}%
+ \fi
+% \end{macrocode}
+% It is a section.
+% \begin{macrocode}
+ \else
+% \end{macrocode}
+% Set the counter for later use and typeset the section.
+% \begin{macrocode}
+ \setcounter{HAP@sc@toc}{#5}%
+ \ifnum\HAP@toctype=\@ne
+ \def\HAP@toctext{\HAP@tsectiononly{#2}}%
+ \else
+ \def\HAP@toctext{\HAP@tsection{#2}}%
+ \fi
+ \fi
+% \end{macrocode}
+% Here we end up with some cluster of cases. Basically, we need to
+% determine whether or not the toc entry at hand should be displayed
+% and if it will be highlighted. Let's go ahead case by case, line by line.
+% \begin{macrocode}
+ \ifcase
+% \end{macrocode}
+% First, we decide whether or not to display the entry. We display
+% the entry at hand on this slide if it is in the current section.
+% \begin{macrocode}
+ \ifnum\value{HAP@sc@pres}=\value{HAP@sc@toc}\@ne\fi
+% \end{macrocode}
+% Or if it is an entry that occurs before the first section (independent
+% of the current toc section), but only if the toc type is 0. If it is not 0
+% we only display it when the first section didn't start yet.
+% \begin{macrocode}
+ \ifnum\value{HAP@sc@toc}=\z@\ifnum\HAP@toctype=\z@\@ne\else
+ \ifnum\value{HAP@sc@pres}=\z@\@ne\fi\fi\fi
+% \end{macrocode}
+% Or when it is a regular section. Hidden sections (type 2) and
+% content of not current sections is not displayed.
+% \begin{macrocode}
+ \ifnum#1=\@ne\@ne\fi
+ \z@
+ \else
+% \end{macrocode}
+% Add extra vertical space between sections and items given that the
+% current entry section is not the first entry in the toc. Be careful
+% for a possibly split toc. No extra vertical space in that case.
+% \begin{macrocode}
+ \ifHAP@firstTocEntry\else
+ \ifcase
+ \ifnum#1=\z@\@ne\fi
+ \ifnum\HAP@toctype=\@ne\@ne\fi
+ \z@
+ \vspace*{\HAP@tsectionskip}%
+ \else
+ \vspace*{\HAP@titemskip}%
+ \fi
+ \fi
+% \end{macrocode}
+% Set for the rest of the |.toc| processing.
+% \begin{macrocode}
+ \HAP@firstTocEntryfalse
+% \end{macrocode}
+% Add a section marker when the current entry is a section.
+% \begin{macrocode}
+ \ifnum#1=\z@\else\HAP@tsectionm\fi
+% \end{macrocode}
+% Then we come to the point where we start to create the
+% toc entries. Now we have to decide how to display the entries.
+% \begin{macrocode}
+ \ifcase
+% \end{macrocode}
+% If highlighting has been requested
+% \begin{macrocode}
+ \ifHAP@highlight
+% \end{macrocode}
+% and if the current entry is the active one
+% \begin{macrocode}
+ \ifnum\value{trueSlideCounter}<#3\space\else
+ \ifnum\value{trueSlideCounter}<#4\@ne\fi\fi
+% \end{macrocode}
+% or the section is the current section and section highlighting
+% has been requested, then we highlight the entry.
+% \begin{macrocode}
+ \ifHAP@hlsections\ifnum#1=\z@\else
+ \ifnum\value{HAP@sc@pres}=\value{HAP@sc@toc}\@ne\fi\fi\fi
+ \fi
+ \z@
+ \let\HAP@tempa\HAP@tocentry
+ \else
+ \let\HAP@tempa\HAP@hltocentry
+ \fi
+% \end{macrocode}
+% Create the pdf hyperlink to the page.
+% \begin{macrocode}
+ \HAP@pdfpagelink{\HAP@tempa}{#3}%
+ \par
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \DescribeMacro{\HAP@pdfpagelink}
+% This macro creates the page link for |\HAP@pcontentsline| using a PDF annotation.
+% \HAPcmd{\ci{HAP@pdfpagelink}\marg{constr}\marg{page}}
+% |constr| is the construction to attach the link to.
+% |page| is the target page. This code does not use |hyperref|'s
+% hypertarget since these can lead to half slides being displayed.
+% \begin{macrocode}
+\def\HAP@pdfpagelink#1#2{%
+ \pdfmark[#1]{pdfmark=/LNK,
+ Raw={/Page #2 /Border [0 0 0] /View [/XYZ null null null]}}%
+}
+% \end{macrocode}
+% \begin{macro}{\HAP@contentsline}
+% This macro writes the toc entries to disk or remembers them
+% if necessary. \HAPcmd{\ci{HAP@contentsline}\marg{type}\marg{title}\marg{page}\marg{secctr}}
+% For the arguments, see |\pcontentsline|.
+% \begin{macrocode}
+\def\HAP@contentsline#1#2#3#4{%
+ \ifHAP@toc
+ \ifHAP@highlight
+ \ifx\HAP@tocentryb\@undefined\else
+% \end{macrocode}
+% When highlighting and it is not the first toc entry of the presentation, write it to disk.
+% \begin{macrocode}
+ \protected@write\@auxout{}{%
+ \string\@writefile{toc}{%
+ \string\pcontentsline{\HAP@tocentrya}{\HAP@tocentryb}%
+ {\HAP@tocentryc}{#3}{\HAP@tocentryd}}}%
+ \fi
+% \end{macrocode}
+% Remember the current entry. This is done to remember the starting
+% page of a slide. Write it when the next slide appears and the final
+% page of the current slide is known.
+% \begin{macrocode}
+ \gdef\HAP@tocentrya{#1}%
+% \end{macrocode}
+% |\protected@xdef| necessary to expand |\@tockey| inputs correctly.
+% \begin{macrocode}
+ \protected@xdef\HAP@tocentryb{#2}%
+ \xdef\HAP@tocentryc{#3}%
+ \xdef\HAP@tocentryd{#4}%
+ \else
+% \end{macrocode}
+% When not highlighting, write the entry to disk.
+% \begin{macrocode}
+ \protected@write\@auxout{}{%
+ \string\@writefile{toc}{%
+ \string\pcontentsline{#1}{#2}{#3}{}%
+ {\ifnum#1=\z@\else\number\c@HAP@sc@pres\fi}}}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\HAP@toc}
+% \begin{macro}{\HAP@tsections}
+% \begin{macro}{\HAP@tcontent}
+% These macros put (part of) the table of contents on slides.
+% The latter two allow for splitting of the toc. Notice that
+% the actual splitting is handled by |\pcontentsline| using
+% |\HAP@toctype| as guidance. The macros use |\HAP@tocinput|
+% to perform initializations and then load the |.toc| file.
+% The first macro will put the entire toc on slides.
+% \begin{macrocode}
+\def\HAP@toc{%
+ \def\HAP@toctype{0}%
+% \end{macrocode}
+% Load |.toc| file.
+% \begin{macrocode}
+ \HAP@tocinput
+}
+% \end{macrocode}
+% This puts only the sections on slides.
+% \begin{macrocode}
+\def\HAP@tsections{%
+ \def\HAP@toctype{1}%
+ \HAP@tocinput
+}
+% \end{macrocode}
+% This puts only the current section content on slides.
+% \begin{macrocode}
+\def\HAP@tcontent{%
+ \def\HAP@toctype{2}%
+ \HAP@tocinput
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\HAP@tocinput}
+% Macro performs some initializations and then loads the |.toc| file.
+% \begin{macrocode}
+\def\HAP@tocinput{%
+% \end{macrocode}
+% Eliminates space on top of the first toc entry.
+% \begin{macrocode}
+ \HAP@firstTocEntrytrue
+% \end{macrocode}
+% Reset within |.toc| counter.
+% \begin{macrocode}
+ \setcounter{HAP@sc@toc}{0}%
+% \end{macrocode}
+% Allow for instance the |babel| package to insert |\select@language|
+% into the |.toc| file.
+% \begin{macrocode}
+ \makeatletter
+% \end{macrocode}
+% Apply |\FontToc| and input |.toc| file for processing.
+% \begin{macrocode}
+ \fontToc{\InputIfFileExists{\jobname.toc}{}{}}%
+ \makeatother
+}
+% \end{macrocode}
+% \end{macro}
+% \subsubsection{Redefining slide definitions}
+% We start with optional keys for the new slide environment.
+% \begin{macrocode}
+\define@key{HAP@keys@slidespec}{bm}{\def\HAP@bmkey{#1}}
+\define@key{HAP@keys@slidespec}{toc}{\def\HAP@tockey{#1}}
+\define@key{HAP@keys@slide}{trans}{\def\HAP@transkey{#1}}
+\define@key{HAP@keys@slide}{sound}{\def\HAP@soundkey{#1}}
+% \end{macrocode}
+% \begin{environment}{SlideNormal}
+% What follows now is adapted code, originally taken from
+% \pf{prosper}.
+% \begin{macrocode}
+\def\SlideNormal{\@ifnextchar[\HAP@SlideNormal{\HAP@SlideNormal[]}}
+\def\HAP@SlideNormal[#1]#2{%
+% \end{macrocode}
+% Set the optional keys using the \pf{xkeyval} package.
+% \begin{macrocode}
+ \xsetkeys{HAP@keys@slide,HAP@keys@slidespec}{#1}%
+ \stepcounter{trueSlideCounter}%
+% \end{macrocode}
+% Transition effects.
+% \begin{macrocode}
+ \PDFtransition{\HAP@transkey}%
+% \end{macrocode}
+% Add transition sounds.
+% \begin{macrocode}
+ \ifx\HAP@soundkey\@undefined\else
+ \SlideSound{\HAP@soundkey}%
+ \fi
+ \begin{slide@seminar}%
+% \end{macrocode}
+% |\landscapefalse| is defined by |seminar|.
+% \begin{macrocode}
+ \ifHAP@portrait\landscapefalse\fi
+% \end{macrocode}
+% Slide title empty?
+% \begin{macrocode}
+ \def\HAP@tempa{#2}%
+ \def\HAP@tempb{HAP@notitle}%
+ \ifx\HAP@tempa\HAP@tempb
+% \end{macrocode}
+% This part is used by |\part| related commands and |\maketitle|. It
+% allows these macros to delete the toc entry and the bookmark entry.
+% Deleting bookmark entries on other slides will mess up the nesting
+% of bookmarks into sections. First checking the toc entry.
+% \begin{macrocode}
+ \ifx\HAP@tockey\@undefined\else\ifx\HAP@tockey\@empty\else
+ \HAP@contentsline{0}{\HAP@tockey}{\number\c@trueSlideCounter}{}%
+ \fi\fi
+% \end{macrocode}
+% Check the bookmark entry. If empty, do not create the bookmark.
+% \begin{macrocode}
+ \ifx\HAP@bmkey\@undefined\else\ifx\HAP@bmkey\@empty\else
+% \end{macrocode}
+% We have a new bookmark in the current section.
+% \begin{macrocode}
+ \stepcounter{HAP@sc@slides}%
+% \end{macrocode}
+% Write the bookmark to the |.bm| file. The labelling will later on
+% be used to compute the number of bookmarks to be nested within
+% the current section.
+% \begin{macrocode}
+ \HAP@writebm{}{section.\number\c@HAP@sc@pres.\number\c@HAP@sc@slides}%
+ {\HAP@bmkey}{\number\c@trueSlideCounter}{section.\number\c@HAP@sc@pres}%
+ \fi\fi
+ \else
+% \end{macrocode}
+% Slide title.
+% \begin{macrocode}
+ \slidetitle{#2}%
+% \end{macrocode}
+% Empty bookmarks will not be created.
+% \begin{macrocode}
+ \ifx\HAP@bmkey\@undefined
+ \stepcounter{HAP@sc@slides}%
+ \HAP@writebm{}{section.\number\c@HAP@sc@pres.\number\c@HAP@sc@slides}%
+ {#2}{\number\c@trueSlideCounter}{section.\number\c@HAP@sc@pres}%
+ \else\ifx\HAP@bmkey\@empty\else
+ \stepcounter{HAP@sc@slides}%
+ \HAP@writebm{}{section.\number\c@HAP@sc@pres.\number\c@HAP@sc@slides}%
+ {\HAP@bmkey}{\number\c@trueSlideCounter}{section.\number\c@HAP@sc@pres}%
+ \fi\fi
+% \end{macrocode}
+% Create toc entry, unless it is empty, then delete it from the toc.
+% \begin{macrocode}
+ \ifx\HAP@tockey\@undefined
+ \HAP@contentsline{0}{#2}{\number\c@trueSlideCounter}{}%
+ \else\ifx\HAP@tockey\@empty\else
+ \HAP@contentsline{0}{\HAP@tockey}{\number\c@trueSlideCounter}{}%
+ \fi\fi
+ \fi
+% \end{macrocode}
+% Start a box, a minipage and make it raggedright.
+% \begin{macrocode}
+ \begin{posit@Box}%
+ \begin{minipage}{\slideWidth}%
+ \raggedright
+ \@DefMyItem%
+% \end{macrocode}
+% Set the text font.
+% \begin{macrocode}
+ \ifinColor\@fontTextColor\else\@fontTextBW\fi
+}
+% \end{macrocode}
+% Close all started environments and boxes.
+% \begin{macrocode}
+\def\endSlideNormal{%
+ \end{minipage}%
+ \end{posit@Box}%
+ \end{slide@seminar}%
+}
+% \end{macrocode}
+% \end{environment}
+% \begin{environment}{SlideOverlay}
+% Overlay slides are very comparable to |\SlideNormal|, but these
+% get nested bookmarks and an overlay. The case |\ifDVItoPStrue|
+% which \pf{prosper} specifies, is
+% not interesting here since the macro is only called from the
+% |Overlays| environment which is called from |\overlays| (see page~\pageref{macro:overlays})
+% but only
+% |\ifDVItoPSfalse|. There is no useful application of the |Overlays|
+% environment when not being called from the |\overlays| macro.
+% \begin{macrocode}
+\def\SlideOverlay{\@ifnextchar[\HAP@SlideOverlay{\HAP@SlideOverlay[]}}
+\def\HAP@SlideOverlay[#1]#2{%
+ \xsetkeys{HAP@keys@slide,HAP@keys@slidespec}{#1}%
+ \stepcounter{trueSlideCounter}%
+ \PDFtransition{\HAP@transkey}%
+ \ifx\HAP@soundkey\@undefined\else
+ \SlideSound{\HAP@soundkey}%
+ \fi
+ \begin{slide@seminar}%
+ \ifHAP@portrait\landscapefalse\fi
+ \def\HAP@tempa{#2}%
+ \def\HAP@tempb{HAP@notitle}%
+ \ifx\HAP@tempa\HAP@tempb\else
+ \ifHAP@firstOverlay
+% \end{macrocode}
+% This code is used for the first overlay slide created by |\overlays|.
+% \begin{macrocode}
+ \global\HAP@firstOverlayfalse
+% \end{macrocode}
+% \pf{prosper} option to open bookmarks of overlays.
+% \begin{macrocode}
+ \ifcollapsedBookmarks\def\HAP@tempa{-}\else\def\HAP@tempa{}\fi
+% \end{macrocode}
+% Create bookmarks, nest them and open them if requested.
+% \begin{macrocode}
+ \ifx\HAP@bmkey\@undefined
+ \stepcounter{HAP@sc@slides}%
+ \HAP@writebm{\HAP@tempa}{section.\number\c@HAP@sc@pres.\number\c@HAP@sc@slides}%
+ {#2}{\number\c@trueSlideCounter}{section.\number\c@HAP@sc@pres}%
+ \else\ifx\HAP@bmkey\@empty\else
+ \stepcounter{HAP@sc@slides}%
+ \HAP@writebm{\HAP@tempa}{section.\number\c@HAP@sc@pres.\number\c@HAP@sc@slides}%
+ {\HAP@bmkey}{\number\c@trueSlideCounter}{section.\number\c@HAP@sc@pres}%
+ \fi\fi
+% \end{macrocode}
+% Create toc entries.
+% \begin{macrocode}
+ \ifx\HAP@tockey\@undefined
+ \HAP@contentsline{0}{#2}{\number\c@trueSlideCounter}{}%
+ \else\ifx\HAP@tockey\@empty\else
+ \HAP@contentsline{0}{\HAP@tockey}{\number\c@trueSlideCounter}{}%
+ \fi\fi
+ \else
+% \end{macrocode}
+% This case relates to the rest of the slides created by |\overlays|.
+% Create bookmarks without nesting and no toc entries.
+% \begin{macrocode}
+ \ifx\HAP@bmkey\@undefined
+ \HAP@writebm{}{overlay}{#2}{\number\c@trueSlideCounter}%
+ {section.\number\c@HAP@sc@pres.\number\c@HAP@sc@slides}%
+ \else\ifx\HAP@bmkey\@empty\else
+ \HAP@writebm{}{overlay}{\HAP@bmkey}{\number\c@trueSlideCounter}%
+ {section.\number\c@HAP@sc@pres.\number\c@HAP@sc@slides}%
+ \fi\fi
+ \fi
+ \slidetitle{#2}%
+ \fi
+ \begin{posit@Box}%
+ \begin{minipage}{\slideWidth}%
+ \raggedright
+ \@DefMyItem%
+ \ifinColor\@fontTextColor\else\@fontTextBW\fi
+ {\overlay{1}}%
+}
+% \end{macrocode}
+% Close all started environments and boxes.
+% \begin{macrocode}
+\def\endSlideOverlay{%
+ \end{minipage}%
+ \end{posit@Box}%
+ \end{slide@seminar}%
+ \ifDVItoPS\else
+ \addtocounter{slide}{-1}%
+ \fi
+}
+% \end{macrocode}
+% \end{environment}
+% \DescribeEnv{slide}
+% These macros define the |slide| environment.
+% \begin{macrocode}
+\let\slide=\SlideNormal
+\let\endslide=\endSlideNormal
+% \end{macrocode}
+% \subsubsection{Bibliography}
+% \DescribeEnv{thebibliography}
+% This section includes a redefined |bibliography| environment which
+% does not create a section heading. The original has been taken from
+% |article.cls|.
+% \begin{macrocode}
+\renewenvironment{thebibliography}[1]{%
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m
+}{%
+ \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist
+}
+% \end{macrocode}
+% \subsubsection{Underlying macros for itemize and enumerate}
+% First let the \pf{prosper} command |\NoFrenchBabelItemize| do nothing
+% anymore since we redefine lists |\AtBeginDocument| always.
+% \begin{macrocode}
+\let\NoFrenchBabelItemize\relax
+\def\HAP@toodeep{\PackageError{HA-prosper}{Items too deeply nested}\@ehd}
+% \end{macrocode}
+% |\ifHAP@active| indicates state of an item. \pf{HA-prosper} only
+% sets it, but does not use it. It can be used in styles.
+% \begin{macrocode}
+\newif\ifHAP@active
+% \end{macrocode}
+% |\ifHAP@nested| indicates whether an |itemize| or |enumerate|
+% environment is nested in a stepping environment. In that case,
+% active state is inherited.
+% \begin{macrocode}
+\newif\ifHAP@nested
+% \end{macrocode}
+% Keep a copy of the original |\item|.
+% \begin{macrocode}
+\let\HAP@orig@item=\item
+% \end{macrocode}
+% \DescribeMacro{\xitem}
+% The |\xitem| macro.
+% \begin{macrocode}
+\def\xitem{\@ifnextchar<\HAP@xitem{\HAP@xitem<0>}}
+% \end{macrocode}
+% \DescribeMacro{\HAP@xitem}
+% The workhorse for |\xitem|. It can be reset in environments.
+% \begin{macrocode}
+\def\HAP@xitem<#1>{%
+ \PackageError{HA-prosper}{Lonely \string\item--perhaps a missing
+ list environment}\@ehc
+}
+\AtBeginDocument{%
+% \end{macrocode}
+% \begin{environment}{HAP@itemize}
+% Define the |HAP@itemize| and |HAP@enumerate| environments without a left block indent
+% and |topsep| since this creates ugly lists on slides and wastes
+% a lot of space.
+% Definitions taken mainly from |latex.ltx| and modified.
+% \begin{macrocode}
+ \def\itemize{%
+ \def\HAP@xitem<##1>{%
+% \end{macrocode}
+% If not nested, item is active, otherwise, inherit.
+% \begin{macrocode}
+ \ifHAP@nested\else\HAP@activetrue\fi
+ \HAP@orig@item
+ }%
+ \ifnum\@itemdepth>\tw@\HAP@toodeep\else
+ \advance\@itemdepth\@ne
+ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+ \expandafter
+ \list
+ \csname\@itemitem\endcsname{%
+% \end{macrocode}
+% Setting relevant lengths.
+% \begin{macrocode}
+ \setlength{\itemsep}{\z@}%
+ \setlength{\parsep}{\z@}%
+ \setlength{\topsep}{\z@}%
+ \setlength{\partopsep}{\z@}%
+ \addtolength{\topsep}{-\parskip}%
+ \addtolength{\partopsep}{\parskip}%
+ \ifnum\@itemdepth<2
+ \settowidth{\HAP@tla}{\labelitemi}%
+ \addtolength{\HAP@tla}{\labelsep}%
+ \setlength{\leftmargin}{\HAP@tla}%
+ \setlength{\itemsep}{.5ex}%
+ \fi\raggedright
+ \def\makelabel##1{\hss\llap{##1}}}%
+ \fi
+ }
+% \end{macrocode}
+% End the list.
+% \begin{macrocode}
+ \let\enditemize\endlist
+% \end{macrocode}
+% \end{environment}
+% \begin{environment}{HAP@enumerate}
+% For |HAP@enumerate| we do roughly the same thing.
+% \begin{macrocode}
+ \def\enumerate{%
+ \def\HAP@xitem<##1>{%
+ \ifHAP@nested\else\HAP@activetrue\fi
+ \HAP@orig@item
+ }%
+ \ifnum\@enumdepth>\tw@\HAP@toodeep\else
+ \advance\@enumdepth\@ne
+ \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
+ \expandafter
+ \list
+ \csname label\@enumctr\endcsname{%
+ \setlength{\itemsep}{\z@}%
+ \setlength{\parsep}{\z@}%
+ \setlength{\topsep}{\z@}%
+ \setlength{\partopsep}{\z@}%
+ \addtolength{\topsep}{-\parskip}%
+ \addtolength{\partopsep}{\parskip}%
+ \ifnum\@enumdepth<2
+ \settowidth{\HAP@tla}{\labelenumi}%
+ \addtolength{\HAP@tla}{\labelsep}%
+ \setlength{\leftmargin}{\HAP@tla}%
+ \setlength{\itemsep}{.5ex}%
+ \fi\raggedright
+ \usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}%
+ \fi
+ }
+% \end{macrocode}
+% End the list.
+% \begin{macrocode}
+ \let\endenumerate\endlist
+% \end{macrocode}
+% \end{environment}
+% End of |\AtBeginDocument|.
+% \begin{macrocode}
+}
+% \end{macrocode}
+% \subsubsection{Stepping environments}
+% Now we define animated lists. We start with the overall depth of a list
+% with possibly |itemstep|s and |enumstep|s nested into each other.
+% \begin{macrocode}
+\newcounter{HAP@listdepth}
+% \end{macrocode}
+% Optional arguments.
+% \begin{macrocode}
+\define@key{HAP@keys@step}{sstart}{\def\HAP@Istart{#1}}
+\define@key{HAP@keys@step}{stype}{\def\HAP@Itype{#1}}
+\define@key{HAP@keys@step}{iacolor}{\def\HAP@Icolor{#1}}
+% \end{macrocode}
+% \DescribeEnv{itemstep}\DescribeEnv{enumstep}
+% These macros generate the animated lists. Taken from
+% prosper and heavily modified to allow for multiple types
+% of animated lists and nesting of |enumstep| and |itemstep|
+% environments.
+% \begin{macrocode}
+\def\itemstep{\@ifnextchar[{\HAP@stepenv{0}}{\HAP@stepenv{0}[]}}
+\def\enumstep{\@ifnextchar[{\HAP@stepenv{1}}{\HAP@stepenv{1}[]}}
+% \end{macrocode}
+% Closing the environments |itemstep| and |enumstep|.
+% \begin{macrocode}
+\def\enditemstep{\endHAP@stepenv{0}}
+\def\endenumstep{\endHAP@stepenv{1}}
+% \end{macrocode}
+% \begin{environment}{HAP@stepenv}
+% Workhorse for both |itemstep| and |enumstep|. The first
+% argument identifies the type of list (0 for |itemstep|)
+% and the second contains the optional arguments.
+% \begin{macrocode}
+\def\HAP@stepenv#1[#2]{%
+% \end{macrocode}
+% A following environment might be nested. Important for setting active
+% state.
+% \begin{macrocode}
+ \HAP@nestedtrue
+% \end{macrocode}
+% Load the options into macros.
+% \begin{macrocode}
+ \xsetkeys{HAP@keys@step}{#2}%
+% \end{macrocode}
+% If |dvi2ps|, all items should be active since overlays create
+% only one slide.
+% \begin{macrocode}
+ \ifDVItoPS\def\HAP@Itype{0}\fi
+% \end{macrocode}
+% Start the list.
+% \begin{macrocode}
+ \ifnum#1=\z@
+ \begin{itemize}%
+ \else
+ \begin{enumerate}%
+ \fi
+% \end{macrocode}
+% Possibility to let the animated list start at a later overlay.
+% Only possible when the overall depth is zero, hence the current
+% list is not nested.
+% \begin{macrocode}
+ \ifnum\value{HAP@listdepth}=\z@
+ \setcounter{item@step}{\HAP@Istart}%
+ \addtocounter{item@step}{-1}%
+ \fi
+% \end{macrocode}
+% Increase list depth. We are one level deeper.
+% \begin{macrocode}
+ \stepcounter{HAP@listdepth}%
+% \end{macrocode}
+% \begin{macro}{\HAP@xitem}
+% Workhorse for |\xitem|.
+% \begin{macrocode}
+ \def\HAP@xitem<##1>{%
+% \end{macrocode}
+% Next step in the list.
+% \begin{macrocode}
+ \stepcounter{item@step}%
+% \end{macrocode}
+% Set temp counter to |item@step + input value|.
+% \begin{macrocode}
+ \setcounter{HAP@tca}{\value{item@step}}%
+ \addtocounter{HAP@tca}{##1}%
+ \HAP@activetrue
+% \end{macrocode}
+% If the type is 0, all items remain active, display incrementally.
+% \begin{macrocode}
+ \ifnum\HAP@Itype=\z@
+ \HAP@textc
+ \OnSlide{\value{item@step}-}%
+ \else
+% \end{macrocode}
+% Else, items can become inactive. If type is 1, display list incrementally.
+% \begin{macrocode}
+ \ifnum\HAP@Itype=\@ne\OnSlide{\value{item@step}-}\fi
+ \ifcase
+% \end{macrocode}
+% If |item@step| $\leq$ |overlay number| $\leq$ |item@step + input value|,
+% then item is active.
+% \begin{macrocode}
+ \ifnum\value{overlaysCount}<\value{item@step}\@ne\fi
+ \ifnum\value{overlaysCount}>\value{HAP@tca}\@ne\fi
+ \z@
+ \HAP@textc
+ \else
+ \csname\HAP@Icolor\endcsname
+ \HAP@activefalse
+ \fi
+ \fi
+% \end{macrocode}
+% Original |\item|. This allows for doing |\xitem[a]| or |\xitem<1>[b]|.
+% \begin{macrocode}
+ \HAP@orig@item
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+}
+% \end{macrocode}
+% Workhorse for |\enditemstep| and |\endenumstep|
+% \begin{macrocode}
+\def\endHAP@stepenv#1{%
+ \ifnum#1=\z@
+ \end{itemize}%
+ \else
+ \end{enumerate}%
+ \fi
+% \end{macrocode}
+% Decrease list depth.
+% \begin{macrocode}
+ \addtocounter{HAP@listdepth}{-1}%
+% \end{macrocode}
+% Reset the |item@step| counter for a next list.
+% \begin{macrocode}
+ \ifnum\value{HAP@listdepth}=\z@
+ \setcounter{item@step}{0}%
+ \HAP@nestedfalse
+ \fi
+}
+% \end{macrocode}
+% \end{environment}
+% \subsubsection{Maketitle}
+% \begin{macro}{\maketitle}
+% We start with restoring two macros to the \LaTeX\ original.
+% \begin{macrocode}
+\def\title#1{\gdef\@title{#1}}
+\def\author#1{\gdef\@author{#1}}
+% \end{macrocode}
+% This code originates from the \pf{prosper} but has been modified
+% a lot.
+% \begin{macrocode}
+\renewcommand{\maketitle}[1][]{%
+% \end{macrocode}
+% \pf{prosper} comment: Tests whether the 'french' style from B. Gaulle is loaded.
+% \begin{macrocode}
+ \expandafter\ifx\csname frenchTeXmods\endcsname\relax
+ \else
+% \end{macrocode}
+% \pf{prosper} comment: Is it an old version affected by the bug.
+% \begin{macrocode}
+ \ifx\@soORI\@undefined
+ \PackageWarning{prosper}{This page is intentionally left blank
+ to overcome an incompatibility bug in the seminar class with
+ the old (< 1999/11/23) B. Gaulle's 'french' package.}%
+ \begin{center}%
+ {\black\small
+ \textsf{prosper} class: page intentionally left blank to overcome
+ an incompatibility bug between B. Gaulle 'french' package and
+ the seminar class.}%
+ \end{center}%
+ \clearpage \setcounter{page}{0}%
+ \fi\fi
+% \end{macrocode}
+% Allow for optional arguments in |\maketitle| command.
+% \begin{macrocode}
+ \begin{slide}[#1]{HAP@notitle}%
+ \ptsize{10}%
+ \begin{center}%
+ \@titleSpacing\par
+ \normalfont
+ {\ifinColor\@fontTitleColor\else\@fontTitleBW\fi\@title\par}%
+ \ifx\@Subtitle\@empty\else
+ {\ifinColor\@fontSubtitleColor\else\@fontSubtitleBW\fi\@Subtitle\par}%
+ \fi
+ \vskip2em
+% \end{macrocode}
+% Put author in a tabular to allow for the use of the standard |\and| command.
+% \begin{macrocode}
+ {\ifinColor\@fontAuthorColor\else\@fontAuthorBW\fi
+ \begin{tabular}[t]{c}\@author\end{tabular}\par}%
+ \vfill
+ \end{center}%
+ \end{slide}%
+}
+% \end{macrocode}
+% \end{macro}
+% \subsubsection{Overlays}
+% This section contains some overlays macros. We start with the
+% |Overlays| environment used by the |\overlays| macro.
+% \begin{macrocode}
+\newif\ifHAP@firstOverlay
+\def\Overlays{%
+ \HAP@firstOverlaytrue
+ \global\let\slide\SlideOverlay
+ \global\let\endslide\endSlideOverlay
+ \setcounter{overlay@page}{\value{slide}}%
+}
+\def\endOverlays{%
+ \HAP@firstOverlayfalse
+ \global\let\slide\SlideNormal
+ \global\let\endslide\endSlideNormal
+ \setcounter{slide}{\value{overlay@page}}%
+ \stepcounter{slide}%
+}
+% \end{macrocode}
+% This patch by Mathieu Goutelle, modified by Hendri Adriaens,
+% solves the problem of numbering on overlays. Custom counters
+% can be requested to be protected using |\HAPsetup|.
+% \begin{macro}{\overlays}\label{macro:overlays}
+% This code has been taken from \pf{prosper} and has been modified.
+% \begin{macrocode}
+\long\def\overlays#1#2{%
+ \bgroup
+ \aftergroup\HAP@cleanupOverlay
+ \InOverlaystrue
+ \setcounter{limitOverlays}{#1}%
+ \setcounter{overlaysCount}{1}%
+ \ifDVItoPS
+ #2
+ \else
+ \begin{Overlays}%
+ \bgroup
+ \loop
+ \@everyOverlay
+% \end{macrocode}
+% Save current counter values.
+% \begin{macrocode}
+ \HAP@scounters
+ #2
+ \ifnum\value{overlaysCount}<\value{limitOverlays}{%
+ \stepcounter{overlaysCount}%
+% \end{macrocode}
+% Return the counters to the original setting on every
+% overlay to be able to number items correctly.
+% \begin{macrocode}
+ \HAP@rcounters
+ }%
+ \repeat
+ \egroup
+ \end{Overlays}%
+ \fi
+ \egroup
+}
+% \end{macrocode}
+% \end{macro}
+% \DescribeMacro{\HAP@cleanupOverlay}
+% To be performed after using |\overlays|. Reset the counters to allow
+% for reusing the value of the counters, for instance in style files.
+% \begin{macrocode}
+\def\HAP@cleanupOverlay{%
+ \InOverlaysfalse
+ \setcounter{limitOverlays}{0}%
+ \setcounter{overlaysCount}{0}%
+}
+% \end{macrocode}
+% Let the |\saveCtr| do nothing since this package offers a different
+% mechanism to protect counters on overlays.
+% \begin{macrocode}
+\let\saveCtr\relax
+% \end{macrocode}
+% The following key saves the input to |\HAP@counterslist|, adds the
+% counters |figure|, |table| and |equation| to the list and creates
+% backup counters.
+% \begin{macrocode}
+\define@key{HAP@keys@globalonly}{counters}{%
+ \def\HAP@counterslist{#1}%
+ \ifx\HAP@counterslist\@empty
+ \g@addto@macro\HAP@counterslist{figure,equation,table}%
+ \else
+ \g@addto@macro\HAP@counterslist{,figure,equation,table}%
+ \fi
+% \end{macrocode}
+% Create backup counters.
+% \begin{macrocode}
+ \@for\HAP@tempa:=\HAP@counterslist\do{%
+ \@ifundefined{c@\HAP@tempa}{\@nocounterr{\HAP@tempa}}%
+ {\@ifundefined{c@HAP@oldc@\HAP@tempa}{\newcounter{HAP@oldc@\HAP@tempa}}{}}%
+ }%
+}
+% \end{macrocode}
+% \DescribeMacro{\HAP@scounters}
+% Saves current counter values to the backup counters.
+% \begin{macrocode}
+\def\HAP@scounters{%
+ \@for\HAP@tempa:=\HAP@counterslist\do{%
+ \setcounter{HAP@oldc@\HAP@tempa}{\value{\HAP@tempa}}%
+ }%
+}
+% \end{macrocode}
+% \DescribeMacro{\HAP@rcounters}
+% Resets the actual counters using the backup counters.
+% \begin{macrocode}
+\def\HAP@rcounters{%
+ \@for\HAP@tempa:=\HAP@counterslist\do{%
+ \setcounter{\HAP@tempa}{\value{HAP@oldc@\HAP@tempa}}%
+ }%
+}
+% \end{macrocode}
+% \subsubsection{Font definitions}
+% This section contains some font definitions in the light of \pf{prosper}
+% The |\Font...| macros define fonts to be used for certain text elements
+% and the |\font...| versions allow to apply the predefined font to
+% the text.\par
+% \DescribeMacro{\FontLeftFoot}\DescribeMacro{\fontLeftFoot}
+% Definitions for the left footer.
+% \begin{macrocode}
+\def\@fontLFColor{\@fontTextColor\fontsize{5pt}{5pt}\selectfont}
+\def\@fontLFBW{\@fontTextBW\fontsize{5pt}{5pt}\selectfont}
+\newcommand{\FontLeftFoot}[2]{%
+ \gdef\@fontLFColor{#1}%
+ \gdef\@fontLFBW{#2}}
+\newcommand{\fontLeftFoot}[1]{{\ifinColor\@fontLFColor\else\@fontLFBW\fi#1}}
+% \end{macrocode}
+% \DescribeMacro{\FontRightFoot}\DescribeMacro{\fontRightFoot}
+% Definitions for the right footer.
+% \begin{macrocode}
+\def\@fontRFColor{\@fontTextColor\fontsize{5pt}{5pt}\selectfont}
+\def\@fontRFBW{\@fontTextBW\fontsize{5pt}{5pt}\selectfont}
+\newcommand{\FontRightFoot}[2]{%
+ \gdef\@fontRFColor{#1}%
+ \gdef\@fontRFBW{#2}}
+\newcommand{\fontRightFoot}[1]{{\ifinColor\@fontRFColor\else\@fontRFBW\fi#1}}
+% \end{macrocode}
+% \DescribeMacro{\FontAuthor}\DescribeMacro{\fontAuthor}
+% Definitions for author.
+% \begin{macrocode}
+\def\@fontAuthorColor{\@fontTextColor}
+\def\@fontAuthorBW{\@fontTextBW}
+\newcommand{\FontAuthor}[2]{%
+ \gdef\@fontAuthorColor{#1}%
+ \gdef\@fontAuthorBW{#2}}
+\newcommand{\fontAuthor}[1]{{\ifinColor\@fontAuthorColor\else\@fontAuthorBW\fi#1}}
+% \end{macrocode}
+% \DescribeMacro{\FontInst}\DescribeMacro{\fontInst}
+% Definitions for institution.
+% \begin{macrocode}
+\def\@fontInstColor{\@fontTextColor\fontsize{7pt}{7pt}\selectfont}
+\def\@fontInstBW{\@fontTextBW\fontsize{7pt}{7pt}\selectfont}
+\newcommand{\FontInst}[2]{%
+ \gdef\@fontInstColor{#1}%
+ \gdef\@fontInstBW{#2}}
+\newcommand{\fontInst}[1]{{\ifinColor\@fontInstColor\else\@fontInstBW\fi#1}}
+% \end{macrocode}
+% \DescribeMacro{\institution}
+% The |\institution| macro does not put text anymore directly onto
+% the title slide. Instead, it applies the font settings and can be
+% used inside the |\author| macro.
+% \begin{macrocode}
+\let\institution\fontInst
+% \end{macrocode}
+% \DescribeMacro{\FontEmail}\DescribeMacro{\fontEmail}
+% Definitions for e-mail.
+% \begin{macrocode}
+\def\@fontEmailColor{\@fontTextColor\fontsize{7pt}{7pt}\selectfont}
+\def\@fontEmailBW{\@fontTextBW\fontsize{7pt}{7pt}\selectfont}
+\newcommand{\FontEmail}[2]{%
+ \gdef\@fontEmailColor{#1}%
+ \gdef\@fontEmailBW{#2}}
+\newcommand{\fontEmail}[1]{{\ifinColor\@fontEmailColor\else\@fontEmailBW\fi#1}}
+% \end{macrocode}
+% \DescribeMacro{\email}
+% The |\email| macro does not put text anymore directly onto
+% the title slide. Instead, it applies the font settings and can be
+% used inside the |\author| macro.
+% \begin{macrocode}
+\let\email\fontEmail
+% \end{macrocode}
+% \DescribeMacro{\FontToc}\DescribeMacro{\fontToc}
+% Definitions for the table of contents.
+% \begin{macrocode}
+\def\@fontTocColor{\@fontTextColor\fontsize{4pt}{6pt}\selectfont}
+\def\@fontTocBW{\@fontTextBW\fontsize{4pt}{6pt}\selectfont}
+\newcommand{\FontToc}[2]{%
+ \gdef\@fontTocColor{#1}%
+ \gdef\@fontTocBW{#2}}
+\newcommand{\fontToc}[1]{{\ifinColor\@fontTocColor\else\@fontTocBW\fi#1}}
+% \end{macrocode}
+% \subsubsection{Footers}
+% We don't use the seminar page style. It provides not enough flexibility
+% for placement of footers.
+% \begin{macrocode}
+\renewpagestyle{GenericPageStyle}{}{}
+% \end{macrocode}
+% \DescribeMacro{\HAP@leftfoot}\DescribeMacro{\HAP@rightfoot}
+% These macros store the footer texts.
+% \begin{macrocode}
+\define@key{HAP@keys@globalonly}{lf}{\def\HAP@leftfoot{#1}}
+\define@key{HAP@keys@globalonly}{rf}{\def\HAP@rightfoot{#1}}
+% \end{macrocode}
+% \DescribeMacro{\LeftFoot}\DescribeMacro{\RightFoot}
+% Backward compatibility for earlier version of \pf{HA-prosper} which
+% where not using the |\HAPsetup| user interface yet.
+% \begin{macrocode}
+\def\LeftFoot#1{\def\HAP@leftfoot{#1}}
+\def\RightFoot#1{\def\HAP@rightfoot{#1}}
+% \end{macrocode}
+% \DescribeMacro{\HAP@sn}
+% Slide number.
+% \begin{macrocode}
+\define@key{HAP@keys@globalonly}{sn}{\def\HAP@sn{#1}}
+% \end{macrocode}
+% \DescribeMacro{\HAP@PutLF}
+% This can be used to in a template to position the left footer. It
+% uses |\rput| and puts the footer in the left footer font.
+% \begin{macrocode}
+\newcommand{\HAP@PutLF}[2]{%
+ \rput[#1](#2){\parbox[t]{\slidewidth}{\fontLeftFoot{\HAP@leftfoot}}}%
+}
+% \end{macrocode}
+% \DescribeMacro{\HAP@PutRF}
+% Puts the right footer on slides.
+% \begin{macrocode}
+\newcommand{\HAP@PutRF}[2]{%
+ \ifx\HAP@sn\@empty
+ \rput[#1](#2){%
+ \parbox[t]{\slidewidth}{\hfill\fontRightFoot{\HAP@rightfoot}}}%
+ \else
+ \rput[#1](#2){%
+ \parbox[t]{\slidewidth}{\hfill\fontRightFoot{\HAP@rightfoot~\HAP@sn}}}%
+ \fi
+}
+% \end{macrocode}
+% \subsubsection{Dualslides}
+% This section contains the code to create dualslides.
+% We start with a lot of lengths which can be set by the user.
+% \begin{macrocode}
+\newlength{\HAP@lcolwidth}
+\newlength{\HAP@rcolwidth}
+\newlength{\HAP@frsep}
+\newlength{\HAP@colsep}
+\newlength{\HAP@topsep}
+\newlength{\HAP@bottomsep}
+\newlength{\HAP@indent}
+% \end{macrocode}
+% Optional arguments. Refer to the manual for a full
+% description of the options.
+% \begin{macrocode}
+\define@key{HAP@keys@dual}{lineheight}{\def\HAP@lineheight{#1}}
+\define@key{HAP@keys@dual}{lfrheight}{\def\HAP@lfrheight{#1}}
+\define@key{HAP@keys@dual}{rfrheight}{\def\HAP@rfrheight{#1}}
+\define@key{HAP@keys@dual}{frsep}{\setlength{\HAP@frsep}{#1}}
+\define@key{HAP@keys@dual}{colsep}{\setlength{\HAP@colsep}{#1}}
+\define@key{HAP@keys@dual}{lcolwidth}{\setlength{\HAP@lcolwidth}{#1}}
+\define@key{HAP@keys@dual}{rcolwidth}{\setlength{\HAP@rcolwidth}{#1}}
+\define@key{HAP@keys@dual}{topsep}{\setlength{\HAP@topsep}{#1}}
+\define@key{HAP@keys@dual}{bottomsep}{\setlength{\HAP@bottomsep}{#1}}
+\define@key{HAP@keys@dual}{indent}{\setlength{\HAP@indent}{#1}}
+% \end{macrocode}
+% \DescribeMacro{\HAP@maxdim}
+% Macro that returns the maximum of two dimensions.
+% \begin{macrocode}
+\def\HAP@maxdim#1#2{\ifdim#1>#2#1\else#2\fi}
+% \end{macrocode}
+% \DescribeMacro{\dualslide}\DescribeMacro{\HAP@dualslide}\DescribeMacro{\HAP@@dualslide}
+% The |\dualslide| macro is called with
+% \HAPcmd{\ci{dualslide}\oarg{opt1}\oarg{opt2}\oarg{opt3}\marg{options}\marg{left}\marg{right}}
+% If only |opt1| specified, then |opt2|=|opt1| and |opt3|=|opt1|. If
+% |opt1| and |opt2| specified, |opt3|=|opt1|. The macros |\HAP@dualslide|
+% and |\HAP@@dualslide| are used to achieve this behavior.
+% See for more info on the arguments the manual.
+% \begin{macrocode}
+\def\dualslide{\@ifnextchar[\HAP@dualslide{\HAP@@@dualslide[][][]}}
+\def\HAP@dualslide[#1]{%
+ \@ifnextchar[{\HAP@@dualslide[#1]}%
+ {\HAP@@@dualslide[#1][#1][#1]}%
+}
+\def\HAP@@dualslide[#1][#2]{%
+ \@ifnextchar[{\HAP@@@dualslide[#1][#2]}%
+ {\HAP@@@dualslide[#1][#2][#1]}%
+}
+% \end{macrocode}
+% \begin{macro}{\HAP@@@dualslide}
+% Workhorse for |\dualslide|. This macro creates the dualslide construct.
+% \begin{macrocode}
+\long\def\HAP@@@dualslide[#1][#2][#3]#4#5#6{%
+% \end{macrocode}
+% Set default dimensions.
+% \begin{macrocode}
+ \setlength{\HAP@frsep}{1.5mm}%
+ \setlength{\HAP@colsep}{.06\linewidth}%
+ \setlength{\HAP@lcolwidth}{.47\linewidth}%
+ \setlength{\HAP@rcolwidth}{.47\linewidth}%
+ \setlength{\HAP@topsep}{0cm}%
+ \setlength{\HAP@bottomsep}{0cm}%
+ \setlength{\HAP@indent}{0cm}%
+% \end{macrocode}
+% Load options.
+% \begin{macrocode}
+ \xsetkeys{HAP@keys@dual}{#4}%
+% \end{macrocode}
+% The next section computes the height of the dualslide construct.
+% We start with left content height.
+% \begin{macrocode}
+ \sbox\HAP@tba{\begin{minipage}{\HAP@lcolwidth}#5\end{minipage}}%
+ \setlength{\HAP@tlc}{\the\ht\HAP@tba}%
+ \addtolength{\HAP@tlc}{\the\dp\HAP@tba}%
+% \end{macrocode}
+% Right content height.
+% \begin{macrocode}
+ \sbox\HAP@tbb{\begin{minipage}{\HAP@rcolwidth}#6\end{minipage}}%
+ \setlength{\HAP@tld}{\the\ht\HAP@tbb}%
+ \addtolength{\HAP@tld}{\the\dp\HAP@tbb}%
+% \end{macrocode}
+% Take the maximum of left and right content.
+% \begin{macrocode}
+ \setlength{\HAP@tlc}{\HAP@maxdim{\HAP@tlc}{\HAP@tld}}%
+% \end{macrocode}
+% If a left frame is requested, compute max height again.
+% \begin{macrocode}
+ \ifx\HAP@lfrheight\@undefined\else
+ \setlength{\HAP@tlc}{\HAP@maxdim{\HAP@lfrheight}{\HAP@tlc}}%
+ \fi
+% \end{macrocode}
+% If a line is requested, compute max height again.
+% \begin{macrocode}
+ \ifx\HAP@lineheight\@undefined\else
+ \setlength{\HAP@tlc}{\HAP@maxdim{\HAP@lineheight}{\HAP@tlc}}%
+ \fi
+% \end{macrocode}
+% Finally, evaluate the height of the right frame and compute the max again.
+% \begin{macrocode}
+ \ifx\HAP@rfrheight\@undefined\else
+ \setlength{\HAP@tlc}{\HAP@maxdim{\HAP@rfrheight}{\HAP@tlc}}%
+ \fi
+% \end{macrocode}
+% Now we know the height of the construct, create vertical space
+% with a |pspicture| on which we position the elements. In between
+% creating elements, we compute a bit with lengths to calculate the
+% positions of the elements depending on all the inputs. The code
+% below contains references to points. These points can be found in
+% the picture below, which shows the top part of the dualslide
+% construct to be created by |\HAP@@@dualslide|.\par
+%\setlength{\unitlength}{.7cm}
+%\begin{picture}(14,2)(0,.5)
+%\put(0,.5){\line(0,1){2}}
+%\put(0,2.5){\line(1,0){6}}
+%\put(6,2.5){\line(0,-1){2}}
+%\put(7,.5){\line(0,1){2}}
+%\put(8,.5){\line(0,1){2}}
+%\put(8,2.5){\line(1,0){6}}
+%\put(14,2.5){\line(0,-1){2}}
+%\dashline{2}(.75,.5)(.75,1.125)(.75,1.75)
+%\dashline{2}(.75,1.75)(1.25,1.75)(1.75,1.75)%
+%(2.25,1.75)(2.75,1.75)(3.25,1.75)(3.75,1.75)%
+%(4.25,1.75)(4.75,1.75)(5.25,1.75)
+%\dashline{2}(5.25,.5)(5.25,1.125)(5.25,1.75)
+%\dashline{2}(8.75,.5)(8.75,1.125)(8.75,1.75)
+%\dashline{2}(8.75,1.75)(9.25,1.75)(9.75,1.75)%
+%(10.25,1.75)(10.75,1.75)(11.25,1.75)(11.75,1.75)%
+%(12.25,1.75)(12.75,1.75)(13.25,1.75)
+%\dashline{2}(13.25,.5)(13.25,1.125)(13.25,1.75)
+%\put(.75,1){\circle*{.15}}
+%\put(.35,1){|1|}
+%\put(5.25,1){\circle*{.15}}
+%\put(4.85,1){|2|}
+%\put(6,1){\circle*{.15}}
+%\put(5.6,1){|3|}
+%\put(7,1){\circle*{.15}}
+%\put(6.6,1){|4|}
+%\put(8.75,1){\circle*{.15}}
+%\put(8.35,1){|5|}
+%\put(8,1){\circle*{.15}}
+%\put(7.6,1){|6|}
+%\put(14,1){\circle*{.15}}
+%\put(13.6,1){|7|}
+%\end{picture}
+% \par
+% The starting point is |1|.
+% \begin{macrocode}
+ \pspicture(-\HAP@indent,\HAP@topsep)(\linewidth,-\HAP@tlc)%
+% \end{macrocode}
+% Set defaults for linewidth and color.
+% \begin{macrocode}
+ \psset{unit=1pt,linewidth=.25pt,linecolor=HAP@framecolor}%
+% \end{macrocode}
+% The next line brings us to point |2|.
+% \begin{macrocode}
+ \setlength{\HAP@tla}{\HAP@lcolwidth}%
+% \end{macrocode}
+% And the next to point |3|.
+% \begin{macrocode}
+ \addtolength{\HAP@tla}{\HAP@frsep}%
+% \end{macrocode}
+% Create the left frame.
+% \begin{macrocode}
+ \ifx\HAP@lfrheight\@undefined\else
+ \psframe[#1](-\HAP@frsep,\HAP@frsep)(\HAP@tla,-\HAP@lfrheight)%
+ \fi
+% \end{macrocode}
+% Put the left content.
+% \begin{macrocode}
+ \rput[tl](0,0){\usebox{\HAP@tba}}%
+% \end{macrocode}
+% We are back at |2| with the next line.
+% \begin{macrocode}
+ \setlength{\HAP@tla}{\HAP@lcolwidth}%
+% \end{macrocode}
+% This line moves us on to point |4|.
+% \begin{macrocode}
+ \addtolength{\HAP@tla}{.5\HAP@colsep}%
+% \end{macrocode}
+% Create the line.
+% \begin{macrocode}
+ \ifx\HAP@lineheight\@undefined\else
+ \psline[#2](\HAP@tla,\HAP@frsep)(\HAP@tla,-\HAP@lineheight)%
+ \fi
+% \end{macrocode}
+% And we go further to point |5|.
+% \begin{macrocode}
+ \addtolength{\HAP@tla}{.5\HAP@colsep}%
+ \setlength{\HAP@tlc}{\HAP@tla}%
+% \end{macrocode}
+% With the next line, we are at point |6|.
+% \begin{macrocode}
+ \addtolength{\HAP@tla}{-\HAP@frsep}%
+ \setlength{\HAP@tlb}{\HAP@tla}%
+% \end{macrocode}
+% And the next two lines give us point |7|.
+% \begin{macrocode}
+ \addtolength{\HAP@tlb}{\HAP@rcolwidth}%
+ \addtolength{\HAP@tlb}{2\HAP@frsep}%
+% \end{macrocode}
+% Create the right frame.
+% \begin{macrocode}
+ \ifx\HAP@rfrheight\@undefined\else
+ \psframe[#3](\HAP@tla,\HAP@frsep)(\HAP@tlb,-\HAP@rfrheight)%
+ \fi
+% \end{macrocode}
+% Put the right content.
+% \begin{macrocode}
+ \rput[tl](\HAP@tlc,0){\usebox{\HAP@tbb}}%
+ \endpspicture\par
+}
+% \end{macrocode}
+% \end{macro}
+% \subsubsection{onSlide and OnSlide}
+% The macros in this section form a generelization of the following
+% macros of \pf{prosper}: |\fromSlide|, |\FromSlide|, |\untilSlide|,
+% |\UntilSlide|, |\onlySlide| and |\OnlySlide|. The macros are more
+% or less based on these \pf{prosper} macros, but are more general
+% and replace all those macros. We start with some counters
+% and an if necessary to determine whether material should be
+% displayed on the current overlay or not.
+% \begin{macrocode}
+\newcounter{HAP@onslide@count}
+\newcounter{HAP@onslide@end}
+\newif\ifHAP@displayMat
+\let\HAP@onslide@list\@empty
+% \end{macrocode}
+% \begin{macro}{\onSlide}
+% \HAPcmd{\ci{onSlide}\marg{overlays}\marg{mat}}
+% This macro allows for
+% comma seperated inputs like |\onSlide{-2,4,6-8,10-}|. |\onSlide|
+% has a starred version which doesn't move the cursor in case the
+% material is not displayed on the slide.
+% \begin{macrocode}
+\def\onSlide{\@ifstar{\HAP@onSlide{1}}{\HAP@onSlide{0}}}
+\long\def\HAP@onSlide#1#2{%
+% \end{macrocode}
+% Split the comma seperated list into parts to be read by |\HAP@read|.
+% The macro will set |\ifHAP@displayMat| which tells us to display
+% the material on the current slide or not.
+% \begin{macrocode}
+ \HAP@split#2,\relax,%
+ \let\HAP@next\@gobble
+ \ifDVItoPS
+ \ifAccumulate
+% \end{macrocode}
+% Just display the material in case of printing slides.
+% \begin{macrocode}
+ \let\HAP@next\@iden%
+ \fi
+ \else
+ \ifHAP@displayMat
+% \end{macrocode}
+% We should display it.
+% \begin{macrocode}
+ \let\HAP@next\@iden%
+% \end{macrocode}
+% Reset |\ifHAP@displayMat| for future use.
+% \begin{macrocode}
+ \HAP@displayMatfalse
+ \else
+% \end{macrocode}
+% If no star, move the cursor using \pf{prosper}'s |PSTricks| construct.
+% \begin{macrocode}
+ \ifnum#1=\z@
+ \let\HAP@next\@on@overlay@one%
+ \fi
+ \fi
+ \fi
+% \end{macrocode}
+% Put the material on the slide. This can be |\@gobble|.
+% \begin{macrocode}
+ \HAP@next
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\OnSlide}
+% \HAPcmd{\ci{OnSlide}\marg{overlays}}
+% This macro also allows for comma seperated lists, but takes only
+% one argument and masks or not all the following material.
+% \begin{macrocode}
+\def\OnSlide#1{%
+% \end{macrocode}
+% Split the comma seperated list into parts to be read by |\HAP@read|.
+% \begin{macrocode}
+ \HAP@split#1,\relax,%
+ \ifDVItoPS\else
+% \end{macrocode}
+% We should display the following material; don't hide it.
+% \begin{macrocode}
+ \ifHAP@displayMat
+% \end{macrocode}
+% Reset |\ifHAP@displayMat|.
+% \begin{macrocode}
+ \HAP@displayMatfalse
+ \else
+% \end{macrocode}
+% Hide it using \pf{prosper}'s |\overlay|.
+% \begin{macrocode}
+ \overlay{1}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \DescribeMacro{\HAP@split}
+% Splits the comma seperated list into parts and reads them one by one.
+% This is based on \pf{keyval}'s |\KV@do|.
+% \begin{macrocode}
+\def\HAP@split#1,{%
+ \ifx\relax#1\@empty\else
+ \HAP@read#1--\relax
+ \expandafter\HAP@split
+ \fi
+}
+% \end{macrocode}
+% \begin{macro}{\HAP@read}
+% This macro reads the argument between two commas supplied by |\HAP@split|.
+% We distinct 4 cases: $x$, -$x$, $x$- and $x$-$y$ where $x$ and $y$ are positive
+% integers with $y\geq x$. We will not check the argument for specification;
+% the responsibility is with the user. The macro first sets a range from
+% the inputs, then runs over this range to check wether the current
+% overlay is inside the range and hence material should be displayed.
+% \begin{macrocode}
+\def\HAP@read#1-#2-#3\relax{%
+ \def\HAP@tempa{#1}%
+ \def\HAP@tempb{#2}%
+ \def\HAP@tempc{#3}%
+ \ifx\HAP@tempa\@empty
+% \end{macrocode}
+% If |#1| empty, we have -$x$. Set the counter to the starting overlay.
+% \begin{macrocode}
+ \setcounter{HAP@onslide@count}{1}%
+ \else
+% \end{macrocode}
+% Else, we have something that starts with $x$ or $+x$, but we don't know the
+% exact specification yet. Check whether the input starts with a |+|.
+% \begin{macrocode}
+ \HAP@sp\HAP@tempd{#1}%
+ \ifHAP@plus
+% \end{macrocode}
+% If a plus sign, make displaying relative to the current |\xitem|.
+% \begin{macrocode}
+ \setcounter{HAP@onslide@count}{\value{item@step}}%
+ \addtocounter{HAP@onslide@count}{\HAP@tempd}%
+ \else
+ \setcounter{HAP@onslide@count}{#1}%
+ \fi
+ \fi
+ \ifx\HAP@tempb\@empty
+ \ifx\HAP@tempc\@empty
+% \end{macrocode}
+% If both |#2| and |#3| empty, we have the case $x$ or $+x$.
+% \begin{macrocode}
+ \HAP@sp\HAP@tempd{#1}%
+ \ifHAP@plus
+% \end{macrocode}
+% If a plus sign, make displaying relative to the current |\xitem|.
+% \begin{macrocode}
+ \setcounter{HAP@onslide@end}{\value{item@step}}%
+ \addtocounter{HAP@onslide@end}{\HAP@tempd}%
+ \else
+ \setcounter{HAP@onslide@end}{#1}%
+ \fi
+ \else
+% \end{macrocode}
+% If |#2| empty, but |#3| not (has value |-|), we have the case $x$- or $+x$-.
+% \begin{macrocode}
+ \setcounter{HAP@onslide@end}{\value{limitOverlays}}%
+ \fi
+ \else
+% \end{macrocode}
+% If both |#2| and |#3| non-empty, we have the case $x$-$y$ or a
+% variation with |+| signs.
+% \begin{macrocode}
+ \HAP@sp\HAP@tempd{#2}%
+ \ifHAP@plus
+% \end{macrocode}
+% If a plus sign, make displaying relative to the current |\xitem|.
+% \begin{macrocode}
+ \setcounter{HAP@onslide@end}{\value{item@step}}%
+ \addtocounter{HAP@onslide@end}{\HAP@tempd}%
+ \else
+ \setcounter{HAP@onslide@end}{#2}%
+ \fi
+ \fi
+% \end{macrocode}
+% Check on input.
+% \begin{macrocode}
+ \ifnum\value{HAP@onslide@count}>\value{HAP@onslide@end}%
+ \@expandtwoargs\in@{,\theslide,}{,\HAP@onslide@list,}%
+ \ifin@\else
+ \PackageError{HA-prosper}{Invalid onSlide or OnSlide range or missing overlays
+ on slide \theslide}{You can go ahead, but material will be missing.}%
+% \end{macrocode}
+% Add current slide number to a list to avoid multiple errors per slide.
+% \begin{macrocode}
+ \xdef\HAP@onslide@list{%
+ \HAP@onslide@list
+ \ifx\HAP@onslide@list\@empty\else,\fi
+ \theslide
+ }%
+ \fi
+ \else
+% \end{macrocode}
+% If the current overlay number is in the range, material should be
+% displayed.
+% \begin{macrocode}
+ \ifnum\value{HAP@onslide@count}>\value{overlaysCount}\else
+ \ifnum\value{HAP@onslide@end}<\value{overlaysCount}\else
+ \HAP@displayMattrue
+ \fi\fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% Code to strip the |+| sign from the start of a list of tokens.
+% This is necessary since the input to |\HAP@read| can also
+% contain |\value{item@step}|. The code is based on the \pf{keyval}
+% macro |\KV@@sp@def|.
+% \begin{macrocode}
+\def\:{\let\@pltoken=+}\:%
+\newtoks\HAP@toks@
+\newif\ifHAP@plus
+\def\HAP@sp#1#2{%
+ \futurelet\HAP@tempa\HAP@@sp#2\@nil\@nil+\@nil\relax#1}%
+\def\HAP@@sp{%
+ \ifx\HAP@tempa\@pltoken
+ \HAP@plustrue
+ \expandafter\HAP@@@sp
+ \else
+ \HAP@plusfalse
+ \expandafter\HAP@@@sp\expandafter+%
+ \fi
+}%
+\def\HAP@@@sp+#1\@nil{\HAP@@@@sp#1}%
+\def\HAP@@@@sp#1\@nil#2\relax#3{\HAP@toks@{#1}\edef#3{\the\HAP@toks@}}
+% \end{macrocode}
+% \subsubsection{Miscellaneous}
+% \DescribeMacro{\xitemwait}
+% Tells \pf{HA-prosper} to wait some overlays before continuing
+% incrementally displayed items.
+% \begin{macrocode}
+\newcommand{\xitemwait}[1][1]{\addtocounter{item@step}{#1}}
+% \end{macrocode}
+% \DescribeMacro{\HAP@TSNav}
+% Entrance point for navigational elements on the title slide. This
+% macro takes the value specified by the |tsnav| global key and can
+% be used to put navigational components on slides through a style file.
+% \begin{macrocode}
+\define@key{HAP@keys@globalonly}{tsnav}{\gdef\HAP@TSNav{#1}}
+% \end{macrocode}
+% \DescribeMacro{\TitleSlideNav}
+% Backward compatibility for earlier version of \pf{HA-prosper} which
+% where not using the |\HAPsetup| user interface yet.
+% \begin{macrocode}
+\def\TitleSlideNav#1{\gdef\HAP@TSNav{#1}}
+% \end{macrocode}
+% \DescribeMacro{\HAP@NSNav}
+% Entrance point for navigational elements on normal slides.
+% \begin{macrocode}
+\define@key{HAP@keys@globalonly}{nsnav}{\gdef\HAP@NSNav{#1}}
+% \end{macrocode}
+% \DescribeMacro{\NormalSlideNav}
+% Backward compatibility for older presentations.
+% \begin{macrocode}
+\def\NormalSlideNav#1{\gdef\HAP@NSNav{#1}}
+% \end{macrocode}
+% Simple interface for the total number of slides in the presentation.
+% \begin{macrocode}
+\def\totalpages{\realpageref{last@page}}
+% \end{macrocode}
+% \subsection{Postamble and defaults}
+% This section of code contains the finalizing elements like loading
+% the requested style, setting defaults and creating extra slide environments.
+% \subsubsection{Defaults (1)}
+% \DescribeMacro{\HAPsetup}
+% Allows for setting some options globally.
+% \begin{macrocode}
+\def\HAPsetup#1{%
+ \xsetkeys{HAP@keys@globalonly,HAP@keys@slide,HAP@keys@step}{#1}%
+}
+% \end{macrocode}
+% Set global defaults to prevent errors when the user decides to delete
+% a line from the |HA-prosper.cfg| file.
+% \begin{macrocode}
+\HAPsetup{lf=,rf=,trans=\@defaultTransition,template=slide,sstart=1,
+ stype=0,iacolor=lightgray,tsnav=FullScreen,nsnav=ShowBookmarks,
+ sn={-~p.~\thepage\ifallPages/\totalpages\fi},counters=
+}
+% \end{macrocode}
+% Load defaults for global options. Refer to section~\ref{sec:config} for
+% the |HA-prosper.cfg| file.
+% \begin{macrocode}
+\input{HA-prosper.cfg}
+% \end{macrocode}
+% PDF page cropping default.
+% \begin{macrocode}
+\hypersetup{pdfpagescrop={0 0 595 840}}
+% \end{macrocode}
+% PDF creator.
+% \begin{macrocode}
+\AtBeginDocument{\def\@pdfcreator{LaTeX with hyperref and
+ HA-prosper packages}}
+% \end{macrocode}
+% Calibration of commands like |\small| to default font sizes.
+% \begin{macrocode}
+\ptsize{10}
+% \end{macrocode}
+% \subsubsection{Load the style}
+% First undefine |\slidetitle| since it is already defined by \pf{prosper}.
+% \begin{macrocode}
+\let\slidetitle\@undefined
+% \end{macrocode}
+% Load the requested style.
+% \begin{macrocode}
+\IfFileExists{HAP\HAP@Style@chosen.sty}{%
+ \RequirePackage{HAP\HAP@Style@chosen}%
+}{\PackageError{HA-prosper}{unknown HA-prosper style file: HAP\HAP@Style@chosen.sty}%
+ {Sorry, no additional help}}
+% \end{macrocode}
+% \subsubsection{Extra slide definitions}
+% \DescribeMacro{\HAPR@normalslide}
+% Check that the normal slide template has been defined by the template.
+% \begin{macrocode}
+\ifx\HAPR@normalSlide\@undefined
+ \PackageError{HA-prosper}{HA-prosper normal slide is
+ not defined in your template}%
+ {Check that your template HAP\HAP@Style@chosen.sty supports
+ normal slides and that it is up to date}%
+\else
+ \HAPR@normalSlide
+% \end{macrocode}
+% \DescribeMacro{\HAPR@wideslide}
+% If |\HAPR@wideslide| defined, use it to create the |wideslide| environment.
+% \begin{macrocode}
+ \ifx\HAPR@wideSlide\@undefined
+ \else
+ \def\wideslide{\@ifnextchar[\HAP@wideslide{\HAP@wideslide[]}}%
+ \def\HAP@wideslide[#1]#2{%
+ \HAPR@wideSlide
+ \begin{slide}[#1]{#2}%
+ }%
+ \def\endwideslide{\end{slide}\HAPR@normalSlide}%
+ \fi
+% \end{macrocode}
+% \DescribeMacro{\HAPR@partslide}
+% If |\HAPR@partslide| defined, use it to create the |partslide| environment.
+% \begin{macrocode}
+ \ifx\HAPR@partSlide\@undefined
+ \else
+ \def\partslide{\@ifnextchar[\HAP@partslide{\HAP@partslide[]}}%
+ \def\HAP@partslide[#1]#2{%
+ \HAPR@partSlide
+ \begin{slide}[#1]{#2}%
+ }%
+ \def\endpartslide{\end{slide}\HAPR@normalSlide}%
+ \fi
+\fi
+% \end{macrocode}
+% \DescribeMacro{\maketitle}
+% If both |\HAPR@normalslide| and |\HAPR@titleslide| defined, use these
+% to redefine the |\maketitle| macro which switches back to the normal
+% template automatically after creating the title slide on the title template.
+% \begin{macrocode}
+\ifcase
+ \ifx\HAPR@normalSlide\@undefined\@ne\fi
+ \ifx\HAPR@titleSlide\@undefined\@ne\fi
+ \z@
+ \let\HAP@orig@maketitle=\maketitle
+ \def\maketitle{\@ifnextchar[\HAP@maketitle{\HAP@maketitle[]}}%
+ \newcommand{\HAP@maketitle}[1][]{%
+ \HAPR@titleSlide\HAP@orig@maketitle[#1]\HAPR@normalSlide
+ }%
+\fi
+% \end{macrocode}
+% \subsubsection{Defaults (2)}
+% Here we check wether certain vital macros have been defined
+% by the template and if not, define them. See the section containing
+% developers information in the manual for more information
+% about a specific macro listed below.
+% \begin{macrocode}
+\ifx\HAP@tline\@undefined\def\HAP@tline#1{#1}\fi
+\ifx\HAP@tlineonly\@undefined\def\HAP@tlineonly#1{#1}\fi
+\ifx\HAP@tsection\@undefined\def\HAP@tsection#1{#1}\fi
+\ifx\HAP@tsectiononly\@undefined\def\HAP@tsectiononly#1{#1}\fi
+\ifx\HAP@tsectionskip\@undefined\def\HAP@tsectionskip{1.5em}\fi
+\ifx\HAP@titemskip\@undefined\def\HAP@titemskip{.1em}\fi
+\ifx\HAP@tsectionm\@undefined\let\HAP@tsectionm\@empty\fi
+\ifx\HAP@twidth\@undefined\def\HAP@twidth{2cm}\fi
+\ifx\HAP@tborder\@undefined\def\HAP@tborder{.05cm}\fi
+\ifx\HAP@textc\@undefined\newrgbcolor{HAP@textc}{0 0 0}\fi
+\ifx\HAP@framecolor\@undefined\newrgbcolor{HAP@framecolor}{0 0 0}\fi
+\ifx\HAP@hcolor\@undefined\newrgbcolor{HAP@hcolor}{0 0 0}\fi
+\ifx\HAP@htcolor\@undefined\newrgbcolor{HAP@htcolor}{1 1 1}\fi
+\ifx\HAP@tocentry\@undefined
+ \def\HAP@tocentry{%
+% \end{macrocode}
+% By default, put text in a |\parbox| for multi-line toc entries.
+% \begin{macrocode}
+ \parbox[b]{\HAP@twidth}{\raggedright\HAP@toctext}%
+ }%
+\fi
+\ifx\HAP@hltocentry\@undefined
+ \def\HAP@hltocentry{%
+% \end{macrocode}
+% By default, put text in |\parbox| and in |\psframebox| to create the frame.
+% \begin{macrocode}
+ \psframebox*[framesep=\HAP@tborder,fillcolor=HAP@hcolor,boxsep=false]%
+ {\parbox[b]{\HAP@twidth}{\raggedright{\HAP@htcolor\HAP@toctext}}}%
+ }%
+\fi
+% \end{macrocode}
+% \subsubsection{ppr-prv entrance point}
+% Allow \pf{ppr-prv} to redefine \pf{HA-prosper} macros easily.
+% \begin{macrocode}
+\@ifclassloaded{ppr-prv}{\InputIfFileExists{HAP-ppr-prv.def}{}{}}{}
+%</program>
+% \end{macrocode}
+% \subsection{Default configuration}\label{sec:config}
+% The file |HA-prosper.cfg| generated from the code below contains the
+% global configuration settings of \pf{HA-prosper}. We start with a small
+% preamble.
+% \begin{macrocode}
+%<*config>
+%%
+%% Global defaults of HA-prosper.
+%% ==============================
+%%
+%% You can change this file but be careful since it will
+%% affect all of your presentations. See for more information
+%% the documentation of the HA-prosper package.
+%%
+\HAPsetup{%
+% \end{macrocode}
+% Left footer.
+% \begin{macrocode}
+ lf=,
+% \end{macrocode}
+% Right footer.
+% \begin{macrocode}
+ rf=,
+% \end{macrocode}
+% Transition, using \pf{prosper} default for backward compatibility.
+% \begin{macrocode}
+ trans=\@defaultTransition,
+% \end{macrocode}
+% Template for parts.
+% \begin{macrocode}
+ template=slide,
+% \end{macrocode}
+% Starting overlay of stepping environments.
+% \begin{macrocode}
+ sstart=1,
+% \end{macrocode}
+% Type of stepping environment.
+% \begin{macrocode}
+ stype=0,
+% \end{macrocode}
+% Inactive color for stepping environments.
+% \begin{macrocode}
+ iacolor=lightgray,
+% \end{macrocode}
+% Title slide navigation.
+% \begin{macrocode}
+ tsnav=FullScreen,
+% \end{macrocode}
+% Normal slide navigation.
+% \begin{macrocode}
+ nsnav=ShowBookmarks,
+% \end{macrocode}
+% Slide number layout.
+% \begin{macrocode}
+ sn={-~p.~\thepage\ifallPages/\totalpages\fi},
+% \end{macrocode}
+% Counters that should be protected on overlays.
+% \begin{macrocode}
+ counters=
+}
+%</config>
+% \end{macrocode}
+% \Finale
+\endinput