Type \documentclass{slides} today, in TeX Live 2024, and it compiles. The class is version 2.4b dated 18 May 2022 and it is still maintained as part of the LaTeX kernel — a slide class far older than beamer. What it descends from is SliTeX, which was not a class at all but a separate format. The LaTeX project's own historical user guide, still shipped with the distribution, records in a single line that slides is the former SliTeX. Since SliTeX was folded into LaTeX 2e — released on 1 June 1994 — slides have been a feature of LaTeX rather than a program of their own. This page covers everything that is not beamer: the class that predates it, the powerdot that set out to replace it, the half-dozen presentation classes still sitting in TeX Live with dates from the last century, what to do when the slides are written in Markdown, and, honestly, when a LaTeX slide system is the wrong choice.
\documentclass{slides}: what the survivor of SliTeX actually does
The first thing it does is make the text large. slides.def defines \normalsize as \@setfontsize\normalsize\itwentypt{28pt} — 20 pt body text on a 28 pt baseline. The second thing is the vocabulary: slides go in \begin{slide} … \end{slide}, alongside which stand an overlay environment and a note environment. Typeset a document holding one of each and you get three pages, with footers reading 1, 1-a and 1-1 — the slide numbered, the overlay lettered as a branch of it, the note numbered off the slide with a hyphen. That "1-a" alone tells you the design was for stacking physical transparencies. \onlyslides{...} and \onlynotes{...} take a list of numbers and emit only one kind (lines 92 and 97 of slides.def).
The most interesting part is how it handles colour. slides.cls declares \DeclareMathVersion{invisible} — a math version that is literally invisible. Combined with \colorslides{...} and \blackandwhite{...} (lines 103 and 116 of slides.def), it lets you print the same slide once per colour: set the text that should be red as visible and everything else invisible, then do it again with only the blue visible. Stack the resulting transparencies and you have a multi-colour slide in perfect register. In the 1980s, that is what making a colour slide meant. One other thing catches people starting a new document: the paper. Line 102 of slides.cls declares \ExecuteOptions{letterpaper,final}, yet running it through pdflatex produces an A4 PDF (595.276 × 841.89 pt). TeX Live's pdftexconfig.tex has already set \pdfpagewidth = 210 true mm and the standard classes never override it. If the paper size matters, load geometry or pass a4paper or letterpaper explicitly — and then check with pdfinfo.
\documentclass[a4paper]{slides}
\begin{document}
\begin{slide}
Body text is 20pt here, on a 28pt baseline.
\end{slide}
\begin{overlay}
Printed as slide 1-a, meant to sit on top of slide 1.
\end{overlay}
\begin{note}
Printed as 1-1, for the speaker.
\end{note}
\end{document}Is powerdot still usable? Not with pdflatex, it turns out
It is there. powerdot.cls in TeX Live 2024 is version 1.7, dated 2021/05/19, its LPPL maintenance status is "maintained", and the current maintainer is the author, Hendri Adriaens. This is not a dead package. But if you take it up today, the first hour goes into the build chain rather than your talk: put a \documentclass[style=klope]{powerdot} file through pdflatex and it stops with ! Package hyperref Error: Wrong DVI mode driver option 'dvips', followed by a long run of ! Undefined control sequence. The cause is not a guess — it is written into the class. Line 180 of powerdot.cls calls \RequirePackage[setpagesize=false,dvips,...]{hyperref} whenever XeTeX is not running, hard-wiring the dvips driver into hyperref. powerdot is a PSTricks design and loads \RequirePackage{pstricks} unconditionally as well.
Two routes do work. One is the PostScript chain the class assumes, latex → dvips → ps2pdf; the other is xelatex, for which the class has its own branch. Both went through here, and a slide containing \pause expanded into its overlays correctly (the PostScript bounding box came out at 792 × 594 pt, i.e. 11 × 8.25 in landscape, which is powerdot's default paper=screen at 4:3). But the page box of the resulting PDF does not line up on its own — on this machine it came out square, at 594 × 594 pt — so check with pdfinfo before you print or project, and pass the paper size to dvips and ps2pdf explicitly if you must. Seventeen powerdot-*.sty styles ship with it (aggie, ciment, fyma, husky, ikeda, jefka, klope, paintings, pazik, sailor, simple, tycja, upen and more). Historically powerdot succeeded prosper/HA-prosper, and beamer's own acknowledgements thank Hendri Adriaens for HA-prosper. As a period detail, the bundled README still points at a tex.ac.uk/cgi-bin/ URL for installation help.
# pdflatex stops here:
# ! Package hyperref Error: Wrong DVI mode driver option `dvips',
# the route the class was designed for
latex talk.tex && latex talk.tex
dvips -o talk.ps talk.dvi
ps2pdf talk.ps talk.pdf
# or the branch the class provides itself
xelatex talk.tex && xelatex talk.tex
# always confirm the page box before you print
pdfinfo talk.pdf | grep "Page size"The source reads quite differently from beamer. Slides go in \begin{slide}{Title} … \end{slide}, and stepping is the same \pause. Notes, however, are not \note{...} but a note environment, and it goes outside the slide — writing \note{...} inside one stops the run with ! LaTeX Error: \begin{minipage} on input line 5 ended by \end{slide}. Output is switched by two class options: mode takes present, print or handout, and display takes slides, notes or slidesnotes. Measured, mode=handout,display=slidesnotes collapsed the \pause and printed note 1 of slide 2 in the footer of the note page (though landscape is refused in handout mode, and the class says so in a warning). One trick belongs to powerdot alone: clock=true embeds Acrobat JavaScript in the PDF to put a running clock on the slide (clockformat=HH:MM:ss, clockrefresh=1000). Whether it ticks depends on the viewer's JavaScript support, so test it in the room before you rely on it.
\documentclass[style=klope,mode=handout,display=slidesnotes]{powerdot}
\title{A talk}\author{Me}
\begin{document}
\maketitle
\begin{slide}{First}
\begin{itemize}
\item One\pause
\item Two
\end{itemize}
\end{slide}
% the note environment goes OUTSIDE the slide
\begin{note}{Reminder}
Say hello here.
\end{note}
\end{document}The presentation classes still shipped in TeX Live, and what their dates say
Ask kpsewhich and they all turn up: seminar.cls, talk.cls, texpower.sty, pdfscreen.sty, pdfslide.sty, prosper.cls. CTAN does not delete old things, so TeX Live keeps distributing them, and lining up the dates gives you the history of presentation classes in one column. One of them is special: seminar, written in 1993 by Timothy Van Zandt as a LaTeX 2.09 document style and converted into a LaTeX 2e class by Sebastian Rahtz, is still being maintained as v1.63a (2021/07/01). And the history section of beamer's manual records that beamer began as a small private collection of macros to make the seminar class easier to use. The oldest entry in this list, in other words, is the parent of the newest.
| File | Version and date in TeX Live 2024 | What it is |
|---|---|---|
beamer.cls | v3.71 (2024/01/06) | the de facto standard; written by Till Tantau in 2003, maintained by Joseph Wright and others since 2010 |
slides.cls | v2.4b (2022/05/18) | part of the LaTeX kernel; the former SliTeX |
seminar.cls | v1.63a (2021/07/01) | created by Timothy Van Zandt in 1993; the class beamer grew out of |
powerdot.cls | v1.7 (2021/05/19) | a PSTricks design; successor to prosper/HA-prosper |
talk.cls | v1.1 (2006/07/11) | a class built around producing several versions of the same material |
texpower.sty | v0.2 (2005/04/08) | a package that adds dynamic effects; not a class |
prosper.cls | v1.5 (2001/07/17) | by Frédéric Goualard and Peter Møller Neergaard; taken over by powerdot |
pdfscreen.sty | v1.5 (2000/07/07) | for designing PDFs meant to be read on screen; by C. V. Radhakrishnan |
pdfslide.sty | v0.50 (1999/10/10) | the oldest date in this list; an early attempt at PDF slides |
For Japanese there is one more option close at hand. If you are already writing in jsarticle, \documentclass[slide,papersize,landscape]{jsarticle} is all it takes to get a large-type slide layout. Line 80 of jsarticle.cls declares \DeclareOption{slide}{\@slidetrue\def\jsc@magscale{3.583}}, and that magnification of 3.583 is identical to the one the same class uses for its 36pt option — so slide is effectively 36 pt. If you want larger, the class goes up to 43pt (magnification 4.300). Run through upLaTeX and dvipdfmx here, it produced an A4 landscape PDF (841.89 × 595.28 pt). There are no themes and no overlays, but you inherit the formatting of the Japanese documents you already write, which is quite enough to build the slides for tomorrow's internal seminar in ten minutes.
Slides written in Markdown: Marp, reveal.js, pandoc and the markdown package
The road forks: either process the Markdown outside and hand LaTeX the result, or let LaTeX read the Markdown itself. Marp and the reveal.js family represent the first branch; they are Node and browser programs installed with npm, not part of TeX Live — neither marp nor pandoc is present on this machine. The usual bridge is pandoc, whose own manual lists beamer among its output formats and names beamer, revealjs, s5, slidy, dzslides and pptx as its slide formats; the same manual states that producing a PDF requires a LaTeX engine to be installed. So even by way of pandoc, you still end up needing TeX Live.
The other road stays inside TeX Live. The markdown package (v3.4.2, 2024-03-09) carries a Markdown parser inside TeX and typesets the contents of a markdown environment directly. Loading \usepackage[hybrid]{markdown} and putting a bullet list, an *emphasis* and an inline code span inside a beamer frame marked [fragile], everything came out correctly typeset. There is one condition: with pdfLaTeX, -shell-escape is mandatory. Omit it and the run stops at ! Package markdown Error: Shell escape is restricted, followed by Fatal error occurred, no output PDF file produced!. In practice this fits the situation where the team writes in Markdown but the equations and figures need LaTeX quality. If instead you want the look of the slides themselves to be decided in Markdown, that is Marp's job, not LaTeX's.
\documentclass[aspectratio=169]{beamer}
\usepackage[hybrid]{markdown}
\begin{document}
\begin{frame}[fragile]{From Markdown}
\begin{markdown}
- first bullet
- second bullet with *emphasis*
Ordinary paragraph with `inline code`.
\end{markdown}
\end{frame}
\end{document}
% compile with: pdflatex -shell-escape file.tex
% without it: ! Package markdown Error: Shell escape is restrictedWhen a LaTeX slide system is the wrong choice
Honestly, there are three situations where LaTeX is the wrong tool. The first is a talk whose look you will iterate on dozens of times. LaTeX slides are an edit-and-wait medium: a 40-frame, 121-page deck measured at 3.5 s a run here, and it needs two runs because of .nav and .toc. That round trip does not suit nudging a box a millimetre at a time. The second is collaborative editing. If your co-author does not write TeX, sending a .tex file amounts to saying "please install my toolchain, then reply". The third is an organiser who asks for .pptx; betting on a PDF-to-PowerPoint conversion is worse than choosing a different tool from the start. Where LaTeX wins outright: when the equations, code and figures come out of the same pipeline as the paper; when you want the talk and the handout generated mechanically from one source; and when you want a PDF that does not shift by a millimetre on any machine that opens it — beamer's own manual lists exactly that, not having to worry about what is installed on the conference computer, among its advantages.
- Starting a new talk →
beamer. It is the only entry here still under active development, and it already has themes, overlays, handout mode and notes. - Handed an old
.tex→ read the\documentclassfirst.slidesmeans it descends from SliTeX;prospermeans it is a candidate for migration to powerdot. - PSTricks drawings are the point →
powerdot, but build withlatex→dvips→ps2pdfor withxelatex;pdflatexwill not get through. - Japanese slides needed by tomorrow → jsarticle's
slideoption (effectively 36 pt, and up to43ptif you want more). - The source is Markdown → pandoc on the outside, or the
markdownpackage inside TeX Live (-shell-escapeis mandatory under pdfLaTeX). - The organiser demands
.pptx→ do not force LaTeX through. Choosing another tool from the start beats betting on a conversion.