The below code produces essentially what I want but there must be a more elegant way and more automatized way. I want a circle with a cross inside it at a vertex:

\fmfv{d.sh=circle,d.f=empty,d.si=.1w,l=$\times$,label.dist=0}{v3}% v3 is the name of the vertex

But notice that if the circle becomes big, the cross will remain small. I want a circle with a cross inside it that has the same diameter as the circle no matter how big the circle is.

Is there a simple way to achieve this?

See also https://physics.stackexchange.com/questions/101761/qed-vertex-factor-rule or the figure below.

enter image description here

  • 2
    Could you please provide a complete MWE for the community to work with? Something like \otimes might be what you want, but without knowing the surrounding code I am unable to test. – Paul Gessler May 6 '14 at 16:14
  • I tried \otimes, looked nice. Can one enlarge \otimes? – Your Majesty May 6 '14 at 16:19
  • 1
    With the graphicx package, \scalebox{scalefactor}{code} will enlarge, if scale>1. If the code is math, $ delimiters will be needed around code. – Steven B. Segletes May 6 '14 at 16:32
  • That worked like a charm Steven! One solution to this problem is: \fmfv{l=\scalebox{2}{$\otimes$},label.dist=0}{v3} So a combination of what you said and what @Paul Gessler suggested. Thanks. – Your Majesty May 6 '14 at 16:42

Disclaimer: I have never used Metafont before, and I also have only ever touched feynmf once. Please comment if I did any of this completely wrong.

Since you never even provided a complete MWE, I had to just make this stuff up.

  1. I used the \fmfcmd macro to define a path, which I named otimes, to draw a shape.
    It is made by rotating four copies of a quadrant. (Thanks to egreg for the help.)

  2. I turned on \fmfwizard according to footnote on page 17 of the feynmf manual:

    If the variable feynmfwizard is true (e.g. after calling the \fmfwizard macro), it is also possible to specify [shape as] any METAFONT expression that evaluates to a path.

  3. I set the vertex shape to otimes and the fill to empty. (Surprisingly, using another value for fill does not seem to break anything.)



    % Please let me know if there’s a more efficient way to do this
    path quadrant, q[], otimes;
    quadrant = (0, 0) -- (0.5, 0) & quartercircle & (0, 0.5) -- (0, 0);
    for i=1 upto 4: q[i] = quadrant rotated (45 + 90*i); endfor
    otimes = q[1] & q[2] & q[3] & q[4] -- cycle;





Notice how this scales “correctly” according to your requirements:



| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.