Wie schreibt man einen Überpfeil zwischen zwei Symbolen in einer Formel?

Wie schreibt man einen Überpfeil zwischen zwei Symbolen in einer Formel?

Wie schreibe ich in einer Formel einen Überpfeil zwischen zwei Symbole?

Ich erstelle derzeit einen Bericht über relationale Algebra und Normalisierung für Datenbanken und muss dabei eine Abhängigkeit zwischen zwei Elementen in derselben Tabelle darstellen, etwa so:

Bildbeschreibung hier eingeben

Beachten Sie, dass dieser Pfeil auch von a nach d zeigen könnte oder dass im selben Ausdruck mehrere davon vorkommen könnten, beispielsweise von a nach e und von a nach d und von c nach e.

Gibt es eine Möglichkeit, dies zu tun?

Antwort1

Eine Lösung mit pstricks: Die zu verknüpfenden Elemente werden als Knoten definiert und ich füge Knotenverbindungen hinzu:

 \documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pst-node}
\usepackage{auto-pst-pdf}

    \begin{document}

\[ \begin{pspicture}
 T_{3,1}(\Rnode{d}{d}, \Rnode{e}{e}, \Rnode{a}{a}, \Rnode{c}{c})
 \psset{linewidth=0.4pt, linejoin=1, arrows=->, arrowinset=0.15, angle=90, nodesep=1pt, arm=1.1ex}
 \ncbar[offsetA=1pt]{a}{e} \ncbar[offsetA=-1pt, arm=1.3ex, nodesepB=-1pt]{a}{d}\ncbar[angle=-90]{c}{e}
 \end{pspicture} \]

  \end{document} 

Bildbeschreibung hier eingeben

Antwort2

Eine reine TikZ-Lösung:

\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\newcommand{\mypoint}[2]{\tikz[remember picture]{\node[inner sep=0pt](#1){$#2$};}}

\begin{document}
    \[
    T_{3,1}(d,\mypoint{tohere}{e},\mypoint{fromhere}{a},c)
    \]

    \tikz[overlay, remember picture]{\draw[-{Stealth[round]}] ([yshift=2pt]fromhere.north) -- ++(0,7pt) -| ([yshift=2pt]tohere.north);}

\end{document}

Bildbeschreibung hier eingeben

Antwort3

Wenn Sie nur einen Pfeil über zwei benachbarte Buchstaben setzen möchten, können Sie verwenden \overset. Dies funktioniert jedoch nicht, wenn einer der Buchstaben Teil eines unterstrichenen Abschnitts ist.

Ein anderer Ansatz (der aber sehr ähnlich istdiese) mit tikzmarks könnte sein:

\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{tikz}
\usetikzlibrary{tikzmark}

\begin{document}

$T_{3,1}(d,\overset{\curvearrowleft}{e,a},c)$

\bigskip

$T_{3,1}(\underline{d,e\tikzmark{e}},a\tikzmark{a},c)$
\tikz[overlay,remember picture]{ \draw[<-] ([xshift=-.5ex,yshift=1.5ex]pic cs:e) to[bend left=60] ([xshift=-.5ex,yshift=1.5ex]pic cs:a); }

\bigskip

$T_{3,1}(\underline{d\tikzmark{d},e},a\tikzmark{aa},c)$
\tikz[overlay,remember picture]{ \draw[<-] ([xshift=-.5ex,yshift=2ex]pic cs:d) to[bend left] ([xshift=-.5ex,yshift=2ex]pic cs:aa); }


\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen