Flèche vers le haut et vers le bas
dans LaTeX
Bonjour
Une fois de plus, je suis confronté à une nouvelle difficulté (une de plus !).
J'essaie de caser dans un tableau qui contiendra plusieurs lignes, une flèche vers le haut et une flèche vers le bas partant d'un même point.
J'ai programmé le code suivant.
Je ne pose plus la question si c'est possible... mais comment faire ce genre de trucs, qui peut-être très utile pour les valeurs absolues, quand on envisage deux cas possibles...
[Contenu du pdf joint. AD]
Une fois de plus, je suis confronté à une nouvelle difficulté (une de plus !).
J'essaie de caser dans un tableau qui contiendra plusieurs lignes, une flèche vers le haut et une flèche vers le bas partant d'un même point.
J'ai programmé le code suivant.
\begin{center} \begin{tabular}{|ccc|} \hline & &$ 10^{50}-10^{100}$\\ \og$+\infty-(+\infty)$\fg & $\nearrow$ $\searrow$&\\ & &$ 10^{100}-10^{50}$\\ \hline \end{tabular} \end{center}Comme vous pouvez le voir, ça ne correspond pas du tout à ce que j'attendais... (Cf pièce jointe).
Je ne pose plus la question si c'est possible... mais comment faire ce genre de trucs, qui peut-être très utile pour les valeurs absolues, quand on envisage deux cas possibles...
[Contenu du pdf joint. AD]
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
On pourrait déplacer verticalement les flèches avec \raisebox (c'est fait dans l'exemple ci-dessous, qui utilise cependant une approche différente de la tienne, sans tabular — c'est discutable). Spontanément, avec les choses prévues par LaTeX2e pour manipuler les longueurs et les boîtes, je ferais comme ça : Je suis certain que l'on peut écrire cela plus élégamment et de manière bien plus souple avec TikZ (forme, taille des flèches...), mais ce n'est pas moi le gourou TikZ ici. :-P
Noter l'utilisation du package xspace, qui coopère bien avec les commandes \og et \fg de babel-french.
Voici une solution avec TikZ (sans doute maladroite) :
Les '.. controls XX and YY ..' ci-dessus produisent des courbes de Bézier. Il y a une méthode un peu plus simple avec l'opérateur 'to', qui permet d'indiquer l'inclinaison des tangentes au départ et à l'arrivée, en degrés (attention, c'est comme si on changeait le sens de parcours entre 'out' et 'in') :
Si l'on veut les flèches droites, on peut faire quelque chose comme ça :
Il est possible d'améliorer un peu le positionnement des formules haut et bas :
Remarque : j'ai donné les noms 'haut' et 'bas' à deux nodes dans chacune de ces figures, mais on pourrait supprimer cela, puisque je ne me sers pas de ces noms dans l'état actuel des figures. Disons que c'est une sorte de commentaire.
Edit :
- cet espace n'a pas forcément la même largeur qu'une espace intermot de la police courante (ça a tout de même l'air très proche pour la police utilisée dans mes tests) ;
- il n'est pas étirable, contrairement à une espace intermot.
L'espace que l'on voit précéder « $+\infty-(+\infty)$ » dans les exemples du message précédent est dû aux bordures intérieure et extérieure[1] du nœud TikZ contenant « $+\infty-(+\infty)$ ». On peut les supprimer en utilisant 'inner sep=0, outer sep=0' comme suit et insérer une véritable espace intermot avant la figure : J'ai par ailleurs légèrement translaté le point de départ de chacune des flèches, puisqu'il n'y a plus de bordure autour du nœud TikZ contenant « $+\infty-(+\infty)$ » (sinon, les flèches sont « collées » au nœud).[1] Si l'on passe l'option 'draw' au nœud TikZ contenant « $+\infty-(+\infty)$ », un rectangle est tracé qui contient le texte. Ce rectangle est séparé du texte par la bordure intérieure (inner sep) et entouré d'une bordure extérieure (outer sep). Normalement, les flèches partant d'un nœud sans plus de précisions s'appuient sur la bordure extérieure, si j'ai bien compris.
Je rentre de vacances et je vois ces supers flèches "haut design" ! C'est la grande classe.
j'ai essayé de l'utiliser dans un tableau, mais les flèches n'ont plus les mêmes longueurs...
Y a t-il un moyen d'aligner les flèches verticalement et qu'elles aient la même longueur ?
J'ai l'impression d'en demander un peu trop... peut-être...
PS : merci à vous deux ! C'est top !
C'est parce que l'origine du repère (0, 0) était au centre du nœud « $+\infty-(+\infty)$ » (resp. « $\frac{\infty}{\infty}$ »), dont la position horizontale n'est pas la même dans les deux cas, vu que les deux n'ont pas la même largeur. Un remède consiste donc à faire en sorte que l'ancre mid west de ces deux nœuds soit en (0, 0) :
Même chose avec x=4 au lieu de x=3 pour l'ancre west des formules de droite :
J'ai utilisé booktabs pour avoir des lignes horizontales plus jolies. Pas besoin de trois colonnes dans ton tableau, non plus.
Je dessine et je scanne...
[Contenu du pdf joint. AD]
On pourrait aussi faire avec le package multirow (sans doute aussi avec makecell).
Edit : il manquait un % dans la définition de n1.
Si je comprends bien, il y a maintenant un autre éditeur de dessin, "tikz" pour ne pas le citer, qui vient compléter Latex ?
Tu dois être le seul, Brian, à t'en servir de ce truc de fou, non ?
Mille bravos !
Pour fermer à droite et à gauche le tableau, il suffit de rajouter | à côté de la lettre L ? (dans tabular...)
Avant, j'utilisais MetaPost pour les schémas. Je préfère le langage MetaPost au langage TikZ du point de vue de la syntaxe et de sa fonctionnalité assez remarquable de résolution à la volée de tout système linéaire (de Cramer) entre les variables inconnues, mais il y a beaucoup plus de choses toutes faites pour TikZ que pour MetaPost (les bibliothèques) et surtout, ici, on a besoin des fonctions très intéressantes d'intégration de TikZ au sein d'un document LaTeX. TikZ a aussi quelques avantages sur MetaPost essentiellement dus à son plus jeune âge et au fait qu'il s'appuie sur le langage de bas niveau PGF. Ceci permet à TikZ de bien gérer la transparence, alors que la seule méthode que j'ai vue pour ça avec MetaPost relève de la bidouille, à mon avis.
Je propose une version un peu améliorée, plus paramétrable, avec un positionnement mid west qui rend mieux avec les fractions et surtout une hauteur plus uniforme des lignes grâce à l'utilisation de bigstrut et multirow. Cette hauteur est réglable en jouant sur Voici le code :
Noter que, comme dans le cas précédent, les noms des nœuds donnés dans les figures TikZ qui ont l'option remember picture sont un peu comme des \label :
Edit : petites précisions :
J'ai l'impression de visiter les pyramides d'Egypte avec ces codes hiéroglyphiques !
J'ai remplacé, comme tu me l'as suggéré, la ligne :" \begin{tabular}{@{}r@{\hspace*{3em}}l@{}}"
par : "\begin{tabular}{|r@{\hspace*{3em}}l|}", mais ca fait des espaces vides verticalement et non un encadré bien net.
Je me contenterai de lignes horizontales...
PS : J'avais adoré l'interprétation de Dustin Hoffman dans Kramer contre Kramer ; sans doute son meilleur rôle...
P. S. : j'ai ajouté des explications à la fin de mon message précédent.