Both sides previous revisionPrevious revisionNext revision | Previous revision |
latex:feynman [2023/06/06 18:12] – iwn | latex:feynman [2024/08/24 17:50] (current) – [How to make Feynman diagrams in LaTeX] iwn |
---|
| |
* [[https://www.ctan.org/pkg/feynmf|downloadable package on CTAN]]; | * [[https://www.ctan.org/pkg/feynmf|downloadable package on CTAN]]; |
* [[http://www.pd.infn.it/TeX/doc/latex/feynmf/manual.pdf|feynMF manual (T. Ohl, 1997)]]; | * [[https://ctan.math.illinois.edu/macros/latex/contrib/feynmf/fmfman.pdf|feynMF manual (T. Ohl, 1997)]]; |
* for advanced stuff with ''MetaPost'', check out [[https://www.tug.org/docs/metapost/mpman.pdf|the MetaPost manual (J.D. Hobby, 2017)]], [[https://arxiv.org/pdf/hep-ph/9505351.pdf|this paper]], [[http://www.pragma-ade.com/general/manuals/metafun-s.pdf|this tutorial]] and [[latex:feynman#intermediate_modehow_to_use_metapost|this section]]; | * for advanced stuff with ''MetaPost'', check out [[https://www.tug.org/docs/metapost/mpman.pdf|the MetaPost manual (J.D. Hobby, 2017)]], [[https://arxiv.org/pdf/hep-ph/9505351.pdf|this paper]], [[http://www.pragma-ade.com/general/manuals/metafun-s.pdf|this tutorial]] and [[latex:feynman#intermediate_modehow_to_use_metapost|this section]]; |
* [[http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/fmfsamples.pdf|feynMF examples (T. Yamanaka, 2006)]]; | * [[http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/fmfsamples.pdf|feynMF examples (T. Yamanaka, 2006)]]; |
| |
<WRAP group><WRAP half column 60% centeralign> | <WRAP group><WRAP half column 60% centeralign> |
**Table 1**: Available line styles of ''\fmf''. | \\ \\ \\ \\ |
| **Table 1**: Available line styles for ''\fmf''. |
{{ latex:fmfmp_line_styles_table.png ? 500 }} | {{ latex:fmfmp_line_styles_table.png ? 500 }} |
</WRAP><WRAP half column 37% centeralign > | </WRAP><WRAP half column 36% centeralign > |
**Table 2**: Available line styles of ''\fmf''. | **Table 2**: Available style parameters for ''\fmf''. |
{{ latex:fmfmp_line_styles_table2.png ? 600 }} | {{ latex:fmfmp_line_styles_table2.png ? 600 }} |
\\ | \\ |
**Table 3**: Available line options of ''\fmf''. | **Table 3**: Available line options for ''\fmf''. |
{{ latex:fmfmp_line_options_table.png ? 600 }} | {{ latex:fmfmp_line_options_table.png ? 600 }} |
\\ | \\ |
**Table 4**: Available vertex options of ''\fmfv''. | **Table 4**: Available vertex options for ''\fmfv''. |
{{ latex:fmfmp_vertex_options_table.png ? 600 }} | {{ latex:fmfmp_vertex_options_table.png ? 600 }} |
</WRAP></WRAP> | </WRAP></WRAP> |
\fmfleft{i0,i1,i2} | \fmfleft{i0,i1,i2} |
\fmfright{o1,o2,o3,o4} | \fmfright{o1,o2,o3,o4} |
% fermions | % outgoing fermions |
\fmf{fermion}{o1,v21,o2} | \fmf{fermion}{o1,v21,o2} |
\fmf{fermion}{o3,v22,o4} | \fmf{fermion}{o3,v22,o4} |
\fmf{phantom}{i2,v22} | \fmf{phantom}{i2,v22} |
\fmffreeze | \fmffreeze |
% HWW | % H -> WW |
\fmf{dashes,tension=1.5}{i1,v1} | \fmf{dashes,tension=1.5}{i1,v1} |
\fmf{boson}{v1,v21} | \fmf{boson}{v1,v21} |
</WRAP></WRAP> | </WRAP></WRAP> |
| |
| ===== Forcing vertices at desired (x,y) positions ===== |
| |
| If you do not like puzzling with phantom lines and tension, you could force the vertex at an exact location using ''\fmfforce{(0.4w,0.7h)}{v}'', which places the vertex ''v'' at the x position that is 40% of the width from the left, and at the y position that is 70% of the height from the bottom. (Note however that the feynMF manual states it should be used as a last resort only.) The alternative is to use intermediate mode with MetaPost which is explained in a [[#intermediate_modehow_to_use_metapost|section below]]. |
| |
| It is also possible to use ''\fmfshift'' to shift vertices. This can be used for outgoing point created with ''\fmfleft'' etc., but also internal vertices after they have been frozen with ''\fmffreeze''. |
| |
| <WRAP group><WRAP half column> |
| <code latex> |
| \begin{fmffile}{feyngraph} |
| \begin{fmfgraph}(150,150) |
| \fmfstraight |
| \fmfleft{i} |
| \fmfright{o1,o2,o3,o4} |
| % force vertex locations |
| \fmfforce{(0.40w,0.50h)}{v} |
| \fmfforce{(0.68w,0.20h)}{v1} |
| \fmfforce{(0.68w,0.80h)}{v2} |
| % H -> WW |
| \fmf{dashes,tension=1.5}{i,v} |
| \fmf{boson}{v,v1} |
| \fmf{boson}{v,v2} |
| % outgoing fermions |
| \fmf{fermion}{o1,v1,o2} |
| \fmf{fermion}{o3,v2,o4} |
| \end{fmfgraph} |
| \end{fmffile} |
| </code> |
| </WRAP><WRAP half column> |
| \\ \\ \\ |
| {{ latex:hww_phantom.png ? 0x260 }} |
| \\ \\ |
| </WRAP></WRAP> |
| |
===== Adding momentum arrows ===== | ===== Adding momentum arrows ===== |
====== Intermediate mode: How to use MetaPost ====== | ====== Intermediate mode: How to use MetaPost ====== |
| |
If you don't like puzzling with ''phantom'' lines and tension, you can gain greater control by using ''feynMP'''s "intermediate mode" to use ''MetaPost'' more directly. ''\fmfipairs'' and ''\fmfiequ'' gives the ability to exactly position vertices, and ''\fmfi'' allow to draw straight and curved lines between these points. | If you don't like puzzling with ''phantom'' lines and tension, you can use ''\fmfforce'' as explained in a [[#forcing_vertices_at_desired_x_y_positions|section above]]. You can gain even greater control by using ''feynMP'''s "intermediate mode" to use ''MetaPost'' more directly. ''\fmfipairs'' and ''\fmfiequ'' gives the ability to exactly position vertices, and ''\fmfi'' allow to draw straight and curved lines between these points. |
| |
The next level is executing ''MetaPost'' commands directly with ''\fmfcmd''. | The next level is executing ''MetaPost'' commands directly with ''\fmfcmd''. |