¿Cómo dibujar diagramas de Witten en XeTex?

¿Cómo dibujar diagramas de Witten en XeTex?

Estoy intentando reproducir la siguiente ecuación esquemática de diagramas de Witten en XeTex. Descargué el paquete TikZ, pero todavía soy principiante. ¡Cualquier ayuda sería apreciada!ingrese la descripción de la imagen aquí

Respuesta1

Si tiene toneladas de diagramas de este tipo, es mejor que defina un entorno que dibuje el círculo relleno y establezca la línea base del diagrama de manera adecuada, y que haga otras cosas. Esta respuesta es exagerada en el sentido de que le muestra dos formas de evitar la repetición:

  1. definir un nuevo entorno.
  2. usar execute at begin tikzpicture.

En la práctica se utiliza cualquiera de ellas, pero esto es para ilustrar estas opciones. Por cierto, AFAIK Witten escribe el diferencial den posición vertical.

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

ingrese la descripción de la imagen aquí

Y aquí hay una segunda versión que usa el environpaquete e incluye el que falta G(mille grazie @Sebastiano). Aquí los diagramas están centrados verticalmente.

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

ingrese la descripción de la imagen aquí

Tenga en cuenta que puede combinar esto con el tikz-feynmanpaquete si desea agregar algunos elementos estándar del diagrama de Feynman.

Respuesta2

Una solución menos sofisticada:

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

ingrese la descripción de la imagen aquí

información relacionada