如何在 tikz 中在一个交换图内绘制另一个交换图?

如何在 tikz 中在一个交换图内绘制另一个交换图?

我要绘制这个交换图:

交换图

我不知道如何让内图正确显示而不弄乱整个图。我可以得到外图,但只要我尝试添加额外的箭头等,就会出现大量错误,并且该图看起来与上面的图片(在 geogebra 中完成)完全不同。如果有人能帮忙,我将不胜感激!另外,我有一个不太重要的问题,但可以缩放图表吗?该命令\begin{tikzcd}[scale=2]似乎没有做任何事情,环境\scalebox{2}{...}也会产生错误,并且不会缩放任何东西。谢谢。

答案1

您只需使用一个图表即可。(请注意,添加宽度为 0 的框的解决方案可能会弄乱边界框。)

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[every arrow/.append style={thick,-stealth},
execute at end picture={
\node[right=-4pt,fill=white,baseline={(aBf.base)}] at (aBf.east){$=\{a'\in\mathcal{B}\mid f(a')=b\}$};}
]
 A \arrow[rrrr,"f"]  \arrow[dddrr,"\pi_{\mathcal{B}_f}"'] & & & & B \\[-1em]
 & a \arrow[rr] \arrow[dr] & & b & \\[2ex]
 && |[alias=aBf]|[a]_{\mathcal{B}_f} \arrow[ur] && \\
 && \mathcal{B}_f \arrow[uuurr,"\bar f"' {pos=0.85}] && \\
\end{tikzcd}
\end{document}

在此处输入图片描述

或其较小版本。

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[every arrow/.append style={thick,-stealth},column sep=small,
row sep=small,
execute at end picture={
\node[right=-4pt,fill=white,baseline={(aBf.base)}] at (aBf.east){$=\{a'\in\mathcal{B}\mid f(a')=b\}$};}
]
 A \arrow[rrrr,"f"]  \arrow[dddrr,"\pi_{\mathcal{B}_f}"'] & & & & B \\[-1em]
 & a \arrow[rr] \arrow[dr] & & b & \\[2ex]
 && |[alias=aBf]|[a]_{\mathcal{B}_f} \arrow[ur] && \\
 && \mathcal{B}_f \arrow[uuurr,"\bar f"' {pos=0.85}] && \\
\end{tikzcd}
\end{document}

在此处输入图片描述

相关内容