\def\Lit#1{\texttt{#1}}
\newcommand{\Cmd}[1]{{\ttfamily\upshape\char'134#1}}
\def\SEM{\texttt{seminar}}
\def\PS{\textsc{PostScript}}
\newenvironment{coldinglist}[2]%
{\begin{list}{\textcolour{#2}{\ding{#1}}}{}}%
{\end{list}}%

\title{Colour slides with \LaTeX\ and \SEM{}}
\author[Michel Goossens and Sebastian Rahtz]{Michel
  Goossens (CERN)\\Sebastian Rahtz (ArchaeoInformatica)}
\begin{Article} 
\section{Slides and \LaTeX}
Many \LaTeX\ users want to take advantage of \TeX's high-quality
typesetting when they produce overhead slides for a
presentation. This facility was originally provided by a separate
package, \SLiTeX, but that had a number of disadvantages:

\begin{itemize}
\item it was limited to a set of specially-scaled Computer Modern
      fonts and it was not easy to adapt to other fonts;
\item the user was required to have two separate files, one for
      control information and the other for the actual slides;
\item the control of colour and overlays was limited and crude;
\item There was only one `style' for slides, and writing a different
      layout (to, say, put a logo on each slide) was not documented.
\end{itemize}

\LaTeX{} users now have a variety of fonts, and vast numbers of
styles, to choose from, but \SLiTeX\ has lagged behind.  When
\LaTeXe{} was released at the end of 1993, this included a simple
\LaTeX\ document class (already available in the New Font Selection
Scheme, version 2) to emulate \SLiTeX\ without the overhead of a
separate macro package.  However, there is a much better \LaTeX\ 
package which has been available for some time now---\SEM; if used in
conjunction with a PostScript printer, and a set of useful macros
called PSTricks,\footnote{The \SEM\ package and PSTricks are the work
  of Timothy van Zandt ({\ttfamily tvz@princeton.edu}).} this offers
almost every imaginable facility, including:
\begin{dinglist}{43} 
 \item Fancy frames, headers and footers; 
 \item Landscape and portrait slides in the same document; 
 \item Coloured text and tables; 
 \item Interleaving of annotations and slides; 
 \item Slide `chapters' and list of slides; 
 \item Overlays.  
\end{dinglist}

\SEM\ is a normal \LaTeX\ package which can be used with almost all
other \LaTeX\ packages (such as those to change font, include
graphics etc). Its main job is to produce transparencies, but it can
also make accompanying notes from the same file. It is compatible with
$\mathcal{AMS}$-\LaTeX\ and \LaTeXe.

\section{Using the \SEM{} style}

Usage is simple; begin your document in the normal way\footnote{We are
  assuming \LaTeXe\ here, just to remind you to upgrade.} with
\begin{verbatim}
  \documentclass{seminar}
\end{verbatim}
\noindent The slide environments are
\begin{verbatim}
  \begin{slide}   
     ...    
  \end{slide}

  \begin{slide*}
     ...    
  \end{slide*}
\end{verbatim}

Where \verb|slide| is for landscape slides and \verb|slide*| is for
portrait slides.  By default, the document is typeset in {\em
landscape} mode, but if you include the \verb|portrait| package
option, the document is typeset in portrait mode.  \emph{Typesetting}
the document in landscape mode is different from \emph{printing} it in
landscape mode; you have to worry about the orientation of the page
when printing, but with \verb|dvips| this is simple, and taken care of
in the local control file described below.

So the default output\footnote{We have added a package
                     ``\Lit{times}'' so that the output will reduce 
                     properly to thumbnails for this article.}
from this input:

\begin{verbatim}
\documentclass{seminar}
\usepackage{times}
\begin{document}
\begin{slide}
My talk is about:
\begin{description}
\item[Cats] Nice furry creatures
 which belong in every good home;
\item[Dogs] Nasty barking things 
 which bite you;
\item[Snakes] They come slithering 
 through the grass and \emph{have 
 no feet}; this is  most disturbing;
\item[Rhinoceroses] {\bfseries Never}
 be rude to a rhino; they are bigger 
 than you, and meaner.
\end{description}
\end{slide}
\end{document}
\end{verbatim}

will look like: \parbox[c][\totalheight]{5.5cm}{\epsfig{figure=demo1.ps,width=5cm}}

Most slides will be no more
complicated than this, using standard \LaTeX\ 
environments like \texttt{itemize}, 
\texttt{enumerate} and \texttt{tabular}.

\section{Frame styles}
\def\Showslide#1{\parbox[c][\totalheight]{5cm}{\epsfig{figure=#1,width=5cm}}}
A variety of slide framing styles are available, set with the
\verb|\framestyle| command; the following are some of the predefined
ones (some assume you have a PostScript printer), using the
\verb|\slideframe| command:

\begin{tabular}{@{}m{12mm}l}
none   & \Showslide{demo2.ps}
\end{tabular}

\begin{tabular}{@{}m{12mm}l}
shadow & \Showslide{demo3.ps}
\end{tabular}

\begin{tabular}{@{}m{12mm}l}
double & \Showslide{demo4.ps}
\end{tabular}

\begin{tabular}{@{}m{12mm}l}
oval   & \Showslide{demo5.ps}
\end{tabular}

Similarly, a variety of page styles (the headers and footers) are
available with the \verb|\pagestyle| command, such as:

\begin{tabular}{@{}m{12mm}l}
empty  & \Showslide{demo6.ps}
\end{tabular}

\begin{tabular}{@{}m{12mm}l}
plain  & \Showslide{demo7.ps}
\end{tabular}

\begin{tabular}{@{}m{12mm}l}
align  & \Showslide{demo8.ps}
\end{tabular}

Both slide frames and page styles can be customized; for instance, the
examples in this paper (\eg\ Figure \ref{seminarcolour}) are suitable
for use at CERN.

\section{Interleaving notes, and selecting subsets}
It is easy to intersperse your slides with notes to yourself; these
can be simply placed between the \texttt{slide} environments or enclosed
in a specific \texttt{note} environment. You can use any \LaTeX\ commands
in these notes, and include your whole article here if desired. When
you want to print the slides, a variety of package options can be used:

\begin{description}
\item[slidesonly]  Only the slides are printed;
\item[notesonly]  Only the slides are printed;
\item[notes]  The slides are interleaved with the notes;
\item[article] The document notes are typeset like a normal \LaTeX\ paper,
              and the slides are placed as figures (reduced to half size).
\end{description}
The \Cmd{slideplacement} command can be used to affect how slides
are placed in the \texttt{article} format; the possible parameters are:

\begin{description}
\item[float]  (default) Slides are floated
\item[float*]  Slides are floated, but if two column format is chosen
               they will span both columns
\item[here] Slides are placed where they occur in the notes
\end{description}

Further detailed control of the interaction between slides and notes
is given in the \emph{User's Manual}.

Selected slides can be included or excluded with the
\verb|\onlyslides| or \verb|\noteslides| commands which a parameter of
a comma-separated list of slides; this can be numbers, ranges (\eg\
5--10) or \LaTeX\ \verb|\ref| commands referring to \verb|\label|
commands in the slides.

%\begin{figure*}
%\begin{tabular}{@{}cc@{}}
%  \framebox{{\epsfig{figure=over1,height=.45\textheight}}} &
%  \framebox{{\epsfig{figure=over2,height=.45\textheight}}} \\ 
%  \framebox{{\epsfig{figure=over3,height=.45\textheight}}} &
%  \framebox{{\epsfig{figure=over4,height=.45\textheight}}} \\ 
%\end{tabular}
%\caption{Slide overlays}
%\label{overlays} 
%\end{figure*} 

\begin{figure*}
\begin{tabular}{@{}p{.49\textwidth}p{.49\textwidth}@{}}
\epsfig{figure=sem1.ps,width=.45\textwidth} &
\epsfig{figure=sem2.ps,width=.45\textwidth} \\
\verb|\SlideColours{Red}{Yellow}| &
\verb|\SlideColours{Black}{White}|\\
\epsfig{figure=sem3.ps,width=.45\textwidth} &
\epsfig{figure=sem4.ps,width=.45\textwidth} \\
\verb|\SlideColours{White}{Blue} | &
Red on gradient White/JungleGreen\\ 
\end{tabular} 
\caption{Colour in slide background and foreground: (simulated with grey levels)}
\label{seminarcolour} 
\end{figure*} 

\section{Control over slide size, fonts and magnification}
There are a great number of parameters by which the user can change
any of the following either on a slide-by-slide basis, or for the whole
document:
\begin{itemize}
\item Slide height and width;
\item Top, bottom, left and right margins; 
\item Text justification (it is ragged right by default);
\item Page breaking by varying tolerance of over-running material;
\item Inter-line spacing;
\item Point size, and choice of fonts.
\end{itemize}
How to change the default settings is explained in detail in the {\em
User's Guide}. 

Because \SEM\ works by magnifying pages, sophisticated users should
read the manual to see how to deal with setting and changing \TeX\
dimensions. Most users need not worry about this---in commands like
\verb|\epsfig| you should always express your `width' and `height'
requests in fractions of the line size anyway.

\section{Advanced use: customing the \SEM\ control file}

The \SEM\ package always starts by trying to find a file called
\Lit{seminar.con} on the \Lit{TEXINPUTS} path; this gives the user or
site an opportunity to conveniently customize the defaults.  The
\Lit{seminar.con} file can contain any \LaTeX\ commands, including
inputting style files.  Our figures were typeset using a
\Lit{seminar.con} set up for CERN; the contents of this are given
below, with explanation of what is being done. It also shows how
higher-level functions can be added which the average user would not
want to program for themselves.

First, we set up landscape macros  for the \verb|dvips| driver.
\begin{verbatim}
\newcommand{\printlandscape}{%
      \special{papersize=297mm,210mm}}
\end{verbatim}
We will assume PostScript printers, and  gain nice PostScript 
effects like rounded box corners; these will need some extra style files:
\begin{verbatim}
\input semcolor.sty
\input fancybox.sty
\end{verbatim}
For slide `sections', list of contents, we use another style file:
\begin{verbatim}
\input slidesec.sty
\end{verbatim}
This allows us to use various commands, some of which are
used below. We can also produce list of slides, in two layouts:

\vspace{3pt}

\noindent \begin{tabular}{@{}p{4cm}p{4cm}}
\hline
\Cmd{listofslides}  & \Cmd{Slidecontents} \\
\epsfig{figure=cont1.ps,width=4cm}&
\epsfig{figure=cont2.ps,width=4cm} \\
\hline
\end{tabular}

\vspace{3pt}

\noindent
For slide headings, there is a predefined \verb|\slideheading|
command; we will amend this so that it is typeset with a `shadow'. The
\verb|slidechapter| command is also defined (the code is not given
here) which allows the user to break the slides into groups; the slide
chapter title will be given in the bottom right corner with this CERN style.
\begin{verbatim}
\def\@empty{}
\renewcommand{\makeslideheading}[1]{%
  \gdef\theslideheading{#1}%
  \def\@tempa{#1}%
  \ifx\@tempa\@empty\else
    \begin{Sbox}
      \begin{Bcenter}
        \large\bfseries#1
      \end{Bcenter}
    \end{Sbox}
    \centerline{\shadowbox{\TheSbox}}
  \vspace{1ex minus 1ex}
  \fi
}
\end{verbatim}
Now the CERN page and frame styles;
the plain `cern' style just places registration `+' marks,
and the date:
\begin{verbatim}
\newpagestyle{cern}%
 {{\color{Black}\small
   {\bfseries +} \hfil \today
   \hfil  {\bfseries+}}}%
 {{\color{Black}\small
   {\bfseries +} \hfil \thepage
   \hfil {\bfseries+}}}%
\end{verbatim}
Whereas the `cernsections' style has section headings and a logo:
\begin{verbatim}
\newpagestyle{cernsections}%
 {{\color{Black}\small
   \raisebox{-.5cm}[0cm][0cm]{%
    \epsfig{figure=cernlogo.ps,height=.8cm}}
    \hfil {\bfseries\theslideheading} \hfil 
           {\bfseries\thepage} }}%
 {{\small\color{Black}\today 
    \hfil \thechapterheading /\inchap }}%
\end{verbatim}

For the slide frames, we define a frame with the word ``CERN''
set in a coloured box on the lower left; this is done using the
PSTricks macros (which are automatically included by the `semcolor'
option above). The colour commands are those predefined in
\texttt{dvips}'s \texttt{color.pro} header file:
\begin{verbatim}
\newslideframe{cern}{{\SlideFront
 \boxput(-0.7,-1.11){\psframebox%
 [linecolor=black,fillcolor=ForestGreen,
 fillstyle=solid]{\hbox{{\normalsize
 \sffamily\color{Black}CERN}}}}{#1}%
 \color{Black}}}
\end{verbatim}

Finally we make sure that each slide starts with the current
foreground colour.
\begin{verbatim}
\def\everyslide{\SlideFront}
\def\theslideheading{}
\end{verbatim}

The user uses the command \verb|\SlideColours|, with two parameters,
which are colour names for foreground and background.  A synonym is
defined for black on white. We have to be a bit careful defining
the frame border, because by default it is coloured using the \PS\
`setgray' operator, and that might not work with the colour
separation, so  we define an explicit blue frame (for variety).
\begin{verbatim}
\newslideframe{blueframe}[%
 \psset{linecolor=NavyBlue,%
  linewidth=\slideframewidth,%
  framesep=\slideframesep,%
  cornersize=absolute,%
  linearc=.5cm%
 }]{\psframebox{#1}}
\def\SlideColours#1#2{%
 \gdef\SlideFront{\color{#1}}%
 \slideframe{\Framedefault}%
 \slideframe*[\psset{fillcolor=#2,%
 fillstyle=solid}]{blueframe}%
}
\def\SlideColours#1#2{%
  \gdef\SlideFront{\color{#1}}%
   \slideframe{\Framedefault}%
   \slideframe*%
    [\psset{linecolor=Black,%
fillcolor=#2,fillstyle=solid}]%
    {scplain}%
   }
\def\blackandwhite{\SlideColours{Black}{White}}
\end{verbatim}
The slide defaults will be for a detailed layout and CERN logo,
with yellow  writing on a blue background:
\begin{verbatim}
 \pagestyle{cernsections}
 \slideframe{cern}
 \def\Framedefault{cern}
 \SlideColours{Yellow}{RoyalBlue}
\end{verbatim}

\end{Article}
\endinput

%----------------------------------------------------------------------
\end{Article}
\endinput



