% *** quiver *** % A package for drawing commutative diagrams exported from https://q.uiver.app. % % This package is currently a wrapper around the `tikz-cd` package, importing necessary TikZ % libraries, and defining new TikZ styles for curves of a fixed height and for shortening paths % proportionally. % % Version: 1.7.0 % Authors: % - varkor (https://github.com/varkor) % - AndréC (https://tex.stackexchange.com/users/138900/andr%C3%A9c) % - Andrew Stacey (https://tex.stackexchange.com/users/86/andrew-stacey) \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{quiver}[2026/07/27 quiver] % `tikz-cd` is necessary to draw commutative diagrams. \RequirePackage{tikz-cd} % `amssymb` is necessary for `\lrcorner` and `\ulcorner`. \RequirePackage{amssymb} % `calc` is necessary to draw curved arrows. \usetikzlibrary{calc} % `pathmorphing` is necessary to draw squiggly arrows. \usetikzlibrary{decorations.pathmorphing} % `spath3` is necessary to draw shortened edges. \usetikzlibrary{spath3} % `nfold' renders better double arrows, and is necessary to draw triple arrows and higher. \usetikzlibrary{nfold} % A TikZ style for curved arrows of a fixed height, due to AndréC. \tikzset{curve/.style={settings={#1},to path={(\tikztostart) .. controls ($(\tikztostart)!\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$) and ($(\tikztostart)!1-\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$) .. (\tikztotarget)\tikztonodes}}, settings/.code={\tikzset{quiver/.cd,#1} \def\pv##1{\pgfkeysvalueof{/tikz/quiver/##1}}}, quiver/.cd,pos/.initial=0.35,height/.initial=0} % A TikZ style for shortening paths without the poor behaviour of `shorten <' and `shorten >'. \tikzset{between/.style n args={2}{/tikz/execute at end to={ \tikzset{spath/split at keep middle={current}{#1}{#2}} }}} \tikzset{ % TikZ arrowhead/tail styles. tail reversed/.code={\pgfsetarrowsstart{tikzcd to}}, 2tail/.code={\pgfsetarrowsstart{Implies[reversed]}}, 2tail reversed/.code={\pgfsetarrowsstart{Implies}}, coil/.code={\pgfsetarrowsstart{Glyph[glyph math command=looparrowleft]}}, coil'/.code={\pgfsetarrowsstart{Glyph[glyph math command=looparrowleft, swap]}}, multimap/.code={\pgfsetarrowsend{Glyph[glyph math command=multimap]}}, % TikZ arrow styles. no body/.style={/tikz/dash pattern=on 0 off 1mm}, } \endinput