使用 tikzcd 在交换图中定位带有交叉箭头的标签

使用 tikzcd 在交换图中定位带有交叉箭头的标签

我想添加一个交换图,今天开始使用 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

相关内容