Beamer : diagramme par étapes

Bonjour,

pour une présentation Beamer, j'ai un énorme diagramme commutatif que je voudrais construire par étapes. De manière simplifiée, mettons que ce soit un carré
$\xymatrix
{A \ar[r] \ar[d] &B \ar[d] \\
C \ar[r] &D\\}
$
et que je veille que

- sur la première diapo, on ne voie que $A$ ;
- sur la deuxième diapo, les flèches partant de $A$ apparaissent, ainsi que leurs cibles et $A$ reste à la place où il était ;
- sur la troisième diapo, le reste du diagramme s'affiche et tout ce qui était présent à l'étape précédente reste à sa place.

J'ai déjà construit tout mon diagramme, et j'ai utilisé la commande \only<n-> qui permet de n'afficher un élément qu'à partir de la diapo numéro $n$.

Mais, misère ! Ce que je redoutais et avais oublié de vérifier est arrivé : LaTeX a l'air de calculer, à chaque nouvel élément, la position qu'il faut affecter à chaque truc, et donc, à chaque diapo, il décale tout (un peu comme - ce que j'imagine - des clients d'Apple lors de la sortie d'un nouvel iPhone : les seconds bousculent le premier qui s'écrase sur le côté, puis les suivants écrasent les seconds, etc.).

Est-ce qu'il y a un moyen de m'en sortir ? J'aurais bien utilisé tikz (qui, de l'avis général, d'après mes recherches, est bien meilleur) mais si je dois choisir moi-même la position de chacun de mes éléments, tout le boulot fait avec xymatrix sera perdu...

Merci pour votre aide !

Réponses

  • Ok j'ai résolu mon problème, je crois, ouf !

    En fait, \only ne réserve pas de place, mais \visible oui. Mais \visible ne marche pas pour les flèches. Alors on met des \visible pour les noeuds, et des \only pour les flèches, et ça marche si les flèches sont incluses dans l'enveloppe convexe des noeuds (mais si l'étiquette d'une flèche sort un peu, le problème revient :-().
  • Peut-être que tu peux mettre des nœuds en \phantom si tu veux qu'ils soient invisibles mais présents ?
    $$\xymatrix { A\ar[r] &\phantom{B} } $$
  • Hohoho ça pourrait être une super technique, ça : on fait un diagramme avec quatre coins \phantom !
  • Bonsoir,

    Je ne vois pas trop en quoi tikz-cd serait problématique, et la solution donnée ici me paraît bien. Avec quelques petites modifications :
    \documentclass{beamer}
    \usepackage{tikz-cd}
    
    \tikzset{
      invisible/.style={/tikz/opacity=0},
      visible on/.style={alt={#1{}{/tikz/invisible}}},
      alt/.code args={<#1>#2#3}{%
        \alt<#1>{\pgfkeys{#2}}{\pgfkeys{#3}}%
      },
    }
    
    \begin{document}
    
    \begin{frame}
    \begin{tikzcd}[ampersand replacement=\&]
    1 \arrow[visible on=<2->, r]
      \arrow[visible on=<3->, d]  \& |[visible on=<2->]| 2
                                     \arrow[visible on=<4->, d] \\
    |[visible on=<3->]| 3
    \arrow[visible on=<4->, r]    \& |[visible on=<4->]| 4
    \end{tikzcd}
    \end{frame}
    
    \end{document}
    
    123494
  • Il y a aussi la commande \uncover.
Connectez-vous ou Inscrivez-vous pour répondre.