使用 TikZ-cd (或其他方式)在交换图中定位箭头?

使用 TikZ-cd (或其他方式)在交换图中定位箭头?

我正在尝试制作交换图以配合我的数学笔记。
到目前为止,我已经尝试了 AMScd 和 TikZ-cd。但问题是:我需要对齐箭头,以便我可以控制它们的尾部和头部的位置。例如,我有以下图表:

在此处输入图片描述

我需要将 φ 箭头的尾部对齐到正下方并且其头部位于φ(的正上方)。同样,对于ψ箭头。

理想情况下,我会寻找一些简单的符号(例如矩阵、对齐或 eqnarray 环境中的 & 符号),因为我需要在整个文档中制作这样的图表。此外,还会有带对角箭头的更复杂的图表!

在此处输入图片描述

到目前为止,我已经尝试过 AMScd 和 TikZ-cd,但没有成功。我对 TikZ 包不是很熟悉——所以我还没有尝试使用它的矩阵、图形或其他任何东西。以下是生成第一个图表的 AMScd 和 TikZ-cd 代码(我并不担心对齐对角箭头):

使用 AMScd:

\[
\begin{CD}
x \in U \subseteq M @>f>> f\left(x\right) \in V \subseteq N \\
@V\phi VV @VV\psi V \\
\phi\left(x\right) \in \phi\left(U\right) \subseteq \mathbb{R}^{m} @>>\psi f \phi^{-1}> \psi\left(f\left(x\right)\right) \in \psi\left(V\right) \subseteq \mathbb{R}^{n}
\end{CD}
\]

使用 TikZ-cd:

\[
\begin{tikzcd}
x \in U \subseteq M \arrow{r}{f}
\arrow{d}{\phi} &
f\left(x\right) \in V \subseteq N
\arrow{d}{\psi} \\
\phi\left(x\right) \in \phi\left(U\right) \subseteq \mathbb{R}^{m}
\arrow{r}{\psi f \phi^{-1}} &
\psi\left(f\left(x\right)\right) \in \psi\left(V\right) \subseteq \mathbb{R}^{n}
\end{tikzcd}
\]

欢迎任何帮助。提前致谢!

答案1

就目前而言tikz-cd,没有办法指向单元格中的特定字符,因为所有命令都引用单元格。所以我能想到两种方法:

  • 使用选项shift left=<dimension>(或shift right)手动调整箭头位置。这对您有用,因为示例中的字符彼此重叠,但这是手动的,可能不适用于其他情况。所以我认为您的情况中最好的解决方案是第二个。

  • 绘制图表并使用 tikzmark 和 TikZ 绘制箭头。我还没有测试过,但 tikzmark 之前在数学环境中工作过,所以它应该可以工作。

我不知道其他软件包,所以我无法谈论它。如果我有更好的解决方案,我会编辑答案。

答案2

如果你使用蒂克兹马克,我认为您将需要使用\subnode[]{}{},因为我相信您在节点内部使用它,而 PGF 对节点的内容一无所知,只是将它们视为盒子。\subnode将内容装箱并跟踪其位置。您可以在与普通节点相同的图片环境中使用它。但是,在这里,您可能希望覆盖需要添加的箭头。例如:

\usepackage{tikz-cd,amssymb}
\usetikzlibrary{tikzmark,quotes}
\begin{document}
\begin{tikzcd}
  x \in \subnode{u1}{$U$} \subseteq M \arrow{r}{f} & f(x) \in V \subseteq \tikzmark{n}{N} \arrow{d}{\psi} \\
  \phi(x) \in \subnode{u2}{$\phi(U)$} \subseteq \mathbb{R}^{m} \arrow{r}{\psi f \phi^{-1}} & \psi(f(x)) \in \psi(V) \subseteq \mathbb{R}^{n}
\end{tikzcd}
\begin{tikzpicture}[overlay, remember picture]
  \draw [->] (u1) edge ["$\phi$", right] (u2.north -| u1);
\end{tikzpicture}
\end{document}

子节点

相关内容