\documentclass[11pt,a4paper]{article}

\setlength{\parskip}{0.6ex}
\setlength{\parindent}{0mm}
\usepackage[latin1]{inputenc}
\usepackage{textcomp}
\usepackage[a4paper,hmargin=2.4cm,bottom=3.2cm]{geometry}
\newcommand{\hoch}[1]{\raisebox{0.6ex}{#1}}
\newcommand{\tief}[1]{\raisebox{-0.6ex}{#1}}
\usepackage{url}
\usepackage{framed}
\usepackage{xcolor}

\title{\textsf{elpres} --- electronic presentations \\ with (pdf)\LaTeX}
\author{Volker Kiefel\thanks{volker dot kiefel at freenet dot de, 
       http://vkiefel.de/elpres.html}}
\date{v0.5\\[1.8ex]
      July 12, 2020}
\begin{document}
\maketitle
\thispagestyle{empty}
 
{
\setlength{\parskip}{0ex}
\tableofcontents
}

\section{Introduction}

The \textsf{elpres} class can be used for presentations on a screen, a
beamer or projector. It is derived from \LaTeX's \texttt{article} class and
may be used with \LaTeX{}, pdf\LaTeX{} (and Lua\LaTeX ).
The default ``virtual paper size''
of documents produced by this class: width=128mm, height=96mm corresponds to a
4:3 (width:height) aspect ratio. Other aspect ratios for widescreen monitors
may be selected
by class options. The \textsf{elpres} class requires that the \texttt{ifthen},
\texttt{fancyhdr},
\texttt{hyperref},
\texttt{graphicx},
\texttt{xcolor}
and \texttt{geometry} packages are available on the system.
Enhancements to \texttt{elpres} are easily made available by other packages,
these include overlay support for incremental slides (package
\texttt{overlays})  and slides
with a background from a bitmap (\texttt{wallpaper}, \texttt{eso-pic}
packages).


\section{Installation}

Copy \texttt{elpres.cls} into  a directory, where
your \LaTeX-system can find it and update the files database\footnote{e.\,g.
by using the \texttt{mktexlsr} or \texttt{texhash} command (TeXlive)}.

\section{Usage}

\label{secUsage}

The class is used with 
\begin{verbatim}
   \documentclass[options]{elpres}
\end{verbatim}

\textbf{\texttt{Elpres}-specific options}: for font selection
 \texttt{tmrfont} (Times Roman), \texttt{helvetfont}
(Helvetica), \texttt{cmfont} (Computer Modern), \texttt{sansfont} (Sans
Serif: default) and \texttt{nofonts} (no font selection, 
intended for use of \texttt{elpres} with Lua\LaTeX\
with is own font selection mechanisms) are used.
Options for different screen aspect ratios: \texttt{4x3}
(default), \texttt{16x9}, \texttt{16x10}. The option \texttt{navisymb}
adds symbols for navigation to the presentation. 
Options of the \texttt{article} class are also available for
\texttt{elpres} presentations,
e.\,g.  \texttt{10pt}, \texttt{11pt}, \texttt{12pt} for
selection of font size. 

{ \sloppy
\textbf{\texttt{Elpres}-specific commands}:
\verb+\distance+ vertically adjusts  text on a slide.
The \verb+\auvimm+\footnote{for \textbf{au}dio \textbf{vi}deo \textbf{m}edia}
command inserts a link to an external audio or video file.
Two commands: \verb+\fromlinktext+ and \verb+\totargettext+
can be used for internal links within a presentation.


\textbf{\texttt{Elpres}-specific environments}:
the environments \texttt{psli} and \texttt{rsli} define ``slides'' in
\texttt{elpres}; \texttt{citemize}, \texttt{cenumerate} and
\texttt{cdescription} provide vertically compressed lists.

A simple example document:

\begin{verbatim}
   \documentclass[12pt,pdftex,helvetfont,4x3]{elpres}
   \usepackage[latin1]{inputenc}
   \usepackage{color}
   \usepackage[document]{ragged2e}
   \RaggedRight
   
   \begin{document}
   \begin{titlepage}
     \centering
     \distance{1}
     {
       \Huge \bfseries \textcolor{blue}{Title of the presentation} \par
     }
     \vspace{1.3ex} \large
     Author\\[2ex]Institution
     \distance{2}
   \end{titlepage}
   
   \begin{psli}[Title of Page]
   The first page
   
   \begin{itemize}
      \item first line in an itemized list
      \item second line in an itemized list
   \end{itemize}
   \end{psli}
   
   \begin{rsli}
   The second page
   \end{rsli}
   \end{document}
\end{verbatim}


%% Here a minimalistic example

\subsection{Essential elements of an \texttt{elpres} presentation}

The \textbf{title page} can be created within the \texttt{titlepage} environment, the 
\verb+\maketitle+ command is not available.
\textbf{Slides} may be created with the
\texttt{psli}-environment\footnote{\texttt{psli}: \textbf{pl}ain
  \textbf{sl}ide}, you may add
the title of the slide with the optional parameter. 
The contents of the slide are centered vertically.

Another environment generating a \textbf{slide} is
\texttt{rsli}\footnote{\texttt{rsli}: \textbf{ra}w \textbf{sl}ide}:
slides are written 
without title,
contents are not vertically centered. 

The \verb+\distance{number}+ command allows to introduce vertical space into
slides constructed with the \texttt{rsli} and \texttt{titlepage} environments.
You should use pairs of \verb+\distance{}+ commands with numbers indicating
the relative height of empty space, see the titlepage in the example above.

The use of footnotes on slides is often problematic, if they cannot be
avoided, the \texttt{footmisc} package is recommended: the \texttt{perpage}
option resets numbering for each new slide. For a presentation, the
\texttt{symbol} option allows to use symbols instead of numbers. 
After inserting a new footnote, numbers or symbols are correctly
inserted only after a second run of \LaTeX.

\subsection{Alternatives to \TeX's justified paragraphs}

By default, \LaTeX\ produces justified paragraphs with lines of equal length,
this may often not be appropriate for the usually very short lines of text
in presentations. The \LaTeX\ \verb+\raggedright+ command has its own
deficiencies: by inhibiting hypenation in texts with rather short lines,
the right margin will often look too
ragged. A solution is to use the \verb+\RaggedRight+ command of the
\texttt{ragged2e} package. 


\subsection{Vertically compressed lists}

As the spaces between lines may be too great with the \texttt{itemize}
environment,
the \texttt{elpres} package provides a ``vertically compressed''
\texttt{citemize}-environment:

\begin{verbatim}
   \begin{citemize}
     \item  one
     \item  two
   \end{citemize}
\end{verbatim}

Similarly, a \texttt{cenumerate} and a \texttt{cdescription} environment may
be used.

% neu Dezember 2017
Another solution for the customization of \texttt{itemize}
environments is given by the \texttt{enumitem} package. Therefore

\begin{verbatim}
   \usepackage{enumitem}
\end{verbatim}

should be added to the preamble, and  a comma-sperated list of parameters
parameters can be added in the format:

\begin{verbatim}
   \begin{itemize}[parameter-list] 
      ... 
   \end{itemize} 
\end{verbatim}

The ``vertically compressed'' list can then be obtained with

\begin{verbatim}
   \begin{itemize}[nosep]
     \item  one
     \item  two
   \end{itemize}
\end{verbatim}

Similarly, the \texttt{enumitem} package is also able to modify the
\texttt{enumerate} and description \texttt{environments}.




\section{Enhancements to elpres}

\label{secEnhancements}

\subsection{Include graphics files}

Graphics files/pictures can be included with the
\texttt{includegraphics}-command of the \texttt{graphicx}-package. Please be
aware that the dimensions of the pages are 128mm \texttimes{} 96mm and
therefore included graphics are scaled appropriately. A safe way to generate a
page with a picture could be (with \texttt{pict.png} as the name of the
graphics file): 

\label{secUsageGraph}


\begin{verbatim}
   \usepackage[pdftex]{graphicx} % (in preamble) 
   ...
   \begin{rsli}
     \centering
     \distance{1}
     \includegraphics[width=0.9\textwidth,%
                      height=0.9\textheight,%
                      keepaspectratio=true]{pict.png}
     \distance{1}
   \end{rsli}
\end{verbatim}


The \verb+\includegraphics[]{}+ comannd requires to select the correct device
driver related option (e.\,g. \texttt{pdftex} or \texttt{dvips})
(documentclass).


\label{secInclGraphicsFiles}


\subsection{Arrange text and pictures in two (or more) columns}

\label{secTwoColumns}

Text and graphics may be arranged in two or more columns with
\texttt{minipage} environments:

\begin{verbatim}
   \begin{minipage}[b][0.8\textheight][t]{0.5\textwidth}
     \colorbox{white}{%
       \includegraphics[width=0.9\textwidth]{graphics-file.png}}
   \end{minipage}
   \begin{minipage}[b][0.8\textheight][t]{0.48\textwidth}
   \footnotesize
   \begin{citemize}
      \item ...
      \item ...
      ...
   \end{citemize}
   \end{minipage}
\end{verbatim}

Details on the minipage environment may be found in the \LaTeX{}
documentation.


\subsection{Incremental slides (overlays)}

\label{secOverlay}

If the contents of slides are to be made visible step
by step this can be achieved by a series of output PDF or (PS) files (carrying
the same page number) usually called \emph{overlays}. It may also be of
interest to change a highlighting color in a series of overlays. This is most
easily done by using the \texttt{overlays} package written by Andreas Nolda 
together with \texttt{elpres}. 

To generate a series of four overlays sequentially showing four lines of a
list:

\begin{enumerate}
  \item load the \texttt{overlays} package in the preamble
  \item put a \texttt{psli} or \texttt{rsli} slide environment into an
  \texttt{overlays} (or \texttt{fragileoverlays}) environment 
  \item enter the number of overlays as the first parameter to the 
  \texttt{overlays} environment  
  \item enter text contents with the \texttt{visible} command with the range
    of overlays showing this text content
\end{enumerate}

A simple example:

\begin{verbatim}
   % to be added in preamble
   \usepackage{overlays}
   ...
   \begin{overlays}{4}
   \begin{psli}[Title of slide]
   \begin{itemize}
     \visible{1-4}{\item first item of list} 
     \visible{2-4}{\item second list item}
     \visible{3-4}{\item 3rd list item}
     \visible{4}{\item final list item}
   \end{itemize}
   \end{psli}
   \end{overlays}
   ... 
\end{verbatim}

The following example uses the \texttt{alert} command to highlight lines
sequentially:

\begin{verbatim}
   \begin{overlays}{4}
   \begin{psli}[Title of slide]
   \begin{itemize}
     \alert{1}{\item first item of list} 
     \alert{2}{\item second list item}
     \alert{3}{\item 3rd list item}
     \alert{4}{\item final list item}
   \end{itemize}
   \end{psli}
   \end{overlays}
\end{verbatim}

The ``hidden'' text contents are written by \texttt{overlays} in the same
color as the background, default is white. If you use a different background
color, you have to change the color of the hidden text as well by assigning the
background color to the color name \texttt{background} (understood by the
\texttt{overlays} package).  In the following example you define a light
yellow as background:

\begin{verbatim}
   % (in the preamble)
   \definecolor{myyellow}{rgb}{0.96,0.98,0.72} % define color
   \definecolor{background}{named}{myyellow}   % color assigned to 
                                               % hidden text
   \pagecolor{myyellow}                        % color of slide background
\end{verbatim}


For more details on \texttt{overlays}, see the documentation of the package.


\subsection{Navigation symbols}
\label{sec:NavigationSymbols}

With the \texttt{navisymb} option  a panel with navigation symbols
(colored in light gray) appears
in the right lower corner of the presentation:\\


{ \setlength{\parindent}{2em}
  \indent
  \textbf{\texttt{$\ll$ $<$ $>$ $\gg$ $\leftarrow$ $\rightarrow$ [n]}}
}\\

These commands ($\ll$: jump to the first page,
$<$: go to the previous page, $>$: go to the next page,
$\gg$: jump to the last page, $\leftarrow$:
go back in history, $\rightarrow$: go forward in history,
\texttt{[n]}: prompt for a
page number)
work with Adobe Acrobat Reader (Windows), and (with the exception of
\texttt{$\leftarrow$}, \texttt{$\rightarrow$} and \verb+[n]+)
with \texttt{evince} (Linux).
Some of these functions also work in presentation-mode
of the ``internal'' PDF-viewer in recent versions of the
\texttt{Firefox}-browser (Linux, Windows).


\subsection{Call multimedia content from a presentation}
\label{sec:MultimediaContent}


The command \verb+\auvimm{text}{media-file}+ inserts \texttt{text} with
a link, which calls the default application for audio or video media files
\texttt{media-file}.
This seems to work with Adobe Acrobat Reader (Windows) and with
\texttt{evince} (Linux).
An example for using this command:

\begin{verbatim}
   \auvimm{[sound-file]}{./audiofile.mp3}
\end{verbatim}

This produces the (text-based) ``button'' \texttt{[sound-file]}. If you
hit it with the mouse pointer it will call the default application for
audio files. This approach requires that you keep the presentation file
together with the multimedia files in the same folder, \textbf{also at
  the time of
  the presentation}. On an unknown computer system (where you have to show
your presentation) you should test this aspect of your presentation. Sometimes
a call to an external program might be blocked due security reasons in Acrobat
Reader.

\begin{leftbar}
This \texttt{elpres}-command should be considered experimental.
Its behavior depends on the pdf-reader and the configuration of the OS.
\end{leftbar}
\subsection{Prepare a ``handout'' from a presentation}

\label{secHandout}



In advance of a lecture it is often expected that you
prepare a ``handout'' from your presentation with more than one
pages on a printed page. Therefore
you have several options, two of them are described
here.

\subsubsection{\LaTeX\ article document with a series of single-page pdf-files included}

One solution to this problem is (1) to generate a series of single-page
pdf-files and (2) to create a pdf\LaTeX\ document with the single
pages included.

\textbf{(1)} can be done with \texttt{gs} (the Ghostscript program):

\begin{verbatim}
   gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite  -sOutputFile=page_%03d.pdf in.pdf
\end{verbatim}

with \texttt{in.pdf} as the initial presentation.  The syntax of \texttt{gs}
is described in detail on the ghostscript
website\footnote{\url{https://www.ghostscript.com/doc/current/Use.htm}}.
An alternative to \texttt{gs} is \texttt{pdftk} tool:

\begin{verbatim}
    pdftk in.pdf  burst output  page_%02d.pdf
\end{verbatim}

The syntax of \texttt{pdftk} is explained in the documentation
(\texttt{pdftk~--help}).

\textbf{(2)} an example for a \LaTeX\ document which can serve as handout:

\begin{verbatim}
   \documentclass[12pt]{article}
   \usepackage[pdftex]{graphicx}
   \usepackage[latin1]{inputenc}
   \usepackage[a4paper,hmargin=2.4cm,top=24mm,bottom=28mm]{geometry}
   \newcommand{\PictScaleFact}{0.45}

   \begin{document}
   \centering
   \fbox{\includegraphics[width=\PictScaleFact\textwidth]{page_001.pdf}}
   \hspace{5mm}
   \fbox{\includegraphics[width=\PictScaleFact\textwidth]{page_002.pdf}}
   \\[2ex]
   \fbox{\includegraphics[width=\PictScaleFact\textwidth]{page_003.pdf}}
   \hspace{5mm}
   % ...
   \fbox{\includegraphics[width=\PictScaleFact\textwidth]{page_008.pdf}}
   % ...
   \end{document}
\end{verbatim}

\subsubsection{Convert presentation pdf-file directly into handout file with \texttt{pdfjam}}

With the following command:

\begin{verbatim}
   pdfjam --nup 2x4 --frame true --scale 0.9 -o new.pdf in.pdf '1-4,6-22'   
\end{verbatim}

\begin{sloppypar}
\texttt{pdfjam}\footnote{which regerettably is only available on
Linux or other Unix-like systems}
creates a ``handout'' PDF document (\texttt{new.pdf}) fom
\texttt{in.pdf} with the slides nr. 1-4,6-22
arranged in  two columns and four rows.
With the additional option ``\texttt{--frame~true}'',
\texttt{pdfjam} draws a box
around each slide. More details can be found in the \texttt{pdfjam}
man page and the project
website\footnote{https://github.com/DavidFirth/pdfjam/blob/master/README.md}. 
\end{sloppypar}



\subsection{Create presentations with hypertext elements}

\label{secHypertext}

You may use two commands \verb+\fromlinktext{}{}+ and \verb+\totargettext{}{}+
for ``hypertext features''.  As an example: as you normally will not insert
\verb+\section{}+-like commands and therefore do not generate a ``table of
contents''-like page or a menu in \texttt{elpres}-presentations, you are able
define links with:

\begin{verbatim}
   \totargettext{text}{link-label}
\end{verbatim}
% \hypertarget{target-name}{text}


which can be addressed by

\begin{verbatim}
   \fromlinktext{text}{link-label}
\end{verbatim}

% \hyperlink{target-name}{text}

If you use these commands to generate a \textbf{menu page} (as a hyperlinked
table of contents) with items pointing to
specific slides: 
\texttt{link-label} acts as label, \texttt{text} in the
\verb+\fromlinktext+ command is converted to a link (e.\,g. on a menu-page).
If you click on this text ``button'', you jump to
the \texttt{text} labelled with
\verb+\totargettext+; \texttt{link-label} has to be identical in a
\verb+\fromlinktext+ and \verb+\totargettext+ pair,
\texttt{text} in the link
and the target, of course need not to be identical.

The default for the link border color is red, it may be changed with
\verb+\hypersetup{}+, a command from the \texttt{hyperref}
package\footnote{both, \texttt{\textbackslash totargettext} and
\texttt{\textbackslash fromlinktext} are
are redefinitions of commands from the \texttt{hyperref} package}.
The option for the color of the frame around the link is
\texttt{linkbordercolor},
colors must be defined whith three figures \texttt{[0..1]} according to the RGB
color model:

\begin{verbatim}
   \hypersetup{linkbordercolor={0.6 0.6 0.6}}
\end{verbatim}

This defines a light gray color for the link border, more details on
\verb+\hypersetup{}+ are
described in the documentation of the \texttt{hyperref} package.

\subsection{Fill background of a presentation with bitmaps}

\label{secBackgroundWallpaper}

\subsubsection{\texttt{Wallpaper} package}

To create a slide background with a graphical wallpaper 
background using bitmap files you may use the \texttt{wallpaper}
package\footnote{written by Michael H.F. Wilkinson and available on CTAN}. 
Load the \texttt{wallpaper} package with

\begin{verbatim}
   \usepackage{wallpaper}
\end{verbatim}

\begin{sloppypar}
in the preamble. In order to generate a background based on bitmap
file \texttt{background.png}, enter 
\end{sloppypar}

\begin{verbatim}
   \CenterWallPaper{1}{background.png}
\end{verbatim}

before the contents of the presentation\footnote{i.\,e. following
\texttt{\textbackslash begin\{document\}}}. 
This works best with bitmaps with an appropriate aspect ratio, in the case of
an 4x3 screen format a bitmap picture of 640x480 pixel would fit perfectly. 
Moreover bitmap files may be
used as tiles as described in the \texttt{wallpaper} documentation like

\begin{verbatim}
   \TileSquareWallPaper{4}{background.png}
\end{verbatim}

More details on this topic may be found in the \texttt{wallpaper}
documentation.

\subsubsection{\texttt{Eso-pic} package}
\label{secBackgroundEsopic}

Another package which allows you to paint the background with a picture is
\texttt{eso-pic}\footnote{written by Rolf Niepraschk and available on CTAN}:

\begin{verbatim}
   \usepackage{eso-pic}
   
   ...

   \AddToShipoutPicture{
   \includegraphics[height=\paperheight]{background.png}
   }
\end{verbatim}

\verb+\AddToShipoutPicture{}+ puts the picture on every page, 
\verb+\AddToShipoutPicture*{}+ puts it on to the current page,
\verb+\ClearShipoutPicture+ clears the background beginning with the current
page.
Details of \texttt{eso-pic}'s commands can be found in the documentation.


\section{License}

This class is distributed under the \textsl{\LaTeX{} Project Public License}
(LPPL) which may be downloaded from
\url{http://www.latex-project.org/lppl.txt}. No warranty is provided for this
work (as stated in the LPPL).

\section{Version history}

\textbf{v0.1} (19.6.2004):  initial version.
\textbf{v0.2} (1.9.2004): page numbers now changed to footnotesize, left and
right margins slightly changed, `cenumerate' and `cdescription' environments
added.
\textbf{v0.2a} (19.9.2004): Section ``License'' added to the documentation.
\textbf{v0.2b} (17.10.2004): Documentation completed: description of the
\verb+\distance{}+ command included.
\textbf{v0.2c} (28.11.2004): Documentation completed (section
\ref{secHypertext} 
added).
\textbf{v0.2d} (25.12.2004): Documentation completed (section
\ref{secBackgroundWallpaper} added).
\textbf{v0.2e} (15.04.2005): Documentation completed (sections
\ref{secBackgroundEsopic} and \ref{secHandout} added).
\textbf{v0.3} (12.08.2005): new  (class) options for font selection:
\texttt{tmrfont} (Times Roman), \texttt{helvetfont} (Helvetica),
\texttt{cmfont} (Computer Modern), \texttt{sansfont} (Sans Serif: default).
Documentation updated, sections \ref{secInclGraphicsFiles} and
\ref{secTwoColumns} added.
\textbf{v0.4} (20.01.2018): New class options for different screen aspect
ratios \texttt{4x3}, \texttt{16x9}, \texttt{16x10}; ``compressed'' list
environments modified; documentation completed:
packages for use with \texttt{elpres}: \texttt{enumitem} (alternative list
environments), \texttt{overlays} (overlay support: incremental slides);
section \ref{secHandout} was completely rewritten.
\textbf{v0.4a} (24.01.2018): Documentation completed.
\textbf{v0.5} (12.07.2020): New class options: \texttt{nofonts}
(no font selection) and \texttt{navisymb} (inserts a panel of
symbols for navigation), new commands: \verb+auvimm+ (generates
a link to external audio, video files), \verb+\fromlinktext+ and
\verb+\totargettext+ (create links within a presentation).
Documentation has been partly rewritten.

\end{document}


%  vim:spell:fileencoding=latin1:lines=55:
