Photon ohne Pfeile mit feynmp-auto
Ich habe diese MWE erstellt mit feynmp-auto,
\documentclass[a4paper,12pt]{article}
\usepackage{mathtools,amssymb}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{draw}
\begin{fmfgraph*}(100,100)
\fmfleft{i}
\fmfright{o}
\fmfv{label=$p$,l.a=60}{i}
\fmfv{label=$p$,l.a=120}{o}
\fmf{photon,tension=1,l.side=right}{i,v1}
\fmf{photon,tension=1}{v2,o}
\fmf{fermion,left,tension=0.4,label=$p-k$}{v1,v2}
\fmf{fermion,left,tension=0.4,label=$k$}{v2,v1}
\end{fmfgraph*}
\end{fmffile}
\end{document}
Aber das Photon hat nicht die Pfeile wie dieses Bild?
Ich habe die Dokumentationen lesen: fmfman, fmfsamplesund latex_feynman [CMS Wiki Pages]doch alle Photonen sind ohne Pfeile (links oder rechts).
Antworten
Das Hinzufügen eines wiggly_arrowStils ist einfach genug, aber (a) es sieht schrecklich aus und (b) ich glaube nicht, dass dies in einem Feynman-Diagramm eine Bedeutung hat ...
\documentclass[a4paper,12pt]{article}
\usepackage{mathtools,amssymb}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{draw}
\fmfcmd{style_def wiggly_arrow expr p =
cdraw wiggly p;
cfill (arrow wiggly p);
enddef;}
\begin{fmfgraph*}(100,100)
\fmfleft{i}
\fmfright{o}
\fmfv{label=$p$,l.a=60}{i}
\fmfv{label=$p$,l.a=120}{o}
\fmf{wiggly_arrow,tension=1}{i,v1}
\fmf{wiggly_arrow,tension=1}{v2,o}
\fmf{fermion,left,tension=0.4,label=$p-k$}{v1,v2}
\fmf{fermion,left,tension=0.4,label=$k$}{v2,v1}
\end{fmfgraph*}
\end{fmffile}
\end{document}
Zweiter Versuch
Das sieht besser aus, aber ich mache mir immer noch Sorgen, dass es in einem Feynman-Diagramm nichts "bedeutet".
\documentclass[border=5mm]{standalone}
\usepackage{mathtools,amssymb}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{draw}
\fmfcmd{style_def wiggly_arrow expr p =
draw wiggly p withcolor 3/4 [foreground, background];
cfill (arrow wiggly p);
enddef;}
\fmfcmd{style_def directed_photon expr p =
interim ahangle := 30;
drawarrow (wiggly subpath (0, arctime arclength p - 2.4 ahlength of p) of p)
.. {direction infinity of p} point infinity of p
cutafter fullcircle scaled 2 shifted point infinity of p
withcolor foreground;
enddef;}
\begin{fmfgraph*}(100,100)
\fmfleft{i}
\fmfright{o}
\fmfv{label=$p$,l.a=60}{i}
\fmfv{label=$p$,l.a=120}{o}
\fmf{directed_photon,tension=1}{i,v1}
\fmf{directed_photon,tension=1}{v2,o}
\fmf{fermion,left,tension=0.4,label=$p-k$}{v1,v2}
\fmf{fermion,left,tension=0.4,label=$k$}{v2,v1}
\end{fmfgraph*}
\end{fmffile}
\end{document}
Anmerkungen
Was geht hier vor sich?
Das
feynmpPaket enthält die\fmfcmdSteuersequenz, mit der Sie beliebige Teile des Metapost-Codes in Ihre Diagramme einfügen können.Ich habe ein verwendet
\fmfcmd, um ein paar neue "Stil" -Makros zu definieren.Wir können "Stil" -Makros mit dem
style_defvomfeynmpPaket bereitgestellten Makro definieren .style_deffunktioniert ähnlich wie avardef, richtet aber auch einige Zeichenbefehle und die Definitionen ein, mit denen Sie einen Stilnamen mit einer\fmfSteuerungssequenz verwenden können.Mein erster hieß "wiggly_arrow" und verwendete zwei Befehle von
feynmp:cdrawund,cfillum den Pfad zu zeichnen und eine Pfeilspitze in die Mitte zu setzen. Der zu zeichnende Pfad wird durch den Parameter dargestellt,pund die Definition ändert ihn mithilfe deswigglyMakros davor, das eine wackelige Version des Pfads zurückgibt.Der zweite Versuch abandons die bereitgestellte
cdrawundcfillBefehle und fällt wieder auf die Ebene MPdrawarrowMakroDie Komplikation ist, dass ich versuche, den Pfeil schön aussehen zu lassen. Dazu werde ich nur wackelig auf den Hauptteil des Pfades auftragen und versuche, die letzten Millimeter gerade zu lassen, damit der Pfeil besser aussieht.
Die Länge des Pfades
pin Punkten beträgtarclength pDie Länge einer einfachen MP-Pfeilspitze beträgt
ahlengthDie Länge des Pfades, den ich wackeln möchte, ist also
arclength p - 2.4 ahlengthAlso wollen wir wackeln,
subpath (0, arctime a of p) of pwoadie Länge oben ist.und wir wollen uns reibungslos mit dem normalen Ende von verbinden
p, also verbinden wir den wackeligen Unterpfad mit.. {direction infinity of p} point infinity of paber schließlich wollen wir ein wenig kurz anhalten, damit die Spitze der Pfeilspitze besser sichtbar ist. Wir schneiden den Pfad zum Zeichnen nach dem Rand eines vollen Kreises, der auf 2pt skaliert und zum anderen Ende von verschoben ist
p.Verstanden?
Immer wenn ich einen Pfeil an einer Photonen- (oder Gluon-) Linie gesehen habe, wird der Pfeil verschoben gezeichnet, wie in Ihrem Beispiel grün dargestellt.
Für meine Promotion habe ich feynmp einige Pfeilstile hinzugefügt und diese unten aufgeführt. Es gibt 3 Pfeiltypen und zwei Seiten der Linie für insgesamt 6 neue Linienstile. Die Stile 'Pfeil' und 'Fernpfeil' zeichnen nur eine Pfeilspitze, sind jedoch von der ursprünglichen Linie versetzt. Der Stil 'Linienpfeil' zeichnet einen vollständigen Pfeil mit Stiel, der die mittlere Hälfte der Linie abdeckt, auf der er basiert (von 1/4 bis 1/4) 3/4) aber wieder verschoben.
Sie sollten entweder \ fmffreeze odertage = 0 verwenden, da diese ebenso wie die Photonen- oder Gluonenlinie gezeichnet werden sollen.
Hier ist der Code mit Beispielen der drei Typen (zur Verdeutlichung in verschiedenen Farben).
\documentclass[class=minimal,border=20pt]{standalone}
\usepackage{mathtools,amssymb}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{draw}
\fmfcmd{
vardef middir(expr p,ang) =
dir(angle direction length(p)/2 of p + ang)
enddef;
style_def arrow_left expr p =
shrink(.7);
cfill(arrow p
shifted(4thick*middir(p,90)));
endshrink
enddef;
style_def arrow_right expr p =
shrink(.7);
cfill(arrow p
shifted(4thick*middir(p,-90)));
endshrink
enddef;
style_def far_arrow_left expr p =
shrink(.7);
cfill(arrow p
shifted(8thick*middir(p,90)));
endshrink
enddef;
style_def far_arrow_right expr p =
shrink(.7);
cfill(arrow p
shifted(8thick*middir(p,-90)));
endshrink
enddef;
style_def line_arrow_right expr p =
drawarrow subpath (1/4, 3/4) of p shifted 6 middir(p,-90) withpen pencircle scaled 0.4;
enddef;
style_def line_arrow_left expr p =
drawarrow subpath (1/4, 3/4) of p shifted 6 middir(p,90) withpen pencircle scaled 0.4;
enddef;}
\begin{fmfgraph*}(100,100)
\fmfleft{i}
\fmfright{o}
\fmfv{label=$p$,l.a=60}{i}
\fmfv{label=$p$,l.a=120}{o}
\fmf{wiggly,tension=1}{i,v1}
\fmf{wiggly,tension=1}{v2,o}
\fmf{fermion,left,tension=0.4,label=$p-k$}{v1,v2}
\fmf{fermion,left,tension=0.4,label=$k$}{v2,v1}
\fmf{arrow_right,tension=0,foreground=green}{i,v1}
\fmf{far_arrow_right,tension=0,foreground=red}{i,v1}
\fmf{line_arrow_right,tension=0}{v2,o}
\end{fmfgraph*}
\end{fmffile}
\end{document}