编号交换图

编号交换图

有没有一种很好的方法来对交换图(如方程式)进行编号?使用 tikz-cd 时,我在其周围放置了一个图形环境,然后任何地方都没有数字。我也可以使用

\begin{align}
\xymatrix{Some diagram}
\end{align}

但数字的位置与图表的中间位置不太对应。

答案1

我不确定你为什么认为你需要一个figure环境才能使用环境tikzcd,事实并非如此。事实上,手册介绍中写的第一件事tikz-cd就是

里面的所有内容{tikzcd}都是在数学模式下排版的,但您可能希望在 {equation}环境或中使用它\[ ... \],以便将图表放在新行上并居中。

因此,使用手册中的一个随机示例:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{equation}
\begin{tikzcd}
A \arrow{d} \arrow{r}[near start]{\phi}[near end]{\psi}
& B \arrow[red]{d}{\xi} \\
C \arrow[red]{r}[blue]{\eta}
& D
\end{tikzcd}
\end{equation}
\end{document}

在此处输入图片描述

答案2

这是对 OP 的请求的回应,即能够为交换图指定一组不同的数字和标签样式。

它使用了我的numberedblock包,该包原本用于编号代码块,但在这里用于交换图。它有一个标签/引用系统,标签位置和外观可以自定义。

不幸的是,这个解决方案有点不方便,因为我不能tikzcd直接将环境作为 的参数\numblock。所以我必须先将其放在一个临时框中,然后将 应用\numblock到该框。

\documentclass{article}
\usepackage{tikz-cd}
\usepackage{numberedblock,lipsum}
\setlength\blockindent{0in}
\begin{document}
\lipsum[1]

\setbox0=\hbox{\begin{tikzcd}
R \arrow{r}{\phi} \arrow[swap]{d}{\chi} & S \arrow{d}{\Psi} \\
R/I \arrow{ur}{\psi} \arrow{r}{\Phi} & T
\end{tikzcd}}
\numblock{\nblabel{cdA}\makebox[\textwidth]{\box0}}

\lipsum[4]

\setbox0=\hbox{\begin{tikzcd}
R \arrow{r}{\phi} \arrow[swap]{d}{\chi} & S \arrow{d}{\Psi} \\
blah blah R/I \arrow{ur}{\psi} \arrow{r}{\Phi} & T (blah-blah wider)
\end{tikzcd}}
\numblock{\nblabel{cdB}\makebox[\textwidth]{\box0}}

In commutative diagrams \ref{cdA} and \ref{cdB}, we see\ldots
\end{document}

在此处输入图片描述

相关内容