14

How can I draw the cyclic quiver like in the url below?

https://books.google.com/books?id=rZ_z6GpAROoC&pg=PA361

enter image description here

I tried and wrote the following but it is far from what I want. Would you please help me? Thank you.

\documentclass{svjour3}
\usepackage[dvipdfmx]{graphicx}
\usepackage{tikz-cd, mathdots}
\newcommand{\pnt}[1]{\stackrel{#1}{\bullet}}
\begin{document}
\begin{equation}
 \begin{tikzcd}
  & & & \pnt{1} \ar[rd, bend left, "\alpha_1"] & & \\
  & & \pnt{k} \ar[ur, bend left, "\alpha_k"] & & \pnt{2} \ar[rd, bend left, "\alpha_2"]  &   \\
  & \pnt{k-1} \ar[ur, bend left, "\alpha_{k-1}"] & & & & \pnt{3} \ar[ld, bend left, "\alpha_3"] \\
  & & \ddots \ar[ul, bend left, "\alpha_{k-2}"] & & \iddots \ar[ld, bend left, "\alpha_{i-1}"] & \\
  & & & \pnt{i} \ar[ul, bend left, "\alpha_i"] & &
 \end{tikzcd}
\end{equation}
\end{document}
16

You've got a start, which is good - but I would recommend just the TikZ package, mostly because I think it's easier to understand the code and adjust it as necessary. I went that route, so feel free to disregard this if you would like to stick to tikz-cd. Here's my code:

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\begin{tikzpicture}

% All nodes, node labels, and loops
\foreach \ang\lab\anch in {90/1/north, 45/2/{north east}, 0/3/east, 270/i/south, 180/{n-1}/west, 135/n/{north west}}{
  \draw[fill=black] ($(0,0)+(\ang:3)$) circle (.08);
  \node[anchor=\anch] at ($(0,0)+(\ang:2.8)$) {$\lab$};
  \draw[->,shorten <=7pt, shorten >=7pt] ($(0,0)+(\ang:3)$).. controls +(\ang+40:1.5) and +(\ang-40:1.5) .. ($(0,0)+(\ang:3)$);
}

% Top part of circle, arrows between different nodes and their labels
\foreach \ang\lab in {90/1,45/2,180/{n-1},135/n}{
  \draw[->,shorten <=7pt, shorten >=7pt] ($(0,0)+(\ang:3)$) arc (\ang:\ang-45:3);
  \node at ($(0,0)+(\ang-22.5:3.5)$) {$\alpha_{\lab}$};
}

% Bottom part of circle, arrows between different nodes and their labels
\draw[->,shorten <=7pt] ($(0,0)+(0:3)$) arc (360:325:3);
\draw[->,shorten >=7pt] ($(0,0)+(305:3)$) arc (305:270:3);
\draw[->,shorten <=7pt] ($(0,0)+(270:3)$) arc (270:235:3);
\draw[->,shorten >=7pt] ($(0,0)+(215:3)$) arc (215:180:3);
\node at ($(0,0)+(0-20:3.5)$) {$\alpha_3$};
\node at ($(0,0)+(315-25:3.5)$) {$\alpha_{i-1}$};
\node at ($(0,0)+(270-20:3.5)$) {$\alpha_i$};
\node at ($(0,0)+(225-25:3.5)$) {$\alpha_{n-2}$};

% Ellipsis
\foreach \ang in {310,315,320,220,225,230}{
  \draw[fill=black] ($(0,0)+(\ang:3)$) circle (.02);
}

\end{tikzpicture}

\end{document}

I've tried to label which part of the code does what in your diagram. You can see I made use of the \foreach loop command where possible, but with the bottom part of the circle, especially where the arrows are different lengths, it wasn't as straightforward, so I resorted to plain old trial and error. And here's the result:

enter image description here

If the radius is too large, you can change \begin{tikzpicture} to something like \begin{tikzpicture}[scale=.7] or similar. This will not change the label size. Also, I notice that your arrow tips are slightly different than the default arrow tips that I've used. To change them, call the TikZ library arrows.meta in the header (in the same spot as the calc library), and add the option >={Straight Barb[length=5pt, width=3pt]} to the whole tikzpicture (in the same way as mentioned with scale).

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.