Коммутативные диаграммы

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», переворачивает его на другую сторону. В примере простые числа сохраняют все четыре метки за пределами квадрата, что является обычным чистым расположением.

Дополнительные параметры стрелок

Дополнительные параметры располагаются после направления и метки, чтобы изменить стиль стрелки. «крючок» сгибает хвост во включенную стрелку, «две головы» удваивают голову для сюръекции, «пунктир» отмечает карту, которую вы утверждаете, а не предполагаете, а «стрелка вправо» создает двойную стрелку, используемую для естественных преобразований. Типичная стрелка универсального свойства имеет вид \arrow[rd, пунктирная, "\exists u"']. Если диаграмма кажется тесной, помогают параметры интервалов в среде, например \begin{tikzcd}[column sep=large].

Практические замечания

tikz-cd загружает сам TikZ, поэтому отдельная строка \usepackage{tikz} не требуется, а диаграммы компилируются с помощью стандартного движка и без внешнего инструмента рисования. Самая распространенная структурная ошибка — неравномерная сетка: строки с разным количеством разделителей «&» смещают объекты не в те столбцы, а стрелки попадают в нечетные места. Начните с рабочего квадрата, подобного приведенному выше, увеличивайте его по одной строке или столбцу за раз и перекомпилируйте по ходу дела. Диаграммы гораздо легче отлаживать на глаз, чем из исходного кода, и живая игровая площадка дает вам обратную связь по мере ввода.

Вернуться к Рисовать в TeX