
從最近的一個回答開始
有了這個 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}
我遇過這些困難:
- 我無法將每個費米子的標籤放在圖表之外。我閱讀了手冊,只有放置在玻色子、光子等下的選項
edge label'
。- 我可以在標籤中只放入符號嗎?例如,我在數學模式下創建了一個逗號“virgola”。如果我不採用這個解決方案,我會收到錯誤。
解決辦法有哪些?
答案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}