Beamer : diagramme par étapes
dans LaTeX
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 !
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 !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
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 :-().
$$\xymatrix { A\ar[r] &\phantom{B} } $$
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 :