我想添加一个交换图,今天开始使用 tilkcd,但是当两个箭头相互交叉时,箭头上附加的标签的位置出现了问题。
这是 Mac Lane 的范畴论教科书中关于结合律的交换图。
这是我的尝试。
\usepackage{amsmath, amssymb, graphicx}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[column sep=huge, row sep=huge]
a \arrow[r, "f\circ g\circ h"] \arrow[d, "h"'] \arrow[dr, "g\circ h" very near start] & d \\
b \arrow[r, "g"] \arrow[ur, "f\circ g" very near start] & c \arrow[u, "f"']
\end{tikzcd}
\end{document}
如您所见,中间部分箭头上的标签看起来不太合适。我尝试了“非常接近开始”和“inner sep=0ex”,但无法让它看起来更好。问题很简单,但任何帮助都非常感谢。
[已编辑] 附上相关图片。
答案1
一种选择:
代码:
\documentclass{article}
\usepackage{amsmath, amssymb, graphicx}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[column sep=3cm, row sep=huge]
a \arrow[r, "f\circ (g\circ h) = (f\circ g)\circ h"] \arrow[d, "h"'] \arrow[dr, "g\circ h", pos=0.2,swap] & d \\
b \arrow[r, "g",swap] \arrow[ur, "f\circ g", pos=0.8,swap,crossing over] & c \arrow[u, "f"']
\end{tikzcd}
\end{document}
评论
您可以使用该选项更好地控制标签的位置
pos=<value>
。可以
crossing over
选择让一支箭头穿过另一支箭头。我
column sep
把增加到3cm
。