我有以下代码,它使用 tikz-feynman 包绘制费曼图。
\feynmandiagram [baseline={(current bounding box.center)},medium, vertical=b to f] {
a [nudge=(-30:5mm)]
-- [photon, edge label=\(p_{1}\)] b [label=190:\(\mu_{1}\)]
-- [fermion, edge label=\(k_{2}\)] c,
d[nudge=(210:5mm)] -- [photon, edge label'=\(p_{2}\)] c [label=-30:\(\mu_{2}\)],
c -- [fermion, edge label=\(k_{3}\)] e [label=0:\(\mu_{3}\)] -- [fermion, edge label=\(k_{4}\)] f [label=180:\(\mu_{4}\)] -- [ fermion, edge label=\(k_{1}\)] b,
g [nudge=(-30:5mm)] -- [photon, edge label'=\(p_{3}\)] e,
h [nudge=(-30:5mm)] -- [photon, edge label'=\(p_{4}\)] f,
};
这是可以使用代码绘制的图表。
如何使底部两条波浪形外线与顶部两条波浪形外线的长度相同?
我想让图表对称。
答案1
您正在推动所有顶点,但都朝着同一个方向。也就是说,您正在以 -30° 的角度(即向右略微向下)推动所有外部顶点 5 毫米。如果移除推动,图表看起来是对称的:
\documentclass[tikz]{standalone}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\feynmandiagram [baseline={(current bounding box.center)},medium, vertical=b to f] {
a
-- [photon, edge label=\(p_{1}\)] b [label=180:\(\mu_{1}\)]
-- [fermion, edge label=\(k_{2}\)] c,
d -- [photon, edge label'=\(p_{2}\)] c [label=0:\(\mu_{2}\)],
c -- [fermion, edge label=\(k_{3}\)] e [label=0:\(\mu_{3}\)]
-- [fermion, edge label=\(k_{4}\)] f [label=180:\(\mu_{4}\)]
-- [fermion, edge label=\(k_{1}\)] b,
g -- [photon, edge label'=\(p_{3}\)] e,
h -- [photon, edge label'=\(p_{4}\)] f,
};
\end{document}
如果您想保持轻推(不确定为什么?),请确保相应地调整轻推的方向:
\documentclass[tikz,border=10pt]{standalone}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\feynmandiagram [baseline={(current bounding box.center)},medium, vertical=b to f] {
a [nudge=(135:1cm)]
-- [photon, edge label=\(p_{1}\)] b [label=180:\(\mu_{1}\)]
-- [fermion, edge label=\(k_{2}\)] c,
d [nudge=(45:1cm)]
-- [photon, edge label'=\(p_{2}\)] c [label=0:\(\mu_{2}\)],
c -- [fermion, edge label=\(k_{3}\)] e [label=0:\(\mu_{3}\)]
-- [fermion, edge label=\(k_{4}\)] f [label=180:\(\mu_{4}\)]
-- [fermion, edge label=\(k_{1}\)] b,
g [nudge=(-45:1cm)]
-- [photon, edge label'=\(p_{3}\)] e,
h [nudge=(-135:1cm)]
-- [photon, edge label'=\(p_{4}\)] f,
};
\end{document}