有没有一种很好的方法来对交换图(如方程式)进行编号?使用 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}