Accueil > LaTeX > Beamer > Beamer et TikZ sont dans un bateau
Beamer et TikZ sont dans un bateau
dimanche 3 avril 2011, par
Beamer est une classe LaTeX qui permet de préparer des diaporamas pour des exposés ou des conférences. Elle remplace utilement Powerpoint, OOO Impress et autre Keynote.
J’ai commencé à m’en servir pour préparer un exposé sur les apocryphes chrétiens. J’ai souhaité le combiner avec TikZ qui permet de faire des graphiques en LaTeX.
Cet article veut expliquer comment je me suis servi de Beamer pour faire apparaître mon graphisme par morceau.
Création du graphisme
Voici mon code départ, avec le résultat obtenu. Les commentaires dans le code devrait suffire à comprendre.
Il s’agit d’expliquer l’étymologie du mot apocryphe : de « Ἀπο », loin de, et « Κρύτω », cacher.

Un affichage différé
Pour donner plus de dynamisme à l’exposé, je souhaiterais que l’étymologie complète du mot n’apparaisse pas du premier coups. Je voudrais avoir d’abord le mot, puis ensuite l’étymologie de sa première partie, puis celle de la second partie.
Pour cela je vais utiliser une syntaxe très utile de Beamer, qui permet de dire qu’une diapositive se compose de plusieurs couches, qui apparaîtront au fur à mesure, et qui permet de préciser quels élèments appartiennent à quels couche.
La syntaxe est relativement simple :
\commandelatex<a-b>
où a est la couche de départ sur laquelle la commande est executée, et b la couche final.
Concrètement dans mon cas, cela donne :
On obtient ainsi, pour une même diapositive, 3 couches successives :



Problème d’affichage
Tout ceci est plutôt pas mal … mais on constate un problème : d’une fois sur l’autre, les mots ne sont pas alignés, ce qui produit un effet assez désagréable.
L’explication tient à TikZ. Un graphisme TikZ a pour largeur la largeur minimale nécéssaire à l’affichage de l’ensemble des éléments [1].
Hors sur la couche 1, la largeur minimale nécessaire est plus petite que sur les autres couches, puisqu’on a simplement le mot à définir.
Sur la couche 2, la largeur est plus importante que sur la couche 1, mais moins que sur la couche 3, puisque seul une partie de l’étymologie est affichée.
Comment faire ?
L’astuce consiste, tout simplement, à afficher ces morceaux d’étymologie dès le début, mais en blanc. On n’affichera en couleurs qu’au moment voulu.
Il faut utiliser l’environnement overprint
comme expliqué dans mon nouvel article.
Je laisse ci dessous mon ancien code.



Pour débuter avec Beamer, voir ce tutoriel.
[1] De même pour la hauteur
Messages
5 octobre 2011, 09:25, par Rasolof
Merci pour ton travail. J’utilise beaucoup Beamer et actuellement, j’ai besoin de TikZ pour des graphiques.
Juste une question : utilises-tu TexLive ou MikTex. Il me semble que le premier n’intègre pas TikZ.
Merci de répondre si tu as le temps,
5 octobre 2011, 09:31, par Maïeul
j’utilise texlive sous mac qui intègre tikz.
5 octobre 2011, 10:46, par Rasolof
Merci pour ta réponse. J’ai TexLive 2007 et il n’y a pas TikZ comme package dedans. Ton TexLive est peut-être plus récent.
5 octobre 2011, 11:35, par Maïeul
oui j’ai la version 2011.
je te conseille d’y passer puisque les mises à jour de packages sont gelées sur les anciennes versions
18 octobre 2011, 19:24, par Rasolof
Juste une question encore (j’espère que je ne m’abuse pas de ton temps). Je suis membre de Gutenberg et jusqu’à maintenant je n’ai pas reçu le DVD2011 de TexLive. As-tu téléchargé TexLive 2011 auprès d’un CTAN, inria ou oceane par exemple ? Il faut que je désinstalle TexLive 2007 auparavant pour éviter des interférences éventuelles.
18 octobre 2011, 21:39, par Maïeul
J’ai télècharger depuis le site de MacTeX http://www.tug.org/mactex/2011/. Je ne sais pas comment il faut procéder sous d’autre système que os X
31 octobre 2011, 10:12, par Rasolof
Pour ne pas attendre la livraison de TexLive2011 par Gutenberg, j’ai téléchargé MacTex sur un Mac et j’utilise TexWorks. On me renvoie un message disant qu’il faut définir autrement un noeud. Pourtant, je pense avoir agi correctement. Voici mes trois noeuds :
\node (a)
\node(o)
\node(b)
Je ne vois pas où est l’erreur en utilisant ces lettres miniscules ! Toi tu utilises des lettres majuscules.
31 octobre 2011, 11:30, par Maïeul
peut tu fournir le code complet, en le mettant entre
<code>
et<
/code>
? peut tu également fournir le message d’erreur exact ?