On a étudié dans une première fiche l’action de la commande \pause qui permet d’afficher les éléments d’une diapo les uns après les autres. Cette commande est très facile d’emploi mais peu flexible. Dans cette fiche nous allons aller plus loin avec les commandes overlay.
'''Un point de vocabulaire''' :
Dans cette fiche quand je parle de diapo, je fais référence à l’entité définie par :
\begin{frame}. . .\end{frame}.
J’emploie le terme de calque (slide) pour faire référence à toutes ces pages crées par des commandes comme \pause, qui sont finalement qu’une série de calques qui sont superposés pour fabriquer la diapo. Donc une diapo porte un numéro de page unique et peut être constituée de un ou plusieurs calques.
Il existe plusieurs commandes de type overlay, mais elles ont toutes la caractéristique de comprendre l’élément suivant <n> où n indique le ou les calques sur lesquels doit apparaître l’élément. n peut prendre les valeurs suivantes :
Voici un exemple un peu plus compliqué repris du manuel de BEAMER :
<-3,6-8,10,12-15> l’élément apparaît sur les calques :1, 2, 3, 6, 7, 8, 10, 12, 13, 14, et 15.BEAMER reconnaît certaines commandes de LaTeX comme pouvant directement être « temporisable ». Il suffit juste de leur adjoindre un <n>.
\textbf | \textit | \textsl | \includegraphics | \textrm |
\textsf | \color | \item | \alert | \structure |
Voici un exemple avec les commande \color et \textbf
Till Tantau étant le créateur de BEAMER et Tikz-PGF des commandes de ce dernier sont également « temporisable » directement. Nous les étudierons dans une autre fiche.
Voici un autre exemple avec une liste :
Puisque l’on est dans les listes restons-y. Il y a plusieurs manières d’obtenir le même résultat. Prenons l’exemple suivant qui permet d'afficher les items de la liste dans l'ordre les uns après les autres :
Bien entendu ceci (et les commandes suivantes) est valable pour tous les types de listes (enumerate et description).
Pour éviter d’avoir à décaler ta numérotation si tu rajoutes un élément au début de ta liste, tu peux utiliser la notation suivante, si le défilement doit ce faire dans l’ordre.
Tu peux encore simplifier en utilisant la forme suivante :
Pour mettre, lors de la «temporisation», le texte en «alert» (de couleur rouge par défaut).
Le chiffre après le @ indique sur quel calque intervient la mise en «alert». Tu peux utiliser des formes plus complexes comme <alert@2-> ou <alert@2-4,6>.
Si le défilement doit se faire dans l’ordre tu peux écrire :
Simplifiable en
Tu peux combiner l’apparition et la mise en «alert».
Si le défilement doit se faire dans l’ordre tu peux écrire :
Simplifiable en :
Tu peux même changer l’aspect du marqueur.
\ding permet d’afficher les symboles Zapf dingbats en utilisant le package ''pifont'' (voir la fiche sur les listes).
Les blocks sont directement temporisables.
Pour «temporiser» du texte en dehors de liste ou de commande directement «temporisable», on va utiliser les deux commandes \only et \onslide. Elles s’utilisent de la même façon :
Tu ne peux utiliser \only qu'avec des {}. Avec \onslide, si tu n’utilises pas les accolades, tout le texte suivant la commande et ce jusqu’à la fin de la diapo sera «temporisé».
Le <n> prend les mêmes valeurs que dans les exemples précédents.
La différence entre les deux commandes, est que \onslide contrairement à \only réserve l’espace occupé par le texte affecté à la «temporisation».
Un petit exemple explicatif. Pour bien visualiser ce qui ce passe j’ai mis en bleu le texte «temporisé».
Évidemment les images des calques que je reproduis, ne rendent pas compte de de ce qui se passe exactement et les anciennes fiches faites avec BEAMER était supérieures de se point de vue. Je ne peux que te conseiller de refaire, pour de vrais, les exemples donnés ci-dessus. Pour ce faire à la fin de cette fiche tu trouveras un exemple complet minimum pour pouvoir refaire tous les exemples cités dans cette fiche, il te suffis de recopier le code et d'insérer entre les \begin{frame} et \end{frame} le code donné avec chaque exemple.
Voici un exemple qui résume tout ce que l'on vient de voir :
Avant de continuer avec les différentes commandes de temporisation je vais évoquer rapidement la transparence sous BEAMER. Par défaut les objets absents d’un calque sont invisibles. Pour pouvoir apprécier les subtilités des différentes commandes de BEAMER, j’ai remplacé cette invisibilité par une transparence de 30% par la commande :
\setbeamercovered{transparent=30}
Je ne rentre pas plus dans les détails ce sera l’objet d’une autre fiche.
Maintenant je vais pouvoir aborder les deux commandes suivantes \visible et \uncover.
Avec \visible les objets non présents sur un calque sont invisibles.
Avec \uncover ils sont transparents avec la valeur définie par \setbeamercovered.
Un exemple :
Si tu reprends la commande \onslide avec la transparence à 30%, tu remarques qu’elle se comporte comme \uncover.
Il existe deux marqueurs pour modifier le comportement de \onslide + et *. Avec + \onslide se comporte comme \visible (donc même avec une transparence de 30% il retrouve son comportement normal) et avec * il se comporte comme \only.
Voici d’autres commandes :
\invisible<n>{texte} : c’est le contraire de \visible, les objets sont invisibles sur les calques précisés.
\alt<n>{nouveau texte}{texte par défaut}, remplace le «texte par défaut» par un «nouveau texte» sur les calques spécifiés.
Tu peux utiliser cette commande pour changer l’aspect d’un mot, le mettre en gras ou en couleur par exemple :
\alt<2>{\textbf{mot}}{mot}On va passer un peu plus de temps sur la commande \temporal.
Cette commande permet d’alterner 3 textes différents.
\temporal<n>{un texte avant <n>}{le texte pendant <n>}{un texte après <n>}Un morceau de phrase avec \temporal<2>{crac sur le calque 1}{boum sur le calque 2}{hue sur le calque 3}, les fill’s en tomb’nt à mes g’noux. \onslide<3>
Attention nous sommes dans un cas particulier en effet si j'écris :
J'ai créé une diapo avec un seul calque, donc seul «Un morceau de phrase avec boum sur le calque 2, les fill’s en tomb’nt à mes g’noux.» apparait. Le \temporal<2> permet de créer un calque avant et \onslide<3> un troisième calque.
Je te laisse essayer ces exemples un peu plus complexe (n'oublies pas d'ajouter avec \onslide<n> les calques qui manquent) :
Un morceau de phrase avec \temporal<3-5>{crac}{boum}{hue}, les fill’s en tomb’nt à mes g’noux.
Tu dois voir «crac» sur les calques 1 et 2, «boum» sur les calques 3, 4 et 5 et «hue» sur les suivants.
Un morceau de phrase avec \temporal<3,5>{crac}{boum}{hue}, les fill’s en tomb’nt à mes g’noux.
Tu dois voir «crac» sur les calques 1, 2 et 4 «boum» sur les calques 3 et 5 et «hue» sur les suivants.
L’un des intérêts de cette commande est de pouvoir changer la couleur du texte de 3 façons différentes. Dans l’exemple suivant le texte va être en gris sur les premiers calques quand je n’ai pas encore abordé le sujet, puis en rouge quand j’évoque le sujet et enfin en noir j’en ai terminé avec le sujet.
Si tu utilises plusieurs fois ce principe dans ta présentation, il peut être judicieux de créer une commande. Je vais te montrer comment faire car il y a quelques subtilités.
Tout d’abord on ne peut pas utiliser \newcommand pour créer notre nouvelle commande car \newcommand n’aime pas les < > nécessaires pour définir \temporal. On va donc utiliser la commande \def qui est une commande de TEX. Ensuite on va utiliser différemment \temporal. On va utiliser des {} pour en réduire sa portée. On va créer notre commande \couleur par le code suivant que tu places dans l’entête de ton document :
Voici une exemple d'utilisation de notre nouvelle commande \couleur
Pour chaque commande de temporisation que nous avons vu, il existe un environnement qui se comporte de la même façon. \only ⇒ onlyenv, \alt ⇒ altenv, \visible ⇒ visibleenv, \uncover ⇒ uncoverenv, and \invisible ⇒ invisibleenv. Par exemple :
Le comportement de altenv est toutefois un peu différent. Voici l’exemple du manuel :
Ce \begin{altenv}<2>{(}{)}{[}{]} mot \end{altenv} est entouré de parenthèse sur le calque 2 et de crochet sur le calque 1.
Quand on veut remplacer une texte par un autre ou une image par une autre on est souvent confronté à un problème de décalage de ligne surtout quand les objets ne sont pas de mêmes dimensions. Je vois bien que ce que je raconte n’est pas très clair donc passons à un petit exemple. Voici le code qui régit la diapo suivante :
Un petit exemple
Pour régler ce problème on va créer une zone de temporisation dont la taille sera supérieure ou égale à l’image la plus grande.
Un petit exemple :
La commande \overprint permet d'afficher des objets (images ou texte) au même endroit. Un exemple pour être plus clair tout d'abord l'affichage de 2 carrés sans \overprint :
La même chose avec \overprint :
Imaginons que sur un fond de carte on veuille faire apparaitre différents aménagements, par exemple une future autoroute et ses différentes aires de repos et ses entrées et sorties. Pour alléger le document on pourrait avoir une image de fond et des images ne comportant que les éléments additionnels. Ces images sont symbolisées par les vignettes suivantes :
Le fond de carte :
L'autoroute :
Les sorties :
Les aires de repos :
Il faut utiliser la commande \llap{} :
On a vu dans la fiche consacrée à la commande \pause comment faire apparaître progressivement les lignes d’un tableau. Pour faire de même avec les colonnes il faut utiliser \onslide :
Les options ''overlay'' que l'on vient de voir, crées de multiples diapos qui n'ont pas leur place dans une impression. La solution ? ajouter handout aux options BEAMER. Cette option fusionne toutes les couches d’une même diapositive. Par exemple :
\documentclass[hyperref={pdfpagemode=FullScreen,colorlinks=true},handout]{beamer}Voila, on a fait le tour des commandes de temporisation dans BEAMER. Dans les prochaines fiches consacrées à BEAMER on verra comment coupler TikZ avec BEAMER pour ajouter de l’inter-action dans les dessins.
Le code pour refaire les exemples :
\documentclass[hyperref={pdfpagemode=FullScreen},12pt,xcolor=table]{beamer}