Wie implementiere ich im Mathematikmodus einen Text „innerhalb“ eines Pfeils?

Wie implementiere ich im Mathematikmodus einen Text „innerhalb“ eines Pfeils?

Ich kenne \xrightarrowandere Optionen mit amsmath, aber anstatt den Text über dem Pfeil anzuzeigen, suche ich nach etwas wie dem hier:

expression --text--> another expression

Kann dies mit amsmath (oder einer anderen Bibliothek) erreicht werden?

Wenn nicht, wie kann ich dies dann selbst definieren?

Antwort1

Ich würde eine kleinere Schriftart verwenden, die vertikal zentriert in Bezug auf die mathematische Achse ist:

\documentclass{article}
\usepackage{amsmath}

\newcommand{\crightarrow}[1]{%
  \relbar\joinrel\joinrel\relbar\mathrel{\vcentertext{#1}}\rightarrow
}

\newcommand{\vcentertext}[1]{%
  \vcenter{\hbox{\scriptsize\smallstrut#1}}%
}
\newcommand{\smallstrut}{\vrule height 1.5ex depth 0.5ex width 0pt }

\begin{document}

$a_n \crightarrow{goes to} a$

$a_n \crightarrow{oes} a$

$a_n \crightarrow{bbb} a$

$a_n \crightarrow{ppp} a$

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Ich schlage Folgendes vor:

\documentclass{article}
\usepackage{amsmath}

\newcommand{\mytextarrow}[1]{\mathrel{\relbar\mkern-10mu\relbar\mkern-3.5mu\raisebox{0.25ex}{\scriptsize#1}\!\rightarrow}}

\begin{document}

\begin{equation*}
2 + 2 \mytextarrow{goes to} 4
\end{equation*}

\end{document} 

Bildbeschreibung hier eingeben

Antwort3

\usepackage{tikz}
\usetikzlibrary{arrows.meta}

\newlength\tmplength
\newcommand*\textarrow[2][3em]
  {\mathrel{\vcenter{\hbox{\settowidth\tmplength{\scriptsize#2}%
                           \tikz[font=\scriptsize]
                             \draw[->](0,0)--node[fill=white,midway]{#2}
                             ++({#1+\the\tmplength},0);}}}}

und Sie können verwenden

$a \textarrow{foo} b$
$a \textarrow[5em]{bar} b$
$a \textarrow[10em]{baz} b$

Bildbeschreibung hier eingeben

Antwort4

Bildbeschreibung hier eingeben

\documentclass{article}

\usepackage{amsmath}

\newcommand{\textarrow}[1]{-\text{#1}\to}

\begin{document}

\begin{equation*}
2 + 2 \textarrow{goes to} 4
\end{equation*}

\end{document}

verwandte Informationen