我有以下图表,其中我使用 \tikzcdmatrixname 命令放置交换箭头,并使用“在图片末尾”技巧,但箭头没有显示出来。这些技巧来自来自另一个问题。我不确定发生了什么...我怎样才能让箭头位于图表中间?MWE 如下。
\documentclass[tikz,border=5mm]{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[execute at end picture=%
{
\arrow[to path={(\tikzcdmatrixname-1-3) node[midway,scale=1.5] {$\circlearrowleft$}(\tikzcdmatrixname-3-3)}];
}]
&& {\pi_1(A_{\alpha})} \\
{\pi_1((A_{\alpha} \cap A_{\beta})} &&&& {\pi_1(X)} \\
&& {\pi_1(A_{\beta})}
\arrow["{(I_{\alpha \beta})_*}", hook, from=2-1, to=1-3]
\arrow["{(I_{\beta \alpha})_*}"', hook, from=2-1, to=3-3]
\arrow[hook, from=1-3, to=2-5]
\arrow[hook, from=3-3, to=2-5]
\end{tikzcd}
\end{document}
答案1
我想,这就是你所追求的:
\documentclass[tikz,border=5mm]{standalone}
\usepackage{tikz-cd, mathabx}
\begin{document}
\begin{tikzcd}[execute at end picture={
\path(\tikzcdmatrixname-1-3) -- (\tikzcdmatrixname-3-3) node[midway,scale=1.5] {$\circlearrowleft$};
}]
& & {\pi_1(A_{\alpha})} & & \\
{\pi_1((A_{\alpha} \cap A_{\beta})} & & & & {\pi_1(X)} \\
& & {\pi_1(A_{\beta})} & &
\arrow["{(I_{\alpha \beta})_*}", hook, from=2-1, to=1-3]
\arrow["{(I_{\beta \alpha})_*}"', hook, from=2-1, to=3-3]
\arrow[hook, from=1-3, to=2-5]
\arrow[hook, from=3-3, to=2-5]
\end{tikzcd}
\end{document}
答案2
不清楚图表中间的箭头是什么样子。这是垂直的直箭头还是弧线,正如@Jasper Habicht 在他的回答中所猜测的那样。
对于这两种情况,代码都可以像 OP 的 MWE 那样简单得多:
\documentclass[tikz,border=5mm]{standalone}
\usepackage{tikz-cd}
\usetikzlibrary{arrows.meta,
bending}
\tikzset{C/.style={circle, minimum size=8mm,
node contents={},
append after command={\pgfextra{%
\draw[-{Straight Barb[flex']}](\tikzlastnode.150) arc (150:450:4mm);}
}}
}
\begin{document}
\begin{tikzcd}
& \pi_1(A_{\alpha})
\ar[dr, hook]
\ar[dd,shorten >=3mm, shorten <=3mm]
& \\
\pi_1(A_{\alpha} \cap A_{\beta})
\ar[ru, "{(I_{\beta\alpha})_*}", hook]
\ar[rd, "{(I_{\alpha\beta})_*}"', hook]
& & \pi_1(A_{\beta}) \\
& \pi_1(A_{\beta})
\ar[ur, hook] &
\end{tikzcd}
\begin{tikzcd}
& \pi_1(A_{\alpha})
\ar[dr, hook, ""name=U]
& \\
\pi_1(A_{\alpha} \cap A_{\beta})
\ar[ru, "{(I_{\beta\alpha})_*}", hook]
\ar[rd, "{(I_{\alpha\beta})_*}"', hook,""name=D]
\ar[to path={(U) node[pos=.6,xshift=1.5em,C] (D)}] {}
& & \pi_1(A_{\beta}) \\
& \pi_1(A_{\beta})
\ar[ur, hook] &
\end{tikzcd}
\end{document}