texlive[48781] Master: pst-feyn (27sep18)

commits+karl at tug.org commits+karl at tug.org
Sat Sep 29 00:31:35 CEST 2018


Revision: 48781
          http://tug.org/svn/texlive?view=revision&revision=48781
Author:   karl
Date:     2018-09-29 00:31:34 +0200 (Sat, 29 Sep 2018)
Log Message:
-----------
pst-feyn (27sep18)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/generic/pst-feyn/
    trunk/Master/texmf-dist/doc/generic/pst-feyn/Changes
    trunk/Master/texmf-dist/doc/generic/pst-feyn/README.md
    trunk/Master/texmf-dist/doc/generic/pst-feyn/data/
    trunk/Master/texmf-dist/doc/generic/pst-feyn/data/data0.dat
    trunk/Master/texmf-dist/doc/generic/pst-feyn/data/data1.dat
    trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.bib
    trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.pdf
    trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.tex
    trunk/Master/texmf-dist/dvips/pst-feyn/
    trunk/Master/texmf-dist/dvips/pst-feyn/pst-feyn.pro
    trunk/Master/texmf-dist/tex/generic/pst-feyn/
    trunk/Master/texmf-dist/tex/generic/pst-feyn/pst-feyn.tex
    trunk/Master/texmf-dist/tex/latex/pst-feyn/
    trunk/Master/texmf-dist/tex/latex/pst-feyn/pst-feyn.sty
    trunk/Master/tlpkg/tlpsrc/pst-feyn.tlpsrc

Added: trunk/Master/texmf-dist/doc/generic/pst-feyn/Changes
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-feyn/Changes	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-feyn/Changes	2018-09-28 22:31:34 UTC (rev 48781)
@@ -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

Added: trunk/Master/texmf-dist/doc/generic/pst-feyn/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-feyn/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-feyn/README.md	2018-09-28 22:31:34 UTC (rev 48781)
@@ -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 $


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-feyn/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-feyn/data/data0.dat
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-feyn/data/data0.dat	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-feyn/data/data0.dat	2018-09-28 22:31:34 UTC (rev 48781)
@@ -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)

Added: trunk/Master/texmf-dist/doc/generic/pst-feyn/data/data1.dat
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-feyn/data/data1.dat	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-feyn/data/data1.dat	2018-09-28 22:31:34 UTC (rev 48781)
@@ -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)

Added: trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.bib
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.bib	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.bib	2018-09-28 22:31:34 UTC (rev 48781)
@@ -0,0 +1,90 @@
+%% -*-bibtex-*-
+ at STRING{tugboat	= {TUGboat} }
+ at STRING{dtk	= {{D}ie {\TeX}nische {K}om{\"o}die} }
+
+ at 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}
+}
+
+
+
+ at 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.}
+}
+
+ at 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}
+}
+
+ at 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}
+}
+
+ at 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,
+}
+
+ at 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}
+}
+
+ at 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}
+}
+
+ at Book{LTXquick,
+  author	= {Herbert Vo\ss{}},
+  title		= {{\LaTeX} quick reference},
+  edition	= {1},
+  publisher	= {UIT},
+  year		= {2012},
+  location	= {Cambridge -- UK}
+}
+
+ at 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}
+}
+


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.bib
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.pdf	2018-09-28 22:31:10 UTC (rev 48780)
+++ trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.pdf	2018-09-28 22:31:34 UTC (rev 48781)

Property changes on: trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.tex	2018-09-28 22:31:34 UTC (rev 48781)
@@ -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 at subsection{\bprot at dottedtocline{2}{1.5em}{3.6em}}
+\renewcommand*\l at subsubsection{\bprot at 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}


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-feyn/pst-feyn-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/dvips/pst-feyn/pst-feyn.pro
===================================================================
--- trunk/Master/texmf-dist/dvips/pst-feyn/pst-feyn.pro	                        (rev 0)
+++ trunk/Master/texmf-dist/dvips/pst-feyn/pst-feyn.pro	2018-09-28 22:31:34 UTC (rev 48781)
@@ -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 at FeynDict 100 dict def
+tx at 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 at FeynDict
+%
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/dvips/pst-feyn/pst-feyn.pro
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/pst-feyn/pst-feyn.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/pst-feyn/pst-feyn.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/pst-feyn/pst-feyn.tex	2018-09-28 22:31:34 UTC (rev 48781)
@@ -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 at addfams{pst-feyn}
+
+\pstheader{pst-feyn.pro}
+%
+\def\axoxoff{0 }
+\def\axoyoff{0 }
+\def\axoxo{0 }
+\def\axoyo{0 }
+%
+\define at key[psset]{pst-feyn}{amplitude}[0.25]{\pst at getlength{#1}\psk at feyn@amplitude}
+\define at key[psset]{pst-feyn}{windings}[10]{\pst at checknum{#1}\psk at feyn@windings}
+%\pst at getint{#1}\psk at feyn@windings}
+\define at key[psset]{pst-feyn}{radius}[1]{\pst at getlength{#1}\psk at feyn@radius}
+\psset[pst-feyn]{amplitude=0.25,windings=10,radius=1}
+%
+\def\psGluon{\pst at object{psGluon}}
+\def\psGluon at 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 at getcoor{#1}\pst at tempA
+  \pst at getcoor{#2}\pst at tempB
+  \begin at OpenObj
+  \addto at pscode{
+    \pst at tempA\space \axoyo add exch \axoxo add exch 
+    \pst at tempB\space \axoyo add exch \axoxo add exch 
+    \psk at feyn@amplitude\space %\pst at number\psunit mul 
+    \psk at feyn@windings
+    tx at FeynDict begin gluon end 
+  }%
+  \end at OpenObj
+  \ignorespaces
+}
+
+\def\psPhoton{\pst at object{psPhoton}}
+\def\psPhoton at i(#1)(#2){%   Draws a photon from (x1,y1) to (x2,y2) with amplitude and number of windings
+  \pst at getcoor{#1}\pst at tempA
+  \pst at getcoor{#2}\pst at tempB
+  \begin at OpenObj
+  \addto at pscode{
+    \pst at tempA\space \axoyo add exch \axoxo add exch 
+    \pst at tempB\space \axoyo add exch \axoxo add exch 
+    \psk at feyn@amplitude\space %\pst at number\psunit mul 
+    \psk at feyn@windings
+    tx at FeynDict begin photon end 
+  }%
+  \end at OpenObj
+  \ignorespaces
+}
+%
+\def\psZigZag{\pst at object{psZigZag}}
+\def\psZigZag at i(#1)(#2){%   Draws a zigzag from (x1,y1) to (x2,y2) with amplitude and number of windings
+  \pst at getcoor{#1}\pst at tempA
+  \pst at getcoor{#2}\pst at tempB
+  \begin at OpenObj
+  \addto at pscode{
+    \pst at tempA\space \axoyo add exch \axoxo add exch 
+    \pst at tempB\space \axoyo add exch \axoxo add exch 
+    \psk at feyn@amplitude\space %\pst at number\psunit div 
+    \psk at feyn@windings
+    tx at FeynDict begin zigzag end 
+  }%
+  \end at OpenObj
+  \ignorespaces
+}
+%
+\def\psPhotonArc{\pst at object{psPhotonArc}}
+\def\psPhotonArc at i(#1)(#2,#3){%   Draws a photon on an arc segment. start angle and target angle are (#2,#3)
+  \pst at getcoor{#1}\pst at tempA
+  \begin at OpenObj
+  \addto at pscode{
+    \pst at tempA\space \axoyo add exch \axoxo add exch 
+    \psk at feyn@radius
+    #2 #3 
+    \psk at feyn@amplitude\space %\pst at number\psunit div 
+    \psk at feyn@windings
+    tx at FeynDict begin photonarc end 
+  }%
+  \end at OpenObj
+  \ignorespaces
+}
+%
+\def\psGluonArc{\pst at object{psGluonArc}}
+\def\psGluonArc at 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 at getcoor{#1}\pst at tempA
+  \begin at OpenObj
+  \addto at pscode{
+    \pst at tempA\space \axoyo add exch \axoxo add exch translate
+    \psk at feyn@radius 
+    #2 #3 % start angle end angle
+    \psk at feyn@amplitude\space %\pst at number\psunit div 
+    \psk at feyn@windings
+    tx at FeynDict begin gluearc end 
+  }%
+  \end at OpenObj
+  \ignorespaces
+}
+%
+\def\psArrowArc{\pst at object{psArrowArc}}%   Draws an arc segment with an arrow in it.
+\def\psArrowArc at i(#1)(#2,#3){%
+  \pst at getcoor{#1}\pst at tempA
+  \begin at OpenObj
+  \addto at pscode{
+    \pst at tempA\space \axoyo add exch \axoxo add exch 
+    \psk at feyn@radius\space %\pst at number\psrunit div 
+    #2 #3
+    tx at FeynDict begin arrowarc end 
+  }%
+  \end at OpenObj
+  \ignorespaces
+}
+%
+\def\psLongArrowArc{\pst at object{psLongArrowArc}}
+\def\psLongArrowArc at i(#1)(#2,#3){%  Draws an arc segment with an arrow at its end. 
+%   The arc segment runs anticlockwise
+  \begingroup
+  \use at keep@par
+  \psarc(#1){\psk at feyn@radius pt}{#2}{#3}%
+  \endgroup
+  \pst at getcoor{#1}\pst at tempA
+  \begin at OpenObj
+  \addto at pscode{
+    \pst at tempA\space \axoyo add exch \axoxo add exch 
+    \psk at feyn@radius
+    #2 #3 
+    tx at FeynDict begin longarrowarc end 
+  }%
+  \end at 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 at FeynDict begin \axocolor #1 \axoxo add #2 \axoyo add #3
+ #4 #5 #6 \axowidth \axoscale dasharrowarc end showpage}}
+}
+%
+\def\psArrowArcn{\pst at object{psArrowArcn}}%   Draws an arc segment with an arrow in it.
+\def\psArrowArcn at i(#1)(#2,#3){%
+  \pst at getcoor{#1}\pst at tempA
+  \begin at OpenObj
+  \addto at pscode{
+    \pst at tempA\space \axoyo add exch \axoxo add exch 
+    \psk at feyn@radius\space \pst at number\psrunit div 
+    #2 #3
+    tx at FeynDict begin arrowarcn end 
+  }%
+  \end at 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 at 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 at FeynDict begin \axocolor #1 \axoxo add #2 \axoyo add #3
+ #4 #5 #6 \axowidth \axoscale dasharrowarcn end showpage}}
+}
+%
+\def\psArrowLine{\pst at object{psArrowLine}}
+\def\psArrowLine at i(#1)(#2){% Draws a line with an arrow in it from (x1,y1) to (x2,y2)
+  \begingroup
+  \use at keep@par
+  \psline(#1)(#2)%
+  \endgroup
+  \pst at getcoor{#1}\pst at tempA
+  \pst at getcoor{#2}\pst at tempB
+  \begin at OpenObj
+  \addto at pscode{
+    \pst at tempA\space \axoyo add exch \axoxo add exch %\tx at UserCoor
+    \pst at tempB\space \axoyo add exch \axoxo add exch %\tx at UserCoor
+    tx at FeynDict begin arrowline end 
+  }%
+  \end at 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 at 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 at FeynDict begin \axocolor #1 \axoxo add #2 \axoyo add #3
+ \axoxo add #4 \axoyo add #5 \axowidth \axoscale dasharrowline end showpage}}
+}
+%
+\def\psCArc{\pst at object{psCArc}}
+\def\psCArc at 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 at getcoor{#1}\pst at tempA
+  \begin at OpenObj
+  \addto at pscode{
+    \pst at tempA\space \axoyo add exch \axoxo add exch 
+    \psk at feyn@radius\space %\pst at number\psrunit div 
+    #2 #3
+    tx at FeynDict begin carc end 
+  }%
+  \end at OpenObj
+  \ignorespaces
+}
+%
+\let\psText\rput
+%
+\def\psBCirc{\pst at object{psBCirc}}
+\def\psBCirc at i(#1)#2{\begingroup\use at 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 at object{psGCirc}}% fill the circle with a gray scale 
+\def\psGCirc at i(#1)#2#3{{\use at par\pscircle[fillstyle=solid,fillcolor={[gray]#3}](#1){#2}}}%
+%
+\def\psCCirc{\pst at object{psCCirc}}% #3 is the color of the circle, #4 the color of the contents
+\def\psCCirc at i(#1)#2#3#4{\begingroup\use at par\pscircle[linecolor=#3,fillstyle=solid,fillcolor=#4](#1){#2}\endgroup}
+%
+\def\psPText{\@ifnextchar[\psPText at i{\psPText at i[c]}}
+\def\psPText at i[#1](#2)(#3)#4{%
+%    \definecolor{temp at color}{gray}{#3}%
+    \rput[#1]{#3}(#2){\shortstack{#4}}%
+%    \rput[#1](#2){\textcolor{temp at color}{\shortstack{#4}}}%
+}
+%
+\def\psLogAxis{\pst at object{psLogAxis}}
+%   LogAxis(x1,y1)(x2,y2)(num_logs,hashsize,offset)
+\def\psLogAxis at 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 at getcoor{#1}\pst at tempA
+  \pst at getcoor{#2}\pst at tempB
+  \begin at OpenObj
+  \addto at pscode{
+    \pst at tempA\space \axoyo add exch \axoxo add exch 
+    \pst at tempB\space \axoyo add exch \axoxo add exch 
+    #3 #4 #5 
+    tx at FeynDict begin logaxis end 
+  }%
+  \end at OpenObj
+  \ignorespaces
+}
+%
+\def\psLinAxis{\pst at object{psLinAxis}}
+%   LinAxis(x1,y1)(x2,y2)(num_decs,per_dec,hashsize,offset)
+\def\psLinAxis at 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 at getcoor{#1}\pst at tempA
+  \pst at getcoor{#2}\pst at tempB
+  \begin at OpenObj
+  \addto at pscode{
+    \pst at tempA\space \axoyo add exch \axoxo add exch 
+    \pst at tempB\space \axoyo add exch \axoxo add exch 
+    #3 #4 #5 #6 
+    tx at FeynDict begin linaxis end 
+  }%
+  \end at OpenObj
+  \ignorespaces
+}
+%
+\def\psBText{\pst at object{psBText}}%   Draws a box with the center at (x1,y1) and postscript text in it.
+\def\psBText at i(#1)#2{\begingroup\use at par
+  \rput(#1){\psframebox[fillstyle=solid,fillcolor=white]{\shortstack{#2}}}%
+\endgroup}
+%
+\def\psGText{\pst at object{psGText}}%   The color of the background is in #2
+\def\psCText at i(#1)#2#3{\begingroup\use at par
+    \rput(#1){\psframebox[fillcolor={[gray]#2},fillstyle=solid]{\shortstack{#3}}}%
+  \endgroup}
+%
+\def\psCText{\pst at object{psCText}}%  The color of box and text is in #2
+\def\psCText at i(#1)#2#3#4{\begingroup\use at par
+    \rput(#1){\psframebox[linecolor=#2,fillcolor=#3,fillstyle=solid]{\shortstack{#4}}}%
+  \endgroup}
+%
+\catcode`\@=\PstAtCode\relax
+%
+%% END: pst-feyn.tex
+\endinput
+


Property changes on: trunk/Master/texmf-dist/tex/generic/pst-feyn/pst-feyn.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/pst-feyn/pst-feyn.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pst-feyn/pst-feyn.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/pst-feyn/pst-feyn.sty	2018-09-28 22:31:34 UTC (rev 48781)
@@ -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
+


Property changes on: trunk/Master/texmf-dist/tex/latex/pst-feyn/pst-feyn.sty
___________________________________________________________________
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-09-28 22:31:10 UTC (rev 48780)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2018-09-28 22:31:34 UTC (rev 48781)
@@ -531,7 +531,7 @@
     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

Added: trunk/Master/tlpkg/tlpsrc/pst-feyn.tlpsrc
===================================================================


More information about the tex-live-commits mailing list