XeTex에서 Witten 다이어그램을 그리는 방법은 무엇입니까?

XeTex에서 Witten 다이어그램을 그리는 방법은 무엇입니까?

XeTex에서 Witten 다이어그램의 다음 다이어그램 방정식을 재현하려고 합니다. TikZ 패키지를 다운로드했지만 아직 초보자입니다. 어떤 도움이라도 주시면 감사하겠습니다!여기에 이미지 설명을 입력하세요

답변1

그러한 다이어그램이 많다면 채워진 원을 그리고 다이어그램의 기준선을 적절하게 설정하는 등의 작업을 수행하는 환경을 정의하는 것이 더 나을 수 있습니다. 이 답변은 반복을 피하는 두 가지 방법을 보여 준다는 점에서 과잉입니다.

  1. 새로운 환경을 정의합니다.
  2. 사용 execute at begin tikzpicture.

실제로는 둘 중 하나를 사용하지만 이는 이러한 옵션을 설명하기 위한 것입니다. 그런데 AFAIK Witten은 차동 장치 d를 똑바로 조판합니다.

\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패키지를 사용하고 누락된 부분을 포함하는 두 번째 버전이 있습니다 G(mille grazie @Sebastiano). 여기서 다이어그램은 세로 중앙에 있습니다.

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

여기에 이미지 설명을 입력하세요

관련 정보