Loops
varkor opened this issue · comments
One often want arrows from an object to itself (achieved with the tikzcd loop
parameter), but it's only possible to draw arrows between different grid cells at the moment.
Can you post a simple LaTeX code snippet for loops? Do you have an idea how to let users create loops in tikzcd-editor? Currently, creating an arrow is only possible by dragging from one cell to another.
\begin{tikzcd}
A \arrow[loop]
\end{tikzcd}
Produces the following diagram:
As for the interface, I think that not adding arrows when you haven't dragged between two cells is useful (for cancelling arrow placement), so perhaps a button that appears (similar to the "move object" handle) when arrow placement is selected, that adds a loop, would be simplest. The loop could then be manipulated with the existing arrow toolbar. It would be nice to also specify which side of the object the loop is drawn on, too.
Thank you for your input! Just out of curiosity's sake, can you rotate the loop in certain directions? For example, so that the "bump" points to the left?
\arrow[loop left]
(or above
/below
/right
) allows you to specify the direction, although specifying the direction a little more explicitly in the code output with out=angle
and in=angle
may result in slightly prettier loops. (I think these arguments come directly from TikZ, rather than tikz-cd).
I reckon the UI for loops and pullbacks (see issue #11) could be similar - a button and a way to change the position (e.g. a handle that can be dragged to rotate it to each of 4 directions [or more]).
This is a great suggestion. Identity arrows are very commonly needed to describe basic category theory principles and identity morphisms for axioms.
There is a $200 bounty open for the developer who adds this feature.
Well I'll see if I can take a look at implementing this in the next week or two...