正确放置箭头

正确放置箭头

我想要绘制这样的图表: 在此处输入图片描述

我希望 α 结束于 F 而 β 从 F 开始(水平),有没有简单的方法可以修复我的代码:

\begin{tikzcd}[column sep=3em]
            &\EuScript{C} \arrow{dd}[description]{F}   \ar[dl, "p"']\arrow[dr, "p"] & \\
            \EuScript{D}\ar[dr, "L"']\arrow[Rightarrow, from=U, "\beta"'] &&\EuScript{D}\ar[dl, "R"]\arrow[Rightarrow, to=U, "\alpha"']  \\
            &\EuScript{E}. &
\end{tikzcd}```

答案1

这是一种可能性:将 赋予name标签 F,然后添加从单元格到 F 的箭头,再从 F 到单元格的箭头。您可以使用开始/结束锚点调整开始或结束角度

\documentclass{article}
\usepackage{mathtools}
\usepackage{tikz-cd}
\begin{document}
\[
\begin{tikzcd}[column sep=3em]
& C\ar{dd}[description,name=f]{F}\ar{ld}[swap]{p}\ar{dr}{p}\\
D\ar{rd}[swap]{L} && D\ar{ld}{R}\\
& E\mathrlap{.}
\ar[Rightarrow,from=2-3,to=f, end anchor={[yshift=-0.1ex]}]{}[swap]{\alpha}
\ar[Rightarrow,from=f,to=2-1, start anchor={[yshift=-0.1ex]}]{}[swap]{\beta}
\end{tikzcd}
\]
\end{document}

在此处输入图片描述

请注意,如果你只是E.在底部写字,那么这个单元格看起来就不会居中。最好使用\mathrlap{.}来自mathtools

答案2

我相信它比已经提出的更简单。

\documentclass{article}
\usepackage{amsmath,euscript,tikz-cd}

\begin{document}

\begin{tikzcd}[column sep=3em]
&
\EuScript{C} \arrow[dd,"F" description] \arrow[dl, "p"'] \arrow[dr, "p"] &
\\
\EuScript{D} \arrow[dr, "L"'] &
\arrow[l,Rightarrow, "\beta"'] \arrow[d] &
\EuScript{D} \arrow[dl, "R"] \arrow[l,Rightarrow, "\vphantom{\beta}\alpha"']  \\
&
\EuScript{E} &
\end{tikzcd}

\begin{tikzcd}[column sep=3em]
&
\EuScript{C} \arrow[dd,"F" description,pos=0.3] \arrow[dl, "p"'] \arrow[dr, "p"] &
\\
\EuScript{D} \arrow[dr, "L"'] &
\arrow[l,Rightarrow, "\beta"'] \arrow[d] &
\EuScript{D} \arrow[dl, "R"] \arrow[l,Rightarrow, "\vphantom{\beta}\alpha"']  \\
&
\EuScript{E} &
\end{tikzcd}

\end{document}

在此处输入图片描述

在第二种情况下,我移动了标签,这样它就不会与节点混淆。我还添加了一个\vphantom,这样双箭头上的标签就处于同一级别。

相关内容