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

La commande \xrightarrow de l’extension 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 :

% !TEX noedit
$\xrightarrow[\text{au-dessous (plus long)}]{\text{au-dessus}}$
\LARGE
$\xrightarrow[\text{au-dessous (plus long)}]{\text{au-dessus}}$
% !TEX noedit
$\xrightarrow[\text{au-dessous}]{\text{au-dessus (pas plus court)}}$
\LARGE
$\xrightarrow[\text{au-dessous}]{\text{au-dessus (pas plus court)}}$

Comme vous l’imaginez, il y a une commande \xleftarrow équivalente :

% !TEX noedit
$\xleftarrow[\text{au-dessous}]{\text{au-dessus}}$
\LARGE
$\xleftarrow[\text{au-dessous}]{\text{au-dessus}}$

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… mais pour que ça marche, vous devrez charger le package mathtools :

% !TEX noedit
\usepackage{mathtools}
$\xRightarrow[\text{au-dessous}]{\text{au-dessus}}$
\documentclass{article}
\usepackage{mathtools}
\pagestyle{empty}
\begin{document}
\LARGE
$\xRightarrow[\text{au-dessous}]{\text{au-dessus}}$
\end{document}

Flèche à deux pointes#

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

% !TEX noedit
\usepackage{amsmath}

\newcommand\dhrightarrow{%
  \mathrel{\ooalign{$\rightarrow$\cr%
  $\mkern3.5mu\rightarrow$}}
}

\newcommand\dhxrightarrow[2][]{%
  \mathrel{\ooalign{$\xrightarrow[#1\mkern4mu]{#2\mkern4mu}$\cr%
  \hidewidth$\rightarrow\mkern4mu$}}
}
\documentclass{article}
\usepackage{amsmath}

\newcommand\dhrightarrow{%
  \mathrel{\ooalign{$\rightarrow$\cr%
  $\mkern3.5mu\rightarrow$}}
}

\newcommand\dhxrightarrow[2][]{%
  \mathrel{\ooalign{$\xrightarrow[#1\mkern4mu]{#2\mkern4mu}$\cr%
  \hidewidth$\rightarrow\mkern4mu$}}
}

\pagestyle{empty}
\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}

Source : Two-headed version of \xrightarrow.