Note: this is rather obsolete, I now recommend using Beamer with PGF/TikZ for making slides.
  1. Introduction
  2. Available documentation
  3. Presentation structure
  4. Colors
  5. Incremental page build
  6. Animations
  7. Miscellaneous tips and tricks
  1. Introduction

    1. Pros and cons

      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.

      Pros (why prepare presentations using LaTeX):
      • The software for preparing the presentation is free.
      • The outcome is platform-independent: you can display PDF documents pretty much with any OS.
      • You get the typographic advantages of LaTeX, especially in typesetting of text and mathematics.
      Cons (why you might prefer MS PowerPoint):
      • If you have no or very little math, the advantages of LaTeX become less critical.
      • Some aspects of animations may be admittedly harder to create with LaTeX (see the section on animations).
      • It is (yet) impossible to embed movies or sound in the PDF presentation (although you can have a link in the document that will start them in an external viewer).
    2. Brief overview

      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.),

  2. Documentation

    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.

    Foiltex
    This LaTeX package defines a class for the slide structure. This document addresses the issues in using FoilTeX with the PPower4 postprocessor.
    PPower4
    Post-processor for the PDF documents which enables dynamic effects (incremental page builds, animations etc).
    Note: the link points to the PPower4 project homepage
    This document explains a bit the guiding principles behind the design of PPower4;
    User Manual has a bit more detailed usage information.
    TexPower
    Another package which provides some useful tools for manipulating presentaion layout. The link above leads to the project homepage, the manual is also available.
    Hyperref
    LaTeX package for making clickable documents with LaTeX is possible thanks to the Hyperref package (here is a local, more concise and possibly out-of-date PDF version of the manual).
    A few ecamples of combining FoilTeX and Hyperref can be found here.
  3. Presentation structure

    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.

    1. \documentclass[opts]{foils}

      Some of the options specific to the class foils:

      headrule
      Places a sule below the header (slide title), except on the title (first) slide.
      footrule
      Similar for the bottom rule (above the footer).
      landscape
      This should be obvious :)
      25pt etc.
      The basic font size (this is the size of the normal text in the slide, and text the highest level bullets). All the other siazes (e.g. the size of the font generated by \large) are determined based on this. The default is 20pt.

      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.

    2. The title slide
    3. foilhead{header text}

      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.

    4. Headers and footers

      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}}

  4. Colors and backgrounds

    The color support is based on the use of the color package. The recommended directive to include it is

    \usepackage[pdftex,dvipsnames]{color}

    which ensures that the colors be properly processed by PDFLaTeX and makes color names available. New color names may be added with \definecolor.

    1. Page background

      In order to ise the background processing, one must use the package background, which makes the following background selection commands available:

      \pagecolor{color}
      Simple monochrome background.
      \hpagecolor[color1]{color2}
      Background color changes gradually from color1 on the left to color2 on the right. If only color2 is given, the background will be in that color, fading from left to right.
      \vpagecolor
      Similar, but for vertically changing color.

      Example:
      bg.tex   bg.pdf
    2. Color

      There is a number of color macros which describe the basic color scheme of the presentation.

  5. Incremental page build

    1. General principles

      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}
      \pause
      
      will 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)".

    2. Arbitrary order of appearance

      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.

    3. Temporary appearance

      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

    4. Highlighting

      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}.

  6. Animations

    Animations mean dynamic graphics. There are, to my knowledge, two ways of comfortably producing animations with LaTeX.

    1. XY-Pic

      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.

    2. XFig + MetaPost

      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.

  7. Miscellaneous tips and tricks

    Setting the color and the symbol for bullets in lists

    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

    Including movies, sound clips etc.

    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".

    Example: movie.tex   movie.pdf (you also need movie.mpg)