Comment ajuster la longueur d’une flèche par rapport à celle d’un texte ?#

1.  Avec l’extension mathtools#

1.1.  Flèche simple#

La commande \xrightarrow de l’extension mathtools (ou amsmath) permet de générer des flèches dont la longueur est fonction de celles du texte qui est placé au-dessus et au-dessous (et de la chaîne la plus longue lorsqu’il y a à la fois un texte au-dessus et un autre au-dessous). En voici un exemple :

\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{mathtools}

\begin{document}
\Large
$ \xrightarrow[\text{au-dessous (plus long)}]{\text{au-dessus}}
\xrightarrow[\text{au-dessous}]{\text{au-dessus (pas plus court)}} $
\end{document}

Comme vous pouvez l’imaginer, il y a une commande \xleftarrow équivalente et même une commande \xleftrightarrow (cette dernière n’existant pas dans amsmath) :

\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{mathtools}

\begin{document}
\Large
$ \xleftarrow[\text{au-dessous}]{\text{au-dessus}} \xleftrightarrow[\text{%
  au-dessous}]{\text{au-dessus}} $
\end{document}

1.2.  Flèche double#

De la même façon qu’il existe \rightarrow pour la flèche simple (\(\rightarrow\)) et \Rightarrow, avec une majuscule, pour la flèche double (\(\Rightarrow\)), vous pouvez imaginer appeler \xRightarrow pour avoir une flèche double longue. Ceci n’est cependant vrai que pour l’extension mathtools et pas amsmath :

\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{mathtools}

\begin{document}
\Large
$ \xLeftarrow[\text{au-dessous}]{\text{au-dessus}}
  \xRightarrow[\text{au-dessous}]{\text{au-dessus}}
  \xLeftrightarrow[\text{au-dessous}]{\text{au-dessus}} $
\end{document}

1.3.  Flèche à deux pointes#

Pour une flèche à deux pointes, vous devrez écrire vos propres commandes :

\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{mathtools}

  \newcommand\dhrightarrow{%
    \mathrel{\ooalign{$\rightarrow$%
      \cr$\mkern3.5mu\rightarrow$}}
  }
  \newcommand\dhxrightarrow[2][]{%
    \mathrel{\ooalign{$\xrightarrow[%
      #1\mkern4mu]{#2\mkern4mu}$\cr%
      \hidewidth$\rightarrow%
      \mkern4mu$}}
  }

\begin{document}
\begin{alignat*}{3}
  A \rightarrow   B  &&\qquad
  A \xrightarrow[C]{D} B    &&\qquad
  A \xrightarrow{\text{Long texte%
  \dots}} B
  & \\
  A \dhrightarrow B  &&\qquad
  A \dhxrightarrow[C]{D} B  &&\qquad
  A \dhxrightarrow{\text{Long texte%
  \dots}} B
  & \\
\end{alignat*}
\end{document}