%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % TikZ-FeynHand % Feynman Diagrams with TikZ (LaTex manual version) % Copyright (C) 2019 Max Dohse % % available at https://ctan.org/pkg/tikz-feynhand % % This LaTeX file is free: you can redistribute it and/or modify it under the % terms of the GNU General Public License as published by the Free Software % Foundation, either version 3 of the License, or (at your option) any later % version. % % This is distributed in the hope that it will be useful, but WITHOUT ANY % WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR % A PARTICULAR PURPOSE. See the GNU General Public License for more details. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \pdfoutput=1 \pdfcompresslevel=9 % highest compression level for text and image (0, ..., 9) % \documentclass[10pt,letterpaper,twoside,notitlepage]{article} % % __________________________________________________________ % \usepackage{amsfonts} \usepackage[intlimits]{amsmath} \usepackage{amssymb} \usepackage{amsxtra} \usepackage[dvipsnames]{xcolor} \usepackage{colordvi} \usepackage{colortbl} \usepackage{float} \usepackage{floatflt} \usepackage{graphicx} \usepackage{hhline} \usepackage[compat=1.1.0]{tikz-feynhand} \usepackage{xspace} \usepackage[bookmarks=true,% bookmarksnumbered=true,% bookmarksopen=true,% allbordercolors=lime!60!white]% {hyperref} % % __________________________________________________________ % \providecommand{\nc}{\newcommand} \nc{\redcol}{\color{red!80!black}\,} \nc{\vercol}{\color{green!24!black}\,} \nc{\blucol}{\color{blue!40!black}\,} \nc{\brocol}{\color{red!30!black}\,} \nc{\txcol}{\color{black}\,\xspace} \nc{\itembf}[1][+]{\item[\textbf{#1}]} % __________________________________________________________ % \setcounter{secnumdepth}{3} % sections etc. are numerated down to level 3 = SUBSUBSECTION \setcounter{tocdepth}{3} % table of contents lists headlines down to level 3 \numberwithin{figure}{section} % figure numbers are in format (#section.#figure) %% ======= PAGE LAYOUT =============================== %\usepackage{showframe} % shows frames for margins \usepackage{geometry} \geometry{letterpaper, top=19mm, bottom=18mm, inner=20mm, outer=20mm, marginparsep=2mm, marginparwidth=12mm} \setlength{\parindent}{5mm} % width of indentation in the first line of paragraph \setlength{\parskip}{0mm} % vertical distance separating two paragraphs %% ======= BEGIN DOCUMENT ============================ % \tikzexternalize[prefix=tikzgraphics/] %\tikzset{external/force remake} % forces refresh of all external TikZ graphics % \begin{document}% % % % ===================================================================== % ===== TITLE STUFF =========================================== %% \thispagestyle{empty} % \begin{centering} \Large\bfseries% TikZ-FeynHand: Basic User Guide% \vspace{1mm}\\ \large\mdseries% Max Dohse% \vspace{1mm}\\ \normalsize% \today \vspace{1mm}\\ \small\itshape Written at Instituto de F\'isica y Matem\'aticas (IFM-UMSNH), Universidad Michoacana de San Nicol\'as de Hidalgo,\\ Edificio C-3, Ciudad Universitaria, 58040 Morelia, Michoac\'an, M\'exico. \vspace{1.5mm}\\ \end{centering} % % ===== QUICK REFERENCE ============================================= % \hrule \vspace{3mm} {\centering\Large\bfseries Quick Reference\vspace{-2mm}\\} % \noindent \textbf{Environment}\\ \vercol\verb!\begin{feynhand}... \end{feynhand}!\txcol enclosed in \vercol\verb!\begin{tikzpicture}[OPTIONS] ... \end{tikzpicture}!\txcol\\ OPTIONS: \vercol\verb!baseline=1cm, baseline=(v.base), node distance = 2cm!\txcol, no options are mandatory. \vspace{1.5mm}\\ % \noindent \textbf{Vertices}\\ \blucol\verb!\vertex (v0) at (x0,y0);!\txcol\\ \blucol\verb!\vertex [particle] (v1) at (x1,y1) {e$^-$};!\txcol\\ \blucol\verb!\vertex [STYLE] (v2) at (x2,y2)! \redcol\verb!{}!\blucol\verb!;!\txcol\\ STYLE options: \blucol\verb!dot, ringdot, squaredot, crossdot, blob, blobring, blobgray, blobNW, blobNE!\txcol\\ If STYLE option omitted/empty: nothing is drawn, vertex only defined for later use (drawing propagators). \vspace{1.5mm}\\ % \noindent \textbf{Propagators}\\ \vercol\verb!\propag [STYLE] (v1) to [EDGE] (v2);!\txcol\qquad\qquad (If STYLE option omitted/empty: straight line is drawn.)\\ \vercol\verb!\graph {(v1) --[STYLE, EDGE] (v2) --[STYLE, EDGE] (v3) --[STYLE, EDGE] (v4)};!\txcol \\[1mm] Short STYLE options: \vercol\verb!fer, antfer, pho, bos, chabos, antbos, sca, chasca, antsca,!\\ \textcolor{white}{Short STYLE options:} \verb!glu, gho, chagho, antgho, maj, antmaj, plain, mom, revmom!\txcol\\ EDGE options: \vercol\verb!edge label, in, out, looseness, half left, quarter right!\txcol \\ Crossing propagators:\quad STYLE option \redcol\verb!top!\txcol, for example: \vercol\verb!\propag[fer,! \redcol\verb!top!\vercol\verb!] (a) to (b);!\txcol \vspace{1.5mm}\\ % \noindent \textbf{Customize}\\ \blucol\verb!\setlength{\feynhanddotsize}{LENGTH}!\txcol\\ analogue: \blucol\verb!\feynhandblobsize, \feynhandlinesize, \feynhandarrowsize, \feynhandtopsep!\txcol\\ \blucol\verb!\renewcommand{\feynhandtopsepcolor}{COLOR}!\txcol\\ \blucol\verb!\tikzfeynhandset{every STYLE={/tikz/color=COLOR},}!\txcol\\ \vspace{0mm} % % ===================================================================== \hrule \vspace{2mm} {\centering Version 1.1.0 - available at\qquad \texttt{https://ctan.org/pkg/tikz-feynhand}\\} \vspace{1mm} \hrule % ===== TABEL OF CONTENTS =========================================== % \vspace{-2mm} \tableofcontents % % ===================================================================== % % ===== MAIN PART ============================================ % % ===================================================================== % \section{Goals and related software} \label{sec:_goals} % \noindent \textbf{TikZ-FeynHand} is a low-end version of Joshua Ellis' original \textbf{TikZ-Feynman} package \cite{tikzfeynman} (Version 1.1.0), which has provided efficient new ways of drawing beautiful Feynman diagrams automatically (and manually). FeynHand is a modification for those users who want \textbf{easy access} to TikZ-Feynman's drawing styles \textbf{in LaTex without any reference to LuaTex}, and who want to \textbf{customize the diagrams} more easily. FeynHand thus aims to be an alternative way to access the manual mode of its big brother TikZ-Feynman. The drawing styles of TikZ-FeynHand are available through simple commands following the \textbf{syntax conventions of TikZ,} which uses Tex-like commands to create graphics. Since there are still \textbf{journals} which do not yet support TikZ in submissions, TikZ is capable of creating separate PDF graphic files, which can then be submitted with the article. This is called \textbf{externalizing the graphics} and is outlined in Appendix~\ref{Apx_tikzbasics_externalize}, see also Section~50.4 in the TikZ/PGF Manual~\cite{tikz}. \\[1.5mm] % \noindent The \textbf{GENERAL WORKFLOW} for creating a diagram with TikZ-FeynHand is the following: \begin{itemize} \itembf[0.] Initialize the \vercol\verb$feynhand$\txcol environment inside the \vercol\verb$tikzpicture$\txcol environment\\ (in turn typically within a \vercol\verb$figure$\txcol or some math environment). % \itembf[1.] Set the positions of the vertices and the styles they are drawn in. % \itembf[2.] Insert the propagator lines between the vertices. % \itembf[x.] Draw extra objects (like coordinate systems). % \end{itemize} % FeynHand offers additonal shorter versions of TikZ-Feynmans TikZ-keys, because I find some of them quite long, e.g.~\vercol\verb$anti charged boson$\txcol. With little practice and efficient use of copy and paste, the ease of creating diagrams by hand is similar in both packages. FeynHand contains a few tweaks that are handy for me and might be for others. \\[1mm] The other main \textbf{features of FeynHand that differ from TikZ-Feynman} (Version 1.1.0) are listed below. % \begin{itemize} % \item Package does neither load the Tex package \vercol\verb$ifluatex$\txcol,\\ nor TikZ-Feynman's Lua patches \vercol\verb$tikzfeynman.patch.x.x.x.lua$\txcol. % \item No extra \vercol\verb$\diagram$\txcol environment is needed, since everything is placed by hand. % \item \vercol\verb$top$\txcol style option for crossing propagators introduced, see Section~\ref{sec:_feynmandiagrams_propagators_top}. % \item Some additional vertex and propagator styles are available, see Sections~\ref{sec:_feynmandiagrams_vertices} and \ref{sec:_feynmandiagrams_propagators}. % \item Shortcut commands for quickly customizing the diagrams' look, see Section~\ref{sec:_feynmandiagrams_customizing}. % \item For brevity, we access/leave math mode via \$ instead of the \vercol\verb$\($\txcol and \vercol\verb$\)$\txcol suggested in TikZ-Feynman's manual.\\ However, this is rather a personal preference and the opinions on this topic are divided. % \end{itemize} % This user guide just describes briefly \textbf{how to quickly use FeynHand.} There is also a three-page introduction to TikZ in Appendix~\ref{Apx_tikzbasics}. For more information on TikZ-Feynman's capabilities and commands, we recommend its elaborate documentation \cite{tikzfeynman}, in particular Section~3, and also recommend the introduction and extensive manual of TikZ \cite{tikz}. % In all commands and keys mentioned in \cite{tikzfeynmanArticle} and the corresponding files, the string \vercol\verb$feynman$\txcol has been replaced by \vercol\verb$feynhand$\txcol in the FeynHand package, in order to prevent any clash of variable names, if both TikZ-Feynman and FeynHand are used together in the same LaTex document. % % ===================================================================== % \subsection*{Acknowledgments} % \noindent I am grateful to Joshua Ellis for friendly advice and for writing TikZ-Feynman in the first place.\\ I am also thankful to Till Tantau and all collaborators for writing TikZ/PGF. % % % ===================================================================== % \subsection*{Citations} % \noindent If you use TikZ-FeynHand for any publication, please be so kind to\\ cite both Joshua Ellis' original manual \cite{tikzfeynmanArticle} as well as this userguide. % % ===================================================================== % \subsection*{License} % \noindent This PDF and the whole package are free: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. % % ===================================================================== % \newpage \section{Feynman diagrams with TikZ-FeynHand} \label{sec:_feynmandiagrams} % % ===================================================================== % \subsection{Environment} \label{sec:_feynmandiagrams_environment} % \noindent The \blucol\verb$feynhand$\txcol package is loaded as usual with \blucol\verb$\usepackage{tikzfeynhand}$\txcol. All FeynHand commands are used within the \blucol\verb$feynhand$\txcol environment, which needs to be placed inside the \blucol\verb$tikzpicture$\txcol environment% \footnote{It is possible to define \texttt{feynhand} such that it includes \texttt{tikzpicture}. We decide against this so that \texttt{feynhand} can be used as a scope inside \texttt{tikzpicture}. Further, doing so would make externalizing the graphics more difficult.}. % Of course, all \textbf{TikZ commands remain available} within \blucol\verb$feynhand$\txcol, and TikZ commands can also be placed outside of \blucol\verb$feynhand$\txcol inside the \blucol\verb$tikzpicture$\txcol enclosing it. The \textbf{coordinate system} used by TikZ is the usual cartesian (x,y)-plane, with the x-axis pointing horizontally to the right and the y-axis pointing vertically upwards on the page. The default coordinate unit is centimeters. We recall that all TikZ and/or FeynHand commands must \textbf{end with a \;;\; (semicolon).} When we want to use captions and labels, we enclose \blucol\verb$feynhand$\txcol in the \blucol\verb$figure$\txcol environment as below. % \blucol\begin{verbatim} \begin{figure} \centering \begin{tikzpicture} \begin{feynhand} ... FeynHand and/or TikZ commands ... \end{feynhand} \end{tikzpicture} \caption{A diagram drawn with TikZ.} \label{Fig:_diagram1} \end{figure} \end{verbatim}\txcol % % --------------------------------------------------------------- \vspace{-5mm} \subsection{Equations involving Feynman diagrams} % The \vercol\verb$feynhand$\txcol environment can also be used directly in math environments. For example, the code below produces the (nonsense) equation below it. For the \vercol\verb$baseline$\txcol option of the \vercol\verb$tikzpicture$\txcol environment, see Section~12.2.1 in the TikZ/PGF Manual \cite{tikz}. In the first diagram we have set it to the y-coordinate of the vertex (o), and in the second we have set it to the value y=-0.3cm. That is, in each diagram the corresponding horizontal lines of constant y-coordinate are aligned with the baseline of the math environment. % \vercol\begin{verbatim} \begin{align*} \int dx\; f(x) = \alpha \begin{tikzpicture}[baseline=(o.base)] \begin{feynhand} \vertex (a) at (-1,-1); \vertex (b) at (1,-1); \vertex (c) at (0,1); \vertex [dot, Blue] (o) at (0,0) {}; \propag [fermion, Blue] (a) to (o); \propag [anti fermion, Blue] (b) to (o); \propag [fermion, Blue] (c) to (o); \end{feynhand} \end{tikzpicture} - 2i\,e \begin{tikzpicture}[baseline=-0.3cm] \begin{feynhand} \vertex (a) at (-1,-1); \vertex (b) at (1,-1); \vertex (c) at (0,1); \vertex [dot, Orange] (o) at (0,0) {}; \propag [photon, Orange] (a) to (o); \propag [photon, Orange] (b) to (o); \propag [photon, Orange] (c) to (o); \end{feynhand} \end{tikzpicture} \end{align*} \end{verbatim}\txcol % \vspace{-13mm} % \begin{align*} \int\!\! dx\; f(x) = \alpha \tikzsetnextfilename{baseline_obase} %\tikzset{external/force remake} \begin{tikzpicture}[baseline=(o.base)] \begin{feynhand} \vertex (a) at (-1,-1); \vertex (b) at (1,-1); \vertex (c) at (0,1); \vertex [dot, blue] (o) at (0,0) {}; \propag [fermion, Blue] (a) to (o); \propag [anti fermion, Blue] (b) to (o); \propag [fermion, Blue] (c) to (o); \end{feynhand} \end{tikzpicture} - 2i\,e \tikzsetnextfilename{baseline_03cm} \begin{tikzpicture}[baseline=-0.3cm] \begin{feynhand} \vertex (a) at (-1,-1); \vertex (b) at (1,-1); \vertex (c) at (0,1); \vertex [dot, orange] (o) at (0,0) {}; \propag [photon, Orange] (a) to (o); \propag [photon, Orange] (b) to (o); \propag [photon, Orange] (c) to (o); \end{feynhand} \end{tikzpicture} \end{align*} % % ===================================================================== % \subsection{Vertices} \label{sec:_feynmandiagrams_vertices} % \noindent The \vercol\verb$\vertex$\txcol command is the same as in TikZ-Feynman, and essentially consists of the command \vercol\verb$node$\txcol of TikZ. By declaring a vertex, we mean defining its name and its position in the coordinate system, and specifying how the vertex is to be drawn, see below for examples. The vertices' names are mere labels for later reference (just like equation labels in Latex) and don't show up anywhere in the graph. The idea is now to use the vertices' names as a reference for their coordinates. This makes their use and modification much easier. For example, we can draw a line from vertex (a) to (b) by \vercol\verb$\draw (a) to (b);$\txcol see Section~\ref{sec:_feynmandiagrams_propagators}. Below we list the available vertex styles. Some users like to draw a gap in propagator lines which cross each other without any interaction being implied there. This can be done using gap vertices, see Section~\ref{sec:_feynmandiagrams_propagators_top}. % % ------------------------------------------------------ \subsubsection*{Bare vertex} % \noindent This is the basic vertex: nothing is drawn at the vertex itself, it merely connects propagator lines. Note that we do not put an empty argument \redcol\verb${}$\txcol at the end. \vspace{2mm}\\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \vertex (c1) at (4,0.5); \vertex (c2) at (4,-0.5); \propag [plain] (a) to (b); \propag [plain] (b) to (c1); \propag [plain] (b) to (c2); \end{feynhand} \end{tikzpicture} \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{vertex_bare} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \vertex (c1) at (4,0.5); \vertex (c2) at (4,-0.5); \propag [plain] (a) to (b); \propag [plain] (b) to (c1); \propag [plain] (b) to (c2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection*{Particle vertex} % \noindent Particle vertices are usually used only for incoming and outgoing particles. \\ For intermediate particles, see propagator edge labels in Section~\ref{sec:_feynmandiagrams_proplabelsmomentum}. \vspace{2mm}\\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} ... \vertex [particle] (a) at (0,0) {e$^-$}; ... \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{vertex_particle} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex [particle] (a) at (0,0) {e$^-$}; \vertex (b) at (2,0); \vertex (c1) at (4,0.5); \vertex (c2) at (4,-0.5); \propag [plain] (a) to (b); \propag [plain] (b) to (c1); \propag [plain] (b) to (c2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection*{Dot vertex} % \noindent Some users like to place dots on vertices in order to emphasize that an interaction occurs there.\\ Note the empty argument \redcol\verb${}$\txcol at the end - without the dots/blobs will not appear! \vspace{2mm}\\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} ... \vertex [dot] (b) at (2,0) {}; ... \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{vertex_dot} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex [dot] (b) at (2,0) {}; \vertex (c1) at (4,0.5); \vertex (c2) at (4,-0.5); \propag [plain] (a) to (b); \propag [plain] (b) to (c1); \propag [plain] (b) to (c2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection*{Ring dot vertex} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} ... \vertex [ringdot] (b) at (2,0) {}; ... \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{vertex_ringdot} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex [ringdot] (b) at (2,0) {}; \vertex (c1) at (4,0.5); \vertex (c2) at (4,-0.5); \propag [plain] (a) to (b); \propag [plain] (b) to (c1); \propag [plain] (b) to (c2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection*{Square dot vertex} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} ... \vertex [squaredot] (b) at (2,0) {}; ... \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{vertex_squaredot} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex [squaredot] (b) at (2,0) {}; \vertex (c1) at (4,0.5); \vertex (c2) at (4,-0.5); \propag [plain] (a) to (b); \propag [plain] (b) to (c1); \propag [plain] (b) to (c2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection*{Crossed dot vertex} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} ... \vertex [crossdot] (b) at (2,0) {}; ... \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{vertex_crossdot} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex [crossdot] (b) at (2,0) {}; \vertex (c1) at (4,0.5); \vertex (c2) at (4,-0.5); \propag [plain] (a) to (b); \propag [plain] (b) to (c1); \propag [plain] (b) to (c2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection*{Blob vertex} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} ... \vertex [blob] (b) at (2,0) {}; ... \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{vertex_blob} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex [blob] (b) at (2,0) {}; \vertex (c1) at (4,0.5); \vertex (c2) at (4,-0.5); \propag [plain] (a) to (b); \propag [plain] (b) to (c1); \propag [plain] (b) to (c2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection*{Ring blob vertex} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} ... \vertex [ringblob] (b) at (2,0) {}; ... \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{vertex_ringblob} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex [ringblob] (b) at (2,0) {}; \vertex (c1) at (4,0.5); \vertex (c2) at (4,-0.5); \propag [plain] (a) to (b); \propag [plain] (b) to (c1); \propag [plain] (b) to (c2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection*{Gray blob vertex} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} ... \vertex [grayblob] (b) at (2,0) {}; ... \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{vertex_grayblob} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex [grayblob] (b) at (2,0) {}; \vertex (c1) at (4,0.5); \vertex (c2) at (4,-0.5); \propag [plain] (a) to (b); \propag [plain] (b) to (c1); \propag [plain] (b) to (c2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection*{NorthWest blob vertex} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} ... \vertex [NWblob] (b) at (2,0) {}; ... \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{vertex_NWblob} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex [NWblob] (b) at (2,0) {}; \vertex (c1) at (4,0.5); \vertex (c2) at (4,-0.5); \propag [plain] (a) to (b); \propag [plain] (b) to (c1); \propag [plain] (b) to (c2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection*{NorthEast blob vertex} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} ... \vertex [NEblob] (b) at (2,0) {}; ... \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{vertex_NEblob} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex [NEblob] (b) at (2,0) {}; \vertex (c1) at (4,0.5); \vertex (c2) at (4,-0.5); \propag [plain] (a) to (b); \propag [plain] (b) to (c1); \propag [plain] (b) to (c2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection{Relative vertex placement} \label{sec:_feynmandiagrams_vertices_relative} % \noindent Above we have always placed the vertices using absolute coordinate values. Relative placement is done using the keys \blucol\verb$above, below, left, right$\txcol. When combined, the vertical key must come first, as in \blucol\verb$above right$\txcol.\\ \noindent \begin{minipage}{0.75\linewidth} \blucol\begin{verbatim} \vertex [dot] (a1) {}; \vertex [ringdot] (a2) [above right = of a1] {}; \propag [plain] (a1) to (a2); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.2\linewidth} \tikzsetnextfilename{vertex_relative_1} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex [dot] (a1) {}; \vertex [ringdot] (a2) [above right = of a1] {}; \propag [plain] (a1) to (a2); \end{feynhand} \end{tikzpicture} \end{minipage} \\ \noindent The node distance used by these keys can be set by calling \blucol\verb$\begin{tikzpicture}[node distance = 2cm]$\txcol or \blucol\verb$\begin{feynhand}[node distance = 2cm]$\txcol. Moreover, we can specify the absolute distances relative to a vertex:\\ \noindent \begin{minipage}{0.75\linewidth} \blucol\begin{verbatim} \vertex [dot] (a1) {}; \vertex [dot] (a2) [right = 1.5cm of a1] {}; \propag [gluon] (a1) to (a2); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.2\linewidth} \tikzsetnextfilename{vertex_relative_2} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex [dot] (a1) {}; \vertex [dot] (a2) [right = 1.5cm of a1] {}; \propag [gluon] (a1) to (a2); \end{feynhand} \end{tikzpicture} \end{minipage} \\ \begin{minipage}{0.75\linewidth} \blucol\begin{verbatim} \vertex [ringdot] (a1) {}; \vertex [ringdot] (a2) [above right = 0.5cm and 2cm of a1] {}; \propag [photon] (a1) to (a2); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.2\linewidth} \tikzsetnextfilename{vertex_relative_3} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex [ringdot] (a1) {}; \vertex [ringdot] (a2) [above right = 0.5cm and 2cm of a1] {}; \propag [photon] (a1) to (a2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ===================================================================== % \subsection{Propagators} \label{sec:_feynmandiagrams_propagators} % \noindent You can draw propagators between vertices with FeynHand's \vercol\verb$\propag$\txcol command, whose long version \vercol\verb$\propagator$\txcol also works. Both are just TikZ' \vercol\verb$\draw$\txcol command, and thus can access all styles defined in TikZ-Feynman. The minimal example \vercol\verb$\propag[fer] (a) to (b);$\txcol draws a fermion propagator from vertex (a) and (b). Below we list all propagator styles and draw examples. FeynHand uses intuitive 3/6-letter versions, but also keeps TikZ-Feynman's longer ones: % \setlength{\extrarowheight}{3pt} \begin{table}[H] \centering \begin{tabular}{r>{\qquad} r} \hline Short Version & Long Version \\ \hhline{==} \verb$\propag$ & \verb$\propagator$\\ \hline \verb$fer$ & \verb$fermion$\\ \verb$antfer$ & \verb$anti fermion$\\ \hline \verb$pho$ & \verb$photon$\\ \hline \verb$bos$ & \verb$boson$\\ \verb$chabos$ & \verb$charged boson$\\ \verb$antbos$ & \verb$anti charged boson$\\ \hline \verb$glu$ & \verb$gluon$\\ \hline % \end{tabular} \qquad\qquad\qquad \begin{tabular}{r>{\qquad} r} \hline Short Version & Long Version \\ \hhline{==} \verb$sca$ & \verb$scalar$\\ \verb$chasca$ & \verb$charged scalar$\\ \verb$antsca$ & \verb$anti charged scalar$\\ \hline \verb$gho$ & \verb$ghost$\\ \verb$chagho$ & \verb$charged ghost$\\ \verb$antgho$ & \verb$anti charged ghost$\\ \hline \verb$maj$ & \verb$majorana$\\ \verb$antmaj$ & \verb$anti majorana$\\ \hline % \end{tabular} \end{table} % % % ------------------------------------------------------ \subsubsection*{Fermions} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[fer] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_fermion} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[fer] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} % \\ \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propagator[antfer] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_antfer} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propagator[antfer] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection*{Gluons} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[glu] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_gluon} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[glu] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,1); \propag[glu] (a) to [out=0, in=180] (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_gluon_out_in} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,1); \propag[gluon] (a) to [out=0, in=180] (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % % ------------------------------------------------------ \subsubsection*{Bosons (photons are just bosons)} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[bos] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_boson} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[bos] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[pho] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_photon} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[pho] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,-1); \propag[bos] (a) to [out=0, in=90] (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_boson_out_in} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,-1); \propag[bos] (a) to [out=0, in=90] (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % % ------------------------------------------------------ \subsubsection*{Charged bosons} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[chabos] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_chabos} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[chabos] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[antbos] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_antbos} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[antbos] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % % ------------------------------------------------------ \newpage \subsubsection*{Scalars} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[sca] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_scalar} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[sca] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,1); \propag[sca] (a) to [out=0, in=180] (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_scalar_out_in} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,1); \propag[sca] (a) to [out=0, in=180] (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % % ------------------------------------------------------ \vspace{-6mm} \subsubsection*{Charged scalars} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[chasca] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_chasca} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[chasca] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[antsca] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_antsca} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[antsca] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % % ------------------------------------------------------ \subsubsection*{Ghosts} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[gho] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_ghost} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[gho] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,1); \propag[gho] (a) to [out=0, in=180] (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_ghost_out_in} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,1); \propag[gho] (a) to [out=0, in=180] (b); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------ \subsubsection*{Charged ghosts} % % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[chagho] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_chaghost} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[chagho] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[antgho] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_antghost} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[antgho] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % % ------------------------------------------------------ \subsubsection*{Majorana} % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[maj] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_major} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[maj] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[antmaj] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_antmaj} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[antmaj] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ % % ------------------------------------------------------ \subsubsection*{Linked propagators} % \noindent We can also draw "chains" of propagators from one vertex to the next to the next etc.~using TikZ' \blucol\verb$\graph$\txcol command. Then, all style options are attached to the connector \blucol\verb$--$\txcol as in the following example. \\ % \begin{minipage}{0.75\linewidth} \blucol\begin{verbatim} \graph {(a0) --[fer,green!50!black] (a1) --[glu,red] (a2) --[chabos,blue] (a3)}; \graph {(b0) --[fer, red, in=180, out=270, insertion=0.8] (b1) --[glu, edge label =$k$] (b2) --[chabos, blue, mom={[arrow style=blue] $q$}] (b3)}; \end{verbatim}\txcol \end{minipage} % % \begin{minipage}{0.23\linewidth} \tikzsetnextfilename{propag_chain} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a0) at (0,2); \vertex (a1) at (1,2); \vertex (a2) at (2,2); \vertex (a3) at (3,2); \vertex (b0) at (0,1); \vertex (b1) at (1,0); \vertex (b2) at (2,0); \vertex (b3) at (3,1); \graph {(a0) --[fer, green!50!black] (a1) --[glu, red] (a2) --[chabos, blue] (a3)}; \graph {(b0) --[fer, red, in=180, out=270, insertion=0.8] (b1) --[glu, edge label =$k$] (b2) --[chabos, blue, mom={[arrow style=blue] $q$}] (b3)}; \end{feynhand} \end{tikzpicture} \end{minipage} % % -------------------------------------------------------------------------------- \subsubsection{Keys: In, Out, Looseness, Left/Right, Half/Quarter} \label{sec:_feynmandiagrams_keysinoutetc} % \noindent The keys \vercol\verb$in, out$\txcol specify the angle at which the line leaves and enters the vertices. The angle is with respect to the coordinate system: 0 degrees is right, 90 up, 180 left, 270 down. \vspace{2mm}\\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[fer] (a) to [out=90, in=90] (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_keys_out_in} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \propag[fer] (a) to [out=90, in=90] (b); \end{feynhand} \end{tikzpicture} \end{minipage} \\ The key \vercol\verb$looseness$\txcol specifies how loose (distant) the arc is bending away from the straight line connecting the vertices. Its default value is 1. \vspace{2mm}\\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \vertex (c) at (3,0); \vertex (d) at (5,0); \propag[fer] (a) to [in=90, out=90] (b); \propag[fer] (c) to [in=90, out=90, looseness=1.5] (d); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_keys_looseness} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \vertex (c) at (3,0); \vertex (d) at (5,0); \propag[fer] (a) to [in=90, out=90] (b); \propag[fer] (c) to [in=90, out=90, looseness=1.5] (d); \end{feynhand} \end{tikzpicture} \end{minipage} \\ The keys \vercol\verb$half left, half right, quarter left, quarter right$\txcol specify that the line is a half/quarter circle bending to the left/right with respect to the line's direction. \vspace{2mm}\\ % \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \vertex (c) at (3,1); \vertex (d) at (5,1); \propag[fer] (a) to [half left] (b); \propag[fer] (c) to [half right, looseness=1.5] (d); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_keys_half} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \vertex (c) at (3,1); \vertex (d) at (5,1); \propag[fer] (a) to [half left] (b); \propag[fer] (c) to [half right, looseness=1.5] (d); \end{feynhand} \end{tikzpicture} \end{minipage} \\ \begin{minipage}{0.7\linewidth} \vercol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,0); \vertex (c) at (3,1); \vertex (d) at (4,0); \propag[fer] (a) to [quarter left] (b); \propag[fer] (c) to [quarter right, looseness=1.5] (d); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.25\linewidth} \tikzsetnextfilename{propag_keys_quarter} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \vertex (c) at (3,1); \vertex (d) at (4,0); \propag[fer] (a) to [quarter left] (b); \propag[fer] (c) to [quarter right, looseness=1.5] (d); \end{feynhand} \end{tikzpicture} \end{minipage} % % -------------------------------------------------------------------------------- \vspace{-6mm} \newpage\subsubsection{Propagator labels and momentum arrows} \label{sec:_feynmandiagrams_proplabelsmomentum} % \noindent In order to include a label to a propagator line, we can use TikZ's \blucol\verb!edge label!\txcol key, see Section~14.13 in the TikZ/PGF Manual \cite{tikz}. \blucol\verb!edge label!\txcol sets a propagator label to the left of the propagator line, and the primed version \blucol\verb!edge label'!\txcol sets one to its right, see the following example. Left and right are relative with respect to the line's direction. \vspace{2mm}\\ % \begin{minipage}{0.83\linewidth} \blucol\begin{verbatim} \vertex (a1) at (0,0); \vertex (a2) at (1,1.5); \vertex (b1) at (1.5,1.5); \vertex (b2) at (2.5,0); \propag [fer, Orange] (a1) to [edge label = $k$] (a2); \propag [fer, Blue] (b1) to [edge label'= $p'$] (b2); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.16\linewidth} \tikzsetnextfilename{propag_label} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a1) at (0,0); \vertex (a2) at (1,1.5); \vertex (b1) at (1.5,1.5); \vertex (b2) at (2.5,0); \propag [fer, RedOrange] (a1) to [edge label = $k$] (a2); \propag [fer, Blue] (b1) to [edge label'= $p'$] (b2); \end{feynhand} \end{tikzpicture} \end{minipage} \\ In order to add arrows indicating the momentum's direction to a propagator line, we can use the key \blucol\verb!momentum!\txcol. The key \blucol\verb!reversed momentum!\txcol draws the arrow in the reverse direction, and a prime changes the side on which the arrow appears, as above. FeynHand also offers the 3/6-letter shorthands \blucol\verb!mom!\txcol and \blucol\verb!revmom!\txcol. The momentum arrows \emph{do not} inherit the drawing style of the propagator line, and hence their style can be specified by an extra argument. \vspace{2mm}\\ % \begin{minipage}{0.83\linewidth} \blucol\begin{verbatim} \vertex (a1) at (0,0); \vertex (a2) at (1,1.5); \vertex (b1) at (1.5,1.5); \vertex (b2) at (2.5,0); \propag [fer, Orange, mom={[arrow style=Orange] $k$}] (a1) to (a2); \propag [fer, Blue, revmom'={[arrow style=Blue] $p'$}] (b1) to (b2); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.16\linewidth} \tikzsetnextfilename{propag_arrows} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a1) at (0,0); \vertex (a2) at (1,1.5); \vertex (b1) at (1.5,1.5); \vertex (b2) at (2.5,0); \propag [fer, RedOrange, mom={[arrow style=RedOrange] $k$}] (a1) to (a2); \propag [fer, Blue, revmom'={[arrow style=Blue] $p'$}] (b1) to (b2); \end{feynhand} \end{tikzpicture} \end{minipage} \\ Note that \blucol\verb!edge label!\txcol is an option of the \blucol\verb!to!\txcol key, whereas \blucol\verb!momentum!\txcol is an option of the \blucol\verb!\propag!\txcol command. % % ------------------------------------------------------------------------------------------------------- \vspace{-3mm} \subsubsection{Insertions} \label{sec:_feynmandiagrams_propagators_insertions} % \noindent Insertions can be placed on propagator lines as in the examples below. The values indicate the fraction of the propagator line's length at which the insertion marks are drawn. \\ % \begin{minipage}{0.83\linewidth} \vercol\begin{verbatim} \vertex [dot] (a1) at (0,0) {}; \vertex [dot] (a2) at (2,0) {}; \propag [chabos, red, insertion=0.25, insertion=0.75] (a1) to (a2); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.16\linewidth} \tikzsetnextfilename{propag_insertion_1} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex [dot] (a1) at (0,0) {}; \vertex [dot] (a2) at (2,0) {}; \propag [chabos, red, insertion=0.25, insertion=0.75] (a1) to (a2); \end{feynhand} \end{tikzpicture} \end{minipage} \\ \begin{minipage}{0.83\linewidth} \vercol\begin{verbatim} \vertex [ringdot] (a1) at (0,0) {}; \vertex [ringdot] (a2) at (2,0) {}; \propag [chabos, red, insertion={[size=6pt,style=Green]0.25}] (a1) to (a2); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.16\linewidth} \tikzsetnextfilename{propag_insertion_2} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex [ringdot] (a1) at (0,0) {}; \vertex [ringdot] (a2) at (2,0) {}; \propag [chabos, red, insertion={[size=6pt,style=Green]0.25}] (a1) to (a2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------------------------------------------------------- \vspace{-3mm} \subsubsection{Slashes and backslashes} \label{sec:_feynmandiagrams_propagators_slashes} % \noindent Back/slashes work like insertions: \\ % \begin{minipage}{0.83\linewidth} \vercol\begin{verbatim} \vertex [dot] (a1) at (0,0) {}; \vertex [dot] (a2) at (2,0) {}; \propag [chabos, red, slash=0.25, slash=0.75] (a1) to (a2); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.16\linewidth} \tikzsetnextfilename{propag_slash_1} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex [dot] (a1) at (0,0) {}; \vertex [dot] (a2) at (2,0) {}; \propag [chabos, red, slash=0.25, slash=0.75] (a1) to (a2); \end{feynhand} \end{tikzpicture} \end{minipage} \\ \begin{minipage}{0.83\linewidth} \vercol\begin{verbatim} \vertex [ringdot] (a1) at (0,0) {}; \vertex [ringdot] (a2) at (2,0) {}; \propag [chabos, red, backslash={[size=6pt,style=Green]0.25}] (a1) to (a2); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.16\linewidth} \tikzsetnextfilename{propag_slash_2} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex [ringdot] (a1) at (0,0) {}; \vertex [ringdot] (a2) at (2,0) {}; \propag [chabos, red, backslash={[size=6pt,style=Green]0.25}] (a1) to (a2); \end{feynhand} \end{tikzpicture} \end{minipage} % % ------------------------------------------------------------------------------------------------------- \newpage\subsubsection{Crossing propagators (one on top of the other)} \label{sec:_feynmandiagrams_propagators_top} % \noindent Crossings often indicate that the propagators merely cross on paper without any physical interaction being implied. First, draw the propagator line to become crossed/interrupted, then draw the crossing propagator on top of it by specifying the additional style key \blucol\verb$top$\txcol. For more intricate networks of crossing propagators, you can place auxiliary vertices to break the propagators into parts if necessary, and then place the respective parts on top of each other. If due to the crossings you wish to move the arrows of charged particles, specify \blucol\verb$with arrow=VALUE$\txcol, respectively \blucol\verb$with reversed arrow=VALUE$\txcol for antiparticles. \blucol\verb$VALUE$\txcol must be a number between 0 and 1, and indicates the fraction of propagator length at which TikZ inserts the arrow. The default value of \blucol\verb$VALUE$\txcol is 0.5. \vspace{-1mm}\\ % \begin{minipage}{0.8\linewidth} \blucol\begin{verbatim} \vertex (a) at (0,0); \vertex (b) at (2,1); \vertex (c) at (0,1); \vertex (d) at (2,0); \propag [chabos, Orange, with arrow=0.25] (c) to (d); \propag [fer, Blue, top] (a) to (b); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.15\linewidth} \tikzsetnextfilename{propag_gap_up} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,1); \vertex (c) at (0,1); \vertex (d) at (2,0); \propag [chabos, Orange, with arrow=0.25] (c) to (d); \propag [fer, Blue, top] (a) to (b); \end{feynhand} \end{tikzpicture} \end{minipage} \vspace{-5mm} \\ % \begin{minipage}{0.8\linewidth} \blucol\begin{verbatim} ... \propag[gluon, blue] (a) to [out=0, in=180] (b); \propag[gluon, top] (c) to [out=0, in=180] (d); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.15\linewidth} \tikzsetnextfilename{propag_gluon_gap} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,1); \vertex (c) at (0,1); \vertex (d) at (2,0); \propag[gluon, blue] (a) to [out=0, in=180] (b); \propag[gluon, top] (c) to [out=0, in=180] (d); \end{feynhand} \end{tikzpicture} \end{minipage} \vspace{-3mm} % % % ===================================================================== % \subsection{Customizing styles} \label{sec:_feynmandiagrams_customizing} % FeynHand provides the following shortcuts for quickly modifying styles. Note that any change of these lengths at some point in the code affects all diagrams that come after this point. Also recall that if you externalize graphics (see Sec.~\ref{Apx_tikzbasics_externalize}), then TikZ refreshes pictures \emph{only} when their source code is changed. Hence to see the effect of such length changes, delete the external PDF-files or use \vercol\verb$\tikzset{external/force remake}$\txcol. % \begin{itemize} \item \vercol\verb$\setlength{\feynhanddotsize}{2mm}$\txcol sets the diameter of the dots to 2mm (default: 1.5mm). % \item \vercol\verb$\setlength{\feynhandblobsize}{10mm}$\txcol sets the diameter of the blobs to 10mm (default: 7.5mm). % \item \vercol\verb$\setlength{\feynhandlinesize}{2pt}$\txcol sets the thickness of the propagator lines to 2pt (default: 0.5pt).\\ Also the lines of dots and blobs use this thickness.\\ The momentum arrows' line thickness scales as 0.64 times this value. Also the amplitudes\\ and section lengths of the boson and photon waves and of the gluon curls scale with this value. % \item \vercol\verb$\setlength{\feynhandarrowsize}{8pt}$\txcol sets the size of the arrows to 8pt (default: 6pt)\\ on all charged propagator lines \vercol\verb$(fer, antfer, chabos, antbos, chasca, antsca, chagho, antgho)$\txcol\\ and majorana lines \vercol\verb$(maj, antmaj).$\txcol The momentum arrows' tip size scales as 0.8 times this value. % \item \vercol\verb$\setlength{\feynhandtopsep}{8pt}$\txcol sets the width of the crossing gap for propagators on top of each other. The default value is \vercol\verb$18\feynhandlinesize$\txcol. % \item \vercol\verb$\renewcommand{\feynhandtopsepcolor}{yellow}$\txcol sets the color of the crossing gap (default is white). % \end{itemize} % \noindent \begin{minipage}{0.6\linewidth} Example diagram drawn with default values: \end{minipage} % \begin{minipage}{0.38\linewidth} \tikzsetnextfilename{tikz_customize_default} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex [ringdot] (a) at (0,0) {}; \vertex [NWblob] (b) at (2,0) {}; \vertex [crossdot] (c1) at (4,0.5) {}; \vertex [dot] (c2) at (5,-0.5) {}; \vertex [dot] (d) at (3,-0.5) {}; \propag [chasca, Green] (a) to (b); \propag [gluon, Blue] (b) to (c2); \propag [fer, top] (d) to (c1); \propag [chabos, RedOrange, momentum={[arrow style=RedOrange] $k$}] (b) to (c1); \end{feynhand} \end{tikzpicture} \end{minipage} \\ \noindent \begin{minipage}{0.6\linewidth} Same diagram (same TikZ/FeynHand code) drawn after setting: \vercol\begin{verbatim} \setlength{\feynhanddotsize}{2mm} \setlength{\feynhandblobsize}{10mm} \setlength{\feynhandlinesize}{1pt} \setlength{\feynhandarrowsize}{9pt} \setlength{\feynhandtopsep}{3mm} \renewcommand{\feynhandtopsepcolor}{yellow} \end{verbatim}\txcol \end{minipage} % \setlength{\feynhanddotsize}{2mm} \setlength{\feynhandblobsize}{10mm} \setlength{\feynhandlinesize}{1pt} \setlength{\feynhandarrowsize}{9pt} \setlength{\feynhandtopsep}{3mm} \renewcommand{\feynhandtopsepcolor}{yellow} % \begin{minipage}{0.38\linewidth} \tikzsetnextfilename{tikz_customize_big} %\tikzset{external/force remake} \begin{tikzpicture} \begin{feynhand} \vertex [ringdot] (a) at (0,0) {}; \vertex [NWblob] (b) at (2,0) {}; \vertex [crossdot] (c1) at (4,0.5) {}; \vertex [dot] (c2) at (5,-0.5) {}; \vertex [dot] (d) at (3,-0.5) {}; \propag [chasca, Green] (a) to (b); \propag [gluon, Blue] (b) to (c2); \propag [fer, top] (d) to (c1); \propag [chabos, RedOrange, momentum={[arrow style=RedOrange] $k$}] (b) to (c1); \end{feynhand} \end{tikzpicture} \end{minipage} % % set again the default values \setlength{\feynhanddotsize}{1.5mm} \setlength{\feynhandblobsize}{7.5mm} \setlength{\feynhandlinesize}{0.5pt} \setlength{\feynhandarrowsize}{6pt} \setlength{\feynhandtopsep}{18\feynhandlinesize} \renewcommand{\feynhandtopsepcolor}{white} \vspace{-4mm} \\ The color of a vertex/propagator style can be set for all subsequent diagrams in the current local Tex group (e.g. document or equation, figure, minipage environment) by the command \vercol\verb$\tikzfeynhandset$\txcol with the key \vercol\verb$every$\txcol: % \vercol\begin{verbatim} \tikzfeynhandset{every particle={/tikz/color=blue}, every dot={/tikz/color=red},} \tikzfeynhandset{every fermion={/tikz/color=green},} \end{verbatim}\txcol % % ===================================================================== % ===================================================================== % ===== APPENDICES ============================================ % %\newpage \appendix % \section{TikZ Basics} \label{Apx_tikzbasics} % This appendix summarizes a few things that can be done with TikZ, just enough for getting started quickly.\\ You can discover much more, and I recommend becoming familiar with the TikZ/PGF Manual \cite{tikz} bit by bit. % ===================================================================== \subsection{Environment} \label{Apx_tikzbasics_environment} % \noindent All TikZ commands are used within the \brocol\verb$tikzpicture$\txcol environment. All TikZ commands that we mention are understood as appearing in this environment. When we want to use captions and labels, we enclose it in the \brocol\verb$figure$\txcol environment, but it can be called anywhere in the text or math of a Tex document:\\ \noindent \begin{minipage}{0.6\linewidth} \brocol\begin{verbatim} \begin{figure} \centering %\tikzset{external/force remake} \begin{tikzpicture} ... TikZ commands ... \end{tikzpicture} \caption{A diagram drawn with TikZ.} \label{Fig:_diagram1} \end{figure} \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.39\linewidth} \brocol\begin{verbatim} \begin{align*} \int dx\; f(x) = \alpha %\tikzset{external/force remake} \begin{tikzpicture} ... TikZ commands ... \end{tikzpicture} \end{align*} \end{verbatim}\txcol \end{minipage} % % ===================================================================== \subsection{Layers} \label{Apx_tikzbasics_layers} % \noindent In general, objects that are drawn later in the code appear on top of objects that are drawn earlier (if they overlap). If we need to declare explicitly which objects we want to appear on top of other objects, then we can use layers. Layers are first declared with \brocol\verb$\pgfdeclarelayer$\txcol as in the following example, and then their order is set up from backmost to foremost with \brocol\verb$\pgfsetlayers$\txcol. The layer \brocol\verb$main$\txcol is predefined and does not need to be declared, but it must always be included in the order setup, for example: % \brocol\begin{verbatim} \pgfdeclarelayer{background} \pgfdeclarelayer{foreground} \pgfsetlayers{background,main,foreground} \end{verbatim}\txcol % All drawing commands by default are placed on the layer \brocol\verb$main$\txcol. For placing them on other layers, they must be enclosed in the \brocol\verb$\pgfonlayer$\txcol environment as in the following example (the \brocol\verb$opacity$\txcol option is optional).\\ \noindent \begin{minipage}{0.83\linewidth} \brocol\begin{verbatim} \begin{pgfonlayer}{foreground} \filldraw[fill=Orange, draw=Red, opacity=0.7] (1,0) circle [radius=6mm]; \end{pgfonlayer} \filldraw[fill=Blue, draw=black] (1,0) circle [radius=9mm]; \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.16\linewidth} \tikzsetnextfilename{tikz_layers} %\tikzset{external/force remake} \begin{tikzpicture} \pgfdeclarelayer{foreground} \pgfsetlayers{main,foreground} \begin{pgfonlayer}{foreground} \filldraw[fill=Orange,draw=Red, opacity=0.7] (1,0) circle [radius=6mm]; \end{pgfonlayer} \filldraw[fill=Yellow,draw=black] (0,0) circle [radius=8mm]; \end{tikzpicture} \end{minipage} % % ===================================================================== \subsection{Drawing objects} \label{Apx_tikzbasics_drawing} % \noindent All drawing commands must end with a \;;\; (semicolon). % % ===================================================================== \subsubsection{Text and formulas} % \noindent Plain text and LaTex math formulas can be inserted anywhere in the graphic with TikZ' \brocol\verb$node$\txcol command. The text is centered at the node's coordinates:\\ \noindent \begin{minipage}{0.83\linewidth} \brocol\begin{verbatim} \filldraw[fill=Yellow, draw=Red] (0,0) circle [radius=1cm]; \node at (-0.8,-0.3) {\textcolor{Blue}{\bfseries Yes! $\alpha^2$}}; \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.16\linewidth} \tikzsetnextfilename{tikz_text_math} %\tikzset{external/force remake} \begin{tikzpicture} \filldraw[fill=Yellow, draw=Red] (0,0) circle [radius=1cm]; \node at (-0.8,-0.3) {\textcolor{Blue}{\bfseries Yes! $\alpha^2$}}; \end{tikzpicture} \end{minipage} % % % ===================================================================== \subsubsection{Lines: straight and smooth} % \noindent A straight line from node (a) to node (b) is drawn by\\ \noindent \begin{minipage}{0.83\linewidth} \brocol\begin{verbatim} \draw [Red, line width = 2pt] (a1) to (a2); \draw (b1) to [Blue] (b2); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.16\linewidth} \tikzsetnextfilename{tikz_lines_straight} %\tikzset{external/force remake} \begin{tikzpicture} \node (a1) at (0,0) {}; \node (a2) at (1,0.5) {}; \node (b1) at (2,0) {}; \node (b2) at (3,0.5) {}; \draw [Red, line width = 2pt] (a1) to (a2); \draw (b1) to [Blue] (b2); \end{tikzpicture} \end{minipage} % A smooth curve which leaves (a) at an angle of 45 degrees and enters (b) at 180 degrees is drawn by\\ \noindent \begin{minipage}{0.83\linewidth} \brocol\begin{verbatim} \draw [Green, line width=1mm] (a1) to [out=45, in=180] (a2); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.16\linewidth} \tikzsetnextfilename{tikz_lines_in_out} %\tikzset{external/force remake} \begin{tikzpicture} \node (a1) at (0,0) {}; \node (a2) at (1,0.5) {}; \draw [Green, line width=1mm] (a1) to [out=45, in=180] (a2); \end{tikzpicture} \end{minipage} \\ \noindent The angles are with respect to the coordinate system, that is: 0 degrees points right, 90 up, 180 left and 270 down. % % % ===================================================================== \subsubsection{Lines with arrows} % Lines can be equipped with arrows by specifying this in the options of \brocol\verb$\draw$\txcol as inthe examples below. The most basic arrow styles are: \brocol\verb$>, Latex, Stealth, Circle, Bar$\txcol. Note the extra curly braces!\\ \noindent \begin{minipage}{0.87\linewidth} \brocol\begin{verbatim} \draw [->] (a1) to (a2); \draw [<->,Red, line width = 1pt] (b1) to [out=45, in=135] (b2); \draw [{Circle[width=5pt,length=5pt]}-{Latex[length=8pt,width=6pt]}] (c1) to (c2); \draw [{Bar[Red,width=8pt]}-{Stealth[length=8pt, width=6pt]}] (d1) to (d2); \end{verbatim}\txcol \end{minipage} % \begin{minipage}{0.12\linewidth} \tikzsetnextfilename{tikz_arrows} %\tikzset{external/force remake} \begin{tikzpicture} \node (a1) at (0,0) {}; \node (a2) at (2,0) {}; \node (b1) at (0,-0.7) {}; \node (b2) at (2,-0.7) {}; \node (c1) at (0,-1) {}; \node (c2) at (2,-1) {}; \node (d1) at (0,-1.5) {}; \node (d2) at (2,-1.5) {}; \draw [->] (a1) to (a2); \draw [<->,Red, line width = 1pt] (b1) to [out=45, in=135] (b2); \draw [{Circle[width=5pt,length=5pt]}-{Latex[length=8pt, width=6pt]}] (c1) to (c2); \draw [{Bar[Red,width=8pt]}-{Stealth[length=8pt, width=6pt]}] (d1) to (d2); \end{tikzpicture} \end{minipage} % % ===================================================================== \subsection{Externalizing graphics} \label{Apx_tikzbasics_externalize} % \noindent Externalizing means that TikZ creates a separate PDF file for each \brocol\verb$tikzpicture$\txcol environment which it encounters in the document. That is, when a \brocol\verb$tikzpicture$\txcol is encountered, TikZ checks whether there is already a corresponding PDF, and if so, then it includes this PDF with \brocol\verb$\includegraphics$\txcol and ignores the code in the \brocol\verb$tikzpicture$\txcol, else it creates the corresponding PDF such that it can be used in the next LaTex run. Using the external PDFs can speed up the LaTex runs significantly. TikZ also takes care of vertically positioning the externalized PDFs according to the \brocol\verb$baseline$\txcol option when it is used with \brocol\verb$tikzpicture$\txcol (this is what the .dpth files are for). TikZ recognizes automatically when the TikZ code of a graphic has been modified, and generates fresh PDFs \emph{only} for these modified graphics in the next LaTex run. In order to activate externalizing, we need to load the library with \brocol\verb$\usetikzlibrary{external}$\txcol (which both TikZ-Feynman and FeynHand do automatically) and put a \brocol\verb$\tikzexternalize[prefix=graphics/tikz/]$\txcol somewhere above the \brocol\verb$\begin{document}$\txcol command. Here, we use the \brocol\verb$prefix$\txcol option for telling TikZ that we want the external files to be created in the subdirectory \brocol\verb$graphics/tikz/$\txcol of the current dirctory. It may come in handy to have the TikZ-generated files in a subfolder separate from the other external graphic files. For example, in order to assure that the final document contains the final version of all graphics, we can force TikZ to refresh them by deleting all external PDFs created by TikZ. Having these in the separate subfolder avoids deleting graphics from other sources. Alternatively, we can include \brocol\verb$\tikzset{external/force remake}$\txcol in the document's preamble to force refresh all external PDFs. Including \brocol\verb$\tikzset{external/force remake}$\txcol in a local Tex group force refreshes all external PDFs in this group (e.g.~an equation, figure or minipage environment). We also have to tell LaTex to use shell escaping in order to enable it to create the external files. TexLive ships with the TexWorks editor, in which this can be achieved by going to the Edit menu and selecting Preferences. Next choose the Typesetting rider, select PdfLatex in the Processing Tools window, and add the argument -shell-escape by clicking on the + button. Then, move it to the top of the list by clicking on the up-arrow button. This should look somewhat like Figure~\ref{Fig:_shell_escape}. % \begin{figure} \centering \includegraphics[width=0.7\linewidth]{shell_escape.jpg} \caption{TexWorks screenshot.} \label{Fig:_shell_escape} \end{figure} TikZ creates filenames automatically for the externalized PDFs. For later use of these, it is often preferrable to specify these filenames by hand with the \brocol\verb$\tikzsetnextfilename$\txcol command, which needs to be placed right above the \brocol\verb$\begin{tikzpicture}$\txcol of the corresponding graphic. For example, \brocol\verb$\tikzsetnextfilename{scatter}$\txcol tells TikZ to store the next graphic as \brocol\verb$scatter.pdf$\txcol Apart from speeding up LaTex runs, the external files can also be used for submissions to journals which do not support TikZ. One way of doing this works without modifying the graphics' code: Instead of \brocol\verb$\usepackage{tikz}$\txcol respectively \brocol\verb$\usepackage{feynhand}$\txcol we put \brocol\verb$\usepackage{tikzexternal}$\txcol and include the file \brocol\verb$tikzexternal.sty$\txcol in our submissions. It basically tells LaTex to ignore the code in the \brocol\verb$tikzpicture$\txcol environments and to use the external PDFs instead. % If this does not work, then another way is to replace the figures' \brocol\verb$tikzpicture$\txcol environments by \brocol\verb$\includegraphics{tikz/filename.pdf}$\txcol and the equations' \brocol\verb$tikzpicture$\txcol environments by \brocol\verb$\vcenterbox{\includegraphics{tikz/filename.pdf}}$\txcol commands, having defined in the preamble: % \brocol \begin{verbatim} \graphicspath{{graphics/}} % mind the double brackets! \newcommand{\vcenterbox}[2][0.5]{\raisebox{-#1\height}{#2}} % \vcenterbox centers the box's content (argument #2) vertically on the baseline. % The optional argument #1 is for fine adjustment: % values between 0 and 0.5 raise the box's center above the baseline, % values between 0.5 and 1 push the box's center below the baseline. \end{verbatim} \txcol % % ===================================================================== % ===================================================================== % ===== BIBLIOGRAPHY ========================================== % \begin{thebibliography}{} % \bibitem{tikz} J.~Cr{\'emer}: A very minimal introduction to TikZ,\; T.~Tantau et al.: TikZ {\&} PGF Manual,\newline both available at \texttt{https://www.ctan.org/pkg/pgf} % \bibitem{tikzfeynman} J.~Ellis: TikZ-Feynman package documentation,%\newline available at \texttt{https://www.ctan.org/pkg/tikz-feynman} % \bibitem{tikzfeynmanArticle} J.~Ellis: TikZ-Feynman: Feynman diagrams with TikZ, Computer Physics Comm. \textbf{210}, p.103-123, 2017.\newline \texttt{https://doi.org/10.1016/j.cpc.2016.08.019}\newline \texttt{http://arxiv.org/abs/1601.05437} % \end{thebibliography}{} % % % ===================================================================== % \end{document} % %