1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
\documentclass[12pt,a4paper]{article}
\usepackage[margin=2.5cm]{geometry}
\usepackage{microtype}
% For the date.
\usepackage[UKenglish]{isodate}
% For URLs.
\usepackage{hyperref}[pdfusetitle]
\hypersetup{colorlinks,urlcolor=blue}
\urlstyle{rm}
% For tables.
\usepackage{tabularray}
% For side-by-side examples.
\usepackage[skins,listings]{tcolorbox}
\tcbuselibrary{minted}
\newtcblisting{tikzexample}{
sidebyside,
center lower,
bicolor,
colbacklower=white,
sharp corners,
frame engine=empty
}
% The package in question.
\usepackage{quiver}
\newcommand{\quiver}{\textsf{quiver}}
\newcommand{\tcd}{\textsf{tikz-cd}}
\newcommand{\TikZ}{{\rm Ti{\it k}Z}}
\title{\textsf{quiver} \\ \small A modern commutative diagram editor}
\author{\normalsize \textsf{@varkor}}
\date{\cleanlookdateon\today}
\begin{document}
\maketitle
\begin{abstract}
The \textsf{quiver} package provides compatibility with the \textsf{quiver} commutative diagram editor.
\end{abstract}
\section{Usage}
The \quiver{} package is intended to be used in conjunction with the \url{https://q.uiver.app/} commutative diagram editor. It functions as a wrapper around the \tcd{} package that provides some extra \TikZ{} styles, which are used in diagrams exported by the editor. However, these styles may be used in isolation of the editor.
To use the \quiver{} package, add the following to the preamble of your document.
\begin{verbatim}
\usepackage{quiver}
\end{verbatim}
\section{\TikZ{} styles}
The \quiver{} package provides several styles that are useful in the rendering of commutative diagrams.
\subsection{The \texttt{curve} style}
The typical method of curving arrows in \tcd{} commutative diagrams is to use the \TikZ{} \texttt{bend left} and \texttt{bend right} styles, together with the \texttt{in} and \texttt{out} parameters. These styles facilitate the bending of paths with respect to an angle. However, it is often more convenient to bend a path with respect to a distance (namely, the height of the apex of the curve). This may be achieved with the \texttt{curve} style\footnotemark{}.
\footnotetext{The \texttt{curve} style is due to Andr\'eC (\url{https://tex.stackexchange.com/users/138900/andr\%C3\%A9c}).}
\begin{tikzexample}
\begin{tikzcd}
a \ar["f", rr, curve={height=-24pt}] && b
\end{tikzcd}
\end{tikzexample}
The \texttt{curve} style takes two (optional) named parameters.
\begin{itemize}
\item \texttt{height} specifies the height of the apex of the curve. It is a signed distance (default \texttt{0}).
\item \texttt{pos} specifies the position of the control point for the curve. It is a value between \texttt{0.0} and \texttt{1.0} (default \texttt{0.35}).
\end{itemize}
\begin{tikzexample}
\begin{tikzcd}
a \ar["f", rr, curve={height=-24pt, pos=0.2}] && b
\end{tikzcd}
\end{tikzexample}
\begin{tikzexample}
\begin{tikzcd}
a \ar["f", rr, curve={height=-24pt, pos=0.5}] && b
\end{tikzcd}
\end{tikzexample}
\begin{tikzexample}
\begin{tikzcd}
a \ar["f", rr, curve={height=-24pt, pos=0.8}] && b
\end{tikzcd}
\end{tikzexample}
\subsection{Arrowhead and tail styles}
The \tcd{} package provides several arrowhead and tail styles. The \quiver{} package provides the following additional styles.
\begin{center}
\begin{tblr}{cc}
{\bf Style} & {\bf Appearance} \\
\texttt{tail reversed} &
% https://q.uiver.app/?q=WzAsMixbMCwwXSxbMSwwXSxbMCwxLCIiLDAseyJzdHlsZSI6eyJ0YWlsIjp7Im5hbWUiOiJhcnJvd2hlYWQifX19XV0=
\begin{tikzcd}[ampersand replacement=\&]
{} \& {}
\arrow[tail reversed, from=1-1, to=1-2]
\end{tikzcd}
\\
\texttt{2tail} &
% https://q.uiver.app/?q=WzAsMixbMCwwXSxbMSwwXSxbMCwxLCIiLDAseyJsZXZlbCI6Miwic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoibW9ubyJ9fX1dXQ==
\begin{tikzcd}[ampersand replacement=\&]
{} \& {}
\arrow[Rightarrow, 2tail, from=1-1, to=1-2]
\end{tikzcd}
\\
\texttt{2tail reversed} &
% https://q.uiver.app/?q=WzAsMixbMCwwXSxbMSwwXSxbMCwxLCIiLDAseyJsZXZlbCI6Miwic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiYXJyb3doZWFkIn19fV1d
\begin{tikzcd}[ampersand replacement=\&]
{} \& {}
\arrow[Rightarrow, 2tail reversed, from=1-1, to=1-2]
\end{tikzcd}
\\
\texttt{no body} &
% https://q.uiver.app/?q=WzAsMixbMCwwXSxbMSwwXSxbMCwxLCIiLDAseyJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJub25lIn19fV1d
\begin{tikzcd}[ampersand replacement=\&]
{} \& {}
\arrow[no body, from=1-1, to=1-2]
\end{tikzcd}
\end{tblr}
\end{center}
\section{Version history}
The \quiver{} version number is tied to the editor version number. This is reflected in the history below: not every editor update corresponds to a package update.
\begin{center}
\begin{tblr}{colspec={ccX[c]},row{even}=black!5}
{\bf Version} & {\bf Date} & {\bf Release notes} \\
1.0.0 & 2020-11-10 & First public version. Imports necessary packages and defines the \texttt{curve} style. \\
1.0.1 & 2020-11-27 & Added the \texttt{tail reversed}, \texttt{2tail}, and \texttt{2tail reversed} styles. \\
1.1.0 & 2020-12-18 & Added a dependency. \\
1.2.0 & 2021-01-11 & Added the \texttt{no body} style.
\end{tblr}
\end{center}
\end{document}
|