Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F9501452
feynmp.sty
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
12 KB
Subscribers
None
feynmp.sty
View Options
%%
%% This is file `feynmp.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% feynmf.dtx (with options: `style,mp')
%%
%% Copyright (C) 1989, 1990, 1992-1995 by Thorsten.Ohl@Physik.TH-Darmstadt.de
%%
%% This file is NOT the source for feynmf, because almost all comments
%% have been stripped from it. It is NOT the preferred form of feynmf
%% for making modifications to it.
%%
%% Therefore you can NOT redistribute and/or modify THIS file. You can
%% however redistribute the complete source (feynmf.dtx and feynmf.ins)
%% and/or modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2, or (at
%% your option) any later version.
%%
%% As a special exception, you can redistribute parts of this file for
%% the electronic distribution of scientific papers, provided that you
%% include a short note pointing to the complete source.
%%
%% Feynmf is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
%% GNU General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% \CheckSum{924}
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\fileversion{v1.08}
\NeedsTeXFormat{LaTeX2e}
{\def\RCS#1#2\endRCS{%
\ifx$#1%
\@RCS $#2 \endRCS
\else
\@RCS $*: #1#2$ \endRCS
\fi}%
\def\@RCS $#1: #2,v #3 #4 #5 #6 #7$ \endRCS{%
\gdef\filename{#2}%
\gdef\filerevision{#3}%
\gdef\filedate{#4}%
\gdef\filemaintainer{#6}}%
\RCS ${}Id: feynmf.dtx,v 1.30 1996/12/02 09:20:36 ohl Exp $ \endRCS}%
\ProvidesPackage{feynmp}[\filedate\space\fileversion\space
LaTeX/MetaPost Feynman Diagram Package (\filemaintainer)]
\let\fmf@noexpandoff\relax
\DeclareOption{pre-1.03}{%
\PackageWarning{feynmf}{%
Pre v1.03 compatibility can clash with font loading}
\def\fmf@noexpandoff{\let\noexpand\relax}}
\DeclareOption{errorstop}{\let\@interactionmode\errorstopmode}
\DeclareOption{scroll}{\let\@interactionmode\scrollmode}
\DeclareOption{nonstop}{\let\@interactionmode\nonstopmode}
\DeclareOption{batch}{\let\@interactionmode\batchmode}
\let\@interactionmode\errorstopmode
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{graphics}}
\ProcessOptions
\RequirePackage{graphics}[1994/12/15]
\let\mdqrestore\relax
\@ifundefined{mdqoff}{}{%
\mdqoff
\let\mdqrestore\mdqon}
\def\fmfcmd#1{%
\if@fmfio
\immediate\write\@outfmf{#1}%
\fi
\ignorespaces}
\newif\if@fmfio
\@fmfiotrue
\newwrite\@outfmf
\newtoks\fmfbuf@
{\catcode`\%=11\gdef\p@rcent{%}}
\edef\fmf@revision{\filerevision}
\def\fmffile#1{%
\def\thefmffile{#1}%
\equaltojobname{\thefmffile}{%
\errhelp={The argument of \fmffile MUST NOT be identical to the^^J%
name of your main input file! I will use fmfdefault.mf^^J%
this time around, but you'd better fix your code now!}%
\errmessage{Invalid arument of \string\fmffile!}%
\def\thefmffile{fmfdefault}}{}%
\if@fmfio
\@ifundefined{ifmeasuring@}%
{}%
{\def\if@fmfio{\ifmeasuring@\else}}%
\immediate\openout\@outfmf=\thefmffile.mp\relax
\fmfcmd{\p@rcent\space \thefmffile.mp -- do not edit, %
generated automatically by \jobname.tex^^J%
input feynmp^^J%
require_RCS_revision "\fmf@revision";}%
\fi
\setcounter{fmfgraph}{0}}
\let\thefmffile\relax
\newcounter{fmfgraph}
\def\equaltojobname#1#2#3{%
\edef\@tempa{#1}%
\edef\@tempa{\meaning\@tempa}%
\edef\@tempb{\jobname}%
\edef\@tempb{\meaning\@tempb}%
\ifx\@tempa\@tempb
#2
\else
#3
\fi}
\def\endfmffile{%
\fmfcmd{\p@rcent\space the end.^^J%
end.^^J%
endinput;}%
\let\thefmffile\relax
\if@fmfio
\immediate\closeout\@outfmf
\fi}
{\catcode`\#=11\gdef\sh@rp{#}%
\catcode`\"=11\gdef\dqu@te{"}}
\def\fmf@graph#1#2{%
\ifx\thefmffile\relax
\errhelp={Outside a fmffile environment, I have no clue as to where^^J%
the METAFONT commands should go. I will use fmfdefault.mf^^J%
for this graph, but you'd better fix your code!}%
\errmessage{I detected a fmfgraph environment outside of fmffile}%
\fmffile{fmfdefault}
\fi
\global\expandafter\advance\csname c@fmfgraph\endcsname \@ne
\fmfcmd{beginchar(\thefmfgraph, #1*\the\unitlength\sh@rp, %
#2*\the\unitlength\sh@rp, 0);^^J%
\dqu@te feynmf: \thefmfgraph\dqu@te;}%
\fmfcmd{LaTeX_unitlength:=\the\unitlength;}%
\begin{fmfsubgraph}(0,0)(w,h)
\fmfinit
\fmfpen{thin}}
\def\fmfgraph(#1,#2){%
\fmf@graph{#1}{#2}%
\def\fmfkeep##1{\fmf@keep{#1}{#2}{##1}}%
\leavevmode
\IfFileExists{\thefmffile.\thefmfgraph}%
{\includegraphics{\thefmffile.\thefmfgraph}}%
{\typeout{%
feynmp: File \thefmffile.\thefmfgraph\space not found:^^J%
feynmp: Process \thefmffile.mp with MetaPost and then %
reprocess this file.}}%
\ignorespaces}
\def\endfmfgraph{%
\fmffreeze
\fmfdraw
\end{fmfsubgraph}
\fmfcmd{endchar;}%
\def\fmfkeep##1{\fmf@nokeep}}
\def\fmfchar{\@nameuse{fmfgraph}}
\def\endfmfchar{\@nameuse{endfmfgraph}}
\@namedef{fmfgraph*}(#1,#2){%
\begin{picture}(#1,#2)
\fmf@graph{#1}{#2}%
\def\fmfkeep##1{\fmf@keepstar{#1}{#2}{##1}}%
\IfFileExists{\thefmffile.\thefmfgraph}%
{\put(0,0){\includegraphics{\thefmffile.\thefmfgraph}}}%
{\typeout{%
feynmp: File \thefmffile.\thefmfgraph\space not found:^^J%
feynmp: Process \thefmffile.mp with MetaPost and then %
reprocess this file.}}%
\ignorespaces}
\@namedef{endfmfgraph*}{%
\endfmfgraph
\if@fmfio
{\catcode`\%=14\relax
\fmf@noexpandoff
\InputIfFileExists{\thefmffile.t\thefmfgraph}{}{%
\typeout{%
feynmf: Label file \thefmffile.t\thefmfgraph\space not found:^^J%
feynmf: Process \thefmffile.mp with MetaPost and then %
reprocess this file.}}}%
\fi
\end{picture}}
\@namedef{fmfchar*}{\@nameuse{fmfgraph*}}
\@namedef{endfmfchar*}{\@nameuse{endfmfgraph*}}
\def\fmfkeep#1{\fmf@nokeep}
\def\fmf@nokeep{%
\errhelp={There's nothing to \string\fmfkeep!}%
\errmessage{feynmf: \string\fmfkeep\space outside of `fmfgraph'!}}
\def\fmf@keep#1#2#3{%
\global\@namedef{fmf@k:e:#3}{\begin{fmfgraph}(#1,#2)\end{fmfgraph}}%
\global\e@namedef{fmf@k:f:#3}{\thefmffile}%
\global\e@namedef{fmf@k:c:#3}{\thefmfgraph}}
\def\fmf@keepstar#1#2#3{%
\global\@namedef{fmf@k:e:#3}{\begin{fmfgraph*}(#1,#2)\end{fmfgraph*}}%
\global\e@namedef{fmf@k:f:#3}{\thefmffile}%
\global\e@namedef{fmf@k:c:#3}{\thefmfgraph}}
\def\e@namedef#1{\expandafter\edef\csname #1\endcsname}
\def\fmfreuse#1{%
\@ifundefined{fmf@k:e:#1}%
{\typeout{%
feynmf: \string\fmfreuse: %
missing \string\fmfkeep\space for `#1'!}}%
{\edef\thefmffile{\@nameuse{fmf@k:f:#1}}%
\@nameuse{c@fmfgraph}\@nameuse{fmf@k:c:#1}%
\advance\@nameuse{c@fmfgraph}-1%
\def\fmfcmd##1{}%
\@nameuse{fmf@k:e:#1}}}
\def\fmfframe(#1,#2)(#3,#4)#5{%
\leavevmode
\hbox{\vbox{\vskip#2\unitlength\par
\hbox{\hskip#1\unitlength#5\hskip#3\unitlength}\par
\vskip#4\unitlength}}}
\def\fmfpen#1{\fmfcmd{pickup pencircle scaled #1;}}
\def\fmfsubgraph(#1,#2)(#3,#4){\fmfcmd{subgraph (#1, #2, #3, #4);}}
\def\endfmfsubgraph{\fmfcmd{endsubgraph;}}
\def\Compose#1#2#3{#1{#2{#3}}}
\def\gobblefalse\else\gobbletrue\fi#1#2{\fi#1}
\def\gobbletrue\fi#1#2{\fi#2}
\def\TeXif#1{#1\gobblefalse\else\gobbletrue\fi}
\def\Nil#1#2{#2}
\def\Cons#1#2#3#4{#3{#1}{#2}}
\def\Singleton#1{\Cons{#1}\Nil}
\def\Foldr#1#2#3{#3{\Foldr@{#1}{#2}}{#2}}
\def\Foldr@#1#2#3#4{#1{#3}{\Foldr{#1}{#2}{#4}}}
\def\Map#1{\Foldr{\Compose\Cons{#1}}\Nil}
\def\Unlistize#1{#1\Unlistize@{}}
\def\Unlistize@#1{#1\Foldr\Commaize{}}
\def\Commaize#1#2{, #1#2}
\def\Listize#1{\Listize@#1,\relax @@@}
\def\Listize@#1,#2@@@{%
\TeXif{\ifx\relax#2}%
{\Singleton{#1}}%
{\Cons{#1}{\Listize@#2@@@}}}
\def\fmfpfx@#1{__#1}
\def\fmfpfx#1{\Unlistize{\Map\fmfpfx@{\Listize{#1}}}}
\def\fmfwizard{\fmfcmd{feynmfwizard := true;}}
\def\fmfnowizard{\fmfcmd{feynmfwizard := false;}}
\def\fmfshrink#1{\fmfcmd{shrink (#1);}}
\def\endfmfshrink{\fmfcmd{endshrink;}}
\def\fmfinit{\fmfcmd{vinit;}}
\def\fmf#1#2{%
\fmfbuf@={#1}%
\fmfcmd{vconnect ("\the\fmfbuf@", \fmfpfx{#2});}}
\def\fmfn#1#2#3{
\fmfbuf@={#1}%
\fmfcmd{vconnectn ("\the\fmfbuf@", \fmfpfx{#2}, #3);}}
\def\fmfcyclen#1#2#3{%
\fmfbuf@={#1}%
\fmfcmd{vcyclen ("\the\fmfbuf@", \fmfpfx{#2}, #3);}}
\def\fmfrcyclen#1#2#3{%
\fmfbuf@={#1}%
\fmfcmd{vrcyclen ("\the\fmfbuf@", \fmfpfx{#2}, #3);}}
\def\fmfforce#1#2{\fmfcmd{vforce ((#1), \fmfpfx{#2});}}
\def\fmfshift#1#2{\fmfcmd{vshift ((#1), \fmfpfx{#2});}}
\def\fmffixed#1#2{\fmfcmd{vconstraint ((#1), \fmfpfx{#2});}}
\def\fmffixedx#1#2{\fmfcmd{vconstraint (((#1),whatever), \fmfpfx{#2});}}
\def\fmffixedy#1#2{\fmfcmd{vconstraint ((whatever,(#1)), \fmfpfx{#2});}}
\def\fmfpoly#1#2{%
\fmfbuf@={#1}%
\fmfcmd{vpolygon ("\the\fmfbuf@", \fmfpfx{#2});}}
\def\fmfpolyn#1#2#3{%
\fmfbuf@={#1}%
\fmfcmd{vpolygonn ("\the\fmfbuf@", \fmfpfx{#2}, #3);}}
\def\fmfrpolyn#1#2#3{%
\fmfbuf@={#1}%
\fmfcmd{vrpolygonn ("\the\fmfbuf@", \fmfpfx{#2}, #3);}}
\def\fmflabel#1#2{%
\fmfbuf@={#1}%
\fmfcmd{vlabel ("\the\fmfbuf@", \fmfpfx{#2});}}
\def\fmfv#1#2{%
\fmfbuf@={#1}%
\fmfcmd{vvertex ("\the\fmfbuf@", \fmfpfx{#2});}}
\def\fmfvn#1#2#3{%
\fmfbuf@={#1}%
\fmfcmd{vvertexn ("\the\fmfbuf@", \fmfpfx{#2}, #3);}}
\def\fmfblob#1#2{\fmfcmd{vblob ((#1), \fmfpfx{#2});}}
\def\fmfdot#1{\fmfcmd{vdot (\fmfpfx{#1});}}
\def\fmfblobn#1#2{\fmfcmd{vblobn (\fmfpfx{#1}, #2);}}
\def\fmfdotn#1#2{\fmfcmd{vdotn (\fmfpfx{#1}, #2);}}
\def\fmfleft#1{\fmfcmd{vleft (\fmfpfx{#1});}}
\def\fmfright#1{\fmfcmd{vright (\fmfpfx{#1});}}
\def\fmfbottom#1{\fmfcmd{vbottom (\fmfpfx{#1});}}
\def\fmftop#1{\fmfcmd{vtop (\fmfpfx{#1});}}
\let\fmfincoming\fmfleft
\let\fmfoutgoing\fmfright
\def\fmfsurround#1{\fmfcmd{vsurround (\fmfpfx{#1});}}
\def\fmfcurved{\fmfcmd{curved_galleries;}}
\def\fmfstraight{\fmfcmd{straight_galleries;}}
\let\fmfcurvedgalleries\fmfcurved
\let\fmfstraightgalleries\fmfstraight
\def\fmfleftn#1#2{\fmfcmd{vleftn (\fmfpfx{#1}, #2);}}
\def\fmfrightn#1#2{\fmfcmd{vrightn (\fmfpfx{#1}, #2);}}
\def\fmfbottomn#1#2{\fmfcmd{vbottomn (\fmfpfx{#1}, #2);}}
\def\fmftopn#1#2{\fmfcmd{vtopn (\fmfpfx{#1}, #2);}}
\let\fmfincomingn\fmfleftn
\let\fmfoutgoingn\fmfrightn
\def\fmfsurroundn#1#2{\fmfcmd{vsurroundn (\fmfpfx{#1}, #2);}}
\def\fmffor#1#2#3#4{\fmfcmd{for #1 = #2 step #3 until #4:}}
\def\endfmffor{\fmfcmd{endfor}}
\def\fmfgroup{\fmfcmd{begingroup}}
\def\endfmfgroup{\fmfcmd{endgroup;}}
\def\fmfset#1#2{\fmfcmd{save #1; #1:=#2;}}
\def\fmffreeze{\fmfcmd{vfreeze;}}
\let\fmfposition\fmffreeze
\def\fmfi#1#2{%
\fmfbuf@={#1}%
\fmfcmd{idraw ("\the\fmfbuf@", #2);}}
\def\fmfiv#1#2{%
\fmfbuf@={#1}%
\fmfcmd{ivertex ("\the\fmfbuf@", #2);}}
\def\fmfipath#1{\fmfcmd{path #1;}}
\def\fmfipair#1{\fmfcmd{pair #1;}}
\def\fmfiset#1#2{\fmfcmd{#1:=#2;}}
\def\fmfiequ#1#2{\fmfcmd{#1=#2;}}
\def\fmfdraw{\fmfcmd{vdraw;}}
\def\fmfL(#1,#2,#3)#4{\put(#1,#2){\makebox(0,0)[#3]{#4}}}
\def\fmfdisplay{\fmfcmd{show_all_diagrams (100,100);}}
\def\fmfstopdisplay{\fmfcmd{showstopping:=1;}\fmfdisplay}
\def\fmftrace{\fmfcmd{vtracing:=true;}}
\def\fmfnotrace{\fmfcmd{vtracing:=false;}}
\mdqrestore
\endinput
%%
%% End of file `feynmp.sty'.
File Metadata
Details
Attached
Mime Type
text/x-tex
Expires
Sun, Feb 23, 2:28 PM (15 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4486608
Default Alt Text
feynmp.sty (12 KB)
Attached To
rWHIZARDSVN whizardsvn
Event Timeline
Log In to Comment