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」を作成しました。 この解決策を採用しないと、エラーが発生します。

解決策は何ですか?

答え1

ではedge label'、 は'「ラベルを線の反対側に移動する」ことを意味するので、edge labelの代わりにを使用しますedge label'

カンマに関して言えば、オプション リストがカンマ区切りのリストであるという問題があります。そのため、エントリの 1 つにカンマがある場合は、中括弧で保護する必要があります。つまり、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}

関連情報