texlive[46502] Master: tikz-feynhand (31jan18)

commits+karl at tug.org commits+karl at tug.org
Wed Jan 31 22:59:37 CET 2018


Revision: 46502
          http://tug.org/svn/texlive?view=revision&revision=46502
Author:   karl
Date:     2018-01-31 22:59:37 +0100 (Wed, 31 Jan 2018)
Log Message:
-----------
tikz-feynhand (31jan18)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/tikz-feynhand/
    trunk/Master/texmf-dist/doc/latex/tikz-feynhand/README.md
    trunk/Master/texmf-dist/doc/latex/tikz-feynhand/changes.txt
    trunk/Master/texmf-dist/doc/latex/tikz-feynhand/shell_escape.jpg
    trunk/Master/texmf-dist/doc/latex/tikz-feynhand/tikz-feynhand.userguide.pdf
    trunk/Master/texmf-dist/doc/latex/tikz-feynhand/tikz-feynhand.userguide.tex
    trunk/Master/texmf-dist/tex/latex/tikz-feynhand/
    trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikz-feynhand.sty
    trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikzfeynhand.keys.code.tex
    trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikzlibraryfeynhand.code.tex
    trunk/Master/tlpkg/tlpsrc/tikz-feynhand.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/tikz-feynhand/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-feynhand/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tikz-feynhand/README.md	2018-01-31 21:59:37 UTC (rev 46502)
@@ -0,0 +1,48 @@
+
+The package Tikz-FeynHand https://ctan.org/pkg/tikz-feynhand let's you draw Feynman diagrams using TikZ.
+
+It is a low-end modification of the package TikZ-Feynman at https://ctan.org/pkg/tikz-feynman,
+one of whose principal advantages is the automatic generation of diagrams, for which it needs LuaTex.
+FeynHand only provides the manual mode and hence runs in LaTex without any reference to LuaTex.
+
+In addition it provides some NEW STYLES for vertices and propagators, 
+alternative SHORTER KEYWORDS in addition to TikZ-Feynman's longer ones, 
+some shortcut commands for QUICKLY CUSTOMIZING the diagrams' look,
+and the new feature to put one propagator "ON TOP" of another.
+
+It also includes a quick USER GUIDE for getting started,
+with many examples and a 5-minute introduction to TikZ.
+
+
+
+ FILES
+-------
+
+1. tikz-feynhand.sty              - the tex style file of the package
+2. tikzlibraryfeynhand.code.tex   - code file
+3. tikzfeynhand.keys.code.tex     - defines Tikz keys
+4. tikz-feynhand.userguide.pdf    - a userguide for the package
+5. tikz-feynhand.userguide.tex    - the tex source of the userguide
+6. changes.txt                    - lists changes applied to Tikz-Feynman to obtain Tikz-FeynHand
+7. shell_escape.jpg               - a TexWorks screenshot for the userguide
+8. README.md                      - this file
+
+
+
+LICENSE
+-------
+
+Copyright (C) 2018  Max Dohse
+Copyright (C) 2016  Joshua Ellis
+
+This whole package (code and documentation)
+may be redistributed and/or modified 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 work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Max Dohse.
+
+This package 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.


Property changes on: trunk/Master/texmf-dist/doc/latex/tikz-feynhand/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tikz-feynhand/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-feynhand/changes.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tikz-feynhand/changes.txt	2018-01-31 21:59:37 UTC (rev 46502)
@@ -0,0 +1,281 @@
+LIST OF CHANGES 
+
+by which this package tikz-feynhand (Version 1.0.0 of 2018/01/31) 
+which is available at https://ctan.org/pkg/tikz-feynhand
+
+was obtained from the original package tikz-feynman (Version 1.1.0 of 2016/02/05)
+which is available at https://ctan.org/pkg/tikz-feynman
+
+==========================================================================
+
+The LICENSE has been changed from LPPL to GNU General Public Licence v3.
+
+The changes are rather minor:
+any reference to LuaTex has been removed,
+the definitions that are unnecessary 
+for manual diagram creation have been removed,
+and some drawing styles have been added.
+
+In general, I REPLACED each occurence of the string "feynman" by "feynhand", 
+in order to avoid clashes when both packages are loaded simultaneously, 
+and most of these replacements are NOT listed individually below.
+Apart from that, the list below contains all changes to the best of my knowledge.
+
+The files tikzfeynman.patch.3.0.0.lua and tikzfeynman.patch.3.0.1.lua
+of the original package are not contained in the modified package,
+neither is the documentation of the original package.
+
+All file names and line numbers below refer to 
+the files of the original package tikz-feynman (Version 1.1.0 of 2016/02/05).
+
+==============================================
+   FILE:   tikz-feynman.sty
+
++ general: package name changed
++ line 32: removed \RequirePackage{ifluatex} 
+
+==============================================
+   FILE:   tikzlibraryfeynman.code.tex
+
++ line 33: removed graphs,
++ lines 38-48: removed \ifluatex ...
++ lines 69-84: removed %Luatex warning ...
++ lines 119-141: removed %% Override Lua ...
++ line 159: removed \let\tikzfeynman at orig@graph=\graph
++ lines 162+163: removed, inserted:
+       \let\propag=\tikzfeynhand at commands@propag
+       \let\propag=\propagator
++ line 166: removed \tikz at lib@ignore at sizetrue
++ lines 181-190: removed %% \feynmandiagram ...
++ lines 266-282: removed %% Diagram ...
++ lines 284-291: removed %% Graph ...
+       inserted:
+       %% Propagators
+       \newcommand{\tikzfeynhand at commands@propag}[1][]{\draw [#1]}
++ line 321: removed \pgfkeyslet{/tikzfeynman/rmomentum/. at cmd}...
++ line 327: removed \pgfkeyslet{/tikzfeynman/rmomentum'/. at cmd}...
+       inserted:
+       % short versions of momentum styles
+       \pgfkeyslet{/tikzfeynhand/rmomentum/. at cmd}{\tikzfeynhand at momentum@stdr}
+       \pgfkeyslet{/tikzfeynhand/rmomentum'/. at cmd}{\tikzfeynhand at momentum@stdrp}
+
+       \pgfkeyslet{/tikzfeynhand/mom/. at cmd}{\tikzfeynhand at momentum@std}
+       \pgfkeyslet{/tikzfeynhand/mom'/. at cmd}{\tikzfeynhand at momentum@stdp}
+
+       \pgfkeyslet{/tikzfeynhand/revmom/. at cmd}{\tikzfeynhand at momentum@stdr}
+       \pgfkeyslet{/tikzfeynhand/revmom'/. at cmd}{\tikzfeynhand at momentum@stdrp}
+
+
+==============================================
+   FILE:   tikzfeynman.keys.code.tex
+
++ line 22: inserted
+       %% Lengths
+       \newlength{\feynhanddotsize}
+       \setlength{\feynhanddotsize}{1.5mm}
+
+       \newlength{\feynhandblobsize}
+       \setlength{\feynhandblobsize}{7.5mm}
+
+       \newlength{\feynhandlinesize}
+       \setlength{\feynhandlinesize}{0.5pt}
+
+       \newlength{\feynhandarrowsize}
+       \setlength{\feynhandarrowsize}{6pt}
+
+       \newlength{\feynhandtopsep}
+       \setlength{\feynhandtopsep}{18\feynhandlinesize}
+
+       %% Colors
+       \newcommand{\feynhandtopsepcolor}{white}
+
+
++ line 117: replaced \pgfmetadecorationsegmentamplitude
+                  by 3 * \feynhandlinesize
++ line 141: removed /tikzfeynman/medium,
++ lines 145-206: removed   %% Diagrams ...
++ line 219, 258, 280: 
+            each removed /tikz/graphs/as={},
++ line 224: replaced /tikz/minimum size=1.5mm,
+                  by /tikz/minimum size=\feynhanddotsize,
++ line 225, 264, 337, 348: 
+            each inserted /tikz/line width = \feynhandlinesize,
++ lines 230-236: replaced every occurrence of square dot
+                           by squaredot
++ lines 238-245: replaced every occurrence of empty dot
+                           by ringdot
++ lines 230-236: replaced every occurrence of crossed dot
+                           by crossdot
++ line 249: replaced /tikz/minimum size=3mm,
+                  by /tikz/minimum size=2\feynhanddotsize,
++ line 260: replaced /tikz/fill=none,
+            by /tikz/fill,
++ lines 261+275:
+            each replaced /tikz/outer sep=0.5\pgflinewidth,
+            by /tikz/outer sep={0.5*\the\feynhandlinesize},
++ line 263: replaced /tikz/minimum size=0.75cm,
+            by     /tikz/minimum size=\feynhandblobsize,
++ line 264: removed /tikz/pattern=north west lines,
++ line 269: inserted /tikz/fill=black,
++ line 270: inserted
+       every ringblob@@/.style={
+         },
+       every ringblob/.style={/tikzfeynhand/every ringblob@@/.append style={#1}},
+       ringblob/.style={
+         /tikzfeynhand/every blob@@,
+         /tikzfeynhand/every ringblob@@,
+         /tikz/fill=white,
+         },
+       every NWblob@@/.style={
+         },
+       every NWblob/.style={/tikzfeynhand/every NWblob@@/.append style={#1}},
+       NWblob/.style={
+         /tikzfeynhand/every blob@@,
+         /tikzfeynhand/every NWblob@@,
+         /tikz/fill=none,
+         /tikz/pattern=north west lines,
+         },
+       every NEblob@@/.style={
+         },
+       every NEblob/.style={/tikzfeynhand/every NEblob@@/.append style={#1}},
+       NEblob/.style={
+         /tikzfeynhand/every blob@@,
+         /tikzfeynhand/every NEblob@@,
+         /tikz/fill=none,
+         /tikz/pattern=north east lines,
+         },
+       every grayblob@@/.style={
+         },
+       every grayblob/.style={/tikzfeynhand/every grayblob@@/.append style={#1}},
+         grayblob/.style={
+         /tikzfeynhand/every blob@@,
+         /tikzfeynhand/every grayblob@@,
+         /tikz/fill=gray!50!white,
+         },
++ line 288: replaced arrow size=1.5pt,
+                  by   arrow size=\feynhandarrowsize,
++ line 295: replaced xshift...
+                  by xshift=-0.166666\feynhandarrowsize,
++ line 297: replaced inner sep=\tikzfeynman at arrow@size,
+                  by inner sep=0mm,
+                       minimum width = \tikzfeynhand at arrow@size,
++ line 309: replaced xshift... 
+                  by xshift=0.166666\feynhandarrowsize,
++ line 316: replaced inner sep=\tikzfeynman at arrow@size,
+                  by inner sep=0mm,
+                       minimum width = \tikzfeynhand at arrow@size,
++ line 343: inserted
+  every top@@/.style={
+    /tikz/preaction={draw=\feynhandtopsepcolor,line width=\feynhandtopsep} 
+  },
+  every top/.style={/tikzfeynhand/every top@@/.append style={#1}},
+  top/.style={
+    /tikzfeynhand/every top@@,
+  },
+
++ lines 350-352: replaced amplitude= ...
+                           by amplitude=3\feynhandlinesize,
+                                segment length=7.5\feynhandlinesize,
++ line 381: inserted /tikz/line width = \feynhandlinesize,
++ lines 383-384: replaced amplitude= ...
+                           by amplitude=3\feynhandlinesize,
+                                segment length=7.5\feynhandlinesize,
++ line 399: inserted /tikz/line width = \feynhandlinesize,
++ line 435 replaced /tikz/thick,
+                 by /tikz/line width = 2\feynhandlinesize,
++ line 442: inserted
+  every charged ghost@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikzfeynhand/with arrow=0.5,
+    },
+  },
+  every charged ghost/.style={/tikzfeynhand/every charged ghost@@/.append style={#1}},
+  charged ghost/.style={
+    /tikzfeynhand/ghost,
+    /tikzfeynhand/every charged ghost@@,
+  },
+  every anti charged ghost@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikzfeynhand/with reversed arrow=0.5,
+    },
+  },
+  every anti charged ghost/.style={/tikzfeynhand/every anti charged ghost@@/.append style={#1}},
+  anti charged ghost/.style={
+    /tikzfeynhand/ghost,
+    /tikzfeynhand/every anti charged scalar@@,
+  },
+
++ line 447, 459, 473, 486, 497, 520: 
+            each inserted /tikz/line width = \feynhandlinesize,
++ line 501: replaced segment length=1.5mm
+                  by amplitude=3\feynhandlinesize,
+                       segment length=8\feynhandlinesize
++ line 510: inserted:
+  % short versions of style names
+  pho/.style={
+    /tikzfeynhand/photon,
+  },
+  bos/.style={
+    /tikzfeynhand/boson,
+  },
+  antbos/.style={
+    /tikzfeynhand/anti charged boson,
+  },
+  chabos/.style={
+    /tikzfeynhand/charged boson,
+  },
+  sca/.style={
+  	/tikzfeynhand/scalar,
+  },
+  chasca/.style={
+  	/tikzfeynhand/charged scalar,
+  },
+  antsca/.style={
+    /tikzfeynhand/anti charged scalar,
+  },
+  fer/.style={
+    /tikzfeynhand/fermion,
+  },
+  antfer/.style={
+    /tikzfeynhand/anti fermion,
+  },
+  gho/.style={
+    /tikzfeynhand/ghost,
+  },
+  chagho/.style={
+    /tikzfeynhand/charged ghost,
+  },
+  antgho/.style={
+    /tikzfeynhand/anti charged ghost,
+  },
+  glu/.style={
+    /tikzfeynhand/gluon,
+  },
+  maj/.style={
+    /tikzfeynhand/majorana,
+  },
+  antmaj/.style={
+    /tikzfeynhand/anti majorana,
+  },
+
++ line 515: replaced insertion/size=3pt,
+            by insertion/size=5\feynhandlinesize,
++ line 541: replaced momentum/arrow distance=3mm,
+                  by momentum/arrow distance={\the\feynhandarrowsize},
++ line 548: inserted
+       momentum/arrow thickness/.store in=\tikzfeynhand at momentum@arrow at thickness,
+       momentum/arrow thickness={0.64*\the\feynhandlinesize},
+       momentum/arrow size/.store in=\tikzfeynhand at momentum@arrow at size,
+       momentum/arrow size={0.8*\the\feynhandarrowsize},
++ lines 559, 573, 592, 613, 627, 646, 667, 681, 700, 721, 736, 756: 
+                  each replaced \draw [-Stealth, \tikzfeynman at momentum@arrow at style]
+                  by \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          	                     line width=\tikzfeynhand at momentum@arrow at thickness, 
+                                \tikzfeynhand at momentum@arrow at style]
++ lines 772+776: each removed /tikz/looseness=1.5,
++ lines 786-814: removed %% Graceful ...
+


Property changes on: trunk/Master/texmf-dist/doc/latex/tikz-feynhand/changes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tikz-feynhand/shell_escape.jpg
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/tikz-feynhand/shell_escape.jpg
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-feynhand/shell_escape.jpg	2018-01-31 21:58:36 UTC (rev 46501)
+++ trunk/Master/texmf-dist/doc/latex/tikz-feynhand/shell_escape.jpg	2018-01-31 21:59:37 UTC (rev 46502)

Property changes on: trunk/Master/texmf-dist/doc/latex/tikz-feynhand/shell_escape.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tikz-feynhand/tikz-feynhand.userguide.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/tikz-feynhand/tikz-feynhand.userguide.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-feynhand/tikz-feynhand.userguide.pdf	2018-01-31 21:58:36 UTC (rev 46501)
+++ trunk/Master/texmf-dist/doc/latex/tikz-feynhand/tikz-feynhand.userguide.pdf	2018-01-31 21:59:37 UTC (rev 46502)

Property changes on: trunk/Master/texmf-dist/doc/latex/tikz-feynhand/tikz-feynhand.userguide.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tikz-feynhand/tikz-feynhand.userguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikz-feynhand/tikz-feynhand.userguide.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tikz-feynhand/tikz-feynhand.userguide.tex	2018-01-31 21:59:37 UTC (rev 46502)
@@ -0,0 +1,2122 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% TikZ-FeynHand
+% Feynman Diagrams with TikZ (LaTex manual version)
+% Copyright (C) 2018 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\\}
+%
+\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{1mm}
+%
+% =====================================================================
+\hrule
+\vspace{2mm}
+
+{\centering Version 1.0.0 - 
+ available at\qquad  \texttt{https://ctan.org/pkg/tikz-feynhand}\\}
+
+\vspace{1mm}
+
+\hrule
+% =====   TABEL OF CONTENTS   ===========================================
+%
+\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}
+%
+% --------------------------------------------------------------------------------
+\newpage\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}
+\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}
+
+%
+% -------------------------------------------------------------------------------------------------------
+\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{2mm}\\
+%
+\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}
+\\
+%
+\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}
+%
+%
+% =====================================================================
+%
+\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}
+%
+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     ============================================
+%
+\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.75\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}
+%
+%
+


Property changes on: trunk/Master/texmf-dist/doc/latex/tikz-feynhand/tikz-feynhand.userguide.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikz-feynhand.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikz-feynhand.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikz-feynhand.sty	2018-01-31 21:59:37 UTC (rev 46502)
@@ -0,0 +1,48 @@
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% TikZ-FeynHand, Version 1.0.0 of 2018/01/31
+% Feynhand Diagrams with TikZ (LaTex manual version)
+% Copyright (C) 2018 Max Dohse
+% Copyright (C) 2016 Joshua Ellis
+%
+%
+% This LaTeX file 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.
+%
+%
+% This file is a modification of the file tikz-feynman.sty
+% of the package tikz-feynman (version 1.1.0 of 2016/02/05)
+% which is available online at https://ctan.org/pkg/tikz-feynman
+% for a list of changes, see the file CHANGES.TXT
+%
+% available at https://ctan.org/pkg/tikz-feynhand
+% The Current Maintainer of this work is Max Dohse.
+%
+% This program 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. 
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\tikzfeynhand at date{2018/01/31}
+\def\tikzfeynhand at version@major{1}
+\def\tikzfeynhand at version@minor{1}
+\def\tikzfeynhand at version@patch{0}
+\edef\tikzfeynhand at version{\tikzfeynhand at version@major.\tikzfeynhand at version@minor.\tikzfeynhand at version@patch}
+
+\ProvidesPackage{tikz-feynhand}[\tikzfeynhand at date v\tikzfeynhand at version Feynman diagrams with TikZ (LaTex manual version)]
+
+\RequirePackage{tikz}[2013/12/13] % v3.0.0
+\RequirePackage{pgfopts}
+
+\usetikzlibrary{feynhand}
+\usetikzlibrary{graphs}
+
+\endinput
+
+% Local Variables:
+% TeX-master: "tikz-feynhand"
+% End:


Property changes on: trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikz-feynhand.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikzfeynhand.keys.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikzfeynhand.keys.code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikzfeynhand.keys.code.tex	2018-01-31 21:59:37 UTC (rev 46502)
@@ -0,0 +1,907 @@
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% TikZ-FeynHand, Version 1.0.0 of 2018/01/31
+% Feynhand Diagrams with TikZ (LaTex manual version)
+% Copyright (C) 2018 Max Dohse
+% Copyright (C) 2016 Joshua Ellis
+%
+%
+% This LaTeX file 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.
+%
+% This file is a modification of the file tikzfeynman.keys.code.tex
+% of the package tikz-feynman (version 1.1.0 of 2016/02/05)
+% which is available online at https://ctan.org/pkg/tikz-feynman
+% for a list of changes, see the file CHANGES.TXT
+%
+% available at https://ctan.org/pkg/tikz-feynhand
+% The Current Maintainer of this work is Max Dohse.
+%
+% This program 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. 
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Lengths
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newlength{\feynhanddotsize}
+\setlength{\feynhanddotsize}{1.5mm}
+
+\newlength{\feynhandblobsize}
+\setlength{\feynhandblobsize}{7.5mm}
+
+\newlength{\feynhandlinesize}
+\setlength{\feynhandlinesize}{0.5pt}
+
+\newlength{\feynhandarrowsize}
+\setlength{\feynhandarrowsize}{6pt}
+
+\newlength{\feynhandtopsep}
+\setlength{\feynhandtopsep}{18\feynhandlinesize}
+
+%% Colors
+\newcommand{\feynhandtopsepcolor}{white}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Shapes
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Crossed Circle
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfdeclareshape{crossed circle}
+{
+  \inheritsavedanchors[from=circle]
+  \inheritanchorborder[from=circle]
+  \inheritanchor[from=circle]{north}
+  \inheritanchor[from=circle]{north west}
+  \inheritanchor[from=circle]{north east}
+  \inheritanchor[from=circle]{center}
+  \inheritanchor[from=circle]{west}
+  \inheritanchor[from=circle]{east}
+  \inheritanchor[from=circle]{mid}
+  \inheritanchor[from=circle]{mid west}
+  \inheritanchor[from=circle]{mid east}
+  \inheritanchor[from=circle]{base}
+  \inheritanchor[from=circle]{base west}
+  \inheritanchor[from=circle]{base east}
+  \inheritanchor[from=circle]{south}
+  \inheritanchor[from=circle]{south west}
+  \inheritanchor[from=circle]{south east}
+
+  \inheritbackgroundpath[from=circle]
+
+  \foregroundpath{
+    % Compute south west
+    \centerpoint
+    \pgf at xc=\radius
+    \advance\pgf at x by-0.707107\pgf at xc
+    \advance\pgf at y by-0.707107\pgf at xc
+    \pgf at xa=\pgf at x \pgf at ya=\pgf at y  % Store coordinates
+    % Compute north east point
+    \centerpoint
+    \pgf at xc=\radius
+    \advance\pgf at x by0.707107\pgf at xc
+    \advance\pgf at y by0.707107\pgf at xc
+    \pgf at xb=\pgf at x \pgf at yb=\pgf at y  % Store coordinates
+    \pgfpathmoveto{\pgfqpoint{\pgf at xa}{\pgf at ya}}
+    \pgfpathlineto{\pgfqpoint{\pgf at xb}{\pgf at yb}}
+    \pgfpathmoveto{\pgfqpoint{\pgf at xa}{\pgf at yb}}
+    \pgfpathlineto{\pgfqpoint{\pgf at xb}{\pgf at ya}}
+    \pgfsetarrowsstart{}
+    \pgfsetarrowsend{}
+ }
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Decorations
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Complete Sines
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Complete sines replaces the path with a whole number of sine waves.
+%% Thanks to http://tex.stackexchange.com/a/134516/26980
+\pgfdeclaredecoration{complete sines}{initial}
+{
+  %% Begin by computing the overall path length and find how many sine waves we
+  %% can fit in.  Nothing happens beyond the computation.
+  \state{initial}[
+    width=+0pt,
+    next state=move,
+    persistent precomputation={
+      \def\tikzfeynhand at cs@angle at step{30}
+      \def\tikzfeynhand at cs@current at angle{0}
+      \pgfmathsetlengthmacro{\tikzfeynhand at cs@points at per@step}{
+        \pgfdecoratedinputsegmentlength
+        / int(\pgfdecoratedinputsegmentlength
+        / \pgfdecorationsegmentlength)
+        / 360
+        * \tikzfeynhand at cs@angle at step}
+    },
+  ]{}
+  %% Move to the origin to the path
+  \state{move}[
+    width=+\tikzfeynhand at cs@points at per@step,
+    next state=draw
+  ]{
+    \pgfpathmoveto{\pgfpointorigin}
+  }
+  %% Draw the sine wave itself.  This computes the value every 20 degrees and draws straight edges.
+  \state{draw}[
+    width=+\tikzfeynhand at cs@points at per@step,
+    switch if less than=1.25*\tikzfeynhand at cs@points at per@step to final, % <- bit of a hack
+    persistent postcomputation={
+      \pgfmathparse{mod(\tikzfeynhand at cs@current at angle+\tikzfeynhand at cs@angle at step, 360)}
+      \let\tikzfeynhand at cs@current at angle=\pgfmathresult%
+    },
+  ]{
+%    \pgfmathparse{sin(\tikzfeynhand at cs@current at angle) * \pgfmetadecorationsegmentamplitude / 2}
+    \pgfmathparse{sin(\tikzfeynhand at cs@current at angle) * 3 * \feynhandlinesize / 2}
+    \tikz at decoratepathfalse
+    \pgfpathlineto{\pgfqpoint{0pt}{\pgfmathresult pt}}%
+  }
+
+  \state{final}{
+    \ifdim\pgfdecoratedremainingdistance>0pt\relax
+      \pgfpathlineto{\pgfpointdecoratedpathlast}
+    \fi
+  }
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Keys
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\tikzfeynhandset{
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %% Hooks
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  execute at begin feynhand/.code={},
+  execute at end feynhand/.code={},
+  every feynhand/.style={/tikzfeynhand/every feynhand@@/.append style={#1}},
+  every feynhand@@/.style={
+    /tikzfeynhand/.cd,
+    },
+  execute at begin feynhand@@/.code={}                     %% Internal version
+  execute at end feynhand@@/.code={},                      %% Internal version
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %% Vertices
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  every vertex@@/.style={
+    /tikz/shape=coordinate,
+  },
+  every vertex/.style={/tikzfeynhand/every vertex@@/.append style={#1}},
+  vertex/.style={
+    /tikzfeynhand/every vertex@@,
+  },
+  %% DOTS + friends
+  every dot@@/.style={
+    /tikz/shape=circle,
+    /tikz/draw,
+    /tikz/fill,
+    /tikz/inner sep=0pt,
+    /tikz/outer sep=0pt,
+    /tikz/minimum size=\feynhanddotsize,
+    /tikz/line width = \feynhandlinesize,
+  },
+  every dot/.style={/tikzfeynhand/every dot@@/.append style={#1}},
+  dot/.style={
+    /tikzfeynhand/every dot@@,
+  },
+  every squaredot@@/.style={
+    /tikz/shape=rectangle,
+  },
+  every squaredot/.style={/tikzfeynhand/every squaredot@@/.append style={#1}},
+  squaredot/.style={
+    /tikzfeynhand/every dot@@,
+    /tikzfeynhand/every squaredot@@,
+  },
+  every ringdot@@/.style={
+    /tikz/fill=none,
+  },
+  every ringdot/.style={/tikzfeynhand/every ringdot@@/.append style={#1}},
+  ringdot/.style={
+    /tikzfeynhand/every dot@@,
+    /tikzfeynhand/every ringdot@@,
+  },
+  every crossdot@@/.style={
+    /tikz/fill=none,
+    /tikz/shape=crossed circle,
+    /tikz/minimum size=2\feynhanddotsize,
+  },
+  every crossdot/.style={/tikzfeynhand/every crossdot@@/.append style={#1}},
+  crossdot/.style={
+    /tikzfeynhand/every dot@@,
+    /tikzfeynhand/every crossdot@@,
+  },
+  %% BLOBS -------------------------------------------------
+    every blob@@/.style={
+    /tikz/shape=circle,
+    /tikz/draw,
+    /tikz/fill,
+    /tikz/outer sep={0.5*\the\feynhandlinesize},
+    /tikz/inner sep=0pt,
+    /tikz/minimum size=\feynhandblobsize,
+    /tikz/line width = \feynhandlinesize,
+  },
+  every blob/.style={/tikzfeynhand/every blob@@/.append style={#1}},
+  blob/.style={
+    /tikzfeynhand/every blob@@,
+    /tikz/fill=black,
+  },
+  every ringblob@@/.style={
+  },
+  every ringblob/.style={/tikzfeynhand/every ringblob@@/.append style={#1}},
+  ringblob/.style={
+    /tikzfeynhand/every blob@@,
+    /tikzfeynhand/every ringblob@@,
+    /tikz/fill=white,
+  },
+  every NWblob@@/.style={
+  },
+  every NWblob/.style={/tikzfeynhand/every NWblob@@/.append style={#1}},
+  NWblob/.style={
+    /tikzfeynhand/every blob@@,
+    /tikzfeynhand/every NWblob@@,
+    /tikz/fill=none,
+    /tikz/pattern=north west lines,
+  },
+  every NEblob@@/.style={
+  },
+  every NEblob/.style={/tikzfeynhand/every NEblob@@/.append style={#1}},
+  NEblob/.style={
+    /tikzfeynhand/every blob@@,
+    /tikzfeynhand/every NEblob@@,
+    /tikz/fill=none,
+    /tikz/pattern=north east lines,
+  },
+  every grayblob@@/.style={
+  },
+  every grayblob/.style={/tikzfeynhand/every grayblob@@/.append style={#1}},
+  grayblob/.style={
+    /tikzfeynhand/every blob@@,
+    /tikzfeynhand/every grayblob@@,
+    /tikz/fill=gray!50!white,
+  },
+  %% PARTICLES
+  every particle@@/.style={
+    /tikz/shape=rectangle,
+    /tikz/draw=none,
+    /tikz/fill=none,
+    /tikz/inner sep=0.3333em,
+    /tikz/outer sep={0.5*\the\feynhandlinesize},
+  },
+  every particle/.style={/tikzfeynhand/every particle@@/.append style={#1}},
+  particle/.style args={#1}{
+    /tikzfeynhand/every particle@@,
+  },
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %% Edge styles
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %% Arrow Style
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  arrow size/.store in=\tikzfeynhand at arrow@size,
+  arrow size=\feynhandarrowsize,
+  with arrow/.style={
+    /tikz/decoration={
+      markings,
+      mark=at position #1 with {
+        \node[
+          transform shape,
+          %xshift=0.5mm,
+          xshift=-0.166666\feynhandarrowsize,
+          fill,
+          inner sep=0mm,
+          minimum width = \tikzfeynhand at arrow@size,
+          draw=none,
+          isosceles triangle
+        ] { };
+      },
+    },
+    /tikz/postaction={
+      /tikz/decorate=true,
+    },
+  },
+  with reversed arrow/.style={
+    /tikz/decoration={
+      markings,
+      mark=at position #1 with {
+        \node[
+          transform shape,
+          %xshift=0.5mm,
+          xshift=0.166666\feynhandarrowsize,
+          rotate=180,
+          fill,
+          inner sep=0mm,
+          minimum width = \tikzfeynhand at arrow@size,
+          draw=none,
+          isosceles triangle
+        ] { };
+      },
+    },
+    /tikz/postaction={
+      /tikz/decorate=true,
+    },
+  },
+  %% Base Edge Styles
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  every edge@@/.style={},
+  every edge/.style={/tikzfeynhand/every edge@@/.append style={#1}},
+  %% Specific Styles
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  every plain@@/.style={
+    /tikz/draw=none,
+    /tikz/line width = \feynhandlinesize,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikz/draw,
+    },
+  },
+  every plain/.style={/tikzfeynhand/every plain@@/.append style={#1}},
+  plain/.style={
+    /tikzfeynhand/every plain@@,
+  },
+  every top@@/.style={
+    /tikz/preaction={draw=\feynhandtopsepcolor,line width=\feynhandtopsep} 
+  },
+  every top/.style={/tikzfeynhand/every top@@/.append style={#1}},
+  top/.style={
+    /tikzfeynhand/every top@@,
+  },
+  every boson@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikz/draw,
+      /tikz/line width = \feynhandlinesize,
+      /tikz/decoration={
+        complete sines,
+        amplitude=3\feynhandlinesize,
+        segment length=7.5\feynhandlinesize,
+      },
+      /tikz/decorate=true,
+    },
+  },
+  every boson/.style={/tikzfeynhand/every boson@@/.append style={#1}},
+  boson/.style={
+    /tikzfeynhand/every boson@@,
+  },
+  every charged boson@@/.style={
+    /tikzfeynhand/with arrow=0.5,
+  },
+  every charged boson/.style={/tikzfeynhand/every charged boson@@/.append style={#1}},
+  charged boson/.style={
+    /tikzfeynhand/boson,
+    /tikzfeynhand/every charged boson@@,
+  },
+  every anti charged boson@@/.style={
+    /tikzfeynhand/with reversed arrow=0.5,
+  },
+  every anti charged boson/.style={/tikzfeynhand/every anti charged boson@@/.append style={#1}},
+  anti charged boson/.style={
+    /tikzfeynhand/boson,
+    /tikzfeynhand/every anti charged boson@@,
+  },
+  every photon@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikz/draw,
+      /tikz/line width = \feynhandlinesize,
+      /tikz/decoration={
+        complete sines,
+        amplitude=3\feynhandlinesize,
+        segment length=7.5\feynhandlinesize,
+      },
+      /tikz/decorate=true,
+    },
+  },
+  every photon/.style={/tikzfeynhand/every photon@@/.append style={#1}},
+  photon/.style={
+    /tikzfeynhand/every photon@@,
+  },
+  every scalar@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikz/draw,
+      /tikz/dashed,
+      /tikz/line width = \feynhandlinesize,
+    },
+  },
+  every scalar/.style={/tikzfeynhand/every scalar@@/.append style={#1}},
+  scalar/.style={
+    /tikzfeynhand/every scalar@@,
+  },
+  every charged scalar@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikzfeynhand/with arrow=0.5,
+    },
+  },
+  every charged scalar/.style={/tikzfeynhand/every charged scalar@@/.append style={#1}},
+  charged scalar/.style={
+    /tikzfeynhand/scalar,
+    /tikzfeynhand/every charged scalar@@,
+  },
+  every anti charged scalar@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikzfeynhand/with reversed arrow=0.5,
+    },
+  },
+  every anti charged scalar/.style={/tikzfeynhand/every anti charged scalar@@/.append style={#1}},
+  anti charged scalar/.style={
+    /tikzfeynhand/scalar,
+    /tikzfeynhand/every anti charged scalar@@,
+  },
+  every ghost@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikz/draw,
+      /tikz/dotted,
+      /tikz/line width = 2\feynhandlinesize,
+    },
+  },
+  every ghost/.style={/tikzfeynhand/every ghost@@/.append style={#1}},
+  ghost/.style={
+    /tikzfeynhand/every ghost@@,
+  },
+  every charged ghost@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikzfeynhand/with arrow=0.5,
+    },
+  },
+  every charged ghost/.style={/tikzfeynhand/every charged ghost@@/.append style={#1}},
+  charged ghost/.style={
+    /tikzfeynhand/ghost,
+    /tikzfeynhand/every charged ghost@@,
+  },
+  every anti charged ghost@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikzfeynhand/with reversed arrow=0.5,
+    },
+  },
+  every anti charged ghost/.style={/tikzfeynhand/every anti charged ghost@@/.append style={#1}},
+  anti charged ghost/.style={
+    /tikzfeynhand/ghost,
+    /tikzfeynhand/every anti charged scalar@@,
+  },
+  every fermion@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikz/draw,
+      /tikz/line width = \feynhandlinesize,
+      /tikzfeynhand/with arrow=0.5,
+    },
+  },
+  every fermion/.style={/tikzfeynhand/every fermion@@/.append style={#1}},
+  fermion/.style={
+    /tikzfeynhand/every fermion@@,
+  },
+  every anti fermion@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikz/draw,
+      /tikz/line width = \feynhandlinesize,
+      /tikzfeynhand/with reversed arrow=0.5,
+    },
+  },
+  every anti fermion/.style={/tikzfeynhand/every anti fermion@@/.append style={#1}},
+  anti fermion/.style={
+    /tikzfeynhand/every anti fermion@@,
+  },
+  every majorana@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikz/draw,
+      /tikzfeynhand/with arrow=0.33,
+      /tikzfeynhand/with reversed arrow=0.73,
+      /tikz/line width = \feynhandlinesize,
+    },
+  },
+  every majorana/.style={/tikzfeynhand/every majorana@@/.append style={#1}},
+  majorana/.style={
+    /tikzfeynhand/every majorana@@,
+  },
+  every anti majorana@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikz/draw,
+      /tikzfeynhand/with reversed arrow=0.33,
+      /tikzfeynhand/with arrow=0.73,
+      /tikz/line width = \feynhandlinesize,
+    },
+  },
+  every anti majorana/.style={/tikzfeynhand/every anti majorana@@/.append style={#1}},
+  anti majorana/.style={
+    /tikzfeynhand/every anti majorana@@,
+  },
+  every gluon@@/.style={
+    /tikz/draw=none,
+    /tikz/decoration={name=none},
+    /tikz/postaction={
+      /tikz/draw,
+      /tikz/line width = \feynhandlinesize,
+      /tikz/decoration={
+        coil,
+        aspect=1.2,
+        mirror,
+        amplitude=3\feynhandlinesize,
+        segment length=8\feynhandlinesize,
+      },
+      /tikz/decorate=true,
+    },
+  },
+  every gluon/.style={/tikzfeynhand/every gluon@@/.append style={#1}},
+  gluon/.style={
+    /tikzfeynhand/every gluon@@,
+  },
+  % short versions of style names
+  pho/.style={
+    /tikzfeynhand/photon,
+  },
+  bos/.style={
+    /tikzfeynhand/boson,
+  },
+  antbos/.style={
+    /tikzfeynhand/anti charged boson,
+  },
+  chabos/.style={
+    /tikzfeynhand/charged boson,
+  },
+  sca/.style={
+  	/tikzfeynhand/scalar,
+  },
+  chasca/.style={
+  	/tikzfeynhand/charged scalar,
+  },
+  antsca/.style={
+    /tikzfeynhand/anti charged scalar,
+  },
+  fer/.style={
+    /tikzfeynhand/fermion,
+  },
+  antfer/.style={
+    /tikzfeynhand/anti fermion,
+  },
+  gho/.style={
+    /tikzfeynhand/ghost,
+  },
+  chagho/.style={
+    /tikzfeynhand/charged ghost,
+  },
+  antgho/.style={
+    /tikzfeynhand/anti charged ghost,
+  },
+  glu/.style={
+    /tikzfeynhand/gluon,
+  },
+  maj/.style={
+    /tikzfeynhand/majorana,
+  },
+  antmaj/.style={
+    /tikzfeynhand/anti majorana,
+  },
+  %% Insertions
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  insertion/.search also={/tikzfeynhand,/tikz},
+  %% Parameters
+  insertion/size/.store in=\tikzfeynhand at insertion@size,
+  insertion/size=5\feynhandlinesize,
+  insertion/style/.store in=\tikzfeynhand at insertion@style,
+  insertion/style={},
+  %% Styles
+  insertion@@/.style args={[#1]#2}{
+    /tikz/line width = \feynhandlinesize,
+    /tikz/decoration={
+      markings,
+      mark=at position #2 with {
+        \tikzfeynhandset{insertion/.cd,#1}
+        \draw [\tikzfeynhand at insertion@style] (-\tikzfeynhand at insertion@size, -\tikzfeynhand at insertion@size) -- (\tikzfeynhand at insertion@size, \tikzfeynhand at insertion@size);
+        \draw [\tikzfeynhand at insertion@style] (-\tikzfeynhand at insertion@size, \tikzfeynhand at insertion@size) -- (\tikzfeynhand at insertion@size, -\tikzfeynhand at insertion@size);
+      },
+    },
+    /tikz/postaction={
+      /tikz/decorate=true,
+    },
+  },
+  insertion@@/.default={[]0.5},
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %% Momentum arrows
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  momentum/.search also={/tikzfeynhand,/tikz},
+  %% Parameters
+  momentum/label distance/.store in=\tikzfeynhand at momentum@label at distance,
+  momentum/label distance=0pt,
+  momentum/arrow distance/.store in=\tikzfeynhand at momentum@arrow at distance,
+  momentum/arrow distance={\the\feynhandarrowsize},
+  momentum/arrow shorten/.store in=\tikzfeynhand at momentum@arrow at shorten,
+  momentum/arrow shorten=0.2,
+  momentum/label style/.store in=\tikzfeynhand at momentum@label at style,
+  momentum/label style={},
+  momentum/arrow style/.store in=\tikzfeynhand at momentum@arrow at style,
+  momentum/arrow style={},
+  momentum/arrow thickness/.store in=\tikzfeynhand at momentum@arrow at thickness,
+  momentum/arrow thickness={0.64*\the\feynhandlinesize},
+  momentum/arrow size/.store in=\tikzfeynhand at momentum@arrow at size,
+  momentum/arrow size={0.8*\the\feynhandarrowsize},
+  %% Styles
+  momentum@@/.style args={[#1]#2}{
+    /tikz/preaction={
+      /tikz/decoration={
+        show path construction,
+        moveto code={},
+        lineto code={
+          \tikzfeynhandset{momentum/.cd,#1}
+          \path (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast)
+                coordinate [pos=\tikzfeynhand at momentum@arrow at shorten] (tf at m@1)
+                coordinate [pos=1 - \tikzfeynhand at momentum@arrow at shorten] (tf at m@2);
+          \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          		line width=\tikzfeynhand at momentum@arrow at thickness, 
+          		\tikzfeynhand at momentum@arrow at style]
+                ($(tf at m@1)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@2)$)
+                -- ($(tf at m@2)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@1)$)
+                node [pos=0.5, auto,
+                      outer sep=\tikzfeynhand at momentum@label at distance,
+                      \tikzfeynhand at momentum@label at style] {#2};
+        },
+        curveto code={
+          \tikzfeynhandset{momentum/.cd,#1}
+          \path (\tikzinputsegmentfirst)
+                .. controls (\tikzinputsegmentsupporta) and (\tikzinputsegmentsupportb)
+                .. (\tikzinputsegmentlast)
+                { \foreach \i in {1, ..., 50} {
+                  coordinate [pos=\tikzfeynhand at momentum@arrow at shorten + (1-2 * \tikzfeynhand at momentum@arrow at shorten)*\i/50] (tf at m@\i) } };
+          \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          		line width=\tikzfeynhand at momentum@arrow at thickness, 
+          		\tikzfeynhand at momentum@arrow at style]
+                ($(tf at m@1)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@2)$)
+                foreach \i [count=\j from 3] in {2, ..., 24} {
+                  -- ($(tf at m@\i)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@\j)$)
+                }
+                -- ($(tf at m@25)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@26)$)
+                node [pos=0.5, auto,
+                      outer sep=\tikzfeynhand at momentum@label at distance,
+                      \tikzfeynhand at momentum@arrow at style] {#2}
+                foreach \i [count=\j from 27] in {26, ..., 49} {
+                  -- ($(tf at m@\i)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@\j)$)
+                }
+                -- ($(tf at m@50)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@49)$);
+        },
+        closepath code={
+          \tikzfeynhandset{momentum/.cd,#1}
+          \path (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast)
+                coordinate [pos=\tikzfeynhand at momentum@arrow at shorten] (tf at m@1)
+                coordinate [pos=1 - \tikzfeynhand at momentum@arrow at shorten] (tf at m@2);
+          \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          		line width=\tikzfeynhand at momentum@arrow at thickness, 
+          		\tikzfeynhand at momentum@arrow at style]
+                ($(tf at m@1)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@2)$)
+                -- ($(tf at m@2)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@1)$)
+                node [pos=0.5, auto,
+                      outer sep=\tikzfeynhand at momentum@label at distance,
+                      \tikzfeynhand at momentum@label at style] {#2};
+        },
+      },
+      /tikz/decorate=true,
+    },
+  },
+  momentum'@@/.style args={[#1]#2}{
+    /tikz/preaction={
+      /tikz/decoration={
+        show path construction,
+        moveto code={},
+        lineto code={
+          \tikzfeynhandset{momentum/.cd,#1}
+          \path (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast)
+                coordinate [pos=\tikzfeynhand at momentum@arrow at shorten] (tf at m@1)
+                coordinate [pos=1 - \tikzfeynhand at momentum@arrow at shorten] (tf at m@2);
+          \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          		line width=\tikzfeynhand at momentum@arrow at thickness, 
+          		\tikzfeynhand at momentum@arrow at style]
+                ($(tf at m@1)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@2)$)
+                -- ($(tf at m@2)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@1)$)
+                node [pos=0.5, auto, swap,
+                      outer sep=\tikzfeynhand at momentum@label at distance,
+                      \tikzfeynhand at momentum@label at style] {#2};
+        },
+        curveto code={
+          \tikzfeynhandset{momentum/.cd,#1}
+          \path (\tikzinputsegmentfirst)
+                .. controls (\tikzinputsegmentsupporta) and (\tikzinputsegmentsupportb)
+                .. (\tikzinputsegmentlast)
+                { \foreach \i in {1, ..., 50} {
+                  coordinate [pos=\tikzfeynhand at momentum@arrow at shorten + (1-2 * \tikzfeynhand at momentum@arrow at shorten)*\i/50] (tf at m@\i) } };
+          \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          		line width=\tikzfeynhand at momentum@arrow at thickness, 
+          		\tikzfeynhand at momentum@arrow at style]
+                ($(tf at m@1)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@2)$)
+                foreach \i [count=\j from 3] in {2, ..., 24} {
+                  -- ($(tf at m@\i)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@\j)$)
+                }
+                -- ($(tf at m@25)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@26)$)
+                node [pos=0.5, auto, swap,
+                      outer sep=\tikzfeynhand at momentum@label at distance,
+                      \tikzfeynhand at momentum@arrow at style] {#2}
+                foreach \i [count=\j from 27] in {26, ..., 49} {
+                  -- ($(tf at m@\i)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@\j)$)
+                }
+                -- ($(tf at m@50)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@49)$);
+        },
+        closepath code={
+          \tikzfeynhandset{momentum/.cd,#1}
+          \path (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast)
+                coordinate [pos=\tikzfeynhand at momentum@arrow at shorten] (tf at m@1)
+                coordinate [pos=1 - \tikzfeynhand at momentum@arrow at shorten] (tf at m@2);
+          \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          		line width=\tikzfeynhand at momentum@arrow at thickness, 
+          		\tikzfeynhand at momentum@arrow at style]
+                ($(tf at m@1)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@2)$)
+                -- ($(tf at m@2)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@1)$)
+                node [pos=0.5, auto, swap,
+                      outer sep=\tikzfeynhand at momentum@label at distance,
+                      \tikzfeynhand at momentum@label at style] {#2};
+        },
+      },
+      /tikz/decorate=true,
+    },
+  },
+  reversed momentum@@/.style args={[#1]#2}{
+    /tikz/preaction={
+      /tikz/decoration={
+        show path construction,
+        moveto code={},
+        lineto code={
+          \tikzfeynhandset{momentum/.cd,#1}
+          \path (\tikzinputsegmentlast) -- (\tikzinputsegmentfirst)
+                coordinate [pos=\tikzfeynhand at momentum@arrow at shorten] (tf at m@1)
+                coordinate [pos=1 - \tikzfeynhand at momentum@arrow at shorten] (tf at m@2);
+          \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          		line width=\tikzfeynhand at momentum@arrow at thickness, 
+          		\tikzfeynhand at momentum@arrow at style]
+                ($(tf at m@1)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@2)$)
+                -- ($(tf at m@2)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@1)$)
+                node [pos=0.5, auto, swap,
+                      outer sep=\tikzfeynhand at momentum@label at distance,
+                      \tikzfeynhand at momentum@label at style] {#2};
+        },
+        curveto code={
+          \tikzfeynhandset{momentum/.cd,#1}
+          \path (\tikzinputsegmentlast)
+                .. controls (\tikzinputsegmentsupportb) and (\tikzinputsegmentsupporta)
+                .. (\tikzinputsegmentfirst)
+                { \foreach \i in {1, ..., 50} {
+                  coordinate [pos=\tikzfeynhand at momentum@arrow at shorten + (1-2 * \tikzfeynhand at momentum@arrow at shorten)*\i/50] (tf at m@\i) } };
+          \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          		line width=\tikzfeynhand at momentum@arrow at thickness, 
+          		\tikzfeynhand at momentum@arrow at style]
+                ($(tf at m@1)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@2)$)
+                foreach \i [count=\j from 3] in {2, ..., 24} {
+                  -- ($(tf at m@\i)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@\j)$)
+                }
+                -- ($(tf at m@25)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@26)$)
+                node [pos=0.5, auto, swap,
+                      outer sep=\tikzfeynhand at momentum@label at distance,
+                      \tikzfeynhand at momentum@arrow at style] {#2}
+                foreach \i [count=\j from 27] in {26, ..., 49} {
+                  -- ($(tf at m@\i)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@\j)$)
+                }
+                -- ($(tf at m@50)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@49)$);
+        },
+        closepath code={
+          \tikzfeynhandset{momentum/.cd,#1}
+          \path (\tikzinputsegmentlast) -- (\tikzinputsegmentfirst)
+                coordinate [pos=\tikzfeynhand at momentum@arrow at shorten] (tf at m@1)
+                coordinate [pos=1 - \tikzfeynhand at momentum@arrow at shorten] (tf at m@2);
+          \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          		line width=\tikzfeynhand at momentum@arrow at thickness, 
+          		\tikzfeynhand at momentum@arrow at style]
+                ($(tf at m@1)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@2)$)
+                -- ($(tf at m@2)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@1)$)
+                node [pos=0.5, auto, swap,
+                      outer sep=\tikzfeynhand at momentum@label at distance,
+                      \tikzfeynhand at momentum@label at style] {#2};
+        },
+      },
+      /tikz/decorate=true,
+    },
+  },
+  reversed momentum'@@/.style args={[#1]#2}{
+    /tikz/preaction={
+      /tikz/decoration={
+        show path construction,
+        moveto code={},
+        lineto code={
+          \tikzfeynhandset{momentum/.cd,#1}
+          \path (\tikzinputsegmentlast) -- (\tikzinputsegmentfirst)
+                coordinate [pos=\tikzfeynhand at momentum@arrow at shorten] (tf at m@1)
+                coordinate [pos=1 - \tikzfeynhand at momentum@arrow at shorten] (tf at m@2);
+          \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          		line width=\tikzfeynhand at momentum@arrow at thickness, 
+          		\tikzfeynhand at momentum@arrow at style]
+                ($(tf at m@1)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@2)$)
+                -- ($(tf at m@2)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@1)$)
+                node [pos=0.5,
+                      auto,
+                      outer sep=\tikzfeynhand at momentum@label at distance,
+                      \tikzfeynhand at momentum@label at style] {#2};
+        },
+        curveto code={
+          \tikzfeynhandset{momentum/.cd,#1}
+          \path (\tikzinputsegmentlast)
+                .. controls (\tikzinputsegmentsupportb) and (\tikzinputsegmentsupporta)
+                .. (\tikzinputsegmentfirst)
+                { \foreach \i in {1, ..., 50} {
+                  coordinate [pos=\tikzfeynhand at momentum@arrow at shorten + (1-2 * \tikzfeynhand at momentum@arrow at shorten)*\i/50] (tf at m@\i) } };
+          \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          		line width=\tikzfeynhand at momentum@arrow at thickness, 
+          		\tikzfeynhand at momentum@arrow at style]
+                ($(tf at m@1)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@2)$)
+                foreach \i [count=\j from 3] in {2, ..., 24} {
+                  -- ($(tf at m@\i)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@\j)$)
+                }
+                -- ($(tf at m@25)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@26)$)
+                node [pos=0.5,
+                      auto,
+                      outer sep=\tikzfeynhand at momentum@label at distance,
+                      \tikzfeynhand at momentum@arrow at style] {#2}
+                foreach \i [count=\j from 27] in {26, ..., 49} {
+                  -- ($(tf at m@\i)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@\j)$)
+                }
+                -- ($(tf at m@50)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@49)$);
+        },
+        closepath code={
+          \tikzfeynhandset{momentum/.cd,#1}
+          \path (\tikzinputsegmentlast) -- (\tikzinputsegmentfirst)
+                coordinate [pos=\tikzfeynhand at momentum@arrow at shorten] (tf at m@1)
+                coordinate [pos=1 - \tikzfeynhand at momentum@arrow at shorten] (tf at m@2);
+          \draw [-{Stealth[length=\tikzfeynhand at momentum@arrow at size]},
+          		line width=\tikzfeynhand at momentum@arrow at thickness, 
+          		\tikzfeynhand at momentum@arrow at style]
+                ($(tf at m@1)!\tikzfeynhand at momentum@arrow at distance!90:(tf at m@2)$)
+                -- ($(tf at m@2)!\tikzfeynhand at momentum@arrow at distance!-90:(tf at m@1)$)
+                node [pos=0.5, auto,
+                      outer sep=\tikzfeynhand at momentum@label at distance,
+                      \tikzfeynhand at momentum@label at style] {#2};
+        },
+      },
+      /tikz/decorate=true,
+    },
+  },
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %% Modifiers
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  half left/.style={
+    /tikz/bend left=90,
+  },
+  half right/.style={
+    /tikz/bend right=90,
+  },
+  quarter left/.style={
+    /tikz/bend left=45,
+  },
+  quarter right/.style={
+    /tikz/bend right=45,
+  },
+}
+
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikzfeynhand.keys.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikzlibraryfeynhand.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikzlibraryfeynhand.code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikzlibraryfeynhand.code.tex	2018-01-31 21:59:37 UTC (rev 46502)
@@ -0,0 +1,266 @@
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% TikZ-FeynHand, Version 1.0.0 of 2018/01/31
+% Feynhand Diagrams with TikZ (LaTex manual version)
+% Copyright (C) 2018 Max Dohse
+% Copyright (C) 2016 Joshua Ellis
+%
+% This LaTeX file 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.
+%
+% This file is a modification of the file tikzlibraryfeynman.code.tex
+% of the package tikz-feynman (version 1.1.0 of 2016/02/05)
+% which is available online at https://ctan.org/pkg/tikz-feynman
+% for a list of changes, see the file CHANGES.TXT
+%
+% available at https://ctan.org/pkg/tikz-feynhand
+% The Current Maintainer of this work is Max Dohse.
+%
+% This program 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. 
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Pre-requisites
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usetikzlibrary{
+  arrows.meta,
+  calc,
+  decorations,
+  decorations.markings,
+  decorations.pathmorphing,
+  decorations.pathreplacing,
+  external,
+  patterns,
+  positioning,
+  shapes.geometric,
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Function definitions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Miscellaneous functions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\tikzfeynhand at empty{}
+
+%% Key Manager
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Setup the tikz-feynhand key family
+\pgfkeys{
+  /tikzfeynhand/.is family,
+  /tikzfeynhand/.search also={/tikz},
+}
+
+%% |\tikzfeynhandset| allows keys that belong with tikz-feynhand to be easily set.
+\def\tikzfeynhandset{\pgfqkeys{/tikzfeynhand}}
+
+%% Version check
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Check which version is expected and which is installed
+\def\tikzfeynhand at compat@parse#1.#2.#3\pgfeov{
+  \edef\tikzfeynhand at compat@major{#1}
+  \edef\tikzfeynhand at compat@minor{#2}
+  \edef\tikzfeynhand at compat@patch{#3}
+  \edef\tikzfeynhand at compat{#1.#2.#3}
+}
+\let\tikzfeynhand at compat=\tikzfeynhand at empty
+\pgfkeyslet{/tikzfeynhand/compat/. at cmd}{\tikzfeynhand at compat@parse}
+\ProcessPgfPackageOptions{/tikzfeynhand}
+
+\AtBeginDocument{
+  \ifx\tikzfeynhand at version\tikzfeynhand at compat\else
+    \ifx\tikzfeynhand at compat\tikzfeynhand at empty
+      \PackageWarning{tikz-feynhand}{Consider loading TikZ-Feynhand with \string\usepackage[compat=\tikzfeynhand at version]{tikz-feynhand} so that you can be warned if TikZ-Feynhand changes.}
+    \else
+      \ifx\tikzfeynhand at compat@major\tikzfeynhand at version@major
+        \ifx\tikzfeynhand at compat@minor\tikzfeynhand at version@minor
+          \ifx\tikzfeynhand at compat@patch\tikzfeynhand at version@patch\else
+            \PackageInfo{tikz-feynhand}{The preamble requested version \tikzfeynhand at compat, but the system version is \tikzfeynhand at version.  This should cause no issue.}
+          \fi
+        \else
+          \PackageWarning{tikz-feynhand}{The preamble requested version \tikzfeynhand at compat, but the system version is \tikzfeynhand at version.  This may change some diagrams.}
+        \fi
+      \else
+        \PackageError{tikz-feynhand}{The preamble requested version \tikzfeynhand at compat, but the system version is \tikzfeynhand at version.  They are most likely incompatible.  Please download the appropriate version from jpellis.me/projects/tikz-feynhand.}
+      \fi
+    \fi
+  \fi
+}
+
+%% Feynhand Environment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Provide `\begin{feynhand} ... \end{feynhand}` within TikZ pictures.
+\tikzaddtikzonlycommandshortcutlet\feynhand\tikzfeynhand at environment@feynhand
+\tikzaddtikzonlycommandshortcutlet\endfeynhand\endtikzfeynhand at environment@feynhand
+
+%% \begin{feynhand}...\end{feynhand}
+\def\tikzfeynhand at environment@feynhand{%
+  \pgfutil at ifnextchar[{\tikzfeynhand at environment@feynhand at opt}
+  {\tikzfeynhand at environment@feynhand at opt[]}}
+
+\def\tikzfeynhand at environment@feynhand at opt[#1]{%
+  \begingroup
+  %% Local overrides
+  \let\tikz@@scan at fig=\tikzfeynhand at scan@fig
+  %% Local commands
+  \let\vertex=\tikzfeynhand at commands@vertex
+  \let\propagator=\tikzfeynhand at commands@propagator
+  \let\propag=\propagator
+  %% Opening hooks
+  \scope
+  \tikzfeynhand at tikz@search at tikzfeynhand
+  \pgfkeys{/tikzfeynhand/every feynhand@@,#1}
+  \pgfkeysvalueof{/tikzfeynhand/execute at begin feynhand@@}%
+  \pgfkeysvalueof{/tikzfeynhand/execute at begin feynhand}%
+  }
+
+\def\endtikzfeynhand at environment@feynhand{%	
+  %% Closing hooks
+  \pgfkeysvalueof{/tikzfeynhand/execute at end feynhand}%
+  \pgfkeysvalueof{/tikzfeynhand/execute at end feynhand@@}%
+  \endscope
+  \endgroup
+  }
+
+%%% Allow empty nodes
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newif\iftikzfeynhandallowemptynode
+\newif\iftikzfeynhandvertex
+\def\tikzfeynhand at scan@fig{%
+  \pgfutil at ifnextchar a{\tikz at fig@scan at at}
+    {\pgfutil at ifnextchar({\tikz at fig@scan at name}
+      {\pgfutil at ifnextchar[{\tikz at fig@scan at options}%
+        {\pgfutil at ifnextchar\bgroup{\tikz at fig@main}%
+          {\iftikzfeynhandvertex%
+             \tikzset{/tikzfeynhand/every vertex@@}%
+             \iftikzfeynhandallowemptynode%
+               \else%
+               \tikzset{/tikzfeynhand/particle}%
+               \fi%
+            \fi%
+            \tikz at fig@main{}
+          }
+        }
+      }
+    }
+}
+
+%% Include /tikzfeynhand in the search path
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\tikzfeynhand at tikz@search at tikzfeynhand{%
+  \pgfkeys{/tikz/.unknown/.code=%
+    \let\tikz at key\pgfkeyscurrentname%
+    %% Is it a tikzfeynhand key?
+    \pgfkeys{/tikzfeynhand/\tikz at key/.try={##1}}%
+    \ifpgfkeyssuccess%
+    \else%
+      %% Is it a pgf key?
+      \pgfkeys{/pgf/\tikz at key/.try={##1}}%
+      \ifpgfkeyssuccess%
+      \else%
+        \expandafter\pgfutil at in@\expandafter!\expandafter{\tikz at key}%
+        \ifpgfutil at in@%
+          %% this is a color!
+          \expandafter\tikz at addoption\expandafter{\expandafter\tikz at compat@color at set\expandafter{\tikz at key}}%
+          \edef\tikz at textcolor{\tikz at key}%
+        \else%
+          \pgfutil at doifcolorelse{\tikz at key}
+          {%
+            \expandafter\tikz at addoption\expandafter{\expandafter\tikz at compat@color at set\expandafter{\tikz at key}}%
+            \edef\tikz at textcolor{\tikz at key}%
+          }%
+          {%
+            %% Ok, second chance: This might be an arrow specification:
+            \expandafter\pgfutil at in@\expandafter-\expandafter{\tikz at key}%
+            \ifpgfutil at in@%
+              %% Ah, an arrow spec!
+              \expandafter\tikz at processarrows\expandafter{\tikz at key}%
+            \else%
+              %% Ok, third chance: A shape!
+              \expandafter\ifx\csname pgf at sh@s@\tikz at key\endcsname\relax%
+                \pgfkeys{/errors/unknown key/.expand
+                once=\expandafter{\expandafter/\expandafter t\expandafter
+                i\expandafter k\expandafter z\expandafter/\tikz at key}{##1}}%
+              \else%
+                \edef\tikz at shape{\tikz at key}%
+              \fi%
+            \fi%
+          }%
+        \fi%
+      \fi%
+    \fi%
+  }
+}
+
+
+%% Vertex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% SEE ALSO \vertex above!
+%% Adapted from |\coordinate| code
+\def\tikzfeynhand at commands@vertex{%
+  \path \pgfextra{\tikzfeynhandallowemptynodetrue}
+        \pgfextra{\tikzfeynhandvertextrue}
+        node}
+
+%% Propagators
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\tikzfeynhand at commands@propagator}[1][]{\draw [#1]}
+
+%% Optional argument in style key
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\tikzfeynhand at key@opt#1[#2]#3\pgfeov{%
+  \tikzfeynhandset{#1={[#2]#3}}}
+
+%% Insertion
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\tikzfeynhand at insertion{%
+  \pgfutil at ifnextchar[{\tikzfeynhand at key@opt{insertion@@}}
+  {\tikzfeynhand at key@opt{insertion@@}[]}}
+\pgfkeyslet{/tikzfeynhand/insertion/. at cmd}{\tikzfeynhand at insertion}
+
+%% Momentum
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\tikzfeynhand at momentum@std{%
+  \pgfutil at ifnextchar[{\tikzfeynhand at key@opt{momentum@@}}
+  {\tikzfeynhand at key@opt{momentum@@}[]}}
+\pgfkeyslet{/tikzfeynhand/momentum/. at cmd}{\tikzfeynhand at momentum@std}
+
+\def\tikzfeynhand at momentum@stdp{%
+  \pgfutil at ifnextchar[{\tikzfeynhand at key@opt{momentum'@@}}
+  {\tikzfeynhand at key@opt{momentum'@@}[]}}
+\pgfkeyslet{/tikzfeynhand/momentum'/. at cmd}{\tikzfeynhand at momentum@stdp}
+
+\def\tikzfeynhand at momentum@stdr{%
+  \pgfutil at ifnextchar[{\tikzfeynhand at key@opt{reversed momentum@@}}
+  {\tikzfeynhand at key@opt{reversed momentum@@}[]}}
+\pgfkeyslet{/tikzfeynhand/reversed momentum/. at cmd}{\tikzfeynhand at momentum@stdr}
+
+\def\tikzfeynhand at momentum@stdrp{%
+  \pgfutil at ifnextchar[{\tikzfeynhand at key@opt{reversed momentum'@@}}
+  {\tikzfeynhand at key@opt{reversed momentum'@@}[]}}
+\pgfkeyslet{/tikzfeynhand/reversed momentum'/. at cmd}{\tikzfeynhand at momentum@stdrp}
+
+% short versions of momentum styles
+\pgfkeyslet{/tikzfeynhand/rmomentum/. at cmd}{\tikzfeynhand at momentum@stdr}
+\pgfkeyslet{/tikzfeynhand/rmomentum'/. at cmd}{\tikzfeynhand at momentum@stdrp}
+
+\pgfkeyslet{/tikzfeynhand/mom/. at cmd}{\tikzfeynhand at momentum@std}
+\pgfkeyslet{/tikzfeynhand/mom'/. at cmd}{\tikzfeynhand at momentum@stdp}
+
+\pgfkeyslet{/tikzfeynhand/revmom/. at cmd}{\tikzfeynhand at momentum@stdr}
+\pgfkeyslet{/tikzfeynhand/revmom'/. at cmd}{\tikzfeynhand at momentum@stdrp}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Styles
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\input tikzfeynhand.keys.code.tex
+
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tikz-feynhand/tikzlibraryfeynhand.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2018-01-31 21:58:36 UTC (rev 46501)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2018-01-31 21:59:37 UTC (rev 46502)
@@ -616,7 +616,8 @@
     thumb thumbpdf thumbs thumby thuthesis
     ticket ticollege
     tikz-bayesnet tikz-cd tikz-3dplot tikz-dependency tikz-dimline
-    tikz-feynman tikz-inet tikz-kalender tikz-karnaugh tikz-ladder
+    tikz-feynhand tikz-feynman tikz-inet
+    tikz-kalender tikz-karnaugh tikz-ladder
     tikz-opm tikz-optics tikz-palattice tikz-qtree tikz-sfc tikz-timing
     tikzcodeblocks tikzducks tikzinclude tikzmark tikzorbital
     tikzpagenodes tikzpeople tikzpfeile tikzposter tikzscale tikzsymbols

Modified: trunk/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc	2018-01-31 21:58:36 UTC (rev 46501)
+++ trunk/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc	2018-01-31 21:59:37 UTC (rev 46502)
@@ -131,6 +131,7 @@
 depend tikz-cd
 depend tikz-dependency
 depend tikz-dimline
+depend tikz-feynhand
 depend tikz-feynman
 depend tikz-inet
 depend tikz-kalender

Added: trunk/Master/tlpkg/tlpsrc/tikz-feynhand.tlpsrc
===================================================================


More information about the tex-live-commits mailing list