我希望 α 结束于 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
,这样双箭头上的标签就处于同一级别。