Une première présentation avec Beamer

Germain SALVATO-VALLVERDU

Ce tutoriel donne les bases permettant de concevoir une présentation utilisant la classe Beamer de Latex (les bases de Latex sont nécessaires).

- Titre : Une première présentation avec Beamer

- Auteur : Germain SALVATO-VALLVERDU

- Parution : 1 septembre 2008

- Mise à jour : 13 novembre 2008

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2008 developpez. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- Introduction

- 1. Le préambule

- 1-1. Déclaration de la classe beamer

- 1-2. Choix du thème

- 1-3. Page de titre

- 1-4. Définition d'un logo

- 1-5. Divers

- 2. Créer la présentation

- 2-1. Créer une diapositive

- 2-2. Remplir les diapositives

- 2-2-1. Les Listes

- 2-2-2. Les blocks

- 2-3. Overlay - Apparition progressive du contenu d'une frame

- 2-3-1. Les différentes commandes

- 2-3-2. Cas particulier des listes

- 2-4. Organiser la présentation et faire un plan

- 3. Boite à outils

- 3-1. Package xcolor

- 3-2. Package animate

- 3-3. Package textpos

- 3-4. Package hyperref

- 3-5. Le package picture

- 3-6. La barre de navigation

- 3-7. Option pdf

- Références

- Fichier source : entête d'un fichier LaTeX pour beamer

Introduction

Le but de ce petit texte est de regrouper au même endroit ce que j'ai cherché à droite à gauche sur internet pour faire ma première présentation avec Beamer. Sur internet il existe des choses beaucoup plus complètes, notamment le manuel (250 pages), et beaucoup plus détaillées. Ce document contient les commandes que j'ai utilisées et quelques exemples qui j'espère, aideront à faire une première présentation avec beamer. Il nécessite tout de même d'être familier avec les bases de latex.

Il est possible de compiler le fichier TeX avec latex ou pdflatex qui présente le double avantage de supporter les formats images bitmaps, jpeg, png, pdf et de créer directement un fichier pdf.

1 - Le préambule

1-1 - Déclaration de la classe beamer

Déclarer la classe beamer

\documentclass[9pt]{beamer}

A savoir que :

- La classe beamer crée une page en format paysage de 128mm de large sur 96mm de haut.

- La taille de police agit sur l'ensemble des éléments : titre de la présentation, titre des diapositives etc ...

- On peut rajouter des options comme draft pour accélérer la compilation.

Retour au sommaire

1-2 - Choix du thème

Le thème définit le jeu de couleurs et la présentation de la page qui seront utilisés pour la présentation. On peut soit utiliser un thème global qui définira l'allure de l'ensemble de la présentation, soit préciser l'utilisation d'un thème différent pour chaque élément :

Thème

Commentaire

utilisation

Global

Pour l'ensemble des éléments de la présentation

\usepackage{beamerthemeWarsaw}

Les couleurs

Pour les couleurs ...

\usecolortheme{seagull}

Les polices

Pour les polices ...

\usefonttheme{serif}

innertheme

Thème pour l'intérieur de la diapositive : liste, block, tableau etc ...

\useinnertheme{circle}

outertheme

Thème pour l'extérieur de la diapositive : Titre de la diapositive, entête, pied de page etc ...

\useoutertheme{shadow}

L'ensemble des thèmes disponible se trouve dans le dossier où beamer est installé. Par exemple dans le dossier /usr/share/texmf/tex/latex/beamer/themes/

Retour au sommaire

1-3 - Page de titre

La première page de la présentation (la page de titre) est créée par la commande :

Créer la page de titre

\titlepage

Dans le préambule on peut définir les éléments suivant qui apparaitront sur la page de titre :

Les éléments de la page de titre

\title[titre court]{titre long}
\author[court]{long}
\institute{ Université ...}     % votre labo, entreprise etc ...
\date{ 1er mai }                % une date ou \today pour la date du jour

Le titre long est sur la page de titre (la première diapositive de la présentation) et le titre court sera dans les pieds de page sur toutes les autres (en fonction du thème choisi).

Pour les auteurs c'est le même principe que le titre long et le titre court. Cela permet par exemple de différencier le nom de celui qui présente (écrit sur toutes les diapositives) et des gens qui ont participé au travail (écrit sur la première diapositive).

Retour au sommaire

1-4 - Définition d'un logo

Il est possible de définir une image en tant que logo qui sera présent sur toutes les diapositives à un endroit qui va dépendre du thème choisi.

Déclaration du logo

\logo{\includegraphics[height=5mm]{img/logo.png}}

Retour au sommaire

1-5 - Divers

Les packages usuels de latex fonctionnent avec beamer. Voici par exemple quelques packages classiques utiles :

les packages usuels

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}    % pour les accents (mettre latin1 pour windows au lieu de utf8)
\usepackage[frenchb]{babel}    % le documents est en français
\usepackage{amsmath}           % un packages mathématiques
\usepackage{xcolor}            % pour définir plus de couleurs
\usepackage{graphicx}          % pour insérer des figures

Retour au sommaire

2 - Créer la présentation

2-1 - Créer une diapositive

Chaque diapositive est simplement définie par l'environnement frame. Par exemple, les deux premières diapositives sont construites par le code :

Créer une diapositive

% page de titre
\begin{frame}
\titlepage
\end{frame}

% deuxième frame
\begin{frame}
\frametitle{La deuxième diapositive}
\begin{center}  bla bla bla ....  \end{center}
\end{frame}
...

La commande \frametitle{ ... } permet de définir le titre de la diapositive. Par défaut les diapositives sont centrées verticalement. Ainsi "bla bla bla ..." apparaîtra au centre de la diapositive.

Retour au sommaire

2-2 - Remplir les diapositives

Les diapositives peuvent contenir tout ce que vous avez l'habitude de mettre dans un document latex classique : tableau, listes, image ...

2-2-1 - Les Listes

Les listes itemize ont des items spécifiques à beamer dont la couleur peut varier en fonction du thème choisi : défaut (triangle), triangle, square, ball, circle. On peut choisir les items ainsi que les sous items en les définissant dans le préambule de la façon suivante :

Définitions des item dans le préambules

\setbeamertemplate{itemize item}[ball]
\setbeamertemplate{itemize subitem}[triangle]
\setbeamertemplate{itemize subsubitem}[circle]
...

Voici un exemple des différentes puces disponibles :

type

Rendu

triangle

ball

circle

square

Un exemple des autres listes :

Code

Rendu

Liste enumerate

\begin{enumerate}
\item item 1
\item item 2
\item item 3
\item item 4
\end{enumerate}

Liste description

\begin{description}
\item[item1] description 1
\item[item2] description 2
\item[item3] description 3
\item[item4] description 4
\end{description}

Retour au sommaire

2-2-2 - Les blocks

Beamer propose un environnement block qui permet de mettre des éléments en valeur. Il existe trois environnements blocks différents, les blocks simples block, alerte alertblock et exemple exampleblock. Ils s'utilisent simplement de la façon suivante :

Utilisation de l'environnement block

\begin{block}{ titre du block }
Texte, équations, image, tableau etc ...
\end{block}

\begin{alertblock}{ titre du block }
Texte, équations, image, tableau etc ...
\end{block}

Pour avoir des blocks arrondis avec une ombre, il faut rajouter la commande suivante dans le préambule :

Block arrondis et ombrés

\setbeamertemplate{blocks}[rounded][shadow=true]

Quelques exemples :

On peut modifier les couleurs des blocks en indiquant le code suivant soit dans le préambule, soit localement avant d'utiliser un block :

Modification des couleurs des blocks

\setbeamercolor{block title}{fg=black,bg=blue1}        % titre block normal
\setbeamercolor{block body}{fg=black,bg=bleu1!50}      % corps block normal
\setbeamercolor{block body alerted}{fg=white,bg=red}   % idem pour un block alerte

Le !70 permet d'ajuster la couleur, de foncé (100) à plus clair (0).

Il n'est pas obligatoire de donner un titre au block, ce qui permet d'encadrer un mot ou une phrase. On peut contrôler la largeur des block en les insérant dans une boite (textblock ou minipage). Voici un exemple avec le block alerte dans une minipage :

Utilisation d'un block pour encadrer

\setbeamercolor{block body alerted}{fg=white,bg=red}
\begin{minipage}{50mm}
\begin{alertblock}{}
\begin{center}
\textbf{Très important}
\end{center}
\end{alertblock}
\end{minipage}

L'utilisation de textblock permet en plus de positionner le block où on le veut sur la page.

Retour au sommaire

2-3 - Overlay - Apparition progressive du contenu d'une frame

Lors d'une présentation, il est souvent préférable de faire afficher les éléments au fur et à mesure à l'aide des overlay. Il faut alors faire une différence entre une frame et une diapositive. Les overlays permettent d'afficher en plusieurs fois le contenu d'une frame (délimité par l'environnement frame) en créant plusieurs diapositives. Pour cela, la classe beamer met à disposition plusieurs commandes : \uncover<>, \(in)visible<> et \only<>. Entre les < >, il faut indiquer l'ordre d'apparition des éléments. Beamer construira ensuite le nombre de diapositives nécessaire en faisant apparaître progressivement les éléments.

<1->

de la 1ère diapositive de la frame et jusqu'à la dernière.

<2->

à partir de la deuxième diapositive et jusqu'à la fin.

<-3>

de la première diapositive de la frame jusqu'à la troisième diapositive.

<2>

uniquement sur la deuxième diapositive.

<3-5>

de la troisième à la cinquième diapositive.

...

ainsi de suite

Le décompte des diapositives est remis à zéro pour chaque nouvelle frame.

Pour que le texte, présent sur une frame mais qui ne s'affiche pas sur les premières diapositives, apparaisse en beaucoup plus clair et soit peu lisible, il faut rajouter la commande suivante dans le préambule :

Eléments non affichés seront en grisé

\beamertemplatetransparentcovered

2-3-1 - Les différentes commandes

uncover<n->{texte}

affiche les éléments entre { } à partir de la diapositive n

only<n->{texte}

affiche les éléments entre { } à partir de la diapositive n mais la place prise par le texte n'était pas réservée sur les diapositives précédentes. La mise en page est réorganisée pour faire apparaître le texte.

(in)visible<-n>{texte}

idem que uncover (ou inverse).

alert<4->{texte}

le texte entre { } sera en rouge à partir de la quatrième diapositives.

Pour certains éléments (comme des figures ou des textblocks) uncover ne fonctionne pas et il faut utiliser (in)visible à la place. D'autre part si on a choisi que le texte s'affiche en plus clair et peu lisible avant qu'il soit réellement présent, il faut utiliser uncover. En effet, l'utilisation de (in)visible le fait complètement disparaître.

Toutes ces commandes fonctionnent très bien pour du texte, mais elles peuvent également agir sur des figures, des lignes ou colonnes d'un tableau etc ... Lorsqu'on utilise des boites (, parbox, minipage etc ...) il est préférable de les mettre à l'intérieur de la boîte pour qu'elles agissent directement sur le contenu et pas sur la boite.

La commande alt<n>{texte1}{texte2} offre la possibilité de faire un affichage alternatif en fonction de la diapositive. Elle permet de substituer texte1 et texte2 suivant la diapositive. Texte1 et texte2 peuvent être du simple texte ou contenir de la mise en forme (couleur, épaisseur etc ...), exemple :

\alt<3>{Je suis sur la diapositive 3}{Je ne suis pas sur la diapositive 3}

Retour au sommaire

2-3-2 - Cas particulier des listes

Pour les listes, on peut utiliser les commandes précédentes mais d'autres sont disponibles. Les deux codes suivants produisent la même chose. Beamer fabrique 4 diapositives en faisant successivement apparaître les 4 items.

\begin{enumerate}[<+->]
\item item 1
\item item 2
\item item 3
\item item 4
\end{enumerate}

\begin{enumerate}
\item<1-> item 1
\item<2-> item 2
\item<3-> item 3
\item<4-> item 4
\end{enumerate}

La première version (gauche) code pour un affichage séquentiel de manière automatique. La seconde offre plus de souplesse dans l'ordre d'apparition et de disparition des éléments.

Retour au sommaire

2-4 - Organiser la présentation et faire un plan

Comme dans un document latex classique une présentation beamer peut être divisée en section, subsection ... La syntaxe est la même que pour un document latex. On place tout simplement ces commandes entre les frames pour diviser la présentation.

Exemple de document utilisant les sections

\section[titre court1]{titre long long long 1}
\begin{frame}
\frametitle{frame1}
\end{frame}

\section[titre court2]{titre long long long 2}

\subsection[titre court1]{titre long long long 1}
\begin{frame}
\frametitle{frame2}
\end{frame}

\subsection[titre court2]{titre long long long 2}
\begin{frame}
\frametitle{frame3}
\end{frame}

\subsection[titre court3]{titre long long long 3}
\begin{frame}
\frametitle{frame4}
\end{frame}

\section[titre court3]{titre long long long 3}
\begin{frame}
\frametitle{frame5}
\end{frame}

Comme pour le titre de la présentation ou les auteurs, on peut définir un titre long et un titre court. Le titre long sera affiché dans le plan ou la table des matières ; Le titre court, suivant le thème choisi, sera affiché dans l'entête des diapositives ou sur le côté avec un résumé du plan. Le titre des frames n'est pas automatiquement défini par la section qui les contient.

Pour afficher le plan, on crée une table des matières avec la commande \tableofcontents[...]. Si on ne veut pas donner tous les détails, l'option hideallsubsections permet de n'afficher que les sections.

Afficher le plan

\begin{frame}
\begin{center}{\Large Plan }\end{center}
\tableofcontents[hideallsubsections]
\end{frame}

Il est parfois utile de rappeler au début de chaque section le plan de la présentation. Le code suivant, à placer dans le préambule, permet de générer au début de chaque section une frame qui contient le plan. Celui-ci n'affiche que les subsection de la section en cours. Les autres sections sont affichées en gris et peu lisible.

Faire afficher le plan avant chaque section

% Faire apparaître un sommaire avant chaque section
\AtBeginSection[]{
\begin{frame}
\begin{center}{\Large Plan }\end{center}
%%% affiche en début de chaque section, les noms de sections et
%%% noms de sous-sections de la section en cours.
\tableofcontents[currentsection,hideothersubsections]
\end{frame}
}

Retour au sommaire

3 - Boite à outils

3-1 - Package xcolor

Ce package (références) donne accès à plus de couleurs disponibles et permet d'en définir de nouvelles en utilisant les codes RVB, CYMK, ou HTML avec les syntaxes suivantes :

Définition de nouvelles couleurs

\definecolor{monred}{HTML}{9D0909}
\definecolor{monbleu}{RVB}{0,0,1}

Retour au sommaire

3-2 - Package animate

Ce package (références) permet d'insérer des animations dans un document pdf. D'une manière simple, l'animation est créée comme une succession d'images, comme un dessin animé. Cependant, le package permet aussi d'insérer des vidéos mais celles-ci ne sont pas directement encapsulées dans le pdf et doivent donc être accessibles. Voici un exemple de l'utilisation de animate :

exemple d'utilisation du package animate

\animategraphics[autoplay,loop,height=10mm]{10}{tux_ask}{1}{2}

L'animation est créée à l'aide de deux images tux_ask1.jpg et tux_ask2.jpg. L'option autoplay fait démarrer l'animation toute seule, et loop permet de jouer l'animation en boucle. Le chiffre 10 est la vitesse d'enchaînement des images (normalement en nombre d'images par seconde). On donne ensuite la racine du nom des images (ici tux_ask) et le numéro des images, ici de 1 à 2. L'animation est encapsulée dans le pdf qui est donc auto-suffisant.

Une petite contrainte, il est nécessaire d'utiliser acrobat reader pour que ça fonctionne.

Retour au sommaire

3-3 - Package textpos

Ce package (références) est très utile pour préparer sa présentation car il permet, à l'aide de coordonnées (x,y), de positionner des objets là où on le souhaite sur la page. Il s'utilise de manière simple avec un environnement textblock* qui s'utilise un peu comme une minipage ou une parbox. Pour l'utiliser il faut mettre ceci dans le préambule :

Déclarations dans le préambule dans le but d'utiliser le package textpos

\usepackage[absolute,showboxes,overlay]{textpos}     % déclaration du package
\textblockorigin{x}{y}                               % origine des positions
\TPshowboxestrue                                     % affiche le contour des textblock
\TPshowboxesfalse                                    % n'affiche pas le contour des textblock

L'origine des coordonnées est donnée par rapport au coin supérieur gauche de la page. L'option absolute permet de placer tous les textblocks de la page par rapport à cette origine. Ainsi, si on déplace quelque chose dans la page les autres textblocks ne sont pas déplacés.

L'option overlay permet aux différents textblocks ou autres éléments de la page de se superposer. Cette option est vraiment nécessaire, si on ne la met pas et que deux textblocks se superposent, l'un d'eux sera invisible.

L'option showboxes en relation avec les commandes \TPshowboxes(false)true permet de faire afficher ou non une bordure autour des textblocks. Cela peut être utile pendant la conception des diapositives pour mieux se rendre compte de là où se placent les textblocks.

Il suffit ensuite d'utiliser l'environnement textblock* dont la syntaxe générale est :

Syntaxe de l'environnement textblock

\begin{textblock*}{largeur}[h,v](x,y)
tout ce qu'on veut !!
\end{textblock*}

Les paramètres sont assez explicite, largeur est la largeur du textblock. x,y sont les coordonnées du textblock par rapport à l'origine, elles sont données entre parenthèses. Entre crochets, h et v définissent le point du textblock qui aura les coordonnées x et y. Il n'est pas obligatoire de les préciser. Par défaut h et v valent zéro et définissent le point en haut à gauche du textblock. Ces grandeurs sont relatives, par exemple le centre du textblock est défini par [0.5,0.5], le coin en bas à gauche par [0,1] et ainsi de suite.

L'avantage d'utiliser l'environnement textblock*, avec une *, est que la largeur et les coordonnées x et y sont directement données dans l'unité désirée. Si on utilise l'environnement textblok qui a la même syntaxe, il faut définir des unités dans le préambule avec les commandes suivantes :

Définission de dimensions pour les textblocks (sans étoiles)

\setlength{\TPHorizModule}{1mm}
\setlength{\TPVertModule}{\TPHorizModule}

La largeur et les coordonnées x et y sont alors données comme multiples de TPHorizmodule et TPVertModule.

Les textblocks ne prennent pas de place sur la page. Si on place un textblock en haut à gauche et qu'avant ou après on écrit du texte, le textblock et le texte seront superposés. Pour placer le texte en dessous du textblock il faut soit le placer lui aussi dans un textblock, soit utiliser la commande \rule{largeur}{hauteur} ou \vskip pour décaler le texte verticalement.

Si on place plusieurs textblock* sur la page, qu'ils se superposent et que leur contenu n'est pas transparent, c'est le premier textblock qui sera par dessus les autres et ainsi de suite.

Retour au sommaire

3-4 - Package hyperref

Le package hyperref () s'utilise comme dans un document LaTeX classique et offre les mêmes fonctionnalités.

Retour au sommaire

3-5 - Le package picture

Ce package () s'utilise comme dans un document LaTeX classique et permet notamment de faire des flèches et des lignes. On peut ensuite positionner ces éléments sur la page en insérant l'environnement picture dans un environnement . Voici la syntaxe générale de l'environnement picture (c'est un environnement très riche il est conseillé de consulter sa documentation pour faire des choses plus élaborées) :

Exemple d'utilisation de l'environnement picture

\begin{picture}(largeur,hauteur)
\thicklines
\put(0,0){\line(1,0){10}}
\put(10,0){\vector(0,1){10}}
\end{picture}

La largeur et la hauteur, ainsi que toutes les dimensions ou coordonnées à l'intérieur sont des multiples d'une longueur définies dans le préambule par :

Définission de l'unité pour le package picture

\setlength{\unitlength}{1mm}

La commande put(x,y){objet} place l'objet au point de coordonnées x et y, l'origine étant en bas à gauche de la boite picture. L'objet \line(x,y){longueur} crée une ligne de longueur longueur et dont la direction est donnée par le vecteur de coordonnées (x,y). Par exemple (0,1) définit une ligne verticale et (1,1) une ligne oblique à 45°. L'objet \vector est identique à \line dans son utilisation mais il crée une flèche à la place. La commande \color{couleur} permet de choisir la couleur des objetsb

Retour au sommaire

3-6 - La barre de navigation

Vous avez sans doute remarqué que les présentations Beamer affichent (souvent en bas à droite) une série de petites icônes permettant de se déplacer d'une diapositive à une autre. On peut supprimer l'un ou l'autre de ces icônes en commentant les lignes voulues dans le code suivant à placer dans le préambule :

Définition de la barre de navigation

\setbeamertemplate{navigation symbols}{
\insertslidenavigationsymbol
\insertframenavigationsymbol
\insertsubsectionnavigationsymbol
\insertsectionnavigationsymbol
\insertdocnavigationsymbol
\insertbackfindforwardnavigationsymbol
}

Retour au sommaire

3-7 - Option pdf

Voici une série de commandes, à mettre dans le préambule, qui permettent de définir différents paramètres du fichier pdf.

Définition des options du fichier pdf

\hypersetup{
pdfpagemode = FullScreen,% afficher le pdf en plein écran
pdfauthor   = {auteur(s)},%
pdftitle    = {Titre ...},%
pdfsubject  = {Sujet ...},%
pdfkeywords = {Mots clés séparés par des virgules},%
pdfcreator  = {PDFLaTeX},%
pdfproducer = {PDFLaTeX}%
}

Retour au sommaire

Références

- Beamer home page, le manuel officiel de beamer et le package pour l'installation.

- La FAQ LaTeX grappa de l'université de Lille.

- Un site de l'ens avec une aide sur LaTeX et beamer, tuteur ens.

- Le site de Mc Collilieux sur beamer, introbeamer.

- Le package xcolor et le manuel.

- Le package animate et le manuel

- Le package textpos qui permet de placer des textblock là où on le souhaite sur la page et son manuel manuel

Retour au sommaire

Fichier source : entête d'un fichier LaTeX pour beamer

L'entête d'un fichier LaTeX pour une présentation beamer, en reprennant les éléments présentés ici.

Retour au sommaire