Tapez \documentclass{slides} aujourd'hui, dans TeX Live 2024, et cela compile. La classe porte la version 2.4b du 18 mai 2022 et reste entretenue au sein du noyau LaTeX — une classe de diapositives bien plus ancienne que beamer. Elle descend de SliTeX, qui n'était pas une classe mais un format à part entière. Le guide historique de l'utilisateur, publié par le projet LaTeX et toujours livré avec la distribution, consigne en une ligne que slides est l'ancien SliTeX. Depuis l'absorption de SliTeX dans LaTeX 2e — publié le 1er juin 1994 —, les diapositives sont une fonction de LaTeX et non plus un programme distinct. Cette page couvre tout ce qui n'est pas beamer : la classe qui le précède, le powerdot qui entendait le remplacer, la demi-douzaine de classes de présentation encore présentes dans TeX Live avec des dates du siècle dernier, la conduite à tenir quand les diapositives sont écrites en Markdown, et, franchement, quand un système de diapositives LaTeX est le mauvais choix.
\documentclass{slides} : ce que fait vraiment le survivant de SliTeX
La première chose qu'elle fait, c'est grossir le texte. slides.def définit \normalsize comme \@setfontsize\normalsize\itwentypt{28pt} — un corps de 20 pt sur une interligne de 28 pt. La deuxième, c'est le vocabulaire : les diapositives vont dans \begin{slide} … \end{slide}, à côté desquelles se tiennent un environnement overlay et un environnement note. Composez un document contenant un exemplaire de chaque et vous obtenez trois pages, avec pour pieds de page 1, 1-a et 1-1 — la diapositive numérotée, l'overlay en branche alphabétique, la note accrochée au numéro de diapositive par un trait d'union. Ce seul « 1-a » dit que la conception visait l'empilement de transparents physiques. \onlyslides{...} et \onlynotes{...} prennent une liste de numéros et n'émettent qu'une des deux sortes (lignes 92 et 97 de slides.def).
Le plus intéressant est le traitement de la couleur. slides.cls déclare \DeclareMathVersion{invisible} — une version mathématique littéralement invisible. Associée à \colorslides{...} et \blackandwhite{...} (lignes 103 et 116 de slides.def), elle permet d'imprimer la même diapositive une fois par couleur : rendre visible le texte destiné au rouge et invisible tout le reste, puis recommencer avec le bleu seul. Empilez les transparents obtenus et vous avez une diapositive polychrome parfaitement en registre. Dans les années 1980, faire une diapositive en couleur, c'était exactement cela. Un autre écueil attend les documents neufs : le papier. La ligne 102 de slides.cls déclare \ExecuteOptions{letterpaper,final}, et pourtant le passage par pdflatex produit un PDF A4 (595,276 × 841,89 pt). Le fichier pdftexconfig.tex de TeX Live a déjà posé \pdfpagewidth = 210 true mm, que les classes standard ne surchargent jamais. Si le format compte, chargez geometry ou passez explicitement a4paper ou letterpaper, puis vérifiez avec 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}powerdot est-il encore utilisable ? Pas avec pdflatex, en tout cas
Il est bien là. powerdot.cls dans TeX Live 2024 porte la version 1.7, datée du 19/05/2021, son statut de maintenance LPPL est « maintained » et le mainteneur actuel est l'auteur, Hendri Adriaens. Ce n'est pas un paquet mort. Mais qui s'y met aujourd'hui passera la première heure sur la chaîne de compilation plutôt que sur son exposé : soumettez un fichier \documentclass[style=klope]{powerdot} à pdflatex et il s'arrête sur ! Package hyperref Error: Wrong DVI mode driver option 'dvips', suivi d'une longue série de ! Undefined control sequence. La cause n'est pas une supposition, elle est inscrite dans la classe : la ligne 180 de powerdot.cls appelle, hors XeTeX, \RequirePackage[setpagesize=false,dvips,...]{hyperref} et câble en dur le pilote dvips dans hyperref. powerdot relève de PSTricks et charge aussi \RequirePackage{pstricks} sans condition.
Deux voies fonctionnent. La première est la chaîne PostScript que la classe présuppose, latex → dvips → ps2pdf ; la seconde est xelatex, pour laquelle la classe prévoit sa propre branche. Les deux ont abouti ici, et une diapositive contenant \pause s'est correctement déployée en overlays (la BoundingBox PostScript est sortie à 792 × 594 pt, soit 11 × 8,25 pouces en paysage, ce qui correspond au paper=screen par défaut de powerdot en 4:3). Mais la boîte de page du PDF obtenu ne s'aligne pas d'elle-même — sur cette machine, elle est sortie carrée, 594 × 594 pt — vérifiez donc avec pdfinfo avant d'imprimer ou de projeter, et passez au besoin le format à dvips et ps2pdf. Dix-sept styles powerdot-*.sty sont livrés (aggie, ciment, fyma, husky, ikeda, jefka, klope, paintings, pazik, sailor, simple, tycja, upen, entre autres). Historiquement, powerdot a succédé à prosper/HA-prosper, et les remerciements de beamer citent Hendri Adriaens pour HA-prosper. Détail d'époque : le README joint renvoie encore, pour l'installation, à une adresse tex.ac.uk/cgi-bin/.
# 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"La source se lit assez différemment de beamer. Les diapositives vont dans \begin{slide}{Titre} … \end{slide}, et le dévoilement progressif reste le même \pause. Les notes, en revanche, ne sont pas \note{...} mais un environnement note, placé hors de la diapositive : un \note{...} à l'intérieur arrête la compilation sur ! LaTeX Error: \begin{minipage} on input line 5 ended by \end{slide}. La sortie se commute par deux options de classe : mode accepte present, print ou handout, et display accepte slides, notes ou slidesnotes. À la mesure, mode=handout,display=slidesnotes a aplati le \pause et imprimé note 1 of slide 2 en pied de la page de notes (le mode handout refuse landscape, et la classe le signale par un avertissement). Un tour de force n'appartient qu'à powerdot : clock=true incorpore du JavaScript Acrobat dans le PDF pour afficher une horloge qui tourne sur la diapositive (clockformat=HH:MM:ss, clockrefresh=1000). Qu'elle tourne dépend du JavaScript du lecteur : essayez-la sur place avant d'y compter.
\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}Les classes de présentation encore livrées avec TeX Live, et ce que disent leurs dates
Interrogez kpsewhich et elles apparaissent toutes : seminar.cls, talk.cls, texpower.sty, pdfscreen.sty, pdfslide.sty, prosper.cls. CTAN ne supprime pas l'ancien, TeX Live continue donc de le distribuer, et aligner les dates donne l'histoire des classes de présentation en une colonne. L'une d'elles est à part : seminar, écrite en 1993 par Timothy Van Zandt comme style de document pour LaTeX 2.09 puis convertie en classe LaTeX 2e par Sebastian Rahtz, est toujours entretenue sous la version 1.63a (2021/07/01). Et la section historique du manuel de beamer indique que beamer a commencé comme une petite collection privée de macros destinée à faciliter l'usage de la classe seminar. Autrement dit, la plus ancienne entrée de cette liste est la matrice de la plus récente.
| Fichier | Version et date dans TeX Live 2024 | De quoi il s'agit |
|---|---|---|
beamer.cls | v3.71 (2024/01/06) | le standard de fait ; écrit par Till Tantau en 2003, maintenu depuis 2010 par Joseph Wright et d'autres |
slides.cls | v2.4b (2022/05/18) | partie du noyau LaTeX ; l'ancien SliTeX |
seminar.cls | v1.63a (2021/07/01) | créée en 1993 par Timothy Van Zandt ; la classe dont beamer est issu |
powerdot.cls | v1.7 (2021/05/19) | construction PSTricks ; successeur de prosper/HA-prosper |
talk.cls | v1.1 (2006/07/11) | une classe conçue pour produire plusieurs versions du même matériau |
texpower.sty | v0.2 (2005/04/08) | un paquet ajoutant des effets dynamiques ; pas une classe |
prosper.cls | v1.5 (2001/07/17) | de Frédéric Goualard et Peter Møller Neergaard ; repris par powerdot |
pdfscreen.sty | v1.5 (2000/07/07) | pour concevoir des PDF destinés à l'écran ; de C. V. Radhakrishnan |
pdfslide.sty | v0.50 (1999/10/10) | la date la plus ancienne de la liste ; une tentative précoce de diapositives PDF |
Pour le japonais, une autre possibilité est à portée de main. Si vous rédigez déjà avec jsarticle, \documentclass[slide,papersize,landscape]{jsarticle} suffit à obtenir une mise en page de diapositives à grands caractères. La ligne 80 de jsarticle.cls déclare \DeclareOption{slide}{\@slidetrue\def\jsc@magscale{3.583}}, et ce facteur de 3,583 est exactement celui que la même classe emploie pour son option 36pt : slide vaut donc de fait 36 pt. Pour aller plus loin, la classe monte jusqu'à 43pt (facteur 4,300). Passé ici par upLaTeX et dvipdfmx, cela a produit un PDF A4 paysage (841,89 × 595,28 pt). Ni thèmes ni overlays, mais on hérite du formatage des documents japonais que l'on écrit déjà — bien assez pour monter en dix minutes les diapositives du séminaire interne de demain.
Des diapositives écrites en Markdown : Marp, reveal.js, pandoc et le paquet markdown
La route bifurque : soit traiter le Markdown à l'extérieur et confier le résultat à LaTeX, soit laisser LaTeX lire lui-même le Markdown. Marp et la famille reveal.js représentent la première branche ; ce sont des programmes Node et navigateur installés via npm, étrangers à TeX Live — ni marp ni pandoc ne sont présents sur cette machine. Le pont habituel est pandoc, dont le manuel officiel range beamer parmi ses formats de sortie et cite beamer, revealjs, s5, slidy, dzslides et pptx comme formats de diapositives ; ce même manuel précise que produire un PDF exige un moteur LaTeX installé. Même en passant par pandoc, on a donc toujours besoin de TeX Live.
L'autre route reste à l'intérieur de TeX Live. Le paquet markdown (v3.4.2, 2024-03-09) embarque un analyseur Markdown dans TeX et compose directement le contenu d'un environnement markdown. Après \usepackage[hybrid]{markdown}, une liste à puces, une *mise en évidence* et un inline code placés dans un frame beamer marqué [fragile] sont tous sortis correctement composés. Une condition toutefois : sous pdfLaTeX, -shell-escape est obligatoire. Sans lui, la compilation s'arrête sur ! Package markdown Error: Shell escape is restricted, suivi de Fatal error occurred, no output PDF file produced!. En pratique, cela convient exactement quand l'équipe écrit en Markdown mais que les formules et les figures exigent la qualité LaTeX. À l'inverse, si c'est l'allure même des diapositives que l'on veut décider en Markdown, c'est le travail de Marp, pas celui de LaTeX.
\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 restrictedQuand un système de diapositives LaTeX est le mauvais choix
Honnêtement, trois situations rendent LaTeX inadapté. La première : un exposé dont on va reprendre l'allure des dizaines de fois. Les diapositives LaTeX sont un support où l'on modifie puis l'on attend : un diaporama de 40 frames et 121 pages a mesuré ici 3,5 s par passe, et il en faut deux à cause de .nav et .toc. Ce va-et-vient convient mal au déplacement d'un cadre millimètre par millimètre. La deuxième : l'édition à plusieurs. Si votre coauteur n'écrit pas de TeX, lui envoyer un .tex revient à dire « installe d'abord ma chaîne d'outils, puis réponds-moi ». La troisième : un organisateur qui réclame du .pptx ; parier sur une conversion PDF vers PowerPoint vaut moins que choisir un autre outil dès le départ. Là où LaTeX l'emporte nettement : quand les formules, le code et les figures sortent de la même chaîne que l'article ; quand on veut l'exposé et le document engendrés mécaniquement depuis une source unique ; et quand on veut un PDF qui ne bouge pas d'un millimètre sur la machine qui l'ouvre — le manuel de beamer cite précisément cet argument, ne pas avoir à se soucier de ce qui est installé sur l'ordinateur de la conférence.
- Monter un nouvel exposé →
beamer. Seule entrée de cette liste encore en développement actif, et thèmes, overlays, mode handout et notes y sont déjà. - Récupérer un vieux
.tex→ lire d'abord le\documentclass.slidessignale une descendance de SliTeX ;prosperdésigne un candidat à la migration vers powerdot. - Les dessins PSTricks sont l'essentiel →
powerdot, mais compilez aveclatex→dvips→ps2pdfou avecxelatex;pdflatexne passera pas. - Des diapositives japonaises pour demain → l'option
slidede jsarticle (de fait 36 pt, jusqu'à43ptsi besoin). - La source est en Markdown → pandoc à l'extérieur, ou le paquet
markdownà l'intérieur de TeX Live (-shell-escapeobligatoire sous pdfLaTeX). - L'organisateur exige du
.pptx→ ne forcez pas LaTeX. Choisir un autre outil dès le départ vaut mieux que parier sur une conversion.