具有内部映射的交换图

具有内部映射的交换图

我想要生成一个其中指定了映射的交换图,如下所示:

米田

到目前为止,我的业余努力主要集中在 tikzcd 上,增加了额外的列和行,例如

\usepackage{tikz-cd}
\begin{document}
\[ 
\begin{tikzcd}
Zap \arrow{rrr}{foo} 
    \arrow{ddd}{bar} & & & Zoom \arrow{ddd}{bar} \\
    & Foo \arrow[mapsto]{r}{\alpha}
      \arrow[mapsto]{d}{\beta}
    & Bar \arrow[mapsto]{d}{\gamma} & \\
& Baz \arrow[mapsto]{r}{\delta}
        & Bong & \\
Zip \arrow[anchor=north]{rrr}{foo} & & & Zop
\end{tikzcd}
\]
\end{document}

这比上图丑多了。有什么更好的办法吗?

编辑:

下面 Stephen Segletes 的建议表明,这位先生对交换图的要求更高。我向他致敬,并向你们推荐以下优雅、美丽和力量的宏伟展示:

\documentclass[oneside,english]{amsart}
\usepackage{tikz-cd}
\usepackage{stackengine}[2013-09-11]
\usepackage{graphicx} 
\begin{document}
\[ 
\stackinset{l}{13ex}{b}{6ex}{%
\scalebox{.8}
{% 
\begin{tikzcd}[row sep=8ex, column sep = 8ex, ampersand replacement=\&]
1_C 
    \arrow[mapsto]{r}
    \arrow[mapsto]{d}
\& \vartheta_C1_C = x^{\vartheta} 
    \arrow[mapsto]{d}  \\
f 
    \arrow[mapsto]{r} 
\& \begin{array}{c}Ff\left(x^{\vartheta}\right)=\\\vartheta_D\left(f\right)\end{array}
\end{tikzcd}
} 
}{% 
\begin{tikzcd}[row sep = 20ex, column sep = 20ex, ampersand replacement=\&]
Hom\left(C,C\right) 
    \arrow{r}{\vartheta_C} 
    \arrow[swap]{d}{f}
\& FC 
    \arrow{d}{Ff}  \\
Hom\left(D,C\right) 
    \arrow[swap]{r}{\vartheta_D} 
\& FD
\end{tikzcd}
}
\]
\end{document}

渲染结果如下 原始美

答案1

请原谅我不懂 tikz,所以我的图表中没有箭头,而是线条。但想法就在这里。创建两个图表,并将一个图表插入另一个图表的中心。在本例中,我在 tikz 中将内部图表缩小(大小 2 对 4),但我还将其缩放了 80%,以在插图上显示较小的字体。

\documentclass{article}
\usepackage{tikz-cd}
\usepackage{stackengine}[2013-09-11]
\usepackage{graphicx}
\begin{document}
\centering
\stackinset{c}{}{c}{}{%
\scalebox{.8}{%
\begin{tikzpicture}
\node (A) at (0,0) {$Foo$};
\node (B) at (2,0) {$Bar$};
\node (C) at (0,-2) {$Baz$};
\node (D) at (2,-2) {$Bong$};
\draw (A) edge node[above] {$\alpha$} (B);
\draw (C) edge node[below] {$\delta$} (D);
\draw (A) edge node[left] {$\beta$} (C);
\draw (B) edge node[right] {$\gamma$} (D);
\end{tikzpicture}
}
}{%
\begin{tikzpicture}
\node (A) at (0,0) {$Zap$};
\node (B) at (4,0) {$Zoom$};
\node (C) at (0,-4) {$Zip$};
\node (D) at (4,-4) {$Zap$};
\draw (A) edge node[above] {$foo$} (B);
\draw (C) edge node[below] {$foo$} (D);
\draw (A) edge node[left] {$bar$} (C);
\draw (B) edge node[right] {$bar$} (D);
\end{tikzpicture}
}
\end{document}

在此处输入图片描述

相关内容