# Présentations

# Faire des présentations en LaTeX avec beamer

## Introduction

### Pourquoi faire une présentation en LaTeX plutôt qu'avec Powerpoint?

Les arguments sont essentiellement les mêmes que pour LaTeX vs Word. En faveur de latex, entre autres, la rigueur du rendu, la programmabilité, la portabilité, la possibilité d'entrer des formules (combien de gens voit-on convertir en images des formules tapées en TeX, pour les inclure dans du powerpoint...), sont tout aussi utiles pour une présentation que pour un rapport. D'un autre côté, le fait que la préparation du document n'est pas faite de manière visuelle est sans doute plus génante pour des transparents, mais pas tant que ça en fait. Enfin, Powerpoint propose tout plein d'effets graphiques (animations...), domaine dans lequel les packages LaTeX sont un peu plus pauvres (mais certainement pas indigents, et suffisants pour la plupart des usages).

### Les packages LaTeX pour faire des présentations

Historiquement, il y avait les classes `slides`, et `seminar` qui sont beaucoup trop basiques. Ensuite sont apparus `pdfscreen` et `prosper`, qui sont beaucoup plus évolués. Enfin est venu `beamer`, qui est nettement le meilleur choix à l'heure actuelle. C'est de lui que traitera le reste de l'article. Mentionnons enfin advi, qui est un viewer de dvi avec plein de fonctions graphiques grassouilles (par exemple, on peut faire se balader du texte sur la page). Il présente l'inconvénient de ne tourner que sous unix, et de ne pas être bien standard (en général, on doit se l'installer à la main).

### Beamer

Beamer est donc un package LaTeX prévu pour faire des présentations. Il est conçu pour produire du pdf. Pour ce faire, on compile le fichier `.tex` en utilisant `pdflatex` au lieu de `latex`. Le pdf obtenu peut alors être visualisé avec n'importe quel afficheur de pdf, comme Acrobat Reader.

Beamer vient avec une documentation très étoffée, accessible ici. Beamer possède également deux sous-packages :

pgf
  package permettant plein de grassouillitudes graphiques. Il réimplémente une partie de pstricks (cela le rend intéressant en lui-même, puisque pstricks ne marche pas avec pdflatex). On vera ici un exemple d'utilisation de pgf pour inclure des images (avec l'avantage par rapport à `\includegraphics` qu'une image utilisée plusieurs fois n'est stockée qu'une fois dans le pdf produit). Documentation de pgf.
xcolor
  package permettant de définir des couleurs, de manière très sophistiquée : mélange de couleurs, différents modèles de couleurs, ... Documentation de xcolor.

Comme ils sont assez technique, et pas indispensable à maitriser pour une utilisation simple de beamer, on ne les décrira pas plus avant ici, on renvoie à leur documentation.

Beamer est installé sur les machines de l'École, et est inclus dans de plus en plus de distributions de TeX. Si néanmoins vous ne l'avez pas sur la votre, vous pouvez le télécharger ici, il faut y récupérer les versions les plus récentes de `latex-beamer`, `pgf` et `xcolor`.

## Un exemple de base

### Le .tex

Soit le fichier `b.tex` suivant :

      \documentclass{beamer}
      \usepackage[latin1]{inputenc}
      \usetheme{Warsaw}

      \title{Hello World!}
      \author{B. Meuhr}\institute{École Normale Supérieure, département de pipologie}

      \begin{document}

      \begin{frame}
      \titlepage
      \end{frame}

      \begin{frame}
      \textsc{Beamer}, c'est vachement tout beau!
      \end{frame}

      \begin{frame}
      Et c'est facile.
      \end{frame}

      \end{document}

On le compile avec la commande `pdflatex b.tex`, et l'on obtient alors un joli fichier `b.pdf`, que l'on peut afficher avec Acrobat Reader (on a intéret à passer en mode plein écran, pour ce faire, taper `control L`).

### Les points clefs

On commence par :

      \documentclass{beamer}

ce qui charge beamer, et effectue les réglages de bases.

Ensuite, beamer étant très versatile, il faut le régler à son gout. Souvent, on se contente de charger un thème préféfini, qui se charge de définir l'apparence graphique de tous les éléments. Ici, on utilise le thème « Warsaw » (il y en a beaucoup d'autres, ils sont décrits dans le manuel de Beamer) :

      \usetheme{Warsaw}

Une fois à l'intérieur du `\begin{document}`, on entre le texte de la présentation. On doit diviser à la main son texte en pages (pour que la présentation soit compréhensible, il important de faire la division intelligement), et mettre chaque page dans un environnement `frame`.

## Fonctionalités plus avancées

### Sectionnement

On peut (et c'est même recommandé) insérer des `\section`, `\subsection` et cie. Certains thèmes (par exemple le `Warsaw` utilisé ci-dessus) affichent un condensé de la table des matières dans un panneau, ce qui, à l'affichage, permet de naviguer facilement à travers le document en cliquant.

### Animations

Beamer permet de définir des séquences de slides différant seulement par des apparitions ou disparitions (ou mise en grisé) de morceaux de texte. Par exemple, ce code :

      \begin{frame}
      \begin{itemize}
      \item<13> Ploum!
      \item<2-4> Plim?
      \item Plum...
      \end{itemize}
      \end{frame}

va produire une séquence de 4 slides. Toutes les 4 auront un « Plum... » sur la troisième ligne. La première ligne contiendra un « Ploum! » sur la première et la troisième slide, tandis qu'elle sera vide sur la deuxième et la quatrième. La deuxième ligne, elle, sera vide sur la première slide, et contiendra « Plim? » sur les suivantes.

Comme le montre cet exemple, un certain nombre de commandes ont été modifiées pour prendre un argument optionel entre `<>`. Dans cet argument on peut mettre un nombre, un intervalle (deux nombres séparés par un `-`), ou plusieurs nombres ou intervaux séparés par des virgules. Ces nombres spécifient sur quelles slides de la séquence qui va être créée la commande doit « avoir un effet ». Pour `\item`, cela veut dire afficher la bille et le texte qui en dépend. Mais pour les commandes de changement de police ou de couleur, cela veut dire que le changement ne doit être effectué que sur les slides en question. Par exemple, un :

      \textbf<2>{ploum}

aura pour effet de mettre « ploum » en gras sur la deuxième slide, et en normal sur la première.

L'argument optionel entre `<>` n'est pas un effet magique : les auteurs de Beamer ont du modifier toutes les commandes ... qu'ils ont modifiées. Pour les autres, il faut se débrouiller à la main. On dispose des commandes `\only` et `\uncover` qui prennent un argument entre `<>`, puis un argument normal entre `{}`, qu'elles n'affichent que sur les slides spécifiées. La différence entre les deux est qu'avec `only`, le texte est jeté, tandis qu'avec `uncover`, il occupe sa place mais est transparent. Par exemple, avec :

      pif \uncover<2>{paf} Abcd-Efgh \only<1>{Ijklmn} ouais!

on obtiendra :

      pif     Abcd-Efgh Ijklmn ouais!

sur la première slide, et :

      pif paf Abcd-Efgh ouais!

sur la deuxième.

Par défaut, le texte caché est complètement invisible. Il est possible de l'avoir en grisé en mettant un :

      \setbeamercovered{transparent}

### Customisations

#### Couleurs

Beamer permet de modifier les couleurs de beacoup de types d'élèments. Il y a une « beamer color » associée à chaque type d'élément (elles sont listées dans le manuel), et l'on peu modifier chaque couleur indépendament des autres. Cela se fait avec la commande `\setbeamercolor` qui prend en premier argument le nom de la couleur, et en deuxième argument une spécification de couleur. Par exemple :

      \setbeamercolor{normal text}{fg=red,bg=blue}

fait en sorte que le texte ordinaire soit en rouge sur fond bleu. On peut spécifier des couleurs définies à l'aide du package xcolor.

#### Templates

Les divers éléments répétitifs des slides sont définis à l'aide de templates, qui sont du code évalué pour chaque slide. Par exemple, l'arrière-plan des slides est définie par le template `background`. Supposons que l'on veuille mettre l'image `ploum.jpg` comme fond de transparents. Il suffit de faire :

      \pgfdeclareimage[height=96mm,width=128mm]{nombidon}{ploum}
      \setbeamertemplate{background}{\pgfuseimage{nombidon}}

et tous les transparents suivants auront l'image en arrière-plan. On a utilisé ici les commandes graphiques du package pgf. 96mm et 128mm sont les dimensions par défaut de la page pour beamer (le viewer de pdf fait un zoom, il est donc inutile et même nuisible de changer la taille de la page).

#### Conclusion

Il existe également un mécanisme de « beamer font » qui fonctionne similairement. Noter qu'il existe des thèmes définissant d'un coup tous les templates, couleurs et polices. Souvent, il vaut mieux choisir un thème, et faire juste une ou deux modifications de détail...

Enfin, pour modifier une couleur, un template ou une police sur une zone limitée et non globalement, on utilise le mécanisme classique des groupes : il suffit d'encadrer entre accolades la zone du texte où l'on veut que le changement ait un effet, et de mettre le `\setbeamertemplate`, `\setbeamercolor` ou `\setbeamerfont` juste après l'accolade ouvrante.

### Gadgets amusants

On peut aussi spécifier des effets graphique à effectuer lors d'un changement de page, inclure des sons, des videos... Tout cela est décrit dans le chapitre 13 du manuel.

## Note sur pdflatex

Comme il a été dit, pdflatex est une variante de latex qui pond du pdf au lieu de sortir du dvi. Cela a certains effets secondaires au niveau de la gestion de tout ce qui est graphique. En particulier, on ne peut plus utiliser tout ce qui était à base de postscript : inclusion d'images eps, pstricks, ... En compensation, pdflatex fournit pas mal de primitives graphiques, qui suffise dans la plupart des cas. En particulier, on peut inclure directement (alors qu'avec latex, il faut les convertir en eps) des images dans les formats bitmaps jpg et png. Pour des dessins vectoriels, il vaut mieux les fournir directement au format pdf pour l'inclusion. On peut convertir un eps en pdf avec la commande `epstopdf`.

Auteur : Luc Habert. Dernière modification le .