Wie zeichne ich Witten-Diagramme in XeTex?

Wie zeichne ich Witten-Diagramme in XeTex?

Ich versuche, die folgende schematische Gleichung von Witten-Diagrammen in XeTex zu reproduzieren. Ich habe das TikZ-Paket heruntergeladen, bin aber noch Anfänger. Für jede Hilfe wäre ich dankbar!Bildbeschreibung hier eingeben

Antwort1

Wenn Sie Unmengen solcher Diagramme haben, ist es möglicherweise besser, eine Umgebung zu definieren, die den ausgefüllten Kreis zeichnet, die Grundlinie des Diagramms entsprechend festlegt und andere Dinge tut. Diese Antwort ist insofern übertrieben, als sie Ihnen zwei Möglichkeiten zeigt, Wiederholungen zu vermeiden:

  1. Definieren Sie eine neue Umgebung.
  2. verwenden execute at begin tikzpicture.

In der Praxis verwendet man beides, aber dies dient nur zur Veranschaulichung dieser Optionen. Übrigens, soweit ich weiß, setzt Witten das Differential d-S aufrecht.

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

Bildbeschreibung hier eingeben

Und hier ist eine zweite Version, die das environPaket verwendet und das Fehlende einschließt G(mille grazie @Sebastiano). Hier sind die Diagramme vertikal zentriert.

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

Bildbeschreibung hier eingeben

Beachten Sie, dass Sie dies mit dem Paket kombinieren können, tikz-feynmanwenn Sie einige Standardelemente des Feynman-Diagramms hinzufügen möchten.

Antwort2

Eine weniger anspruchsvolle Lösung:

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

Bildbeschreibung hier eingeben

verwandte Informationen