Page 1 sur 1

Flèches de taille variable

MessagePosté: Dimanche 01 Avril 2018, 15:31
par _Y_B_
Bonjour,
Je me demandais s'il existait un package ou une "\newcommand" qui permettait de régler la taille des flèches "\rightarrow" en fonction de la longueur des objets qui sont au dessus ou en dessous.
Pour écrire mes cours, j'utilise la commande \ra définie comme telle :
Code: Tout sélectionner
\newcommand{\ra}{
   \ensuremath{
      \displaystyle\mathop{ \rightarrow }
   }
}


Ainsi, lorsque je veux écrire "tend vers, lorsque x tend vers 0", j'écris :
Code: Tout sélectionner
\ra_{ x \ra 0 }

Cependant, la taille de la flèche est toujours la même : petite, et j'aimerais qu'elle se règle en fonction du texte au-dessus ou en-dessous (dans l'exemple le texte en question est "x \ra 0")
J'ai envisagé le cas de mettre "\longrigtharrow" au lieu de "\rightarrow" dans la commande, mais il arrive que des arguments au-dessus ou en-dessous de la flèche soit encore plus grand...

Pouvez-vous m'aider ?

Re: Flèches de taille variable

MessagePosté: Dimanche 01 Avril 2018, 16:15
par marco56
underrightarrow ou overrightarrow ?

Re: Flèches de taille variable

MessagePosté: Dimanche 01 Avril 2018, 17:28
par balf
La solution existe déjà : c'est \xleftrightarrow[argument optionnel]{argument obligé}, défini par amsmath.
L'argument optionnel est placé sous la flèche, l'obligé au-dessus et la longueur de la flèche s'adapte au contenu des arguments.
Il existe aussi \xleftarrow et \xleftrightarrow.
L'excellent document d'Herbert Voß, Math mode indique comment en confectionner d'autres, comme \xRightarrow (§38, Extensible arrows).

Voici une démo :
Code: Tout sélectionner
    \documentclass[10pt,a4paper]{article}
    \usepackage[utf8]{inputenc}
    \usepackage{mathtools, old-arrows}

    \begin{document}

    \[ \ln\frac{ (x + 1)^2}{x^2 + 1}\xrightarrow[\text{by continuity of $\ln$}]{x\to \infty}\ln 1 = 0\]%

    \[ \ln\frac{ (x + 1)^2}{x^2 + 1}\xrightarrow[\substack{x\to \infty \\\text{(by continuity of $\ln$)}}]{}\ln 1 = 0\]%

    \end{document}
Résultat en p.j.

B. A.

Re: Flèches de taille variable

MessagePosté: Dimanche 01 Avril 2018, 17:35
par _Y_B_
Merci,
C'est ce que je voulais.
Y-a-t'il un moyen de faire passer les arguments entre crochets/accolades par des symboles tels que sub ou sup :
Au lieu d'écrire :
Code: Tout sélectionner
\xrightarrow[dessous]{dessus}


écrire :

Code: Tout sélectionner
\xrightarrow_{dessous}^{dessus}


et ce avec la possibilité de ne pas mettre les arguments ?
C'est dans l'optique de pouvoir écrire plus vite.

Re: Flèches de taille variable

MessagePosté: Dimanche 01 Avril 2018, 18:16
par balf
A priori, je ne vois pas. Mais le fait de pouvoir taper plus ou moins vite est d'abord un problème d'éditeur. Il doit bien y avoir un moyen, avec n'importe quel éditeur moderne, de taper, disons, \xra_ et d'obtenir aussitôt \xrightarrow[]{}, et le curseur au milieu du crochet. (En passant, le crochet peut ne pas être écrit, comme tous les arguments optionnels).

B. A.

Re: Flèches de taille variable

MessagePosté: Dimanche 01 Avril 2018, 19:34
par _Y_B_
D'accord, merci de ton aide

Re: Flèches de taille variable

MessagePosté: Lundi 02 Avril 2018, 08:42
par rebouxo
_Y_B_ a écrit:
Code: Tout sélectionner
\xrightarrow_{dessous}^{dessus}


et ce avec la possibilité de ne pas mettre les arguments ?
C'est dans l'optique de pouvoir écrire plus vite.


C'est possible, par contre je n'ai pas réussi à le faire avec \xrightarrow.

Code: Tout sélectionner
\documentclass[10pt,french]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{amsmath}

\def\ra_#1^#2{\xrightarrow[#1]{#2}}
\begin{document}

$\ra_{\text{quand $x$ tend vers 0}}^3$
\end{document}


Outre que comme Balf je pense qu'il vaudrait mieux utiliser les possibilités de l'éditeur, je ne suis pas sur que l'on gagne du temps. Dès qu'il y a plus d'une lettre les accolades deviennent obligatoires. Bon, l'exercice était intéressant.

Olivier

Re: Flèches de taille variable

MessagePosté: Lundi 02 Avril 2018, 15:00
par _Y_B_
Merci, rebouxo, ta solution fonctionne :)

Re: Flèches de taille variable

MessagePosté: Lundi 02 Avril 2018, 17:20
par rebouxo
_Y_B_ a écrit:Merci, rebouxo, ta solution fonctionne :)

Je ne recommanderais pas de s'en servir en production. Je ne maîtrise absolument d'éventuels effet de bord. Je recommande chaudement d'utiliser les possibilités de son éditeur (les snippets de TeXworks sont parfaits pour cela). TeXmaker et TeXstudio n'en n'ont pas assez, à mon avis.

Olivier