考虑以下示例
\documentclass{memoir}
\usepackage[margin=0.05cm]{geometry}
\usepackage[force]{feynmp-auto}
\usepackage{amsmath}
\begin{document}
\setlength{\unitlength}{.09cm}
\begin{fmffile}{simple_labels}
\begin{fmfgraph*}(40,25)
\fmfleft{i}
\fmfright{o}
\fmf{gluon}{i,v1,o}
\end{fmfgraph*}%
\end{fmffile}
\end{document}
我想\otimes
在顶点上绘制一个张量积符号v1
,同时确保无论有多少条线进入顶点,它都能“正确”地运行(这里的“正确”是指这些线连接到-符号的正确位置\otimes
)。我检查了文档我认为没有这样的选择。
基本上,我希望有一个命令来\fmfblob{<size>}{<vertex>}
执行此操作...有没有简单的方法可以实现此目的?
编辑:@campa 指出我这个问题,它定义了一个绘制\otimes
符号的新命令。这似乎是一个好的开始,但它只是将\otimes
符号放在线上,而没有调整两条线与符号相交的点\otimes
……
编辑:
\documentclass{memoir}
\usepackage[margin=0.05cm]{geometry}
\usepackage[force]{feynmp-auto}
\usepackage{amsmath}
\makeatletter
\def\fmfotimes#1#2{%
\fmfbuf@={d.sh=otimes,d.f=empty,d.ang=45,d.si=#1}%
\fmfcmd{vvertex ("\the\fmfbuf@", \fmfpfx{#2});}}
\makeatother
\begin{document}
\setlength{\unitlength}{.09cm}
\begin{fmffile}{simple_labels}
\fmfframe(2,12.5)(2,-12.5){%
\begin{fmfgraph*}(40,25)
\fmfcmd{
path otimes;
otimes :=
for i = 0 upto 4: 1/2dir 45i .. endfor
1/2left --
for i=right,up,left,down:
1/2i -- origin --
endfor
for i = 4 upto 8: 1/2dir 45i .. endfor
cycle;
}
\fmfwizard
\fmfleft{i}
\fmfright{o}
\fmf{gluon}{i,v1,o}
\fmfotimes{.15w}{v1} %Try with another size
\end{fmfgraph*}%
}
\fmfframe(2,12.5)(2,-12.5){%
\begin{fmfgraph*}(40,25)
\fmfleft{i}
\fmfrightn{o}{2}
\fmf{gluon}{i,v1}
\fmf{gluon}{o1,v1}
\fmf{gluon}{o2,v1}
\fmfotimes{0.15w}{v1}
\end{fmfgraph*}%
}
\fmfframe(2,12.5)(2,-12.5){%
\begin{fmfgraph*}(40,25)
\fmfleftn{i}{2}
\fmfrightn{o}{2}
\fmf{gluon}{i1,v1}
\fmf{gluon}{o1,v1}
\fmf{gluon}{o2,v1}
\fmf{gluon}{i2,v1}
\fmfotimes{0.15w}{v1}
\end{fmfgraph*}%
}
\end{fmffile}
\end{document}