5

How do you include a Feynman diagram in a beamer presentation?

\documentclass{beamer}
\usepackage{amsmath, amsthm, amssymb,latexsym}
\usepackage{slashed}
\usepackage{graphicx}
\usepackage{pgfplots}
\usepackage{bbm}
\usepackage{epstopdf} 
\usepackage{hyperref}
\usepackage{tikz}
\usepackage{tabularx}
\usetikzlibrary{calc,decorations.markings}
\usepackage{feynmp}
\mode<presentation> {
\usetheme{Warsaw}
    }
  \section{Theory}
\subsection{The diagram}
\frame
{
    \frametitle{the title etc}
    \begin{figure}
    \begin{fmffile}{Feynman1}
    \fmfframe(-20,-30)(-20,-100){
    \begin{fmfgraph*}(40,40)
        \fmfleft{i1,i2,i3}
        here is the feynmp code....\end{fmfgraph*}
        }
    \end{fmffile}
    \end{figure}
}

\end{document}

The Feynman diagram doesn't show up for me. What am I doing wrong, any suggestions?

5
  • This is just a guess, but you probably have to declare your frame as fragile.
    – jub0bs
    Nov 2, 2013 at 12:38
  • Ok I'll try that. Ehhm how would one declare that exactly? Nov 2, 2013 at 12:42
  • @Jubobs It didn't work man, it is all white and the diagram is not shown. Although I am sure the Feynman diagram is created. This should have a widely known answer but apparently it doesn't. :( Nov 2, 2013 at 12:51
  • @Jubobs Maybe you know a way to import an already finished feynmp figure? What would that code be then? Nov 2, 2013 at 13:00
  • 1
    \includegraphics??
    – user11232
    Nov 2, 2013 at 13:18

2 Answers 2

4

This works:

\documentclass{beamer}
\usepackage{feynmp-auto}

\mode<presentation> {
  \usetheme{Warsaw}
}

\begin{document}

\section{Theory}
\subsection{The diagram}

\begin{frame}[fragile]
\frametitle{the title etc}

\begin{fmffile}{Feynman1}
\begin{fmfgraph*}(40,30)
  \fmfpen{thick}
  \fmfleft{i1,i2} \fmfright{o1,o2}
  \fmf{fermion}{i1,v1,o1} \fmf{fermion}{i2,v2,o2}
  \fmf{photon,label=$q$}{v1,v2} \fmfdot{v1,v2}
\end{fmfgraph*}
\end{fmffile}

\end{frame}

\end{document}

Compile twice.

enter image description here

3
  • Yes! That actually worked, bravo, thank you so much! Nov 2, 2013 at 13:45
  • 2
    @LoveLearning feynmp-auto is only for convenience: with it instead of feynmp you don't need to run Metapost separately.
    – egreg
    Nov 2, 2013 at 13:47
  • yes I read that in the manual, cool. Nov 2, 2013 at 13:51
0

I recently included a feynmp graph in a beamer presentation and it worked. I think I remember having had some trouble with this, but for me including

\DeclareGraphicsRule{*}{mps}{*}{} 

in the preamble did the trick. This is also the only obvious difference between our source files. With this you can just use feynmp as usual, where "usual" for me is: compile your code, run metapost on the produced files in a terminal, then recompile. If you already produced the files it might be enough to just recompile.

4
  • So where do you write this and what do you do next? Do you import your already finished F-diagrams or do you rebuild them with \begin{fmffile}{}...etc? Please be more clear. Thanks! Nov 2, 2013 at 13:21
  • I put it in the preamble somewhere after the \usepackage{} stuff... Then I did the normal feynmp procedure (compile, run metapost in the terminal, compile again) and it worked.
    – fifaltra
    Nov 2, 2013 at 13:25
  • Do you use \begin{fmffile}{}..etc later or do you import stuff? In that case what file do you import? Nov 2, 2013 at 13:26
  • And yes, \begin{fmffile}{} and all that is still in my code. This is especially important if you have labels, because if you look at the files produced by metapost you won't find any labels there. (I think I tried to just include the file via \includegraphics at first but had to abandon the idea because of the labels)
    – fifaltra
    Nov 2, 2013 at 13:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.