User Tools

Site Tools


latex:feynman_file

This is an old revision of the document!


Generating Feynman diagrams in a LaTeX file

You may need to compile the LaTeX file twice with -shell-escape.

If you use TeXShop for macOS, you can include the following at the top of your document to compile with pdflatexmk -shell-escape:

% !TEX program = pdflatexmk
% !TEX parameter = -shell-escape

Method 1: feynmp-auto

Load the feynmp-auto package, documented here.

\usepackage{feynmp-auto}

Method 2: Macro

Add this macro to the preamble:

\usepackage{feynmp}
 
% macro to compile Feynman graphs without extra scripts
\DeclareGraphicsRule{*}{mps}{*}{}
\makeatletter
\def\endfmffile{
  \fmfcmd{\p@rcent\space the end.^^J end.^^J endinput;}
  \if@fmfio
    \immediate\closeout\@outfmf
  \fi
  \ifnum\pdfshellescape>\z@
    \immediate\write18{mpost \thefmffile}
  \fi}
\makeatother

The file contains a handy macro that allows you to compile Feynman graphs in LaTeX documents, without the need for extra scripts (source). Simply include the macro in the preamble. (Tested only in TeXShop on a Mac.) For Mac users however, feynmp in LaTeXiT is a better option to quickly build of Feynman diagrams as standalone images.

feynman.tex
% !TEX program = pdflatexmk
% !TEX parameter = -shell-escape
% https://wiki.physik.uzh.ch/cms/latex:feynman_file#method_1feynmp-auto
% https://www.overleaf.com/learn/latex/Feynman_diagrams#Other_packages_for_drawing_Feynman_diagrams
\documentclass[a4paper,10pt]{article}
\usepackage[margin=2.4cm]{geometry} % margins
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{feynmp}
 
% macro to compile Feynman graphs without extra scripts
\DeclareGraphicsRule{*}{mps}{*}{}
\makeatletter
\def\endfmffile{
  \fmfcmd{\p@rcent\space the end.^^J end.^^J endinput;}
  \if@fmfio
    \immediate\closeout\@outfmf
  \fi
  %\ifnum\pdfshellescape=\@ne
  \ifnum\pdfshellescape>\z@
    \immediate\write18{mpost \thefmffile}
  \fi}
\makeatother
 
\begin{document}
 
This is a test file for Feynman diagrams. You need to compile twice: once to compile and save the Feynman diagrams, twice to include them in the typeset PDF file.
 
\begin{figure}[h]
  \vspace{10mm}
  \centering
  \begin{fmffile}{feynman-compton}
  \begin{fmfgraph*}(150,100)
    \fmfleft{i1,i2}
	\fmfright{o1,o2}
	\fmflabel{$\gamma$}{i2}
	\fmflabel{$e^-$}{i1}
	\fmflabel{$\gamma$}{o1}
	\fmflabel{$e^-$}{o2}
	\fmf{photon}{i2,v2}
	\fmf{fermion}{i1,v1,v2,o2}
	\fmf{photon}{v1,o1}
  \end{fmfgraph*}
  \end{fmffile}
  \vspace{5mm}
  \caption{Feynman diagram for Compton scattering} %\label{compton}
\end{figure}
 
\end{document}
latex/feynman_file.1675520710.txt.gz · Last modified: 2023/02/04 15:25 by iwn