summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/generic/pst-feyn/Changes10
-rw-r--r--Master/texmf-dist/doc/generic/pst-feyn/README.md45
-rw-r--r--Master/texmf-dist/doc/generic/pst-feyn/data/data0.dat6
-rw-r--r--Master/texmf-dist/doc/generic/pst-feyn/data/data1.dat3
-rw-r--r--Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.bib90
-rw-r--r--Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.pdfbin0 -> 193815 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.tex719
-rw-r--r--Master/texmf-dist/dvips/pst-feyn/pst-feyn.pro671
-rw-r--r--Master/texmf-dist/tex/generic/pst-feyn/pst-feyn.tex344
-rw-r--r--Master/texmf-dist/tex/latex/pst-feyn/pst-feyn.sty14
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/pst-feyn.tlpsrc0
12 files changed, 1903 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-feyn/Changes b/Master/texmf-dist/doc/generic/pst-feyn/Changes
new file mode 100644
index 00000000000..0863c31bee6
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-feyn/Changes
@@ -0,0 +1,10 @@
+pst-feyn.pro --------
+0.01 2018-09-26 first CTAN version
+
+
+pst-feyn.tex --------
+0.01 2018-09-26 first CTAN version
+
+
+pst-feyn.sty --------
+0.01 2018-09-26 first CTAN version
diff --git a/Master/texmf-dist/doc/generic/pst-feyn/README.md b/Master/texmf-dist/doc/generic/pst-feyn/README.md
new file mode 100644
index 00000000000..46118e75228
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-feyn/README.md
@@ -0,0 +1,45 @@
+# Package pst-feyn
+
+pst-feyn is a set of drawing graphical elements which are used for Feynman diagrams.
+The package is based on the macros of the old package axodraw
+but uses the capabilities of PSTricks.
+
+Save the files pst-feyn.sty|tex in a directory, which is part of your
+local TeX tree. pst-feyn.pro should be saved in ../texmf/dvips/pstricks/
+Then do not forget to run texhash to update this tree.
+pst-feyn needs pst-solides3d and pstricks, which should be part of your
+local TeX installation, otherwise get it from a CTAN server
+http://mirror.CTAN.org
+
+
+Save the files
+
+pst-feyn.sty
+pst-feyn.tex
+pst-feyn.pro
+
+in any place, where latex or any other TeX program will find it.
+Do not forget to update your database, when installing this
+package the first time.
+
+If you like to get the documentation file in another format run
+
+latex pst-feyn-doc.tex
+biber pst-feyn.doc
+latex pst-feyn-doc.tex
+dvips pst-feyn-doc.dvi
+ps2pdf pst-feyn-doc.ps
+
+or alteratively
+
+xelatex pst-feyn-doc.tex
+biber pst-feyn.doc
+xelatex pst-feyn-doc.tex
+
+to get a PDF file.
+
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory CTAN:/macros/latex/base/lppl.txt.
+
+$Id: README.md 826 2018-09-27 09:21:43Z herbert $
diff --git a/Master/texmf-dist/doc/generic/pst-feyn/data/data0.dat b/Master/texmf-dist/doc/generic/pst-feyn/data/data0.dat
new file mode 100644
index 00000000000..2204ade7495
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-feyn/data/data0.dat
@@ -0,0 +1,6 @@
+(.1057,1.2997)
+(.1057,1.5399)
+(.1057,1.6908)(.1057,1.8019)(.1057,2.0406)(.1057,2.1911)(.10571,2.3020)%
+(.10573,2.5403)(.10576,2.6904)(.1058,2.8007)(.106,3.0365)(.108,3.4512)(.11,3.56)%
+(.12,3.695)(.13,3.6969)(.15,3.6308)(.18,3.5024)(.22,3.3413)(.3,3.0788)(.5,2.6374)%
+(.8,2.2295)(1,2.0357)(1.3,1.8078)(1.6,1.6275)(2,1.4336)(2.5,1.2398)(3,1.0815)
diff --git a/Master/texmf-dist/doc/generic/pst-feyn/data/data1.dat b/Master/texmf-dist/doc/generic/pst-feyn/data/data1.dat
new file mode 100644
index 00000000000..4fd301e109c
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-feyn/data/data1.dat
@@ -0,0 +1,3 @@
+(1.78536,.0111)(1.78538,.0228)(1.7854,.0339)(1.7856,.1218)(1.786,.2324)(1.787,.3821)%
+ (1.79,.5786)(1.8,.8089)(1.82,.9765)(1.85,1.0869)(1.9,1.1718)(2,1.2335)(2.1,1.2468)%
+ (2.2,1.2413)(2.4,1.2064)(2.7,1.134)(3,1.0574)
diff --git a/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.bib b/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.bib
new file mode 100644
index 00000000000..3bce505019f
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.bib
@@ -0,0 +1,90 @@
+%% -*-bibtex-*-
+@STRING{tugboat = {TUGboat} }
+@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
+
+@manual{axodraw2,
+title = {The Axodraw2 package},
+subtitle = {Feynman diagrams in a LaTeX document},
+author = {Collins, John and Vermaseren, Jos},
+url = {http://www.ctan.org/pkg/axodraw2},
+urldate = {2018-09-27},
+date = {2018-09-12},
+version = {2.1.1a}
+}
+
+
+
+@Book{companion,
+ author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Vo\ss},
+ title = {The {\LaTeX} {G}raphics {C}ompanion},
+ publisher = {{Addison-Wesley Publishing Company}},
+ edition = {2},
+ year = {2007},
+ location = {Boston, Mass.}
+}
+
+@Article{girou:01:,
+ author = {Denis Girou},
+ title = {Pr\'esentation de {PST}ricks},
+ journal = {Cahier {GUT}enberg},
+ year = 1994,
+ volume = {16},
+ month = apr,
+ pages = {21-70}
+}
+
+@Article{girou:02:,
+ author = {{Timothy Van} Zandt and Denis Girou},
+ title = {Inside {PST}ricks},
+ journal = TUGboat,
+ year = 1994,
+ volume = {15},
+ month = sep,
+ pages = {239-246}
+}
+
+@Book{PostScript,
+ Author = {Kollock, Nikolai G.},
+ Title = {Post{S}cript richtig eingesetzt: vom {K}onzept zum
+ praktischen {E}insatz},
+ Publisher = {IWT},
+ location = {Vaterstetten},
+ year = 1989,
+}
+
+@Book{PSTricks2,
+ author = {Herbert Vo\ss{}},
+ title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
+ edition = {7},
+ publisher = {DANTE and Lehmanns Media},
+ year = {2016},
+ location = {Heidelberg and Berlin}
+}
+
+@Book{PSTricksE,
+ author = {Herbert Vo\ss{}},
+ title = {\texttt{PSTricks} -- {G}raphics and {P}ost{S}cript for \LaTeX},
+ edition = {1},
+ publisher = {UIT},
+ year = {2011},
+ location = {Cambridge -- UK}
+}
+
+@Book{LTXquick,
+ author = {Herbert Vo\ss{}},
+ title = {{\LaTeX} quick reference},
+ edition = {1},
+ publisher = {UIT},
+ year = {2012},
+ location = {Cambridge -- UK}
+}
+
+@Book{tbt,
+ author = {Victor Eijkhout},
+ title = {\TeX\ by Topic -- {A} \TeX{}nician Reference},
+ edition = {1},
+ publisher = {DANTE and Lehmanns Media},
+ year = {2014},
+ location = {Heidelberg and Berlin}
+}
+
diff --git a/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.pdf b/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.pdf
new file mode 100644
index 00000000000..bd76adcf16e
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.tex b/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.tex
new file mode 100644
index 00000000000..31a191f2a61
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.tex
@@ -0,0 +1,719 @@
+%% $Id: pst-feyn-doc.tex 826 2018-09-27 09:21:43Z herbert $
+\PassOptionsToPackage{dvipsnames,svgnames,x11names}{xcolor}
+\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings,
+ headexclude,footexclude,oneside,dvipsnames,svgnames]{pst-doc}
+\listfiles
+
+\usepackage[utf8]{inputenc}
+\usepackage{pst-feyn}
+\let\pstFV\fileversion
+\let\pstFD\filedate
+\let\belowcaptionskip\abovecaptionskip
+\usepackage{pst-plot}
+
+
+%\usepackage[dvipsnames,svgnames,x11names]{xcolor}
+
+\def\textRed#1{\textcolor{red}{#1}}
+\def\textBlack#1{\textcolor{black}{#1}}
+\def\textOliveGreen#1{\textcolor{OliveGreen}{#1}}
+
+\makeatletter
+\renewcommand*\l@subsection{\bprot@dottedtocline{2}{1.5em}{3.6em}}
+\renewcommand*\l@subsubsection{\bprot@dottedtocline{3}{3.8em}{4.5em}}
+\makeatother
+\def\bgImage{\begin{pspicture}(0,-1)(4.4,2)
+\psArrowLine(0,0)(1,1) \psArrowLine(1,1)(0,2)
+\psArrowLine(3,1)(4,0) \psArrowLine(4,2)(3,1)
+\psPhoton[windings=4.5,amplitude=4pt,linecolor=blue](1,1)(3,1)
+\psGluon[windings=4,amplitude=3pt,linecolor=Green](3.5,1.5)(4.2,0.9)
+\rput(0.5,1.9){$\mathrm{e}^-$} \rput(3.5,1.9){$\bar{\mathrm{q}}$}
+\rput(0.5,0.2){$\mathrm{e}^+$} \rput(3.5,0.2){q}
+\rput(2,1.5){$\gamma$}\rput[r](4.2,1.3){$\mathrm{g}$}
+\psline{->}(0,-0.2)(4,-0.2)\uput[0](4,-0.2){$t$}
+\end{pspicture}
+}
+\lstset{explpreset={pos=l,width=-99pt,overhang=0pt,hsep=\columnsep,vsep=\bigskipamount,rframe={}},
+ escapechar=?}
+\def\textat{\char064}%
+
+\let\KeyWord\Lkeyword
+%#1{$\backslash\!\!\textRed{#1}\textBlack\!\!$}
+
+\addbibresource{\jobname.bib}
+
+
+\begin{document}
+\author{Herbert Voß}
+\date{\today}
+\title{pst-feyn}
+\subtitle{A PSTricks package for drawing Feynman diagrams\newline v\pstFV~--~\pstFD}
+\maketitle
+
+\tableofcontents
+
+\begin{abstract}
+\LPack{pst-feyn} is a set of drawing graphical elements which are used for Feynman diagrams.
+Simple flow charts and other graphics are possible, too. The package is based on the
+macros of the old package \LPack{axodraw} from John Collins and Jos Vermaseren (\cite{axodraw2}), but uses the
+capabilities of PSTricks (\cite{PSTricks2,PSTricksE}).
+
+
+\vfill\noindent
+Thanks for feedback and contributions to:\\
+
+\end{abstract}
+\clearpage
+
+\section{Using pst-feyn}
+
+The commands of \LPack{pst-feyn} should be executed inside either the \Lenv{pspicture}
+environment. Inside this environment it is possible to place objects
+at arbitrary positions and put text between them. An example would be
+
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-1,-3.3)(4,3)
+\psGluonArc[linecolor=red,windings=8,radius=2cm](1.5,0)(0,180)
+\psGluonArc[linecolor=green,windings=8,radius=2cm](1.5,0)(180,360)
+\psGluon[linecolor=blue,windings=4](-0.5,0)(1,0)\psdot(-0.5,0)
+\psGluon[linecolor=blue,windings=4](2,0)(3.5,0)\psdot(3.5,0)
+\end{pspicture}
+\end{LTXexample}
+
+The syntax and the meaning of these command are explained in the next
+section. One should note that all coordinates are presented in the current
+user units, which is by default 1cm.
+It is possible to use scale
+transformations if these units are not convenient.
+
+
+
+\section{The commands}
+
+The commands that are currently available in \LPack{pst-feyn} are (in alphabetic
+order):
+
+\subsection*{\Lcs{psArrowArc}\OptArgs\Largr{$x,y$}\Largr{$\phi_1,\phi_2$}}
+
+ Draws an arc segment centered around $(x,y)$. The radius can be set by the optional argument \Lkeyword{radius}
+The arc-segment runs counterclockwise from $\phi_1$ to $\phi_2$. All
+ angles are given in degrees. In the middle of the segment there will
+ be an arrow.
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,2.4)
+\psArrowArc[linecolor=blue,
+ linewidth=1.5pt,radius=1.75](2,0)(0,180)
+\end{pspicture}
+\end{LTXexample}
+
+\subsection*{\Lcs{psArrowArcn}\OptArgs\Largr{$x,y$}\Largr{$\phi_1,\phi_2$}}
+
+The same, but clockwise.
+
+\subsection*{\Lcs{psArrowLine}\OptArgs\Largr{$x_1,y_1$}\Largr{$x_2,y_2$}}
+
+ Draws a line from ($x_1$,$y_1$) to ($x_2$,$y_2$). There will be an
+ arrow in the middle of the line.
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,2.4)
+\psArrowLine[linecolor=blue,
+ linewidth=1.5pt](0,0)(4,2)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection*{\Lcs{psBCirc}\OptArgs\Largr{x,y}\Largb{radius}}
+
+ Draws a circle of which the contents are blanked out. This means that
+ anything that was present at the position of the circle will be
+ overwritten. The center of the circle is at $(x,y)$.
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,4.2)
+\psBCirc[linecolor=blue,
+ linewidth=1.5pt](2,2){2}
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection*{\Lcs{psBText}\OptArgs\Largr{$x,y$}\Largb{text}}
+ Draws a box with one line of text in it. The coordinates refer to the
+ center of the box. The box is like a BBox in that it blanks out
+ whatever was at the position of the box.
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,4.2)
+\psBText[linecolor=blue](2,3.5){A short line}
+\psBText[linecolor=red](2,1.5){%
+ A short line\\ and another one \\a.s.o.}
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection*{\Lcs{psCArc}\OptArgs\Largr{$x,y$}\Largr{$\phi_1,\phi_2$}}
+
+ Draws an arc segment centered around $(x,y)$. The radius is set by the optional argument \Lkeyword{radius}. The
+ arc-segment runs counterclockwise from $\phi_1$ to $\phi_2$. The star version (\Lcs{psCArc*}) creates a filled arc.
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,2.2)
+\psCArc[linecolor=blue,radius=2,
+ linewidth=1.5pt](2,0)(80,180)
+\psCArc[linecolor=red,linestyle=dashed,radius=2,
+ linewidth=1.5pt](2,0)(0,80)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection*{\Lcs{psCCirc}\Largr{$x,y$}\Largb{radius}\Largb{color1}\Largb{color2}}
+Draws a circle around $(x,y)$. The contents of
+ the circle are lost. The color of the box will be color1 and the color
+ of the background inside the box will be color2. It is the same as\\
+\verb|\pscircle[linecolor=color1,fillstyle=solid,fillcolor=color2](x,y){radius}|
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,4)
+\psCCirc[linewidth=1.5pt](1.5,2){1.5}{blue}{red}
+\psCCirc[linewidth=2.5pt](3,1){1}{green}{cyan}
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection*{\Lcs{psCText}\OptArgs\Largr{$x,y$}\Largb{col1}\Largb{col2}\Largb{text}}
+ Draws a box with test in it. The
+ box is just big enough to fit around the text. The box is like a CBox in that it blanks out
+ whatever was at the position of the box. The color of the box and the
+ text inside is color1 and the background inside has the color color2.
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,4.2)
+\psCText(2,3.5){red}{cyan}{A short line}
+\psCText(2,1.5){green}{yellow}{%
+ A short line\\ and another one \\a.s.o.}
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection*{\Lcs{psGluonArc}\Largr{$x,y$}\Largr{$\phi_1,\phi_2$}}
+
+ Draws a gluon on an arc-segment. The center of the arc is (x,y) and r
+ is its radius. The arc segment runs counterclockwise from $\phi_1$
+ to $\phi_2$. The width of the gluon is twice `amplitude'. Note that whether
+ the curls are inside or outside can be influenced with the sign of
+ the amplitude. When it is positive the curls are on the inside.
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,4.2)
+\psGluonArc(0,2)(-90,90)% shows the default setting
+\psGluonArc[windings=8,amplitude=5mm,radius=2cm,
+ linecolor=red](4,2)(90,270)
+\psGluonArc[windings=8,amplitude=-3mm,radius=2cm,
+ linecolor=blue](4,2)(90,270)
+\end{pspicture}
+\end{LTXexample}
+
+\subsection*{\Lcs{psGluon}\Largr{$x_1,y_1$}\Largr{$x_2,y_2$}}
+ Draws a gluon from ($x_1$,$y_1$) to ($x_2$,$y_2$). The width of the
+ gluon will be twice the value of `amplitude'. If the number of windings is not an integer
+ it will be rounded. The side at which the
+ windings lie is determined by the order of the two coordinates. Also
+ a negative amplitude can change this side.
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,4.2)
+\psGluon(0,3)(4,3)% shows the default setting
+\psGluon[windings=5,amplitude=5mm,linecolor=red](0,2)(4,2)
+\psGluon[windings=6,amplitude=-3mm,linecolor=blue](0,1)(4,1)
+\end{pspicture}
+\end{LTXexample}
+
+\subsection*{\Lcs{psPhoton}\Largr{$x_1,y_1$}\Largr{$x_2,y_2$}}
+ Draws a photon from $(x_1,y_1)$ to $(x_2,y_2)$. The width of the
+ photon will be twice the value of `amplitude'. The number of wiggles
+ is given by the last parameter. If twice this parameter is not an integer
+ it will be rounded to an integer value. Whether the first wiggle
+ starts up or down can be influenced with the sign of the amplitude.
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,4.2)
+\psPhoton(0,3)(4,3)% shows the default setting
+\psPhoton[windings=5,amplitude=5mm,linecolor=red](0,2)(4,2)
+\psPhoton[windings=6,amplitude=-2mm,linecolor=blue](0,1)(4,1)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection*{\Lcs{psPhotonArc}\Largr{$x,y$}\Largr{$\phi_1,\phi_2$}}
+ Draws a photon on an arc-segment. The center of the arc is $(x,y)$. The arc segment runs counterclockwise from $\phi_1$
+ to $\phi_2$. The width of the photon is twice `amplitude', and the
+ number of wiggles is given by the last parameter. Note that
+ the sign of the amplitude influences whether the photon starts going
+ outside (positive) or starts going inside (negative). If one likes
+ the photon to reach both endpoints from the outside the number of
+ wiggles should be an integer plus 0.5.
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,4.2)
+\psPhotonArc(0,2)(-90,90)% shows the default setting
+\psPhotonArc[windings=8,amplitude=5mm,radius=2cm,
+ linecolor=red](4,2)(90,270)
+\psPhotonArc[windings=8,amplitude=-3mm,radius=2cm,
+ linecolor=blue](4,2)(90,270)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection*{\Lcs{psPText}\OptArg{mode}\Largr{$x,y$}\Largr{$\phi$}\Largb{text}}
+ The focal point of the text box is $(x,y)$. The mode parameter tells how the text should be
+ positioned with respect to the focal point. If this parameter is
+ omitted the center of the text will correspond to the focal point.
+ Other options are: l for having the left side correspond to the
+ focal point, r for having the right side correspond to it, t for
+ having the top at the focal point and b for the bottom. One may
+ combine two letters as in [bl], as long as it makes sense. The
+ parameter $\phi$ is a rotation angle. The command is the same as\\
+ \verb|\rput[mode]{phi}(x,y){\shortstack{#4}}|
+
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,4.2)
+\psPText(2,3.5)(0){A short line}
+\psPText[lb](3,0)(90){%
+ A short line\\ and another one \\a.s.o.}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection*{\Lcs{psText}\OptArg{mode}\Largr{$x,y$}\Largb{text}}
+Same as \Lcs{rput}.
+
+
+
+\subsection*{\Lcs{psZigZag}\Largr{$x_1,y_1$}\Largr{$x_2,y_2$}}
+ Draws a zigzag line from ($x_1$,$y_1$) to ($x_2$,$y_2$). The width of the
+ zigzagging will be twice the value of `amplitude'. The number of zigzags
+ is given by the last parameter. If twice this parameter is not an integer
+ it will be rounded to an integer value. Whether the first zigzag
+ starts up or down can be influenced with the sign of the amplitude.
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](-0.4,-0.4)(4,4.2)
+\psZigZag(0,3)(4,3)% shows the default setting
+\psZigZag[windings=5,amplitude=5mm,linecolor=red](0,2)(4,2)
+\psZigZag[windings=6,amplitude=-2mm,linecolor=blue](0,1)(4,1)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\iffalse
+\begin{itemize}
+\item \Lcs{psLinAxis}($x_1$,$y_1$)($x_2$,$y_2$)($N_D$,$d$,hashsize
+ ,offset,width) \hfill \\
+ This draws a line to be used as an axis in a graph. Along the axis
+ are hash marks. Going from the first coordinate to the second, the
+ hash marks are on the left side if `hashsize', which is the size of the
+ hash marks, is positive and on the right side if it is negative.
+ $N_D$ is the number of `decades', indicated by fat hash marks, and
+ $d$ is the number of subdivisions inside each decade. The offset
+ parameter tells to which subdivision the first coordinate
+ corresponds. When it is zero, this coordinate corresponds to a fat
+ mark of a decade. Because axes have their own width, this is
+ indicated with the last parameter.
+\item \Lcs{psLogAxis}($x_1$,$y_1$)($x_2$,$y_2$)($N_L$,hashsize
+ ,offset,width) \hfill \\
+ This draws a line to be used as an axis in a graph. Along the axis
+ are hash marks. Going from the first coordinate to the second, the
+ hash marks are on the left side if `hashsize', which is the size of the
+ hash marks, is positive and on the right side if it is negative.
+ $N_L$ is the number of orders of magnitude, indicated by fat
+ hash marks. The offset parameter tells to which integer subdivision
+ the first coordinate corresponds. When it is zero, this coordinate
+ corresponds to a fat mark, which is identical to when the value
+ would have been 1. Because axes have their own width, this is
+ indicated with the last parameter.
+\end{itemize}
+\fi
+
+A note about color. The names of the colors can be found in the documentation
+of package \LPack{xcolor}.
+This package gives also the commands that allow the user to change the color of the text.
+It is loaded by default with PSTricks.
+
+\section{Examples}
+
+\subsection{Text modes}
+The meaning of the mode characters in the text commands can best be
+demonstrated. The statements
+produce 9 texts and for each the focal point is indicated by a little
+circle. It looks like
+
+
+\begin{LTXexample}[width=7cm]
+\begin{pspicture}[showgrid](7,2)
+\psset{linecolor=BrickRed,radius=2pt}\footnotesize
+\psCArc*(0,2)(0,360)\psText[lt](0,2){left-top}
+\psCArc(0,1)(0,360) \psText[l] (0,1){left-center}
+\psCArc*(0,0)(0,360)\psText[lb](0,0){left-bottom}
+\psCArc*(3,2)(0,360)\psText[t] (3,2){center-top}
+\psCArc(3,1)(0,360) \psText (3,1){center-center}
+\psCArc*(3,0)(0,360)\psText[b] (3,0){center-bottom}
+\psCArc*(7,2)(0,360)\psText[rt](7,2){right-top}
+\psCArc(7,1)(0,360) \psText[r](7,1){right-center}
+\psCArc*(7,0)(0,360)\psText[rb](7,0){right-bottom}
+\end{pspicture}
+\end{LTXexample}
+
+This illustrates exactly all the combinations of the mode characters and
+what their effects are. The text is
+insensitive to the scaling commands, and the color of the text should be
+set with the regular color commands. In the case of \LaTeX{} text
+it can of course contain different fonts,
+math mode and all those little things.
+
+
+
+\subsection{The windings of a gluon}
+
+Gluons are traditionally represented by a two dimensional projection of
+a helix. Actually close inspection of some pretty gluons reveals that
+it is usually not quite a helix. Hence the gluons in pst-feyn are also
+not quite helices. In addition one may notice that the begin and end
+points deviate slightly from the regular windings. This makes it more in
+agreement with hand drawn gluons. When a gluon is drawn, one needs not
+only its begin and end points but there is an amplitude connected to
+this almost helix, and in addition there are windings. The number of
+windings is the number of curls that the gluon will have. Different
+people may prefer different densities of curls. This can effect the
+appearance considerably:
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid](0,-0.4)(10,4)
+\psset{linecolor=Red}\footnotesize
+\psGluon[windings=4](1,0.5)(1,4)\psText(1,0.25){4 windings}
+\psGluon[windings=5](3,0.5)(3,4)\psText(3,0.25){5 windings}
+\psGluon[windings=6](5,0.5)(5,4)\psText(5,0.25){6 windings}
+\psGluon[windings=7](7,0.5)(7,4)\psText(7,0.25){7 windings}
+\psGluon[windings=8](9,0.5)(9,4)\psText(9,0.25){8 windings}
+\end{pspicture}
+\end{LTXexample}
+
+The influence of the amplitude is also rather great. The user should
+experiment with it. There is however an aspect to the amplitude that
+should be discussed. For a straight gluon the amplitude can determine on
+which side the curls are. So does the direction of the gluon:
+
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid](0,-0.4)(10,4)
+\psset{linecolor=Red,windings=10}\footnotesize
+\psGluon[amplitude=0.2](2,0.5)(2,4) \psText(2,0.2){amp $> 0$}\psText(1.5,2){$\uparrow$}
+\psGluon[amplitude=0.2](4,4)(4,0.5) \psText(4,0.2){amp $> 0$}\psText(3.5,2){$\downarrow$}
+\psGluon[amplitude=-0.2](6,0.5)(6,4)\psText(6,0.2){amp $< 0$}\psText(5.5,2){$\uparrow$}
+\psGluon[amplitude=-0.2](8,4)(8,0.5)\psText(8,0.2){amp $< 0$}\psText(7.5,2){$\downarrow$}
+\end{pspicture}
+\end{LTXexample}
+
+For straight gluons one does not need the option of the negative
+amplitude. It is however necessary for gluons on an arc segment. In that
+case the arc is always drawn in an anticlockwise direction. Hence the
+direction is fixed and only the amplitude is left as a tool for
+determining the side with the curls.
+
+\subsection{Scaling}
+
+Sometimes it is much easier to design a figure on a larger scale than it
+is needed in the eventual printing. In that case one can use a scale
+factor, either during the design or in the final result. We use the
+figure in the first section as an example:
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.3,amplitude=0.2}
+\begin{pspicture}[shift=*](0,-0.4)(10,3.5)
+\psGluonArc[linecolor=Red,radius=2,windings=8](5,2)(0,180)
+\psGluonArc[linecolor=Green,radius=2,windings=8](5,2)(180,360)
+\psGluon[windings=6,linecolor=Blue](0,2)(3,2)\psdot(3,2)
+\psGluon[windings=6,linecolor=Blue](7,2)(10,2)\psdot(7,2)
+\end{pspicture}
+$+ \textrm{ others} = C_A(\frac{5}{3}+\frac{31}{9}\epsilon)
+ + n_F(-\frac{2}{3}-\frac{10}{9}\epsilon)$
+\end{LTXexample}
+
+This way it is rather straightforward to make whole pictorial equations.
+Of course some things are not scale invariant. The appreciation of a
+figure may be somewhat different when the scale is changed. In the above
+case one might consider changing the amplitude of the gluons a little
+bit. Changing this to 0.5cm and at the same time reducing the number
+of windings from 6 to 3 for the straight gluons and from 8 to 7 for the
+gluons in the arcs gives
+
+\begin{LTXexample}[pos=t]
+\psset{unit=0.3,amplitude=0.5}
+\begin{pspicture}[shift=*](0,-0.4)(10,3.5)
+\psGluonArc[linecolor=Red,radius=2,windings=7](5,2)(0,180)
+\psGluonArc[linecolor=Green,radius=2,windings=7](5,2)(180,360)
+\psGluon[windings=3,linecolor=Blue](0,2)(3,2)\psdot(3,2)
+\psGluon[windings=3,linecolor=Blue](7,2)(10,2)\psdot(7,2)
+\end{pspicture}
+$+ \textrm{ others} = C_A(\frac{5}{3}+\frac{31}{9}\epsilon)
+ + n_F(-\frac{2}{3}-\frac{10}{9}\epsilon)$
+\end{LTXexample}
+
+\subsection{Photons}
+
+When drawing photons one should take care that the number of wiggles is
+selected properly. Very often this number should be an integer plus
+$0.5$. This can be seen in the following example:
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](0,-0.4)(4,3)
+\psdot(0.5,0.4)\psdot(3.5,0.4)
+\psArrowLine[linecolor=Red](0,0.4)(4,0.4)
+\psarc[linecolor=Green,arrowscale=2]{->}(2,0.4){1}{60}{120}
+\psPhotonArc[amplitude=4pt,windings=8.5,% wiggles
+ radius=1.5,linecolor=Brown](2,0.4)(0,180)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+When the number of wiggles is reduced to 8 we obtain:
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](0,-0.4)(4,3)
+\psdot(0.5,0.4)\psdot(3.5,0.4)
+\psArrowLine[linecolor=Red](0,0.4)(4,0.4)
+\psarc[linecolor=Green,arrowscale=2]{->}(2,0.4){1}{60}{120}
+\psPhotonArc[amplitude=4pt,windings=8,% wiggles
+ radius=1.5,linecolor=Brown](2,0.4)(0,180)
+\end{pspicture}
+\end{LTXexample}
+
+This is not as nice. Somehow the symmetry is violated. One should also
+take care that the wiggles start in the proper way. If we make the
+amplitude negative we see that the photons are not `right' either:
+
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](0,-0.4)(4,3)
+\psdot(0.5,0.4)\psdot(3.5,0.4)
+\psArrowLine[linecolor=Red](0,0.4)(4,0.4)
+\psarc[linecolor=Green,arrowscale=2]{->}(2,0.4){1}{60}{120}
+\psPhotonArc[amplitude=-4pt,windings=8.5,% wiggles
+ radius=1.5,linecolor=Brown](2,0.4)(0,180)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](0,-0.4)(4,2)
+\psArrowLine(0,0)(1,1) \psArrowLine(1,1)(0,2)
+\psArrowLine(3,1)(4,0) \psArrowLine(4,2)(3,1)
+\psPhoton[windings=4.5,amplitude=4pt](1,1)(3,1)
+\psdot(1,1) \psdot(3,1)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(0,-1)(4.4,2)
+\psArrowLine(0,0)(1,1) \psArrowLine(1,1)(0,2)
+\psArrowLine(3,1)(4,0) \psArrowLine(4,2)(3,1)
+\psPhoton[windings=4.5,amplitude=4pt,linecolor=blue](1,1)(3,1)
+\psGluon[windings=4,amplitude=3pt,linecolor=Green](3.5,1.5)(4.2,0.9)
+\rput(0.5,1.9){$\mathrm{e}^-$} \rput(3.5,1.9){$\bar{\mathrm{q}}$}
+\rput(0.5,0.2){$\mathrm{e}^+$} \rput(3.5,0.2){q}
+\rput(2,1.5){$\gamma$}\rput[r](4.2,1.3){$\mathrm{g}$}
+\psline{->}(0,-0.2)(4,-0.2)\uput[0](4,-0.2){$t$}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{Curves and graphs}
+
+\LPack{pst-feyn} is a PSTricks related package and can use all commands by one of
+the nearly``endless'' PSTricks packages.
+An example of a complete picture would be:
+
+%\begin{LTXexample}[pos=t]
+\psset{unit=1pt}
+\begin{pspicture}(-30,-30)(360,440)
+\psLinAxis(0,0)(300,0)(3,10,5,0)\psLinAxis(0,400)(300,400)(3,10,-5,0)
+\psLogAxis(0,0)(0,400)(4,-5,2) \psLogAxis(300,0)(300,400)(4,5,2)
+\readdata\DataA{data/data0.dat} \readdata\DataB{data/data1.dat}
+\listplot[plotstyle=curve,linecolor=Blue,linewidth=1.5pt,unit=100,curvature=.5 2 0]{\DataA}
+\listplot[plotstyle=curve,linecolor=Red,linewidth=1.5pt,linestyle=dashed,unit=100,
+ curvature=.5 2 0]{\DataB}
+\psline[linecolor=Blue](200,360)(270,360)
+\rput[r](195,360){\blue\large$e^+e^-\rightarrow\mu^+\mu^-$}
+\psline[linestyle=dashed,linecolor=Red](200,330)(270,330)
+\rput[r](195,330){\red\large$e^+e^-\rightarrow\tau^+\tau^-$}
+\rput(0,-10){0} \rput(100,-10){1}\rput(200,-10){2}\rput(300,-10){3}
+\rput(150,-25){Beam energy in GeV (Threshold effects for $\mu$ and $\tau$)}
+\rput(-10,70){$1$} \rput(-10,170){$10$}\rput(-10,270){$10^2$}\rput(-10,370){$10^3$}
+\rput{90}(-25,220){\large$\sigma$ in nb}
+\psArrowLine(190,270)(160,300) \psArrowLine(160,240)(190,270)
+\psArrowLine(270,300)(240,270) \psArrowLine(240,270)(270,240)
+\psPhoton[windings=4.5,amplitude=4](190,270)(240,270)
+\psdot(190,270) \psdot(240,270)
+\end{pspicture}
+%\end{LTXexample}
+
+\begin{lstlisting}
+\psset{unit=1pt}
+\begin{pspicture}(-30,-30)(360,440)
+\psLinAxis(0,0)(300,0)(3,10,5,0)\psLinAxis(0,400)(300,400)(3,10,-5,0)
+\psLogAxis(0,0)(0,400)(4,-5,2) \psLogAxis(300,0)(300,400)(4,5,2)
+\readdata\DataA{data/data0.dat} \readdata\DataB{data/data1.dat}
+\listplot[plotstyle=curve,linecolor=Blue,linewidth=1pt,unit=100,curvature=.5 2 0]{\DataA}
+\listplot[plotstyle=curve,linecolor=Red,linewidth=1.5pt,linestyle=dashed,unit=100,
+ curvature=.5 2 0]{\DataB}
+\psline[linecolor=Blue](200,360)(270,360)
+\rput[r](195,360){\blue\large$e^+e^-\rightarrow\mu^+\mu^-$}
+\psline[linestyle=dashed,linecolor=Red](200,330)(270,330)
+\rput[r](195,330){\red\large$e^+e^-\rightarrow\tau^+\tau^-$}
+\rput(0,-10){0} \rput(100,-10){1}\rput(200,-10){2}\rput(300,-10){3}
+\rput(150,-25){Beam energy in GeV (Threshold effects for $\mu$ and $\tau$)}
+\rput(-10,70){$1$} \rput(-10,170){$10$}\rput(-10,270){$10^2$}\rput(-10,370){$10^3$}
+\rput{90}(-25,220){\large$\sigma$ in nb}
+\psArrowLine(190,270)(160,300) \psArrowLine(160,240)(190,270)
+\psArrowLine(270,300)(240,270) \psArrowLine(240,270)(270,240)
+\psPhoton[windings=4.5,amplitude=4](190,270)(240,270)
+\psdot(190,270) \psdot(240,270)
+\end{pspicture}
+\end{lstlisting}
+
+\psset{unit=1cm}
+
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(0,-0.4)(4,2)
+\psline[linecolor=Blue](0,1)(2,1)
+\psGluon[linecolor=Green,amplitude=3pt,windings=6](2,1)(4,1)
+\psPhoton[linecolor=Red,amplitude=3pt,windings=6](2,1.5)(4,2)
+\psZigZag[linecolor=Lime,amplitude=3pt,windings=6](2,0.5)(4,0)
+\psellipse[fillcolor=Yellow,fillstyle=solid](2,1)(0.45,0.8)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{Flowcharts}
+
+There are several commands for creating boxes with text in them. The rest
+is just a matter of drawing lines and circle segments with arrows. It might describe
+a system for the automatic computation of cross-sections:
+
+%\begin{LTXexample}[pos=t]
+\begin{center}
+\psscalebox{0.9}{%
+\begin{pspicture}(11,14)
+\sffamily\psset{unit=1pt,linecolor=Magenta}
+\psArrowLine(200,40)(200,10) \psArrowLine(200,100)(200,40)
+\psArrowLine(200,150)(200,100)\psArrowLine(100,130)(200,100)
+\psArrowLine(85,95)(200,100) \psArrowLine(260,105)(200,100)
+\psArrowLine(250,135)(200,100)\psArrowLine(160,75)(200,100)
+\psArrowLine(200,100)(250,70) \psArrowLine(200,185)(200,150)
+\psArrowLine(200,220)(200,185)\psArrowLine(200,250)(200,220)
+\psArrowLine(240,263)(200,250)\psArrowLine(240,237)(200,250)
+\psArrowLine(200,285)(200,250)\psArrowLine(200,310)(200,285)
+\psArrowLine(200,335)(200,310)\psArrowLine(180,360)(200,335)
+\psArrowLine(200,385)(180,360)\psArrowLine(50,370)(180,360)
+\psArrowArc[radius=62.5](200,247.5)(90,180)\psArrowArc[radius=62.5](200,247.5)(180,270)
+\psArrowLine(210,385)(300,360) \psArrowLine(210,335)(300,360)
+\psArrowLine(80,300)(80,130) \psArrowLine(190,335)(80,300)
+\psArrowLine(190,385)(80,300) \psArrowLine(50,335)(80,300)
+\psArrowLine(300,360)(340,340) \psArrowArcn[radius=37.5](205,347.5)(90,270)
+\psBCirc[linecolor=Blue](200,100){10} \psBCirc[linecolor=Blue](200,100){5}
+\psBCirc[linecolor=Blue](200,40){7.5} \psBCirc[linecolor=Blue](200,250){10}
+\psBCirc[linecolor=Blue](200,250){5} \psBCirc[linecolor=Blue](200,310){7.5}
+\psBCirc[linecolor=Blue](180,360){7.5}\psBCirc[linecolor=Blue](80,300){7.5}
+\psBCirc[linecolor=Blue](300,360){7.5}\psCCirc(200,185){7.5}{Blue}{Yellow}
+\footnotesize\psBText[linecolor=Red](200,285){\red Form program}
+\psBText[linecolor=Red](200,335){\red Diagrams}\psBText[linecolor=Red](200,385){\red Model}
+\psBText[linecolor=Red](200,10){\red events}\psBText[linecolor=Red](80,95){\red Axolib}
+\psBText[linecolor=Red](350,335){\red Pictures}\psCText(137.5,247.5){Blue}{Yellow}{instructions}
+\psBText(260,70){Cross-sections\\Histograms}\psBText(140,75){Monte Carlo\\Routine}
+\psBText(275,105){FF\\1 loop integrals}\psCText(260,135){Blue}{Yellow}{Spiderlib\\Fortran/C}
+\psCText(200,150){Blue}{Yellow}{Matrix\\Element}\psBText(80,130){Kinematics\\Configuration}
+\psCText(200,220){Blue}{Yellow}{Output\\Formula}
+\psCText(260,263){Blue}{Yellow}{Spiderlib\\Form part}
+\psCText(260,237){Blue}{Yellow}{FF support\\library}\psBText(40,370){Reaction\\selection}
+\psBText(40,340){Specification\\Cuts, etc.}\psPText[lb](211,36)(0){Event Generator}
+\psPText[lb](211,181)(0){Code Generator}\psPText[lb](162,258)(0){FORM}
+\psPText[lb](211,301)(0){Form program construction}\psPText[lb](191,362)(0){Diagram}
+\psPText[lb](191,352)(0){Generator}\psPText[lb](311,370)(0){Postscript}
+\psPText[lb](311,360)(0){Generator}\psPText[lb](91,292)(0){Kinematics}
+\psPText[lb](91,282)(0){Generator}
+\end{pspicture}%
+}
+%\end{LTXexample}
+\end{center}
+
+\begin{lstlisting}
+\begin{pspicture}(11,14)
+\sffamily\psset{unit=1pt,linecolor=Magenta}
+\psArrowLine(200,40)(200,10) \psArrowLine(200,100)(200,40)
+\psArrowLine(200,150)(200,100)\psArrowLine(100,130)(200,100)
+\psArrowLine(85,95)(200,100) \psArrowLine(260,105)(200,100)
+\psArrowLine(250,135)(200,100)\psArrowLine(160,75)(200,100)
+\psArrowLine(200,100)(250,70) \psArrowLine(200,185)(200,150)
+\psArrowLine(200,220)(200,185)\psArrowLine(200,250)(200,220)
+\psArrowLine(240,263)(200,250)\psArrowLine(240,237)(200,250)
+\psArrowLine(200,285)(200,250)\psArrowLine(200,310)(200,285)
+\psArrowLine(200,335)(200,310)\psArrowLine(180,360)(200,335)
+\psArrowLine(200,385)(180,360)\psArrowLine(50,370)(180,360)
+\psArrowArc[radius=62.5](200,247.5)(90,180)\psArrowArc[radius=62.5](200,247.5)(180,270)
+\psArrowLine(210,385)(300,360) \psArrowLine(210,335)(300,360)
+\psArrowLine(80,300)(80,130) \psArrowLine(190,335)(80,300)
+\psArrowLine(190,385)(80,300) \psArrowLine(50,335)(80,300)
+\psArrowLine(300,360)(340,340) \psArrowArcn[radius=37.5](205,347.5)(90,270)
+\psBCirc[linecolor=Blue](200,100){10} \psBCirc[linecolor=Blue](200,100){5}
+\psBCirc[linecolor=Blue](200,40){7.5} \psBCirc[linecolor=Blue](200,250){10}
+\psBCirc[linecolor=Blue](200,250){5} \psBCirc[linecolor=Blue](200,310){7.5}
+\psBCirc[linecolor=Blue](180,360){7.5}\psBCirc[linecolor=Blue](80,300){7.5}
+\psBCirc[linecolor=Blue](300,360){7.5}\psCCirc(200,185){7.5}{Blue}{Yellow}
+\footnotesize\psBText[linecolor=Red](200,285){\red Form program}
+\psBText[linecolor=Red](200,335){\red Diagrams}\psBText[linecolor=Red](200,385){\red Model}
+\psBText[linecolor=Red](200,10){\red events}\psBText[linecolor=Red](80,95){\red Axolib}
+\psBText[linecolor=Red](350,335){\red Pictures}\psCText(137.5,247.5){Blue}{Yellow}{instructions}
+\psBText(260,70){Cross-sections\\Histograms}\psBText(140,75){Monte Carlo\\Routine}
+\psBText(275,105){FF\\1 loop integrals}\psCText(260,135){Blue}{Yellow}{Spiderlib\\Fortran/C}
+\psCText(200,150){Blue}{Yellow}{Matrix\\Element}\psBText(80,130){Kinematics\\Configuration}
+\psCText(200,220){Blue}{Yellow}{Output\\Formula}
+\psCText(260,263){Blue}{Yellow}{Spiderlib\\Form part}
+\psCText(260,237){Blue}{Yellow}{FF support\\library}\psBText(40,370){Reaction\\selection}
+\psBText(40,340){Specification\\Cuts, etc.}\psPText[lb](211,36)(0){Event Generator}
+\psPText[lb](211,181)(0){Code Generator}\psPText[lb](162,258)(0){FORM}
+\psPText[lb](211,301)(0){Form program construction}\psPText[lb](191,362)(0){Diagram}
+\psPText[lb](191,352)(0){Generator}\psPText[lb](311,370)(0){Postscript}
+\psPText[lb](311,360)(0){Generator}\psPText[lb](91,292)(0){Kinematics}
+\psPText[lb](91,282)(0){Generator}
+\end{pspicture}
+\end{lstlisting}
+
+
+\clearpage
+\section{List of all optional arguments for \nxLPack{pst-feyn}}
+
+\xkvview{family=pst-feyn,columns={key,type,default}}
+
+
+\bgroup
+\raggedright
+\nocite{*}
+\printbibliography
+\egroup
+
+\printindex
+
+
+
+
+\end{document}
diff --git a/Master/texmf-dist/dvips/pst-feyn/pst-feyn.pro b/Master/texmf-dist/dvips/pst-feyn/pst-feyn.pro
new file mode 100644
index 00000000000..e49c6a47fee
--- /dev/null
+++ b/Master/texmf-dist/dvips/pst-feyn/pst-feyn.pro
@@ -0,0 +1,671 @@
+%% $Id: pst-feyn.pro 826 2018-09-27 09:21:43Z herbert $
+%%
+%% This is file `pst-feyn.pro',
+%% It is based on the old axodraw package from Jos Vermaseren
+%%
+%% IMPORTANT NOTICE:
+%%
+%% Package `pst-feyn.tex'
+%%
+%% Herbert Voss <hvoss _at_ tug.org>
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%% DESCRIPTION:
+%% `pst-feyn' is a PSTricks package to draw 3d curves and graphical objects
+%%
+%%
+%% version 0.01 / 2018-09-26 Herbert Voss <hvoss _at_ tug.org>
+%%
+%
+/tx@FeynDict 100 dict def
+tx@FeynDict begin
+%
+/ED { exch def } def
+/SLW { setlinewidth } def
+/p1 {/y1 ED /x1 ED } def
+/p2 {/y2 ED /x2 ED } def
+/abox{ newpath x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath } def
+%
+%
+/arrowdown{
+ /nwidth { CLW 1 add } def
+ newpath
+ 0 nwidth 1.5 mul neg moveto % Arrow is a triangle
+ nwidth 1.2 mul nwidth 3 mul rlineto
+ nwidth 2.4 mul neg 0 rlineto
+ nwidth 1.2 mul nwidth 3 mul neg rlineto
+ closepath fill % and it is filled
+} def
+%
+/arrowup{
+ /nwidth { CLW 1 add } def
+ newpath
+ 0 nwidth 1.5 mul moveto % Arrow is a triangle
+ nwidth 1.2 mul nwidth 3 mul neg rlineto
+ nwidth 2.4 mul neg 0 rlineto
+ nwidth 1.2 mul nwidth 3 mul rlineto
+ closepath fill % and it is filled
+} def
+%
+/arrowright{
+ /nwidth { CLW 1 add } def
+ newpath
+ nwidth 1.5 mul 0 moveto % Arrow is a triangle
+ nwidth 3 mul neg nwidth 1.2 mul rlineto
+ 0 nwidth 2.4 mul neg rlineto
+ nwidth 3 mul nwidth 1.2 mul rlineto
+ closepath fill % and it is filled
+} def
+%
+/gluon{
+ %dup scale /width ED width SLW
+ /num ED /ampi ED /y2 ED /x2 ED /y1 ED /x1 ED
+
+ /dy y2 y1 sub def /dx x2 x1 sub def
+%
+% We have a 'head' and a 'tail' and inbetween the 'body'
+% The head + tail is 2 windings. The body is num-1 windings.
+%
+ /dr dx dx mul dy dy mul add sqrt def
+%
+ x1 y1 translate dy dx atan rotate
+%
+ /num num 0.5 sub round def
+ /inc dr num 2 mul 2 add div def % increment per half winding
+ /amp8 ampi 0.9 mul def
+ amp8 0 lt {/amp8 amp8 neg def} if
+%
+ /x1 inc 2 mul def
+%
+ newpath
+ 0 0 moveto
+ inc 0.1 mul ampi 0.5 mul inc 0.5 mul ampi inc 1.4 mul ampi curveto
+ x1 amp8 add dup ampi exch ampi neg dup x1 exch curveto
+%
+ 2 1 num {
+ pop
+ x1 amp8 sub dup ampi neg exch ampi dup x1 inc add exch curveto
+ /x1 x1 inc dup add add def
+ x1 amp8 add dup ampi exch ampi neg dup x1 exch curveto
+ } for
+%
+ x1 amp8 sub dup ampi neg exch ampi dup x1 inc 0.6 mul add exch curveto
+ x1 inc 1.5 mul add ampi dr inc 0.1 mul sub ampi 0.5 mul dr 0 curveto
+% stroke
+%
+} def
+%
+/photon{
+%
+% Draws a photon from x1,y1 to x2,y2 with amplitude A and n wiggles
+%
+% gsave dup scale /width ED width SLW
+ /num ED /ampi ED p2 p1
+ /dy y2 y1 sub def /dx x2 x1 sub def
+ /dr dx dx mul dy dy mul add sqrt def
+%
+ x1 y1 translate
+ dy dx atan rotate
+ /num num 2 mul 0.5 sub round def
+ /x2 dr num div def
+ /pi 3.141592 def
+ /sign 1 def
+ 1 1 num {
+ pop
+ newpath
+ 0 0 moveto
+ 4 3 div x2 mul pi div dup neg x2 add
+ 4 3 div ampi sign mul mul dup 3 1 roll
+ x2 0 curveto
+ stroke
+ /sign sign neg def
+ x2 0 translate
+ } for
+%
+% grestore
+} def
+%
+/zigzag{
+%
+% Draws a zigzag line from x1,y1 to x2,y2 with amplitude A and n zigzags
+%
+% gsave dup scale /width ED width SLW
+ /num ED /ampi ED p2 p1
+ /dy y2 y1 sub def /dx x2 x1 sub def
+ /dr dx dx mul dy dy mul add sqrt def
+%
+ x1 y1 translate
+ dy dx atan rotate
+ /num num 2 mul 0.5 sub round def
+ /x2 dr num div def
+ /pi 3.141592 def
+ /sign 1 def
+ 1 1 num {
+ pop
+ newpath
+ 0 0 moveto
+ x2 2 div ampi sign mul lineto
+ x2 0 lineto
+ stroke
+ /sign sign neg def
+ x2 0 translate
+ } for
+%
+% grestore
+} def
+%
+/photonarc{
+%
+% Draws a photonarc center at x1,y1, radius arcstart,arcend, amplitude
+% number of wiggles, width, scale
+%
+% gsave dup scale /width ED width SLW
+ /num ED /ampli ED /arcend ED /arcstart ED /radius ED
+%
+ translate % The center of the circle is now the origin
+%
+ /num num 2 mul round def % number of half wiggles
+ arcend arcstart lt { /arcend arcend 360 add def } if
+ /arcend arcend arcstart sub num div def % phi
+ arcstart rotate
+ /arcstart arcend 2 div def % phi/2
+ /cp arcend cos def
+ /sp arcend sin def
+ /cp2 arcstart cos def
+ /sp2 arcstart sin def
+%
+ newpath
+ 1 1 num {
+ pop
+ radius 0 moveto
+ /beta radius arcend mul 180 ampli mul div def
+ /tt sp cp beta mul sub cp sp beta mul add div def
+ /amp1 radius ampli add 8 mul beta cp2 mul sp2 sub mul beta 4 cp add mul
+ tt cp mul 3 mul sp 4 mul sub add radius mul sub
+ beta tt sub 3 mul div def % this is x2
+ radius ampli add 8 mul cp2 mul 1 cp add radius mul sub 3 div amp1 sub
+ dup radius sub beta mul % x1,y1
+ amp1 dup radius cp mul sub tt mul radius sp mul add % x2,y2
+ radius cp mul radius sp mul % x3 y3
+ curveto
+ /ampli ampli neg def
+ arcend rotate
+ } for
+% stroke
+%
+% grestore
+} def
+%
+/gluearc{
+%
+% Draws a gluon on an arcsegment
+% radius,stat_angle,end_angle,gluon_radius,num
+% in which num is the number of windings of the gluon.
+% Method:
+% 1: compute length of arc.
+% 2: generate gluon in x and y as if the arc is a straight line
+% 3: x' = (radius+y)*cos(x*const)
+% y' = (radius+y)*sin(x*const)
+%
+ gsave %dup scale /width ED width SLW
+ /num ED
+ /ampi ED
+ /arcend ED
+ /arcstart ED
+ /radius ED
+%
+ arcstart rotate % segment starts at zero
+ /darc arcend arcstart sub def % argsegment
+ /dr darc 180 div 3.141592 mul radius mul def % length of segment.
+ /const darc dr div def % conversion constant
+%
+ /num num 0.5 sub round def
+ /inc dr num 2 mul 2 add div def % increment per half winding
+%
+ /amp8 ampi 0.9 mul def
+ /amp1 radius ampi add def
+ /amp2 radius ampi sub def
+ /amp3 radius ampi 2 div add def
+ /amp4 amp1 inc amp8 add const mul cos div def
+ /amp5 amp2 amp8 const mul cos div def
+ /amp6 amp1 inc 0.6 mul amp8 add const mul cos div def
+ /amp7 amp1 inc 0.9 mul const mul cos div def
+ amp8 0 lt {/amp8 amp8 neg def} if
+%
+ /x1 inc 2 mul def
+%
+ newpath
+ radius 0 moveto
+%
+ inc 0.1 mul const mul dup cos amp3 mul exch sin amp3 mul
+ inc 0.5 mul const mul dup cos amp7 mul exch sin amp7 mul
+ inc 1.4 mul const mul dup cos amp1 mul exch sin amp1 mul
+ curveto
+ x1 amp8 add const mul dup cos amp6 mul exch sin amp6 mul
+ x1 amp8 add const mul dup cos amp5 mul exch sin amp5 mul
+ x1 const mul dup cos amp2 mul exch sin amp2 mul
+ curveto
+%
+ 2 1 num {
+ pop
+ x1 amp8 sub const mul dup cos amp5 mul exch sin amp5 mul
+ x1 amp8 sub const mul dup cos amp4 mul exch sin amp4 mul
+ x1 inc add const mul dup cos amp1 mul exch sin amp1 mul
+ curveto
+ /x1 x1 inc dup add add def
+ x1 amp8 add const mul dup cos amp4 mul exch sin amp4 mul
+ x1 amp8 add const mul dup cos amp5 mul exch sin amp5 mul
+ x1 const mul dup cos amp2 mul exch sin amp2 mul
+ curveto
+ } for
+%
+ x1 amp8 sub const mul dup cos amp5 mul exch sin amp5 mul
+ x1 amp8 sub const mul dup cos amp6 mul exch sin amp6 mul
+ x1 inc 0.6 mul add const mul dup cos amp1 mul exch sin amp1 mul
+ curveto
+ x1 inc 1.5 mul add const mul dup cos amp7 mul exch sin amp7 mul
+ dr inc 0.1 mul sub const mul dup cos amp3 mul exch sin amp3 mul
+ dr const mul dup cos radius mul exch sin radius mul
+ curveto
+ stroke
+%
+ grestore
+} def
+%
+/arrowarc{
+%
+% Draws an anticlockwise arc with an arrow in the middle
+% The arc is x_center, y_center, radius, start_angle, end_angle
+%
+% gsave dup scale /width ED width SLW
+ /arcend ED /arcstart ED /radius ED
+%
+ translate % x and y are still on stack
+ newpath 0 0 radius arcstart arcend arc stroke
+ arcstart arcend gt {
+ /arcend arcend 360 add def } if
+ arcstart arcend add 2 div rotate % middle of arc
+ radius 0 translate % move to it
+ arrowup
+% grestore
+} def
+%
+/longarrowarc{
+%
+% Draws an anticlockwise arc with an arrow at the end
+% The arc is x_center, y_center, radius, start_angle, end_angle
+%
+% gsave dup scale /width ED width SLW
+ /arcend ED /arcstart ED /radius ED
+%
+ translate % x and y are still on stack
+ arcstart arcend gt {
+ /arcend arcend 360 add def } if
+ /arcmid 540 CLW 1 add mul 3.14159 div radius div def
+ % discount for arrow
+% newpath 0 0 radius arcstart arcend arcmid sub arc stroke
+ arcend arcmid 2 div sub rotate % middle of arrow
+ radius 0 translate % move to it
+ arrowup
+% grestore
+} def
+%
+/dasharrowarc{
+%
+% Draws a dashed anticlockwise arc with an arrow in the middle
+% The arc is x_center, y_center, radius, start_angle, end_angle dsize
+%
+ gsave dup scale /width ED width SLW /dsize ED /arcend1 ED /arcstart1 ED /radius ED
+%
+ translate % x and y are still on stack
+%
+ arcend1 arcstart1 lt { /arcend1 arcend1 360 add def } if
+ /arcmid1 arcend1 arcstart1 add 2 div def
+%
+ 0 0 radius arcstart1 arcmid1 dsize width 1 dashcarc
+ 0 0 radius arcmid1 arcend1 dsize width 1 dashcarc
+ arcmid1 rotate
+ radius 0 translate
+ arrowup
+ grestore
+} def
+%
+/arrowarcn{
+%
+% Draws a clockwise arc with an arrow in the middle
+% The arc is x_center, y_center, radius, start_angle, end_angle
+%
+% gsave dup scale /width ED width SLW
+ /arcend ED /arcstart ED /radius ED
+%
+ translate % x and y are still on stack
+ newpath 0 0 radius arcstart arcend arcn stroke
+ arcstart arcend lt {
+ /arcstart arcstart 360 add def } if
+ arcstart arcend add 2 div rotate % middle of arc
+ radius 0 translate % move to it
+ arrowdown
+% grestore
+} def
+%
+/longarrowarcn{
+%
+% Draws a clockwise arc with an arrow in the end
+% The arc is x_center, y_center, radius, start_angle, end_angle
+%
+ gsave dup scale /width ED width SLW /arcend ED /arcstart ED /radius ED
+%
+ translate % x and y are still on stack
+ arcstart arcend lt {
+ /arcstart arcstart 360 add def } if
+ /arcmid 540 width 1 add mul 3.14159 div radius div def
+ % correction for arrow
+ newpath 0 0 radius arcstart arcend arcmid add arcn stroke
+ arcend arcmid 2 div add rotate % middle of arrow
+ radius 0 translate % move to it
+ arrowdown
+ grestore
+} def
+%
+/dasharrowarcn{
+%
+% Draws a dashed clockwise arc with an arrow in the middle
+% The arc is x_center, y_center, radius, start_angle, end_angle
+%
+ gsave dup scale /width ED width SLW /dsize ED /arcend1 ED /arcstart1 ED /radius ED
+%
+ translate % x and y are still on stack
+ arcstart1 arcend1 lt {
+ /arcstart1 arcstart1 360 add def } if
+ /arcmid1 arcstart1 arcend1 add 2 div def
+ 0 0 radius arcmid1 arcstart1 dsize width 1 dashcarc
+ 0 0 radius arcend1 arcmid1 dsize width 1 dashcarc
+ arcmid1 rotate
+ radius 0 translate
+ arrowdown
+ grestore
+} def
+%
+/arrowline{
+%
+% Draws a straight line with an arrow in the middle
+% x1,y1,x2,y2
+%
+ %gsave dup scale /width ED width SLW
+ p2 p1
+ /dx x2 x1 sub def /dy y2 y1 sub def
+ /dr dx dx mul dy dy mul add sqrt def
+%
+ x1 y1 translate
+% newpath
+% 0 0 moveto
+% dx dy rlineto
+% stroke
+ dy dx atan rotate
+ dr 2.0 div 0 translate
+ arrowright
+% grestore
+} def
+%
+/longarrow{
+%
+% Draws a straight line with an arrow at the end
+% x1,y1,x2,y2
+%
+ gsave dup scale /width ED width SLW p2 p1
+ /dx x2 x1 sub def /dy y2 y1 sub def
+ /dr dx dx mul dy dy mul add sqrt def
+%
+ x1 y1 translate
+ dy dx atan rotate
+ newpath
+ 0 0 moveto
+ dr width 3 mul sub 0 rlineto
+ stroke
+ dr width 1.5 mul sub 0 translate
+ arrowright
+ grestore
+} def
+%
+/dasharrowline{
+%
+% Draws a straight dashed line with an arrow in the middle
+% x1,y1,x2,y2
+%
+% The pattern is ideally [dsize dsize] 0 setdash
+% but we want to have (2*n+1)/2 patterns, so dsize must be rounded
+% Actually we want the center to be black too so that the arrow
+% fits in nice. This means that n must be odd. So
+% r = dsize*(4*m+3)
+%
+ gsave dup scale /width ED width SLW /dsize ED p2 p1
+ /dx x2 x1 sub def /dy y2 y1 sub def
+ /dr dx dx mul dy dy mul add sqrt 2 div def
+%
+ x1 y1 translate
+ dy dx atan rotate
+%
+ 0 0 dr 0 dsize width 1 dashline
+ dr 0 translate
+ 0 0 dr 0 dsize width 1 dashline
+ arrowright
+ grestore
+} def
+%
+/carc{
+%
+% Draws an anti-clockwise arc segment:
+% x_center, y_center, radius, start_angle, end_angle
+%
+ %dup scale /width ED width SLW
+ /arcend ED /arcstart ED /radius ED
+%
+ translate % x and y are still on stack
+ newpath 0 0 radius arcstart arcend arc
+% stroke
+% grestore
+} def
+%
+/dashcarc{
+%
+% Draws an anti-clockwise arc segment:
+% x_center, y_center, radius, start_angle, end_angle, dsize
+%
+ gsave dup scale /width ED width SLW /dsize ED /arcend ED /arcstart ED /radius ED
+%
+ translate % x and y are still on stack
+%
+% Compute the length of the line
+%
+ /dr arcend arcstart sub dup 0 lt { 360 add } if
+ 3.14159 mul 180 div radius mul def
+ /dsize dr dsize 2 mul div 0.5 sub round dup 0 le { pop 0 } if 2 mul 1 add
+ dr exch div def
+ [dsize dsize] 0 setdash
+%
+ newpath 0 0 radius arcstart arcend arc stroke
+ grestore
+} def
+%
+/bcirc{
+%
+% Draws an anti-clockwise blanked circle:
+% x_center, y_center, radius
+%
+ gsave dup scale /width ED width SLW /radius ED
+%
+ translate % x and y are still on stack
+%
+ gsave
+ 1 setgray
+ newpath 0 0 radius 0 360 arc fill
+ grestore
+ newpath 0 0 radius 0 360 arc stroke
+ grestore
+} def
+%
+/gcirc{
+%
+% Draws an anti-clockwise blanked gray circle:
+% x_center, y_center, radius, grayscale
+%
+ gsave dup scale /width ED width SLW /gcolor ED /radius ED
+%
+ translate % x and y are still on stack
+%
+ 1 setgray
+ newpath 0 0 radius 0 360 arc fill
+ gcolor setgray
+ newpath 0 0 radius 0 360 arc fill
+ 0 setgray
+ newpath 0 0 radius 0 360 arc stroke
+ grestore
+} def
+%
+/ccirc1{
+%
+% Draws an anti-clockwise circle :
+% x_center, y_center, radius
+% Part 1: the contents in background color
+%
+ gsave dup scale /width ED width SLW /radius ED
+%
+ translate % x and y are still on stack
+%
+ newpath 0 0 radius 0 360 arc fill
+ grestore
+} def
+%
+/ccirc2{
+%
+% Draws an anti-clockwise circle :
+% x_center, y_center, radius
+% Part 1: the contents in background color
+%
+ gsave dup scale /width ED width SLW /radius ED
+%
+ translate % x and y are still on stack
+%
+ newpath 0 0 radius 0 360 arc stroke
+ grestore
+} def
+%
+%
+/pathlength{
+ flattenpath
+ /dist 0 def
+ { /yfirst ED /xfirst ED /ymoveto yfirst def /xmoveto xfirst def }
+ { /ynext ED /xnext ED /dist dist ynext yfirst sub dup mul
+ xnext xfirst sub dup mul add sqrt add def
+ /yfirst ynext def /xfirst xnext def }
+ {}
+ {/ynext ymoveto def /xnext xmoveto def
+ /dist ynext yfirst sub dup mul
+ xnext xfirst sub dup mul add sqrt add def
+ /yfirst ynext def /xfirst xnext def }
+ pathforall
+ dist
+} def
+%
+/centerdash{
+ /pathlen pathlength def
+ /jj pathlen dsize div 2.0 div cvi def
+ /ddsize pathlen jj 2.0 mul div def
+ [ddsize] ddsize 2 div setdash
+} def
+%
+/logaxis{
+%
+% Draws an axis from x1,y1 to x2,y2 with nl log divisions
+% size of the hashes hs, offset F
+% and width W. The stack looks like
+% x1,y1,x2,y2,nl,hs,F,W,scale
+% After the rotation the hash marks are on top if nl is positive and
+% on the bottom if nl is negative
+%
+% gsave dup scale /width ED width SLW
+ /offset ED /hashsize ED /nlogs ED p2 p1
+ x1 y1 translate
+ /y2 y2 y1 sub def /x2 x2 x1 sub def
+ y2 x2 atan rotate
+ /rr x2 dup mul y2 dup mul add sqrt def
+ offset 0 ne { /offset offset ln 10 ln div def } if
+ /offset offset dup cvi sub def
+ newpath
+ 0 0 moveto
+ rr 0 lineto
+ /lsize rr nlogs div def
+ 0 1 nlogs { /x2 ED
+ x2 offset ge {
+ /y2 x2 offset sub lsize mul def
+ y2 rr le {
+ y2 0 moveto
+ y2 hashsize 1.2 mul lineto
+ } if
+ } if
+ } for
+ stroke
+ CLW 0.6 mul setlinewidth
+ newpath
+ 0 1 nlogs { /x2 ED
+ 2 1 9 {
+ ln 10 ln div x2 add
+ /xx2 ED
+ xx2 offset ge {
+ /y2 xx2 offset sub lsize mul def
+ y2 rr le {
+ y2 0 moveto
+ y2 hashsize 0.8 mul lineto
+ } if
+ } if
+ } for
+ } for
+% stroke
+% grestore
+} def
+%
+/linaxis{
+%
+% x1,y1,x2,y2,num_decs,per_dec,hashsize,offset,width,scale
+%
+ %gsave dup scale /width ED width SLW
+ /offset ED /hashsize ED /perdec ED /numdec ED p2 p1
+ x1 y1 translate
+ /y2 y2 y1 sub def /x2 x2 x1 sub def
+ y2 x2 atan rotate
+ /rr x2 dup mul y2 dup mul add sqrt def
+ newpath
+ 0 0 moveto
+ rr 0 lineto
+ /x1 rr numdec perdec mul div def
+ /y1 rr numdec div def
+ /offset offset x1 mul def
+ 0 1 numdec { y1 mul offset sub
+ dup 0 ge {
+ dup rr le {
+ dup 0 moveto
+ hashsize 1.2 mul lineto
+ } if
+ } if
+ } for
+ stroke
+ CLW 0.6 mul setlinewidth
+ newpath
+ offset cvi 1 numdec perdec mul offset add {
+ x1 mul offset sub
+ dup 0 ge {
+ dup rr le {
+ dup 0 moveto
+ hashsize 0.8 mul lineto
+ } if
+ } if
+ } for
+ stroke
+ %grestore
+} def
+%
+end % tx@FeynDict
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/pst-feyn/pst-feyn.tex b/Master/texmf-dist/tex/generic/pst-feyn/pst-feyn.tex
new file mode 100644
index 00000000000..35e272c9c06
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pst-feyn/pst-feyn.tex
@@ -0,0 +1,344 @@
+%% $Id: pst-feyn.tex 826 2018-09-27 09:21:43Z herbert $
+%%
+%% This is file `pst-feyn.tex',
+%%
+%% IMPORTANT NOTICE:
+%%
+%% Package `pst-feyn.tex'
+%%
+%% Herbert Voss <hvoss _at_ tug.org>
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%% DESCRIPTION:
+%% `pst-feyn' is a style file for the drawing of Feynman diagrams.
+%% originally made by J.A.M. Vermaseren 14-feb-1994 for the picture environment
+%
+%%
+\csname PSTFeynLoaded\endcsname
+\let\PSTFeynLoaded\endinput
+% Requires PSTricks,
+\ifx\PSTricksLoaded\endinput\else \input pstricks.tex\fi
+\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
+%
+\def\fileversion{0.01}
+\def\filedate{2018/09/26}
+\message{`PST-feyn' v\fileversion, \filedate\space (HV,DL)}
+%
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+\pst@addfams{pst-feyn}
+
+\pstheader{pst-feyn.pro}
+%
+\def\axoxoff{0 }
+\def\axoyoff{0 }
+\def\axoxo{0 }
+\def\axoyo{0 }
+%
+\define@key[psset]{pst-feyn}{amplitude}[0.25]{\pst@getlength{#1}\psk@feyn@amplitude}
+\define@key[psset]{pst-feyn}{windings}[10]{\pst@checknum{#1}\psk@feyn@windings}
+%\pst@getint{#1}\psk@feyn@windings}
+\define@key[psset]{pst-feyn}{radius}[1]{\pst@getlength{#1}\psk@feyn@radius}
+\psset[pst-feyn]{amplitude=0.25,windings=10,radius=1}
+%
+\def\psGluon{\pst@object{psGluon}}
+\def\psGluon@i(#1)(#2){% Draws a gluon from (P1) to (P2) with amplitude and number of windings
+%\put(\axoxoff,\axoyoff){\special{"\axocolor #1 \axoxo add #2 \axoyo add #3
+% \axoxo add #4 \axoyo add #5 #6 \axowidth \axoscale gluon showpage}}
+ \pst@getcoor{#1}\pst@tempA
+ \pst@getcoor{#2}\pst@tempB
+ \begin@OpenObj
+ \addto@pscode{
+ \pst@tempA\space \axoyo add exch \axoxo add exch
+ \pst@tempB\space \axoyo add exch \axoxo add exch
+ \psk@feyn@amplitude\space %\pst@number\psunit mul
+ \psk@feyn@windings
+ tx@FeynDict begin gluon end
+ }%
+ \end@OpenObj
+ \ignorespaces
+}
+
+\def\psPhoton{\pst@object{psPhoton}}
+\def\psPhoton@i(#1)(#2){% Draws a photon from (x1,y1) to (x2,y2) with amplitude and number of windings
+ \pst@getcoor{#1}\pst@tempA
+ \pst@getcoor{#2}\pst@tempB
+ \begin@OpenObj
+ \addto@pscode{
+ \pst@tempA\space \axoyo add exch \axoxo add exch
+ \pst@tempB\space \axoyo add exch \axoxo add exch
+ \psk@feyn@amplitude\space %\pst@number\psunit mul
+ \psk@feyn@windings
+ tx@FeynDict begin photon end
+ }%
+ \end@OpenObj
+ \ignorespaces
+}
+%
+\def\psZigZag{\pst@object{psZigZag}}
+\def\psZigZag@i(#1)(#2){% Draws a zigzag from (x1,y1) to (x2,y2) with amplitude and number of windings
+ \pst@getcoor{#1}\pst@tempA
+ \pst@getcoor{#2}\pst@tempB
+ \begin@OpenObj
+ \addto@pscode{
+ \pst@tempA\space \axoyo add exch \axoxo add exch
+ \pst@tempB\space \axoyo add exch \axoxo add exch
+ \psk@feyn@amplitude\space %\pst@number\psunit div
+ \psk@feyn@windings
+ tx@FeynDict begin zigzag end
+ }%
+ \end@OpenObj
+ \ignorespaces
+}
+%
+\def\psPhotonArc{\pst@object{psPhotonArc}}
+\def\psPhotonArc@i(#1)(#2,#3){% Draws a photon on an arc segment. start angle and target angle are (#2,#3)
+ \pst@getcoor{#1}\pst@tempA
+ \begin@OpenObj
+ \addto@pscode{
+ \pst@tempA\space \axoyo add exch \axoxo add exch
+ \psk@feyn@radius
+ #2 #3
+ \psk@feyn@amplitude\space %\pst@number\psunit div
+ \psk@feyn@windings
+ tx@FeynDict begin photonarc end
+ }%
+ \end@OpenObj
+ \ignorespaces
+}
+%
+\def\psGluonArc{\pst@object{psGluonArc}}
+\def\psGluonArc@i(#1)(#2,#3){%
+%
+% Draws a gluon on an arc segment. The center of the curve is at (1,2)
+% The radius, start angle and target angle are (#2,#3,#4), 5 is the
+% amplitude of the gluon, and 6 is the number of windings.
+%New \psGluonArc[options](Coor)(phi1,\phi2)
+ \pst@getcoor{#1}\pst@tempA
+ \begin@OpenObj
+ \addto@pscode{
+ \pst@tempA\space \axoyo add exch \axoxo add exch translate
+ \psk@feyn@radius
+ #2 #3 % start angle end angle
+ \psk@feyn@amplitude\space %\pst@number\psunit div
+ \psk@feyn@windings
+ tx@FeynDict begin gluearc end
+ }%
+ \end@OpenObj
+ \ignorespaces
+}
+%
+\def\psArrowArc{\pst@object{psArrowArc}}% Draws an arc segment with an arrow in it.
+\def\psArrowArc@i(#1)(#2,#3){%
+ \pst@getcoor{#1}\pst@tempA
+ \begin@OpenObj
+ \addto@pscode{
+ \pst@tempA\space \axoyo add exch \axoxo add exch
+ \psk@feyn@radius\space %\pst@number\psrunit div
+ #2 #3
+ tx@FeynDict begin arrowarc end
+ }%
+ \end@OpenObj
+ \ignorespaces
+}
+%
+\def\psLongArrowArc{\pst@object{psLongArrowArc}}
+\def\psLongArrowArc@i(#1)(#2,#3){% Draws an arc segment with an arrow at its end.
+% The arc segment runs anticlockwise
+ \begingroup
+ \use@keep@par
+ \psarc(#1){\psk@feyn@radius pt}{#2}{#3}%
+ \endgroup
+ \pst@getcoor{#1}\pst@tempA
+ \begin@OpenObj
+ \addto@pscode{
+ \pst@tempA\space \axoyo add exch \axoxo add exch
+ \psk@feyn@radius
+ #2 #3
+ tx@FeynDict begin longarrowarc end
+ }%
+ \end@OpenObj
+ \ignorespaces
+}
+%
+\def\DashArrowArc(#1,#2)(#3,#4,#5)#6{
+%
+% Draws a dashed arc segment with an arrow in it. The center of the curve
+% is at (1,2).
+% The radius, start angle and target angle are (#3,#4,#5).
+% The arc segment runs anticlockwise
+%
+\put(\axoxoff,\axoyoff){\special{" tx@FeynDict begin \axocolor #1 \axoxo add #2 \axoyo add #3
+ #4 #5 #6 \axowidth \axoscale dasharrowarc end showpage}}
+}
+%
+\def\psArrowArcn{\pst@object{psArrowArcn}}% Draws an arc segment with an arrow in it.
+\def\psArrowArcn@i(#1)(#2,#3){%
+ \pst@getcoor{#1}\pst@tempA
+ \begin@OpenObj
+ \addto@pscode{
+ \pst@tempA\space \axoyo add exch \axoxo add exch
+ \psk@feyn@radius\space \pst@number\psrunit div
+ #2 #3
+ tx@FeynDict begin arrowarcn end
+ }%
+ \end@OpenObj
+ \ignorespaces
+}
+%
+\def\LongArrowArcn(#1,#2)(#3,#4,#5){
+%
+% Draws an arc segment with an arrow at the end. The center of the curve
+% is at (1,2).
+% The radius, start angle and target angle are (#3,#4,#5).
+% The arc segment runs clockwise
+%
+\put(\axoxoff,\axoyoff){\special{" tx@FeynDict begin \axocolor #1 \axoxo add #2 \axoyo add #3
+ #4 #5 \axowidth \axoscale longarrowarcn end showpage}}
+}
+%
+\def\DashArrowArcn(#1,#2)(#3,#4,#5)#6{
+%
+% Draws a dashed arc segment with an arrow in it. The center of the curve
+% is at (1,2).
+% The radius, start angle and target angle are (#3,#4,#5).
+% The arc segment runs clockwise
+%
+\put(\axoxoff,\axoyoff){\special{" tx@FeynDict begin \axocolor #1 \axoxo add #2 \axoyo add #3
+ #4 #5 #6 \axowidth \axoscale dasharrowarcn end showpage}}
+}
+%
+\def\psArrowLine{\pst@object{psArrowLine}}
+\def\psArrowLine@i(#1)(#2){% Draws a line with an arrow in it from (x1,y1) to (x2,y2)
+ \begingroup
+ \use@keep@par
+ \psline(#1)(#2)%
+ \endgroup
+ \pst@getcoor{#1}\pst@tempA
+ \pst@getcoor{#2}\pst@tempB
+ \begin@OpenObj
+ \addto@pscode{
+ \pst@tempA\space \axoyo add exch \axoxo add exch %\tx@UserCoor
+ \pst@tempB\space \axoyo add exch \axoxo add exch %\tx@UserCoor
+ tx@FeynDict begin arrowline end
+ }%
+ \end@OpenObj
+ \ignorespaces
+}
+%
+\def\LongArrow(#1,#2)(#3,#4){
+%
+% Draws a line with an arrow at the end from (x1,y1) to (x2,y2)
+%
+\put(\axoxoff,\axoyoff){\special{" tx@FeynDict begin \axocolor #1 \axoxo add #2 \axoyo add #3
+ \axoxo add #4 \axoyo add \axowidth \axoscale longarrow end showpage}}
+}
+%
+\def\DashArrowLine(#1,#2)(#3,#4)#5{
+%
+% Draws a dashed line with an arrow in it from (x1,y1) to (x2,y2)
+% The size of the dashes is given by the fifth argument.
+%
+\put(\axoxoff,\axoyoff){\special{" tx@FeynDict begin \axocolor #1 \axoxo add #2 \axoyo add #3
+ \axoxo add #4 \axoyo add #5 \axowidth \axoscale dasharrowline end showpage}}
+}
+%
+\def\psCArc{\pst@object{psCArc}}
+\def\psCArc@i(#1)(#2,#3){% Draws an arc segment. The center of the curve is at .
+ %\axocolor #1 \axoxo add #2 \axoyo add #3 #4 #5 \axowidth \axoscale carc end showpage
+ \pst@getcoor{#1}\pst@tempA
+ \begin@OpenObj
+ \addto@pscode{
+ \pst@tempA\space \axoyo add exch \axoxo add exch
+ \psk@feyn@radius\space %\pst@number\psrunit div
+ #2 #3
+ tx@FeynDict begin carc end
+ }%
+ \end@OpenObj
+ \ignorespaces
+}
+%
+\let\psText\rput
+%
+\def\psBCirc{\pst@object{psBCirc}}
+\def\psBCirc@i(#1)#2{\begingroup\use@par\pscircle[fillstyle=solid,fillcolor=white](#1){#2}\endgroup}%
+% Draws a circle at (1,2) and radius 3 that is blanked out.
+%
+\def\psGCirc{\pst@object{psGCirc}}% fill the circle with a gray scale
+\def\psGCirc@i(#1)#2#3{{\use@par\pscircle[fillstyle=solid,fillcolor={[gray]#3}](#1){#2}}}%
+%
+\def\psCCirc{\pst@object{psCCirc}}% #3 is the color of the circle, #4 the color of the contents
+\def\psCCirc@i(#1)#2#3#4{\begingroup\use@par\pscircle[linecolor=#3,fillstyle=solid,fillcolor=#4](#1){#2}\endgroup}
+%
+\def\psPText{\@ifnextchar[\psPText@i{\psPText@i[c]}}
+\def\psPText@i[#1](#2)(#3)#4{%
+% \definecolor{temp@color}{gray}{#3}%
+ \rput[#1]{#3}(#2){\shortstack{#4}}%
+% \rput[#1](#2){\textcolor{temp@color}{\shortstack{#4}}}%
+}
+%
+\def\psLogAxis{\pst@object{psLogAxis}}
+% LogAxis(x1,y1)(x2,y2)(num_logs,hashsize,offset)
+\def\psLogAxis@i(#1)(#2)(#3,#4,#5){%
+% The line is from (x1,y1) to (x2,y2) and the marks are on the left side
+% when hashsize is positive, and right when it is negative.
+% num_logs is the number of orders of magnitude and offset is the number
+% at which one starts at (x1,y1) (like if offset=2 we start at 2)
+% When offset is 0 we start at 1. Width is the linewidth.
+ \pst@getcoor{#1}\pst@tempA
+ \pst@getcoor{#2}\pst@tempB
+ \begin@OpenObj
+ \addto@pscode{
+ \pst@tempA\space \axoyo add exch \axoxo add exch
+ \pst@tempB\space \axoyo add exch \axoxo add exch
+ #3 #4 #5
+ tx@FeynDict begin logaxis end
+ }%
+ \end@OpenObj
+ \ignorespaces
+}
+%
+\def\psLinAxis{\pst@object{psLinAxis}}
+% LinAxis(x1,y1)(x2,y2)(num_decs,per_dec,hashsize,offset)
+\def\psLinAxis@i(#1)(#2)(#3,#4,#5,#6){%
+% The line is from (x1,y1) to (x2,y2) and the marks are on the left side
+% when hashsize is positive, and right when it is negative.
+% num_decs is the number of accented marks, per_dec the number of
+% divisions between them and offset is the number
+% at which one starts at (x1,y1) (like if offset=2 we start at the second
+% small mark) Width is the linewidth.
+ \pst@getcoor{#1}\pst@tempA
+ \pst@getcoor{#2}\pst@tempB
+ \begin@OpenObj
+ \addto@pscode{
+ \pst@tempA\space \axoyo add exch \axoxo add exch
+ \pst@tempB\space \axoyo add exch \axoxo add exch
+ #3 #4 #5 #6
+ tx@FeynDict begin linaxis end
+ }%
+ \end@OpenObj
+ \ignorespaces
+}
+%
+\def\psBText{\pst@object{psBText}}% Draws a box with the center at (x1,y1) and postscript text in it.
+\def\psBText@i(#1)#2{\begingroup\use@par
+ \rput(#1){\psframebox[fillstyle=solid,fillcolor=white]{\shortstack{#2}}}%
+\endgroup}
+%
+\def\psGText{\pst@object{psGText}}% The color of the background is in #2
+\def\psCText@i(#1)#2#3{\begingroup\use@par
+ \rput(#1){\psframebox[fillcolor={[gray]#2},fillstyle=solid]{\shortstack{#3}}}%
+ \endgroup}
+%
+\def\psCText{\pst@object{psCText}}% The color of box and text is in #2
+\def\psCText@i(#1)#2#3#4{\begingroup\use@par
+ \rput(#1){\psframebox[linecolor=#2,fillcolor=#3,fillstyle=solid]{\shortstack{#4}}}%
+ \endgroup}
+%
+\catcode`\@=\PstAtCode\relax
+%
+%% END: pst-feyn.tex
+\endinput
+
diff --git a/Master/texmf-dist/tex/latex/pst-feyn/pst-feyn.sty b/Master/texmf-dist/tex/latex/pst-feyn/pst-feyn.sty
new file mode 100644
index 00000000000..f16ca95b80e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pst-feyn/pst-feyn.sty
@@ -0,0 +1,14 @@
+%% $Id: pst-feyn.sty 826 2018-09-27 09:21:43Z herbert $
+\PassOptionsToPackage{dvipsnames,svgnames}{pstricks}
+\RequirePackage{pstricks}
+\ProvidesPackage{pst-feyn}[2018/09/26 package wrapper for
+ pst-feyn.tex (hv)]
+\input{pst-feyn.tex}
+\IfFileExists{pst-feyn.pro}{%
+ \ProvidesFile{pst-feyn.pro}
+ [2018/09/26 v. 0.01, PostScript prologue file (hv)]
+ \@addtofilelist{pst-feyn.pro}}{}%
+\ProvidesFile{pst-feyn.tex}
+ [\filedate\space v\fileversion\space `PST-feyn' (hv)]
+\endinput
+
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 1d920f4cf07..5dae20469a3 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -531,7 +531,7 @@ my @TLP_working = qw(
pst-coil pst-contourplot pst-cox
pst-dart pst-dbicons pst-diffraction
pst-electricfield pst-eps pst-eucl pst-eucl-translation-bg pst-exa
- pst-fill pst-fit pst-fr3d pst-fractal pst-fun pst-func
+ pst-feyn pst-fill pst-fit pst-fr3d pst-fractal pst-fun pst-func
pst-gantt pst-geo pst-geometrictools pst-gr3d pst-grad pst-graphicx
pst-infixplot pst-intersect pst-jtree pst-knot pst-labo pst-layout
pst-lens pst-light3d pst-lsystem
diff --git a/Master/tlpkg/tlpsrc/pst-feyn.tlpsrc b/Master/tlpkg/tlpsrc/pst-feyn.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/pst-feyn.tlpsrc