tikzcd 学习笔记
1. 背景
数学家们至少从1945年起就开始使用对象和箭头组成的交换示图(Commutative Diagram)来解释他们的工作。也有说法罗素早在1919年就画了类似交换示图:
也有讲罗素1919年所画的示图,并不是数学严格意义上的交换示图。不过,按照惯例,数学家罗素的确在使用对象和箭头来解释他的工作,所有这些示图被称为交换示图, 即使它们在数学上并不交换1。
可绘制交换示图的宏包非常之多,例如 amscd , DCPic , diagrams , kuvio ,
xymatrix, diagxy 等等,直到 TiKZ 出现,大家发现 TiKZ 是一个通用的绘图环境,用来画只包含对象和箭头的交换图不很顺手,因此 tikzcd 出现来使
TiKZ 画交换示图更方便整洁。
2. 入门
tikzcd 大体这么用:
\begin{tikzcd}[<options>]
<environment contents> % <- 环境内容
\end{tikzcd}
其中 环境内容 由 & 分隔的节点(对象),和 \arrow 标记的箭头组成。
\arrow 也可以写成 \ar 。箭头可以有标注,比如:
在下图中上(u)、下(d)、左(l)、右(r)都是相对于 O 的:
箭头,箭头标注,节点可以设置颜色,节点可以旋转。
箭头标注可以接近开始,接近结束,可以在下面。
箭头可以为左弯,右弯。
列的间距可调。
箭头的形状可以改变。
箭头的头尾甚至可以合起来。
箭头的有几种不同的写法。
3. 进阶
列、行的分隔可以调节。
箭头从哪里来,到哪里去,可以绝对指定。
箭头可以来自节点,还可以来自空标签。
甚至可以指定不显示的“幽灵”箭头。
箭头可以左右漂移。
箭头的漂移有默认值。
箭头可以适当缩短。
箭头可以跨越另一个箭头。
用这个特性可以画出有立体感的示图。
Footnotes:
如果连接两个节点的箭头无论选择哪条路径,复合后总是得到相同的箭头,则该示图是交换的