带有 tikz-cd 的伴随函子

带有 tikz-cd 的伴随函子

我想构建如下图表

在此处输入图片描述

最好有tikz-cd,但我不知道从哪里开始。请帮忙 :)

编辑:这是我目前所得到的。

\begin{tikzcd}
\mathbf{C} \arrow[bend left=35]{r}[name=F]{F} & \mathbf{D}\arrow[bend left=35]{l}[name=U]{U}
\arrow[to path=(F) -- (U)]{d}{\vdash}
\end{tikzcd}

我尝试了几种变化,但我不明白如何获得\vdash(或\bot,无论哪种)。

答案1

Qrrbrbirlbel 的回答中有一个小问题:应该\dashv旋转。可以按如下方式进行:

\documentclass{standalone}
\usepackage{tikz-cd}
\usepackage{amsfonts}

\begin{document}
\begin{tikzcd}
\mathbb{C}
\arrow[r, "F"{name=F}, bend left=25] &
\mathbb{B}
\arrow[l, "U"{name=G}, bend left=25]
%--- Adjunction Symbol
\arrow[phantom, from=F, to=G, "\dashv" rotate=-90, no line]
\end{tikzcd}
\end{document}

给予

答案2

如果您想避免添加额外的行或列,而是想使用坐标/节点和它们之间的路径来放置节点,则可以使用以下样式:

  • from=<c1> to <c2>其中<c1><c2>是坐标/节点(不带括号)。

    这转换为to path(<c1>) -- (<c2>)\tikztonodes。需要
    \tikztonodes,以便将节点(如您的\vdash)放置在此路径上。

  • 这种no line风格实现了两个目的:

    首先,没有绘制线(draw=none),然后对于“标签”(tikz-cd即“沿路径的节点”的-ish),该auto选项被停用,当激活时,将节点放置在路径的一侧或两侧(left/ right)。

    样式description做了类似的事情,因为它强制锚点center(这会重置的操作auto)并应用fillbackground color

    因为没有画线,所以不需要添加填充。

在我的回答中也可以找到类似的恶作剧

代码

\documentclass[tikz]{standalone}
\usepackage{tikz-cd}
\tikzset{
  no line/.style={draw=none,
    commutative diagrams/every label/.append style={/tikz/auto=false}},
  from/.style args={#1 to #2}{to path={(#1)--(#2)\tikztonodes}}}
\begin{document}
\begin{tikzcd}
\mathbf{C} \arrow[bend left=35]{r}[name=F]{F}
   & \mathbf{D}\arrow[bend left=35]{l}[name=U]{U}
               \arrow[from=F to U, no line]{}{\vdash}
\end{tikzcd}
\end{document}

输出

在此处输入图片描述

答案3

由于您没有在该示例中绘制垂直箭头,因此您可以改为在矩阵中添加一个额外的列以将其放置在中间。然后,您必须通过在第一个参数中添加一个额外的/\vdash来修改箭头以向右/向左移动两列:rl

在此处输入图片描述

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}

\begin{tikzcd}
    \mathbf{C} \arrow[bend left=35]{rr}{F} % note {rr} instead of {r}
  & \vdash                                 % additional column for \vdash
  & \mathbf{D}\arrow[bend left=35]{ll}{U}  % note {ll} instead of {l}
\end{tikzcd}

\end{document}

相关内容