You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TikZ-Feynman绘制无水平传播子费曼图的方法问询

实现方案

你之前修改失效的原因有两点:

  • a -- a属于自连接边,不会被tikz-feynman识别为顶点合并操作,会被布局引擎直接忽略
  • 当图中仅存在单个交互顶点时,tikz-feynman的自动布局默认会将所有连接到该顶点的边按圆周角度均匀分布,无法自动生成你需要的直角四端结构

直接使用手动预定义顶点位置的方式即可实现需求,不需要添加旋转指令,编译后完全匹配目标效果。

完整可运行代码(需使用LuaTeX编译)

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}

\begin{tikzpicture}
  \begin{feynman}
    % 预先定义所有顶点的位置,跳过自动布局的位置计算
    \vertex (a) at (0,0); % 唯一的交互顶点
    \vertex [left=of a, particle=\(e^{-}\)] (i1);
    \vertex [above right=of a, particle=\(\gamma\)] (f1);
    \vertex [above left=of a, particle=\(\gamma\)] (i2);
    \vertex [right=of a, particle=\(e^{-}\)] (f2);

    % 用带星号的diagram命令按预设位置连线,不触发自动布局
    \diagram* {
      (i1) -- [fermion, momentum'=\(p\)] (a) 
           -- [photon, reversed momentum'=\(k\)] (f1),
      (i2) -- [photon, reversed momentum'=\(k'\)] (a) 
           -- [fermion, momentum'=\(p'\)] (f2),
    };
  \end{feynman}
\end{tikzpicture}

\end{document}

调整说明

  • 如果你需要微调粒子标签、动量箭头的位置,直接修改对应边的参数、顶点相对位置即可,不会破坏整体结构
  • 动量箭头方向没有严格要求的话,也可以直接删除momentum相关参数简化代码

内容的提问来源于stack exchange,提问作者Jakov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 23:48:21