我想在 tikz(或 tikz-cd)环境中制作交换图,以演示回拉的通用属性。确切地说,我想在 LaTeX 中制作以下图表(顶部的箭头不需要弯曲):
我不知道该怎么画。我知道如何制作一般的交换图,并且有使用通用属性图制作推拉图的答案(如何进行具有通用属性的推送?)但我不知道如何制作上述回调图。如能得到任何帮助我将不胜感激。
答案1
你必须思考一个 3x3 矩阵,然后其余的事情就会水到渠成了。
在左上角,你把 B 和其他物品放在右下角的 2x2 空间中。因此骨架是
\begin{tikzcd}
B \\
& Q & A \\
& B & C
\end{tikzcd}
现在您要添加箭头。从左上角开始有三个箭头,其他的很容易添加。
\begin{tikzcd}
B \arrow[ddr] \arrow[drr] \arrow[dr,dashed] \\
& Q \arrow[r] \arrow[d] & A \arrow[d] \\
& B \arrow[r] & C
\end{tikzcd}
现在我们要添加标签
\begin{tikzcd}
B \arrow[ddr,"\mathrm{Id}"] \arrow[drr,"h"] \arrow[dr,dashed,"\beta"] \\
& Q \arrow[r,"q"] \arrow[d,"g^*"] & A \arrow[d,"f"] \\
& B \arrow[r,"g"] & C
\end{tikzcd}
好的,现在我们清楚地看到弯曲外箭头是必要的。此外,“Id”标签应该放在另一侧,“g*”标签应该稍微向上移动,这可以通过压碎“Q”的底部来实现。
\begin{tikzcd}
B \arrow[ddr,bend right,"\mathrm{Id}"'] \arrow[drr,bend left,"h"] \arrow[dr,dashed,"\beta"] \\
& \smash[b]{Q} \arrow[r,"q"] \arrow[d,"g^*"] & A \arrow[d,"f"] \\
& B \arrow[r,"g"] & C
\end{tikzcd}
答案2
答案3
我使用xy
带有 ie 函数的包cmtip
,其箭头与 TiKZ 相同。您可以在这里看到tikz-cd
代码差异。xy
代码与 类似tikz-cd
。
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage[all,cmtip]{xy}
\begin{document}
\xymatrix{
B \ar@/_1.5pc/[ddr]_{\mathrm{Id}} \ar@/^1.5pc/[drr]^h
\ar@{-->}[dr]^\beta \\
& Q \ar[d]_{g^{*}} \ar[r]^q
& A \ar[d]^k \\
& B \ar[r]_g & C}
\end{document}