以下是代码:
\documentclass[11pt,twoside]{book}
\usepackage{tikz-cd}
\begin{document}
\[\begin{tikzcd}
x
\arrow[rr, "f"{name=F}, bend left=49]
\arrow[rr, "h"'{name=H}, bend right=49]
\arrow[rr,"g" {name=G} ]
& & y
\arrow[Rightarrow, from=F, to=G, "\alpha"]
\arrow[Rightarrow, from=G, to=H, "\beta"]
\end{tikzcd}\]
\end{document}
这是我为一些图表编写的代码。
我想把$g$
箭头放在里面,而不是上面,也不在下面。所以我使用了代码“ description
”。但是不起作用。
\documentclass[11pt,twoside]{book}
\usepackage{tikz-cd}
\begin{document}
\[\begin{tikzcd}
x
\arrow[rr, "f"{name=F}, bend left=62]
\arrow[rr, "h"'{name=H}, bend right=62]
\arrow[rr,"g" description{name=G} ]
& & y
\arrow[Rightarrow, from=F, to=G, "\alpha"]
\arrow[Rightarrow, from=G, to=H, "\beta"]
\end{tikzcd}\]
\end{document}
我希望两者兼有\alpha
,并且\beta
大小相同(至少大小相似)。
有人能帮我吗?如果我description
在后面加上“” {name=G}
,它不会显示任何差异。
为何描述不起作用?
答案1
一些东西:
- 您只需要两列。
- 对于
name
箭头上方(以及下方)的空间,使用""{name=GA,above}
- 我在和中添加了
phantom
小写f
字符,因此它们具有相同的高度和深度(使箭头保持均匀)。x
y
- 如果希望垂直箭头更接近弯曲箭头,可以使用
shorten <=
负值shorten >=
。请注意,short 后面的空格不是可选的。(代码在底部。)
以下是代码:
\documentclass[11pt,twoside]{book}
\usepackage{tikz-cd}
\begin{document}
\[\begin{tikzcd}[column sep=2cm]
\vphantom{f}x
\arrow[r, "f", ""{name=F, below}, bend left=49]
\arrow[r, "h"', ""{name=H, above}, bend right=49]
\arrow[r, "g" description, ""{name=GA,above}, ""{name=GB,below}]
& \vphantom{f}y
\arrow[Rightarrow, from=F, to=GA, "\alpha"]
\arrow[Rightarrow, from=GB, to=H, "\beta"]
\end{tikzcd}\]
\end{document}
要加长垂直箭头(或任何箭头),您可以使用shorten
负值:
\arrow[Rightarrow, from=F, to=GA, "\alpha", shorten <=-3pt]
\arrow[Rightarrow, from=GB, to=H, "\beta", shorten >=-3pt]
答案2
编辑:我完成了xy
更复杂的包,而不是tikz-cd
...非常感谢@Sandy G通过你的绘画就能明白答案。
\documentclass[11pt,twoside]{book}
\usepackage[all,cmtip,2cell]{xy}
\UseAllTwocells
\begin{document}
\[
\xymatrix@R+5pc@C+2pc{
x\ruppertwocell^f{\alpha}
\rlowertwocell_h{\beta}
\ar[r]|{\scriptscriptstyle g} & y\\
},
\quad
\xymatrix@R+5pc@C+2pc{
x\ruppertwocell^f{\alpha}
\rlowertwocell_h{\beta}
\ar[r]|{g} & y\\
}
\]
\end{document}