Странная метка с пакетом TikZ-Feymann и сложность в математическом режиме

Странная метка с пакетом TikZ-Feymann и сложность в математическом режиме

Начиная с недавнего ответа

введите описание изображения здесь

с этим MWE:

\documentclass[a4paper,12pt]{article}
\usepackage{amssymb,amsmath}

\usepackage{tikz-feynman}
\tikzfeynmanset{compat=1.1.0}
\newcommand{\virgola}{\smash{\raisebox{0.1ex}{,}}}
\begin{document}
\feynmandiagram [layered layout, horizontal=b to c] {
a -- [boson,edge label'=\(p\virgola a\),charged boson] b
-- [fermion, half left, looseness=1.5,edge label'=\(\scriptstyle q+\frac{p}{2}\)] c
-- [fermion, half left, looseness=1.5, edge label'=\(\scriptstyle q-\frac{p}{2}\)] b,
c -- [boson,edge label'=\(p\virgola a\),charged boson] d,
};

\end{document}

Я столкнулся со следующими трудностями:

  1. Я не могу поместить метку каждого фермиона за пределы графика. Я прочитал руководство, и там есть только возможность поместить под бозон, фотон и т. д. Я думаю, что существует только эта опция: edge label';
  2. В метку можно вставлять только символы? Например, я создал запятую "virgola" в math-mode. Если я не приму это решение, то получу ошибки.

Каковы решения?

решение1

В edge label'означает '«переместить метку на другую сторону линии», поэтому используйте edge labelвместо edge label'.

Что касается запятой, проблема в том, что список опций представляет собой список, разделенный запятыми, поэтому если в одной из записей есть запятая, ее нужно защитить фигурными скобками. Другими словами, используйте foo={bar, baz}вместо foo=bar,baz, иначе парсер будет сбит с толку запятой. В вашем случае edge label'={\(p, a\)}.

введите описание изображения здесь

\documentclass[a4paper,12pt]{article}
\usepackage{amssymb,amsmath}
\usepackage{tikz-feynman}
\tikzfeynmanset{compat=1.1.0}
\begin{document}
\feynmandiagram [layered layout, horizontal=b to c] {
a -- [boson,edge label'={\(p, a\)},charged boson] b
-- [fermion, half left, looseness=1.5,edge label=\(\scriptstyle q+\frac{p}{2}\)] c
-- [fermion, half left, looseness=1.5, edge label=\(\scriptstyle q-\frac{p}{2}\)] b,
c -- [boson,edge label'={\(p,a\)},charged boson] d,
};

\end{document}

Связанный контент