
Ich möchte, dass meine Impulsbeschriftungen kleiner sind und entlang der Impulspfeile platziert werden (z. B. $k_1+k_2$). Ist es außerdem möglich, Scheitelpunktbeschriftungen fett und größer zu machen (z...)? (\mathbf erledigt die Aufgabe, aber ich habe es nicht geschafft, es mit der Größenänderung zu kombinieren). Hier ist mein Code:
\documentclass[tikz, border=10pt]{standalone}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex (a1)[blob,label=180:\(J\)] {};
\vertex(a2)[right=1.8cm of a1,dot, label=90:\(z_1\)]{} ;
\vertex(a3)[right=1.5cm of a2, dot,label=90:\(z_2\)]{} ;
\vertex(a4)[right=1cm of a3, dot,label=90:\(z\)]{} ;
\vertex[right=2cm of a4](a5){};
\vertex(a6)[below=1.5cm of a2, crossed dot]{};
\vertex(a7)[below=1.5cm of a3, crossed dot]{};
\vertex(a8)[above right=3cm of a4]{};
\node[text width=3cm] at (1.8,0.25) {$z_0$} ;
\diagram* {
(a1) -- [gluon, momentum={[arrow shorten=0.3] \( p+k_1+k_2-q_1-q_2\)}] (a2) -- [gluon, momentum={[arrow shorten=0.3] \(p+k_1+k_2-q_2\)}] (a3) -- [gluon, momentum={[arrow shorten=0.3] \(p+k_1+k_2\)}] (a4)--[gluon, momentum= {[arrow shorten=0.3]\(p\)}](a5) ,
(a4)--[gluon, momentum= {[arrow shorten=0.3]\(k_1+k_2\)}](a8),
(a6) -- [gluon, momentum={[arrow shorten=0.3] \(\vec{\bf{q_1}}\)}](a2) ,
(a7) -- [gluon, momentum={[arrow shorten=0.3] \(\vec{\bf{q_2}}\)}](a3) ,
};
\end{feynman}
\end{tikzpicture}
\end{document}
Antwort1
Nette Verwendung vonTikZ-Feynman(CTAN)!
Bei all den Momentumpfeilen und Beschriftungen möchten Sie natürlich, dass alles klein ist. Am einfachsten ist es, einfach einen der Schriftgrößenbefehle in die Momentumbeschriftung einzufügen:
momentum={\tiny\(p + k\)}
In Ihrem Fall funktioniert jedoch auch das nicht, da das resultierende Etikett immer noch zu breit ist. Daher scheint die einzige Option das Stapeln der Momentum-Etiketten zu sein. Dies kann mit der Umgebung erreicht werden, die sowohl stapelt als auch eine kleinere Schriftart verwendet (sie ist beispielsweise {subarray}
zum Stapeln von Optionen untereinander konzipiert ).\sum
Folgendes habe ich getan:
\RequirePackage{luatex85}
\documentclass[tikz, border=10pt]{standalone}
\usepackage{amsmath}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
%% Convenience command to allow stacks in momentum labels
\def\stack#1{\begin{subarray}{c}#1\end{subarray}}
%% Main sequence of gluons
\vertex[blob, label=180:\(J\), label=-15:\(z_{0}\)] (a1) {};
\vertex[dot, right=1.8cm of a1, label=-45:\(z_1\)] (a2) {} ;
\vertex[dot, right=of a2, label=-45:\(z_2\)] (a3) {} ;
\vertex[dot, right=of a3, label=-90:\(z\)] (a4) {} ;
%% Final gluons to the right
\vertex[right=2cm of a4] (a5);
\vertex[above right=2cm and 2cm of a4] (a8) {};
%% Incoming gluons
\vertex[crossed dot, below=of a2] (a6) {};
\vertex[crossed dot, below=of a3] (a7) {};
\diagram* [edges={gluon}] {
(a1)
-- [momentum={\(\stack{p+k_1+k_2 \\ -q_1-q_2}\)}] (a2)
-- [momentum={\(\stack{p+k_1+k_2 \\ -q_2}\)}] (a3)
-- [momentum={\(\stack{p \\ + k_1 +k_2}\)}] (a4)
-- [momentum'={\(p\)}] (a5),
(a4) -- [momentum={\(k_1+k_2\)}] (a8),
(a6) -- [momentum={\(q_1\)}] (a2),
(a7) -- [momentum={\(q_2\)}] (a3),
};
\end{feynman}
\end{tikzpicture}
\end{document}
Wie Sie sehen, habe ich einen \stack
Befehl definiert, der eine Umgebung erstellt {subarray}
. Sie könnten die {subarray}
Umgebung jedes Mal neu schreiben, aber das ist ziemlich umständlich, weshalb ich die Funktion definiert habe.
Ich habe auch viele der expliziten Entfernungen entfernt, da TikZ-Feynman versucht, von Anfang an ziemlich vernünftige Standardwerte zu haben. Im Fall des Blobs bleibt der Abstand gleich, da die größere Größe des Blobs die Kante viel kleiner erscheinen lässt.
Da der obere Teil des Diagramms mit all den Impulsbeschriftungen recht textlastig ist, habe ich zuletzt das 'z' Beschriftungen der Eckpunkte unten.