¿Cómo escribir una flecha entre dos símbolos en una fórmula?

¿Cómo escribir una flecha entre dos símbolos en una fórmula?

¿Cómo se supone que debo escribir una flecha entre dos símbolos en la fórmula?

Actualmente estoy haciendo un informe con álgebra relacional y normalización para bases de datos, y lo que necesito hacer es representar una dependencia entre dos elementos de una misma tabla, algo como esto:

ingrese la descripción de la imagen aquí

Tenga en cuenta que esta flecha también podría ser de aad, o podrían ser múltiples en la misma expresión, como ae y ad yc ae.

¿Hay alguna forma de hacer esto?

Respuesta1

Una solución con pstricks: los elementos a vincular se definen como nodos y agrego conexiones de nodos:

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

ingrese la descripción de la imagen aquí

Respuesta2

Una solución TikZ pura:

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

ingrese la descripción de la imagen aquí

Respuesta3

Si solo deseas colocar una flecha sobre dos letras vecinas, puedes usar \overset. Pero esto no funcionará si una de las letras forma parte de una sección subrayada.

Otro enfoque (pero bastante similar alestos) usando tikzmarks podría ser:

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

ingrese la descripción de la imagen aquí

información relacionada