In the picture below (from this paper, not an open access unfortunately) there are some diagrams for operators. What I'm interested in are those thick horizontal lines at the bottom of each diagram. I am wondering if it's possible to create them with TikZ. The closest thing I found in docs is a regular /tikzfeynman/plain but it still wouldn't be as thick as needed.

Can this be achieved?


I have an old code to generate such diagrams in feynman but it's so long and so ugly and cumbersome I'm thinking to switch to something new. That's why I'm trying to find an alternative. TikZ seems like a solid choice, except for those lines. I don't have any code in TikZ to show yet, because before I commit more time to it, I would like to know if it's even possible.

  • Yes. Sounds like you have some code already, that produces a too thin line, is that correct? If so, can you show us that code? Nov 2 '16 at 17:17
  • @TorbjørnT. Take a look at my edit, please.
    – alex
    Nov 2 '16 at 17:25
  • Yes, thick lines are possible. First, see page 4 of the manual of the tikz-feynman package for an example of thick lines; second, if something is based on tikz, thick lines are a triviality, for sure.
    – gernot
    Nov 2 '16 at 17:35

A word of warning: I don't know tikz-feynman very well (or Feynman diagrams at all, for that matter), so there may very well be much better ways of drawing these. The thick lines themselves are in this case not drawn with tikz-feynman at all, just plain TikZ. But as a quick and dirty example:

enter image description here


\vertex (a) ;
\vertex [below right=of a] (b) ;
\vertex [above right=of b] (c) ;

\diagram* { (a) -- [fermion] (b) -- [fermion] (c)};

% adjust the line width as desired
\draw [line width=1mm] (a|-b) -- node[below=5mm,font=\huge] {$R_1$} (b-|c); 
\vertex (a1) ;
\vertex [below right=of a] (b1) ;
\vertex [above right=of b] (c1) ;

\vertex [right=4mm of c1] (a2) ;
\vertex [below right=of a2] (b2) ;
\vertex [above right=of b2] (c2) ;

\diagram* { 
  (a1) -- [fermion] (b1) -- [fermion] (c1),
  (a2) -- [fermion] (b2) -- [fermion] (c2)
\draw [line width=1mm] (b1) -- node[below=5mm,font=\huge] {$R_2$} (b2);
  • Way cleaner than my current code anyway, thank you.
    – alex
    Nov 2 '16 at 17:44

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.