diff options
author | Karl Berry <karl@freefriends.org> | 2018-09-28 22:31:34 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-09-28 22:31:34 +0000 |
commit | a7d7e0b4ba4b69c7a87690d1f197cc005fa957aa (patch) | |
tree | d99c700bbb2be7704fac07730b9591ee43dd6c37 /Master/texmf-dist/tex/generic | |
parent | b4b1b991d6f3647039f9d4ca96daadd9781dfdf2 (diff) |
pst-feyn (27sep18)
git-svn-id: svn://tug.org/texlive/trunk@48781 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic')
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-feyn/pst-feyn.tex | 344 |
1 files changed, 344 insertions, 0 deletions
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 + |