我有以下交换图
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (m)[matrix of math nodes, row sep=3em, column sep=4em, minimum width=2em , text height=1.5ex, text depth=0.5ex ] {E|_{\pi^{-1}(U_{\alpha})} & U_{\alpha} \times \mathbb R^k & W_{\alpha} \times \mathbb R^k \\ U_{\alpha} & U_{\alpha} & W_{\alpha}\\};
\path[-stealth]
(m-1-1) edge node [left]{$\pi$} (m-2-1)
edge node [above] {$\varPhi_{\alpha}$} (m-1-2)
(m-2-1) edge node [above] {id} (m-2-2)
(m-2-2) edge node [above] {$\varphi_{\alpha}$} (m-2-3)
(m-1-2) edge node [above] {$\varphi_{\alpha} \times id $} (m-1-3)
(m-1-2) edge node [left] {$\pi_1$} (m-2-2)
(m-1-3) edge node [right] {$\pi_1$} (m-2-3);
\end{tikzpicture}
\end{document}
我需要在两列中间画一个圆形箭头。不用 tikz-cd 可以做到吗?
答案1
也许像这样?我将你的交换图放在一个中\hbox
,然后在其顶部插入巨大的圆形箭头。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usepackage{amssymb,stackengine}
\newsavebox{\tmp}
\begin{document}
\setbox0=\hbox{\begin{tikzpicture}
\matrix (m)[matrix of math nodes, row sep=3em, column sep=4em, minimum width=2em , text height=1.5ex, text depth=0.5ex ] {E|_{\pi^{-1}(U_{\alpha})} & U_{\alpha} \times \mathbb R^k & W_{\alpha} \times \mathbb R^k \\ U_{\alpha} & U_{\alpha} & W_{\alpha}\\};
%
\path[-stealth]
(m-1-1) edge node [left]{$\pi$} (m-2-1)
edge node [above] {$\varphi_{\alpha}$} (m-1-2)
(m-2-1) edge node [above] {id} (m-2-2)
(m-2-2) edge node [above] {$\varphi_{\alpha}$} (m-2-3)
(m-1-2) edge node [above] {$\varphi_{\alpha} \times id $} (m-1-3)
(m-1-2) edge node [left] {$\pi_1$} (m-2-2)
(m-1-3) edge node [right] {$\pi_1$} (m-2-3);
\end{tikzpicture}}
\savebox{\tmp}{\box0}
\stackinset{c}{-1.5cm}{c}{}{\Huge$\circlearrowleft$}{%
\stackinset{c}{+1.5cm}{c}{}{\Huge$\circlearrowright$}{%
\usebox{\tmp}}}
\end{document}
如果需要更大的圆形箭头,\scalebox{}{}
可以解决问题。