交换图

tikz-cd 箭头和标签没有坐标汤。

交换图

交换图是由标记箭头连接的对象网格,是范畴论、代数和拓扑中的标准图像。 Raw TikZ 可以绘制一个,但按坐标放置每个节点既慢又脆弱。 tikz-cd 包将 TikZ 包装在类似矩阵的语法中:您像表格一样布置对象,并按其方向描述每个箭头。

\usepackage{tikz-cd}
\begin{tikzcd}
A \arrow[r,"f"] \arrow[d,"g"'] & B \arrow[d,"h"] \\
C \arrow[r,"k"'] & D
\end{tikzcd}

读取语法

网格的工作方式类似于矩阵:“&”分隔列,“\”分隔行,因此该图的顶行是 A 和 B,底行是 C 和 D。每个“\arrow[…]”都属于它所写入的单元格并指向远离它的方向。第一个选项是方向,用字母“r”、“l”、“u”和“d”拼写:“\arrow[r]”向右移动一个单元格,“\arrow[d]”向下移动一个单元格。这些字母在对角线和较长的范围内组合并重复,因此“rd”是向右下一级,“rr”跨越两列。

引号中的标签位于箭头上。默认情况下,它位于一侧;结束引号后的素数,如““g””,将其翻转到另一侧。在示例中,素数将所有四个标签保留在正方形的外侧,这是通常的干净排列。

更多箭头选项

更多选项堆叠在方向和标签之后,以更改箭头的样式。 “hook”将尾部弯曲成包含箭头,“two head”将头部加倍以进行投影,“dashed”标记您断言而不是假设的地图,“Rightarrow”生成用于自然变换的双轴箭头。典型的通用属性箭头为 \arrow[rd, dashed, "\exists u"']。当图表感觉狭窄时,环境中的间距选项会有所帮助,例如“\begin{tikzcd}[column sep=large]”。

实用笔记

tikz-cd 加载 TikZ 本身,因此不需要单独的 \usepackage{tikz} 行,并且图表使用标准引擎编译,不需要外部绘图工具。最常见的结构错误是网格不均匀:具有不同数量“&”分隔符的行将对象移入错误的列,然后箭头落在奇怪的位置。从上面的工作方块开始,一次增长一行或一列,然后重新编译。通过肉眼调试图表比从源代码调试要容易得多,并且 live Playground 在您键入时为您提供反馈。

返回 在 TeX 中绘图