LaTeXMathematica Etc.

Over the years, I've written a fair amount of LaTeX code. That which is worth sharing can be found here.

Progress bar (beamer theme)

Sylvain Bouveret wrote a theme for beamer which displays a progress bar at the bottom of the presentation. I modified his code to make the progress bar usable for navigation. In my version, clicking on any part of the progress bar will jump to that point of the presentation.

I also wrote a macro that can be used to create an “index sheet” for a presentation, as follows:

  1. When you have the presentation finished, use the “trans” option (instead of “beamer”) to create a PDF of the presentation containing the complete slides without builds.
  2. Save that PDF to something like “presentation-frames.pdf” and make a mental note of how many pages it is.
  3. Add the following to the very end of the presentation:
    \appendix
    \thumbnails{presentation-frames.pdf}{N}
    
    where “N” is the number of pages in the file.

If you are using my beamer theme, that will automatically generate a series of pages, each page containing a 3×3 table of thumbnails. Clicking on any of the thumbnails will jump you to that page in the presentation. And the theme is smart enough to know that, if you are using the “beamer” option to make a presentation, when you click on a thumbnail it should jump to the end of that frame.

Here’s an example of what the theme looks like:

angels-1 angels-2-sm angels-3-sm

Options when using the theme

The default value of each option is highlighted.


Option Values Meaning
links true/false Whether to add hyperlinks. You might want to turn hyperlinks off when writing the presentation as this can, for lengthy presentations, increase the time required to LaTeX the file.
pips true/false Whether to draw dots, centered vertically in the progress bar, to aid navigation.
linktoendofframe true/false Whether clicking on the progress bar jumps to the start or end of a frame.
draft true/false Whether to draw just the border of the progress bar (which is much faster).
slides true/false Whether to advance the progress bar for each slide (i.e., every build in the presentation). This is the default.
frames true/false Whether to advance the progress bar only at the end of each frame. This means that builds within a frame are not shown on the progress bar.
sections true/false Whether to draw little vertical lines in the progress bar to indicate section breaks.
subsections true/false Whether to draw little vertical lines halfway up the progress bar to indicate where the subsection breaks are.

Miscellaneous things

latexian

A while ago, I used to use LaTeXian as my primary editor. It is a nifty little program that features live preview of the file as-you-type. The way it works is that whenever you pause typing for a moment, it saves a temporary copy of your file and then runs pdflatex on it in the background (with the necessary BibTeX runs, etc.).

This means, though, that if your LaTeX source has some code in it which can take a long time to process, the live preview can be slow to regenerate. Sometimes you can speed up the live preview feature by only including certain code during the final LaTeX pass.

This package defines a macro, \OnLaTeXianPass{N}{...}, which, on pass N, includes whatever the second argument is. (On all passes other than N it just ignores the second argument.)

examdesign

A LaTeX class for designing exams. Multiple versions of the same test can be generated with the questions arranged in a random order. It also enables you to include both questions and answers in the source file (with the answers suppressed when generating an exam, obviously) so that an answer key can be generated.

This class was last updated 26 March 2001. I haven't had time to maintain it since.

schedule A LaTeX package for creating weekly schedules. It uses LaTeX’s picture environment to draw the schedule on the page. The main reason I wrote this package was because I wanted representations of appointments to be accurate to the minute: a 43-minute appointment will be drawn in a box taking up exactly 43/60ths of an hour.

This package was last update 28 October 1997.

squiggle