Page MenuHomeHEPForge

feynmp.sty
No OneTemporary

feynmp.sty

%%
%% 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

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)

Event Timeline