The main alternative to producing presentations with LaTeX is, of course, to use Microsoft PowerPoint. Below is a summary of the considerations for and against using LaTeX; these represent only my personal views, and you may disagree with some of them or even see liability in some things I perceive as advantages, or vice versa.
As a "disclaimer", I'd like to clarify: the process described here is only one possible way to create presentations with LaTeX and PDF. In particular, some people may prefer packages other than FoilTeX (e.g., the seminar class), or post-processors other than PPower4 (e.g., TeXPower). If you work with those alternatives, and have a document helping others to follow the necessary steps, I'd be happy to place a link to it on this page.
The presentation is written as a LaTeX document of class foils. In the preamble, one can specify (or included definitions from elsewhere) the general settings for the presentation, such as the color scheme (e.g., math in black, text in navy, bullets in red etc.),
There is a whole bunch of pieces of documentation, each describing some components of the setup needed to produce good presentations. The list below will hopefully help you get started.
A typical presentation is structured as follows:
\documentclass[...]{foils} % \usepackage directives - see below \geometry{...} \hypersetup{...} \title{...} \author{...} \MyLogo{...} \begin{document} \maketitle \foilhead{title} \foilhead{title} ... \end{document}Below are explanations about the parts of the document.
\documentclass[opts]{foils}
Some of the options specific to the class foils:
Note that some of the \documentclass options are not supported in FoilTeX (since they make no sense) - the list is in section 3.1 of the FoilTeX manual.
This command starts a new slide, with the specified header. An optional
first argument can be given to specify the vertical spacing between
the header and the body of the slide; the default is
\parskip + \baselineskip + \foilheadskip
(the default for \foilheadskip is 18 pt).
Note: if the body is (in LaTeX's opinion :) too large for one slide, the content will "spill" to the next slide; the title will not appear there. This can cause some bad looking vertical spacing on both pages. To avoid: either divide it to two slides (with two \folihead commands), or insert a \pagebreak - this will generate a new slide but without a header.
There are four locations of these in FoilTeX - in each corner of the slide. The bottom left (left footer) is treated a bit different from the others, and governed by the macros \MyLogo and \Restriction; by default, the contents of these macros is placed on the footer line and left-justified (and the page number appears in the bottom right corner).
Note: the macros are normally defined in the preamble,
but can be defined (or redefined) at any point. The default
values are
\MyLogo{-- Typeset by FoilTeX --} \Restriction{}
The appearance of the logo (i.e. the content of \MyLogo) can
be toggled on/off by using the macros \LogoOn and
\LogoOff in any point in the document - once switched, the
on/off state remains valid until the next switch or until the document
end.
The other corners are controlled by the macros
\rightfooter{text} \leftheader{text} \rightheader{text}
Which are by default:
\rightheader{} \leftheader{} \rightfooter{\quad\textsf{\thepage}}
The color support is based on the use of the color
package. The recommended directive to include it is
\usepackage[pdftex,dvipsnames]{color}
In order to ise the background processing, one must use the package background, which makes the following background selection commands available:
There is a number of color macros which describe the basic color scheme of the presentation.
The main tools for incremental page build (i.e. the mode in which parts
of the page appear incrementally when the user clicks a mouse button
or presses a key) come from the package pause. The principles
of working with \pause are described in the
manual, and here I briefly describe a
few basic tricks, illustrated in this small example:
pauseex.tex
pauseex.pdf
More examples can be found in this example (from the PPower4 site):
leveldemo.tex
leveldemo.pdf
If there is at least one \pause command in a slide, it will be build incrementally, i.e. displayed as a sequence of pages where all the elements ("chunk") on the same pause level appear together. The pause level is determined, in its simplest form, by the surrounding \pause commands; the chunk before the first \pause (incl. the header, if it is before the first \pause), is assigned level 1; the chunk between the first and the second instances of \pause is assigned level 2, etc. For example, the following segment:
\foilhead{Simple use of pause} \begin{itemize} \item This is on pause level 1 \item And so is this \pause \item This is on pause level 2\pause \begin{itemize} \item Pause level 3...\pause \end{itemize} \item Pause level 4. \end{itemize} \pausewill generate the first slide (page) in this example. Note the \pause at the end; if you omit it, the last portion will be considered to be on the level 1 (since it's "outside" of the pause commands) and will therefore appear right from the beggining. Another thing to note here: the page number stays 1 throughout the incremental build (and if you PDF browser is mart enough, it will as well recognize that the consecutive "physical" pages are in fact part of one virtual page, and will show the page numbers in the form like "1 (2 of 4)".
If you want to build the page in non-consecutive order, i.e. you want
the text to appear not as it would be normally typeset, you can force
a pause level of the text by using the \pauselevel
command:
\pauselevel{=n} means that the current pause level should be
set to n. However, the subsequent levels will be increase
starting from n (usually not the desired effect). This can be fixed by the
modified form of \pauselevel:
\pauselevel{=+k} which will increase the level by
k (similarly one can use \pauselevel{=-k} to
decrease the level) - see the second slide in this example; the desired effect is
achieved by using
\item Level 1 as well \pauselevel{=1}\pause\pauselevel{=4}which makes the chunk with the text Level 1 as well appear at level 1, and the following chunk be assigned level 4 (and continue increasing after that).
Note that by default, the pause levels start from 1, and are incremented by +1 - i.e. not using \pauselevel is equivalent to using \pauselvel{=+1}.
From stylistic point of view, it is probably better to use this kind of dynamic page build sparingly, as the out-of-order text appearance may be quite distracting.
Removing text in a temporary build can be done by using
\pauselevel{=n :t} which will make the chunk appear at the
level n and disappear after level t. Again,
both arguments here may be used in incremental form,
e.g. \pauselevel{:+2} means the chunk will disappear
after 2 levels, not including the current one. See the third slide of
the same example
In order to highlight text as it appears, one has to define the color
substitution scheme via the \pausecolorscommand:
\pausecolors{colorname}{normal}{highlighted}
One can have a number of simultaneous schemes, and it is possible to
redefine a scheme at any point in the document (see the last two
slides in the example). Once at least
one scheme is active, all text will by default be highlighted as it
appears, To control the highlighting behavior, use the
highlight option of the \pauselevel command:
\pauselevel{highlight =3 :4} will cause the relevant chunk to
be highlighted for two levels, starting at the level 3.
In order for all text on a slide to be visible from the beginning, and rather be highlighted as you walk through it, switch to the highlighted build mode:
\foilhead{...} {\pausehighlight ... }In this mode, all the \pauselevel commands are interpreted as instructions on when the text is to be highlighted, rather than when it has to appear; if you want to also indicate appearance parameters, use build option, e.g. \pauselevel{=3 :5, build =3}.
Animations mean dynamic graphics. There are, to my knowledge, two ways of comfortably producing animations with LaTeX.
I am only beginning to learn this package, and can't say anything intelligent about it yet. It loos like this is a nice way to produce programmed mathematical graphics - diagrams, graphs etc., coded directly in LaTeX. Perhaps it is not so suitable for more general graphics.
Using XFig to draw the graphics, and exporting it in multi-MetaPost format is me preferred way to make animations. This may work with older versions of the software, but I have tested it with MetaPost (Web2C 7.3.1) 0.641 and XFig 3.2 (patchlevel 4).
In short, the animation consists of components of the figure drawn at different depths, which appear in the order of decreasing depth. Things at contiguos depth levels are grouped together, and appear at once; things separated by at least 1 depth levels (e.g. 50 and 48) will appear at different times.
Example: a simple diagram animation. Note how in order to hide an
element we place a white rectangle on top of it (i.e. with smaller
depth).
XFig figure anim1.fig,
the source anim1.tex,
the resulting anim1.pdf.
Simply redefine the appropriate \labelitem command. E.g.,
\renewcommand{\labelitemi}{\textcolor{red}{\origmath{\bullet}}} \renewcommand{\labelitemii}{\textcolor{yellow}{--}} \renewcommand{\labelitemiii}{\textcolor{green}{\origmath{\ast}}} \renewcommand{\labelitemiv}{\textcolor{black}{\origmath{\circ}}}will set the bullets used at different indentation levels to, respectively, a red math mode bullet (filled circle), a yellow medium dash, a green asterisk and a black circle.
Example: bullets.tex bullets.pdf
As of now, Adobe PDF standard does not include a method for embedding things like movies within the document. As a result, it is only possible to have a clickable link in the document which will launch the, e.g., movie in an external viewer. This is done in LaTeX through the interface provided in the hyperref package, namely using the \href command:
\href{address}{link}where address can be a URL, or a command of the form run:file. If your PDF reader is properly configured, the command
\href{run:movie.mpg}{Click here}will create a clickable link which will launch the viewer (which one depends on the configuration of the PDF reader) with movie "movie.mpg".