我正在尝试制作交换图以配合我的数学笔记。
到目前为止,我已经尝试了 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}