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

Avec l'extension “mathtools”

Flèche simple

La commande \xrightarrow de l'extension mathtools (qui appelle 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{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}

<latexdoc> \documentclass{article} \usepackage[body={8cm,8cm}]{geometry} \usepackage{lmodern} \usepackage{mathtools} \pagestyle{empty} \begin{document} \Large $\xrightarrow[\text{au-dessous 
  (plus long)}]{\text{au-dessus}}
\xrightarrow[\text{au-dessous}]{%
  \text{au-dessus (pas plus%
  court)}}$ \end{document} </latexdoc>

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{mathtools}
\begin{document}
\Large
$\xleftarrow[\text{au-dessous}]{%
  \text{au-dessus}}
\xleftrightarrow[\text{%
  au-dessous}]{\text{au-dessus}}$
\end{document}

<latexdoc> \documentclass{article} \usepackage[body={8cm,8cm}]{geometry} \usepackage{lmodern} \usepackage{mathtools} \pagestyle{empty} \begin{document} \Large $\xleftarrow[\text{au-dessous}]{%
  \text{au-dessus}}
\xleftrightarrow[\text{%
  au-dessous}]{\text{au-dessus}}$ \end{document} </latexdoc>

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{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}

<latexdoc> \documentclass{article} \usepackage[body={8cm,8cm}]{geometry} \usepackage{lmodern} \usepackage{mathtools} \pagestyle{empty} \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} </latexdoc>

Flèche à deux pointes

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

\documentclass{article}
\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}

<latexdoc> \documentclass{article} \usepackage[body={8cm,8cm}]{geometry} \usepackage{lmodern} \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$}}

} \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} </latexdoc>

4_domaines_specialises/mathematiques/symboles/fleches/ajuster_la_longueur_d_une_fleche_par_rapport_a_un_texte.txt · Dernière modification: 2022/01/02 21:32 de yannick.tanguy
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0