I'm trying to define a new line style in feynmf which should represent gluons in colour flow notation. Each line should consist of two parallel fermion lines, each of which has an arrow. The arrows should point in opposite directions. It should look like the middle line in this diagram: http://inspirehep.net/record/782277/files/W-exchange-cond-double2.png
feynmf has a double line style, however it has one big arrow instead of two arrows showing in opposite direction. Creating custom styles is in principle supported, a description of how to do so is given in chapter 2.8.1 (page 36) of http://mirrors.ctan.org/macros/latex/contrib/feynmf/fmfman.pdf
I looked into the code of feynmf to find how the standard styles are defined. Here are some code snippets which might prove useful:
style_def plain expr p = % single line without arrow
cdraw p;
enddef;
style_def plain_arrow expr p = % single line with arrow
cdraw p;
cfill (arrow p);
enddef;
style_def dbl_plain expr p = % double line without arrow
draw_double p;
enddef;
style_def dbl_plain_arrow expr p = % double line with one big arrow
draw_double_arrow p;
enddef;
These definitions are quite simple and I'm able to understand them. However, they use some commands which are defined like this:
%
% |draw_double p| draws a double line.
% \begin{macrocode}
style_def double expr p =
save oldpen;
pen oldpen;
oldpen := currentpen;
% \end{macrocode}
% draw a thick linn
% \begin{macrocode}
pickup oldpen scaled 3;
ccutdraw p;
% \end{macrocode}
% and remove the stuffing
% \begin{macrocode}
pickup oldpen;
cullit; undraw p; cullit;
enddef;
style_def double_arrow expr p =
draw_double p;
shrink (1.5);
cfill (arrow p);
endshrink;
enddef;
% \end{macrocode}
%
and this piece of code I unfortunately cannot understand any more. (Both code snippets are copied from http://mirrors.ctan.org/macros/latex/contrib/feynmf/feynmf.dtx, comments in the first snippet by me).
I would really appreciate some help in defining the "double line with opposite arrow" style!
Thanks in advance, Photon
