tikz-cd 中的函子图

tikz-cd 中的函子图

我想知道如何在 中绘制典型的函子图(下图)tikz-cd。我知道如何绘制交换图,但我不知道如何\mapsto在垂直箭头之间绘制短箭头以及映射箭头。在此先感谢您的帮助。

在此处输入图片描述

编辑(产生错误的代码,即ngerman包):

\documentclass{amsart}

%Standardpakete
\usepackage{amsmath}
\usepackage[ngerman]{babel}
\usepackage{tikz-cd}


\begin{document}
$$
\begin{tikzcd}
\mathsf{C}^{\mathsf{op}} \arrow[rr, "F"] &  & \mathsf{D} \\
c \arrow[dd, "f"'] & \mapsto & Fc  \\
& \mapsto & \\
c' & \mapsto & Fc' \arrow[uu, "Ff"']
\end{tikzcd}
$$
\end{document}

答案1

像这样吗?

\documentclass[a4paper,12pt]{article}
\usepackage{newtxtext,newtxmath}
\usepackage{mathtools}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
\mathsf{C}^{\mathsf{op}} \arrow[rr, "F"] &  & \mathsf{D} \\
c \arrow[dd, "f"'] & \mapsto & Fc  \\
& \mapsto & \\
c' & \mapsto & Fc' \arrow[uu, "Ff"']
\end{tikzcd}
\end{document}

在此处输入图片描述

根据用户要求进行附录。我认为问题出在ngermanBabel 上。你可以修复它,

\usetikzlibrary{babel}

\documentclass{amsart}

%Standardpakete
\usepackage{amsmath}
\usepackage[ngerman]{babel}
\usepackage{tikz-cd}
\usetikzlibrary{babel}

\begin{document}
\[
\begin{tikzcd}
\mathsf{C}^{\mathsf{op}} \arrow[rr, "F"] &  & \mathsf{D} \\
c \arrow[dd, "f"'] & \mapsto & Fc  \\
& \mapsto & \\
c' & \mapsto & Fc' \arrow[uu, "Ff"']
\end{tikzcd}
\]
\end{document}

答案2

作为替代方案塞巴斯蒂亚诺很棒的答案,可以命名箭头fFf并在它们之间添加一个箭头,然后shorten箭头:

\begin{tikzcd}[column sep=large, row sep=tiny]
\mathsf{C}^{\mathsf{op}} \arrow[r, "F"] &  \mathsf{D} \\
c \arrow[d, "f"'{name=f}]\arrow[r,mapsto] & Fc  \\[5ex]
c'\arrow[r,mapsto] & Fc' \arrow[u, "Ff"'{name=Ff}]
\arrow[mapsto,from=f, to=Ff,shorten=0.7em]
\end{tikzcd}

在此处输入图片描述

另一个选择是在图表内部添加一个空的箭头名称,然后像以前一样添加箭头

\begin{tikzcd}[column sep=large, row sep=tiny]
\mathsf{C}^{\mathsf{op}} \arrow[r, "F"] &  \mathsf{D} \\
c \arrow[d, "f"', ""{name=f}]\arrow[r,mapsto] & Fc  \\[5ex]
c'\arrow[r,mapsto] & Fc' \arrow[u, "Ff"', ""{name=Ff}]
\arrow[mapsto,from=f, to=Ff]
\end{tikzcd}

在此处输入图片描述

相关内容