Beamer : simplifier le code de certaines animations

Rédigé par Alain Olivetti - -
Le passage de Power Point (ou équivalent ;-) ) vers Beamer est souvent frustrant; ce dernier permettant beaucoup moins d'animations. Certaines animations sont toujours possibles mais le code peut rapidement se compliquer... Voila une petite astuce pour condenser certaines animations qui utilise la commande \only. Prenons l'exemple suivant:
  • À la diapositive 1, vous affichez le classique ``Hello world!'' :
    \documentclass{beamer}
    \begin{document}
    \begin{frame}
    Hello world!
    \end{frame}
    \end{document}
  • À la diapositive 2, vous voulez afficher le classique ``Hello world!'' mais cette fois en gras. Comme toujours avec LaTeX et donc Beamer, il a plusieurs façon de faire. Voici, ci-dessous, deux exemples.Le premier consiste à utiliser deux diapositives :
    \documentclass{beamer}
    \begin{document}
    \begin{frame}
    Hello world!
    \end{frame}
    \begin{frame}
    \textbf{Hello world!}
    \end{frame}
    \end{document}
    Le second consiste à compacter les deux diapositives en une seule grâce à la commande \only.
    \documentclass{beamer}
    \begin{document}
    \begin{frame}
    \only<1>{Hello world!}
    \only<2>{\textbf{Hello world!}}
    \end{frame}
    \end{document}
La commande \only simplifie le code en nous évitant de faire une diapositive par animation. Cela prenant toute son importance si l'on doit modifier plusieurs fois une diapositive. Pour dix animations, il faut créer dix diapositives. Si maintenant, vous modifiez la première diapositive pour changer une phrase, vous serez obligé de le faire sur les neuf autres... L'utilisation de \only permet d'éviter ce travail fastidieux. Pour finir, il est possible de simplifier encore le code de la manière suivante :
\documentclass{beamer}
\begin{document}
\begin{frame}
\only<2>{\textbf}{Hello world!}
\end{frame}
\end{document}
À la première diapositive, LaTeX ``lit'':
{Hello world!}
Tandis que pour la seconde, LaTeX ``lit'' :
\textbf{Hello world!}
À noter que cette astuce fonctionne pour la commande \only mais pas pour la commande \onslide