Sous TikZ, on sait depuis longtemps que créer des connecteurs entres des boites de texte est très facile. Mais qu’en est-il si les mots (ou objets) à connecter entre eux sont placés au sein d’un paragraphe ? Aujourd’hui, je vais vous montrer comment ajouter ses flèches en surcouche du texte.
Table des matières
Exemple
Code
\usepackage{tikz} \tikzset{every picture/.style={execute at begin picture={\shorthandoff{:;!?};}}} \tikzstyle{every picture}+=[remember picture] \tikzstyle{na} = [shape=rectangle,inner sep=0pt] % Commandes pour les flèches textuelles \newcommand{\ptFleche}[2]{ % Déclaration d'une extrémité de flèche \tikz[baseline=(#1.base)]\node[na](#1){#2}; } \newcommand{\Fleche}[5][thick]{ % Dessin de la flèche \begin{tikzpicture}[overlay] \path[->,#1](#2) edge [out=#4, in=#5] (#3); \end{tikzpicture} } \begin{document} Je dessine une flèche entre le mot\ptFleche{mot1}{toto}et un autre mot beaucoup plus loin, par exemple\ptFleche{mot2}{lapin}. \Fleche{mot1}{mot2}{-90}{-20} \end{document} |
Cette exemple donnera donc :
Explications
Les points de départ et d’arrivée de chaque flèche sont définis par la commande \ptFleche
. Le premier argument est le label à attribuer audit point, le deuxième étant simplement le mot à afficher. Il est intéressant de distinguer le label du contenu, car celui-ci peut alors être de tout type (ensemble de mots, équation etc.).
Ensuite, il vous faut placer la commande \Fleche{mot1}{mot2}{-90}{-20}
, où les différents arguments sont :
- label du point de départ
- label du point d’arrivée
- angle de départ
- angle d’arrivée
Cette commande peut être placée à peu près n’importe où après la définition des labels. Comme on est un peu malins, on a pensé à utiliser un paramètre optionnel lors de la définition de cette commande, paramètre qui sert à modifier facilement le style de flèche. Exemple pour le cas utilisé en introduction :
\Fleche[red,thick,dashed]{latex}{tikz}{-90}{0} \Fleche[blue,thick]{sigma}{dolor}{180}{90} |
Puisque nous utilisons ici des labels, il faut compiler deux fois pour que LaTeX commence par mettre à jour les coordonnées des points de départ avant de pouvoir positionner tracer les flèches.
Utilisation dans Beamer
Naturellement, je vous déconseille d’utiliser une telle esbroufe dans un rapport ou un article un minimum scientifique… par contre, dans Beamer ou un poster, on peut se faire plaisir ! Exemple donc d’utilisation de cette commande dans un Beamer :
% Avec le même préambule que précédemment \begin{block}{Matrice de déformation} \begin{equation} \mathbb{E}_{r\theta z} = \begin{pmatrix} \ptFleche{valeur2}{-0,9698} & 0,1704 & -0,0149\\ 0,1704 & -0,0223 & 0,0894\\ -0,0149 & \ptFleche{valeur1}{0,0894} & 0,9922 \end{pmatrix} \cdot\varepsilon_{ZZ} \end{equation} \end{block} \begin{exampleblock}{}<2-> \begin{equation*} \ptFleche{equation2}{$\varepsilon_{rr}$} = \frac{\partial U_r}{\partial r} \qquad \ptFleche{equation1}{$\varepsilon_{\theta z}$} = \frac{1}{2}\cdot\left( \frac{\partial U_\theta}{\partial z} + \frac{1}{r}\cdot\only{\cancel}{\frac{\partial U_z}{\partial \theta}} \right) \end{equation*} \only<3->{ \Fleche[->,blue,thick]{valeur2}{equation2}{180}{180} \Fleche[->,red,thick]{valeur1}{equation1}{-90}{90} } \end{exampleblock} |
Comme on le voit dans le code ci-dessus, il est même possible de faire des apparitions progressives des flèches grâce aux overlays.