XeTex で Witten 図を描くにはどうすればいいですか?

XeTex で Witten 図を描くにはどうすればいいですか?

私は、XeTex で Witten 図の次の図式方程式を再現しようとしています。TikZ パッケージをダウンロードしましたが、まだ初心者です。どなたか助けていただければ幸いです。ここに画像の説明を入力してください

答え1

このような図がたくさんある場合は、塗りつぶされた円を描画し、図のベースラインを適切に設定し、その他の処理を実行する環境を定義する方がよいでしょう。この回答は、繰り返しを回避する 2 つの方法を示しているという意味で、やりすぎです。

  1. 新しい環境を定義します。
  2. 使用execute at begin tikzpicture

実際にはどちらか一方を使用しますが、これはこれらのオプションを説明するためのものです。ちなみに、私の知る限り、Witten は微分ds を縦書きでタイプセットします。

\documentclass{article} 
\usepackage{tikz}
\tikzset{Witten diagram/.style={execute at begin picture={%
\draw[blue,fill=blue!20] circle[radius=\pgfkeysvalueof{/tikz/Witten/radius}];
\path node (X){\phantom{X}};
},baseline={(X.base)}},vertex/.style={circle,fill,inner sep=1.5pt,node
contents={}},
Witten/.cd,radius/.initial=1.5cm}
\newenvironment{wittendiagram}[1][]{\begin{tikzpicture}[Witten diagram,#1]}{\end{tikzpicture}}
\begin{document}
\[\begin{wittendiagram}
 \draw (-1,0) node[vertex] -- (1,0) node[vertex]; 
\end{wittendiagram}=\int\!\mathrm{d}\nu\,g(\nu)\,
\begin{wittendiagram}
 \draw[dashed] (-1,0) node[vertex] -- (90:\pgfkeysvalueof{/tikz/Witten/radius})
  node [midway,left]{$K$} node[vertex] -- (1,0) node [midway,right]{$K$}
  node[vertex];
\end{wittendiagram}\]
\end{document}

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

environそして、こちらはパッケージを使用し、不足している部分 (mille grazie @Sebastiano) を含む2 番目のバージョンですG。ここでは、図が垂直方向に中央揃えになっています。

\documentclass{article} 
\usepackage{environ}
\usepackage{tikz}
\tikzset{Witten diagram/.style={execute at begin picture={%
\draw[blue,fill=blue!20] circle[radius=\pgfkeysvalueof{/tikz/Witten/radius}];
}},vertex/.style={circle,fill,inner sep=1.5pt,node
contents={}},
Witten/.cd,radius/.initial=1.5cm}
\NewEnviron{wittendiagram}[1][]{\vcenter{\hbox{\begin{tikzpicture}[Witten diagram,#1]%
\BODY
\end{tikzpicture}}}}
\begin{document}
\[\begin{wittendiagram}
 \draw (-1,0) node[vertex] -- (1,0) node[midway,above]{$G$} node[vertex]; 
\end{wittendiagram}=\int\!\mathrm{d}\nu\,g(\nu)\,
\begin{wittendiagram}
 \draw[dashed] (-1,0) node[vertex] -- (90:\pgfkeysvalueof{/tikz/Witten/radius})
  node [midway,left]{$K$} node[vertex] -- (1,0) node [midway,right]{$K$}
  node[vertex];
\end{wittendiagram}\]
\end{document}

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

tikz-feynman標準的なファインマン図の要素を追加する場合は、これをパッケージと組み合わせることができることに注意してください。

答え2

あまり洗練されていない解決策:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{positioning}
\tikzset{
    mybluenode/.style={
        draw=blue,fill=blue!30, circle, minimum width=2cm, inner sep=0pt
        },
    myblacknode/.style={
        circle, inner sep=1pt, fill=black
        },
    }
\begin{document} 
\begin{tikzpicture}
\node[mybluenode] (first) {};
\draw ([xshift=-.5cm]first.center) node [myblacknode] {} -- node[above] {$G$} ([xshift=.5cm]first.center) node [myblacknode] {}; 
\node[right =4pt of first.east] (second) {$= \displaystyle\int \mathrm{d}\,\nu g(\nu)$};
\node[mybluenode, right =4pt of second.east] (third) {};
\draw[dashed] ([xshift=-.5cm]third.center) node [myblacknode] {} -- node[left] {$K$} (third.north) node [myblacknode] {} -- node[right] {$K$} ([xshift=.5cm]third.center) node [myblacknode] {}; 
\end{tikzpicture} 
\end{document}

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

関連情報