Chemin principal : Accueil > LaTeX > Beamer > Beamer et TikZ sont dans un bateau

Autre chemin : (Aller directement au contenu de l'article)

Beamer et TikZ sont dans un bateau

dimanche 3 avril 2011, mise à jour mercredi 8 août 2012, par Maïeul
Suivre la vie du site RSS 2.0 Forum

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.

\frame{                                                                                                 % Une diapositive
        \begin{center}                                                                                  % On veut que notre graphe soit centré
        \frametitle{Étymologie}                                                                                % Titre de la diapositive
                \begin{tikzpicture}                                                                             % Graphisme
                        \node (M) at (0,0) {\textcolor{red}{Apo} - \textcolor{blue}{cryphe}};   % Mot à définir      
                        \node (A) at (-3,-3) {\textcolor{red}{Ἀπο} : \emph{loin}};                  % Première partie du mot
                        \node (K) at (3,-3) {\textcolor{blue}{Κρύτω} : \emph{cacher}};             % Seconde partie du mot
                       
                       
                        \draw[->,color=red] (M.south west) -- (A);                                      % Flèche reliant  Apo à Ἀπο
                        \draw[->,color=blue] (M.south east) -- (K);                                     % Flèche reliant  cryphe à Κρύτω

                \end{tikzpicture}
        \end{center}
}

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 :

\frame{                                                                                                 % Une diapositive
        \begin{center}                                                                                  % On veut que notre graphe soit centré
        \frametitle{Étymologie}                                                                                % Titre de la diapositive
                \begin{tikzpicture}                                                                             % Graphisme
                        \node (M) at (0,0) {\textcolor{red}{Apo} - \textcolor{blue}{cryphe}};   % Mot à définir : l'afficher sur toutes les couches  
                        \node<2-> (A) at (-3,-3) {\textcolor{red}{Ἀπο} : \emph{loin}};                      % Première partie du mot : l'afficher à partir de la couche numéro  2
                        \node<3-> (K) at (3,-3) {\textcolor{blue}{Κρύτω} : \emph{cacher}};         % Seconde partie du mot : : l'afficher à partir de la couche numéro  3
                       
                       
                        \draw<2->[->,color=red] (M.south west) -- (A);                                  % Flèche reliant  Apo à Ἀπο : l'afficher à partir de la couche numéro 2
                        \draw<3->[->,color=blue] (M.south east) -- (K);                                         % Flèche reliant  cryphe à Κρύτω : l'afficher à partir de la couche numéro 3

                \end{tikzpicture}
        \end{center}
}

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.

\frame{                                                                                                 % Une diapositive
        \begin{center}                                                                                  % On veut que notre graphe soit centré
        \frametitle{Étymologie}                                                                                % Titre de la diapositive
                \begin{tikzpicture}                                                                             % Graphisme
                        \node[color=white] at (3,-3) {Κρύτω : \emph{cacher}};                      % Texte en blanc pour permettre d'avoir les bonnes dimensions dès le début
                        \node[color=white] at (-3,-3) {{Ἀπο} : \emph{loin}};                                % Idem
                       
                        \node (M) at (0,0) {\textcolor{red}{Apo} - \textcolor{blue}{cryphe}};   % Mot à définir : l'afficher sur toutes les couches  
                        \node<2-> (A) at (-3,-3) {\textcolor{red}{Ἀπο} : \emph{loin}};                      % Première partie du mot : l'afficher à partir de la couche numéro  2
                        \node<3-> (K) at (3,-3) {\textcolor{blue}{Κρύτω} : \emph{cacher}};         % Seconde partie du mot : : l'afficher à partir de la couche numéro  3
                       
                       
                        \draw<2->[->,color=red] (M.south west) -- (A);                                  % Flèche reliant  Apo à Ἀπο : l'afficher à partir de la couche numéro 2
                        \draw<3->[->,color=blue] (M.south east) -- (K);                                         % Flèche reliant  cryphe à Κρύτω : l'afficher à partir de la couche numéro 3

                \end{tikzpicture}
        \end{center}
}

P.-S.

Pour débuter avec Beamer, voir ce tutoriel.

Notes

[1De même pour la hauteur

Vos commentaires

  • Le 5 octobre 2011 à 09:25, par Rasolof En réponse à : Beamer et TikZ sont dans un bateau

    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,

  • Le 5 octobre 2011 à 09:31, par Maïeul En réponse à : Beamer et TikZ sont dans un bateau

    j’utilise texlive sous mac qui intègre tikz.

  • Le 5 octobre 2011 à 10:46, par Rasolof En réponse à : Beamer et TikZ sont dans un bateau

    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.

  • Le 5 octobre 2011 à 11:35, par Maïeul En réponse à : Beamer et TikZ sont dans un bateau

    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

  • Le 18 octobre 2011 à 19:24, par Rasolof En réponse à : Beamer et TikZ sont dans un bateau

    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.

  • Le 18 octobre 2011 à 21:39, par Maïeul En réponse à : Beamer et TikZ sont dans un bateau

    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

  • Le 31 octobre 2011 à 10:12, par Rasolof En réponse à : Beamer et TikZ sont dans un bateau

    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.

  • Le 31 octobre 2011 à 11:30, par Maïeul En réponse à : Beamer et TikZ sont dans un bateau

    peut tu fournir le code complet, en le mettant entre <code> et </code> ? peut tu également fournir le message d’erreur exact ?

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

À propos

Titulaire d’un doctorat en théologie et d’un doctorat en histoire, sous la direction conjointe de Frédéric Amsler et d’Élisabeth_Malamut, je commence à partir du 1er août 2017 un travail d’édition critique des Actes de Barnabé.

Dans le cadre de la rédaction de mon mémoire de master puis de ma thèse de doctorat, j’ai été emmené à utiliser LaTeX, et j’ai donc décider de partager mes techniques. En effet, au cours de mes premiers apprentissages, j’ai découvert que les ressources indiquant les outils pour l’utilisation de LaTeX en sciences humaines étaient rares. Ceci m’a conduit à maintenir ou créer plusieurs packages LaTeX et à donner plusieurs formations.

Par ailleurs, je suis membre actif de la communauté SPIP, au sein de laquelle j’administre le site Spip-Contrib. Je propose sur ce site quelques notes sur SPIP, en général à destination de webmestre.

Il m’arrive également de faire un petit peu de Python, de temps en temps.

Enfin, je tiens un blog de réflexions politiques et religieuses.

Maïeul