3

I want to reproduce the following bracket polynomials, but I'm quite clueless on how to do so. From what I've searched, people often use tikz to reproduce these knots. But how to draw knot using tikz? Also, how to draw the Reidemeister moves (the diagram inside the circles in the below pictures) with tikz? Helps would be really appreciated.

enter image description here enter image description here enter image description here enter image description here enter image description here

  • Maybe look here and here... – user121799 Jul 30 '18 at 6:32
  • But the reidemeister diagrams are really weird and I haven't seen any tutorial about that. – MS1902 Jul 30 '18 at 6:58
  • 2
    I guess I'd recommend to look at Loop space's homepage. – user121799 Jul 30 '18 at 7:10
  • @MS1902 Excuse me for my request? But what is the title of your book to understand this matter? – Sebastiano Jul 30 '18 at 10:24
  • @marmot Hi, but the 4th and 5th pictures how are they created? – Sebastiano Jul 30 '18 at 10:25
5

I do not know what "4th and 5th picture" precisely refers to, but I hope they are included in the following collection, which makes use of the knots library as well as some trick (rubout) mentioned in its manual. One could make the code shorter by introducing a macro for \vcenter{\hbox{...}} (I once got downvoted for doing that...) and loading the braket package and so on, but these are details.

\documentclass[fleqn]{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{% this is all from https://loopspace.mathforge.org/HowDidIDoThat/TeX/Knots/
  knots,
  hobby,
  decorations.pathreplacing,
  shapes.geometric,
  calc
}

\tikzset{mypoly/.style={ultra thick}}

\tikzset{% and this is from Andrew Stacey's homepage except that I removed "red";-)
  knot diagram/every strand/.append style={
    mypoly
  },
  show curve controls/.style={
    postaction=decorate,
    decoration={show path construction,
      curveto code={
        \draw [blue, dashed]
        (\tikzinputsegmentfirst) -- (\tikzinputsegmentsupporta)
        node [at end, draw, solid, inner sep=2pt]{};
        \draw [blue, dashed]
        (\tikzinputsegmentsupportb) -- (\tikzinputsegmentlast)
        node [at start, draw, solid, inner sep=2pt]{}
        node [at end, fill, blue, ellipse, inner sep=2pt]{}
        ;
      }
    }
  },
  show curve endpoints/.style={
    postaction=decorate,
    decoration={show path construction,
      curveto code={
        \node [fill, blue, ellipse, inner sep=2pt] at (\tikzinputsegmentlast) {}
        ;
      }
    }
  }
}
\begin{document}
\begin{align}
\left\langle\vcenter{\hbox{
\begin{tikzpicture}
\begin{knot}[
  consider self intersections=true,
  clip width=3,
  flip crossing=1,
  ignore endpoint intersections=false
  ]
\strand[overlay] (-1,0) to[out=90,in=135] (0,0) to[out=-45,in=-90]  (1,0)
to[out=90,in=45] (0,0) to[out=-135,in=-90] cycle;
\path[use as bounding box] (-1.05,-0.35) rectangle (1.05,0.35);
\end{knot}
\end{tikzpicture}}}\right\rangle&=
q\,\left\langle\vcenter{\hbox{\begin{tikzpicture}
\draw[mypoly] (-1,0) to[out=90,in=160] (-0.8,0.3) 
to[out=-20,in=90] (-0.1,0) to[out=-90,in=20] (-0.8,-0.3) to[out=-160,in=-90] cycle;
\draw[mypoly] (1,0) to[out=90,in=20]  (0.8,0.3) 
 to[out=-160,in=90] (0.1,0) to[out=-90,in=160] (0.8,-0.3) to[out=-20,in=-90] cycle;
\end{tikzpicture}}}\right\rangle
+q^{-1}\,
\left\langle\vcenter{\hbox{\begin{tikzpicture}
\draw[mypoly] (-1,0) to[out=90,in=160] (-0.8,0.3) 
to[out=-20,in=180] (0,0.15) to[out=0,in=-160] (0.8,0.3) to[out=20,in=90] (1,0)
to[out=-90,in=-20] (0.8,-0.3) to[out=160,in=0] (0,-0.15) to[out=180,in=20] 
(-0.8,-0.3) to[out=-160,in=-90] cycle;
\end{tikzpicture}}}\right\rangle\notag\\
&=q\,\delta^2+q^{-1}\,\delta=-q^3\,\delta\;.
\end{align}
\dots
\begin{align}
\left\langle\vcenter{\hbox{\begin{tikzpicture}
\begin{knot}[
  consider self intersections=true,
  clip width=3,
  flip crossing=1,
  ignore endpoint intersections=false
  ]
\strand[overlay,xscale=-1] (-1,0) to[out=90,in=160] (-0.8,0.3) 
to[out=-20,in=180] (0,0.15) to[out=0,in=-160] (0.8,0.3) to[out=20,in=90] (1,0)
to[out=-90,in=-20] (0.8,-0.3) to[out=160,in=-90] (-0.2,-0.2)
to[out=90,in=90] (0.2,-0.2) to[out=-90,in=20]
(-0.8,-0.3) to[out=-160,in=-90] cycle;
\path[use as bounding box] (-1.05,-0.35) rectangle (1.05,0.35);
\end{knot}
\end{tikzpicture}}}\right\rangle=-q^3\,\delta\;.
\end{align}

\tikzset{rubout/.style={ultra thick,double=black,draw=gray!30,double distance=1.6pt}}

\begin{align}
q^4\,J\!\left(\vcenter{\hbox{\begin{tikzpicture}
 \node[circle,fill=gray!30,minimum width=1cm] (circ){};
 \draw[mypoly] (circ.-45) -- (circ.135);
 \draw[rubout] (circ.45) -- (circ.-135);
\end{tikzpicture}}}\right)+
q^{-4}\,J\!\left(\vcenter{\hbox{\begin{tikzpicture}
 \node[circle,fill=gray!30,minimum width=1cm] (circ){};
 \draw[mypoly] (circ.45) -- (circ.-135);
 \draw[rubout] (circ.-45) -- (circ.135);
\end{tikzpicture}}}\right)&=\left(q^2+q^{-2}\right)\,J\!\left(
\vcenter{\hbox{\begin{tikzpicture}
 \node[circle,fill=gray!30,minimum width=1cm] (circ){};
 \draw[mypoly] (circ.45) to[out=-135,in=135] (circ.-45);
 \draw[mypoly] (circ.135) to[out=-45,in=45] (circ.-135);
\end{tikzpicture}}}\right)
\end{align}
\end{document}

enter image description here

  • Kind friend @marmot into your code there are many error of compilation with Papeeria. Undefined control sequence. [\end{align}] /main.tex :72 Missing number, treated as zero. [\end{align}] /main.tex :72 Illegal unit of measure (pt inserted). [\end{align}] /main.tex :72 Missing number, treated as zero. [\end{align}] /main.tex :72 Illegal unit of measure (pt inserted). [\end{align}] /main.tex :72 Missing number, treated as zero. [\end{align}] /main.tex :72 Illegal unit of measure (pt inserted). [\end{align}] and others. – Sebastiano Jul 30 '18 at 19:21
  • @Sebastiano Thanks! What is Papeeria? When I compile my MWE with pdflatex on my TeXLive 2018 distribution, there is no error. – user121799 Jul 30 '18 at 19:22
  • @Sebastiano I get "Requested project not exists" ;-) – user121799 Jul 30 '18 at 19:25
  • May I suggest to have a look to this answer of mine, too, for an illustration of how to use standard TeXniques to make the symbols scalable with the math style? – GuM Jul 30 '18 at 19:42

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.