
최근 답변부터 시작
이 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}