数式内の 2 つの記号の間に上矢印を書くにはどうすればよいでしょうか?

数式内の 2 つの記号の間に上矢印を書くにはどうすればよいでしょうか?

数式内の 2 つの記号の間に上矢印を記述するにはどうすればよいでしょうか?

現在、データベースのリレーショナル代数と正規化に関するレポートを作成中ですが、同じテーブル内の 2 つの要素間の依存関係を表す必要があります。次のようになります。

ここに画像の説明を入力してください

この矢印は a から d への矢印である場合もあれば、a から e や a から d や c から e のように同じ表現内で複数の矢印である場合もあることに注意してください。

これを実行する方法はありますか?

答え1

次のようなソリューションpstricks: リンクされる要素はノードとして定義され、ノード接続を追加します。

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

ここに画像の説明を入力してください

答え2

純粋な TikZ ソリューション:

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

ここに画像の説明を入力してください

答え3

隣接する 2 つの文字の上にのみ矢印を配置したい場合は、 を使用できます\overset。ただし、文字の 1 つが下線付きのセクションの一部である場合は、この方法は機能しません。

別のアプローチ(ただし、これら) tikzmarks を使用すると次のようになります。

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

ここに画像の説明を入力してください

関連情報