I want to draw welded braids (with virtual crossings/weldings) in LaTeX.

I am using the TikZ braids package to draw normal braids. But I don't know how to draw welded braids.

Notice the difference between a classical braid and a welded braid in the following picture:

The left one is a classical braid crossing, while the right one is a virtual crossing.

In a classical braid only the classical braid crossings are allowed, while in the case of welded braids both classical and virtual crossings are allowed.

Thanks for your help.

  • 4
    Welcome to TeX.SX! You can have a look at our starter guide to familiarize yourself further with our format. In particular, please add a minimal working example (MWE).
    – CarLaTeX
    Aug 9, 2017 at 18:16
  • 7
    Welcome to TeX.se. Your question is more likely to get an answer if you post a minimal document showing what you have done with the braids package and an image of what you would like to achieve.
    – Alan Munn
    Aug 9, 2017 at 18:17
  • 1
    Questions seeking debugging help ("why isn't this code working?") must include the desired behavior, a specific problem or error and the shortest code necessary to reproduce it in the question itself. Questions without a clear problem statement are not useful to other readers. See minimal working example (MWE). Aug 9, 2017 at 23:34
  • 1
    It would also help if you said what "welded braids" are!
    – user30471
    Aug 9, 2017 at 23:42
  • 1
    Thank you for showing what "welded braids" are, but an example of what have you tried till now is still missing: dickimaw-books.com/latex/minexample
    – CarLaTeX
    Aug 11, 2017 at 6:01

1 Answer 1


This is possible using the version of braids available from github. That introduces a bit more customisation, in particular the ability to specify the gap in the under-strand. By setting gap=0 you can erase it altogether. This can be set during the path so you can switch between virtual and classical crossings. You can even have virtual and classical crossings on the same level.



\braid[gap=0] a_1-[braid/gap=.1]a_3 [braid/gap=0] a_2;

Note that the first optional argument doesn't need the braid prefix, but any later ones do.

The above produces:

Braid with virtual crossings

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .