我已经回答过这个问题, 带有变换画布的交换图中的长箭头 使用这个 MWE:
\documentclass[a4paper,12pt]{article}
\usepackage[cmtip,all]{xy}
\labelmargin-{1pt}
\begin{document}
\xymatrix@R=1.5cm@C=2cm{
A \ar@<.5ex>[r]^{f} \ar@<.5ex>[d]^{g}& \ar@<.5ex>[l]^{h} B\ar@<.5ex>[dl]\\
C \ar@<.5ex>[u]^{r} \ar@<.5ex>[ur] &
}
\end{document}
为什么r
标签g
不能像垂直标签那样水平对齐?
答案1
我会在任一标签中使用`\mathstrut,因此对齐方式与所使用的字母无关,都是相同的。
\documentclass[a4paper,12pt]{article}
\usepackage[cmtip,all]{xy}
\begin{document}
\xymatrix@R=1.5cm@C=2cm{
A \ar@<.5ex>[r]^{f} \ar@<.5ex>[d]^{\mathstrut g}& \ar@<.5ex>[l]^{h} B\ar@<.5ex>[dl]\\
C \ar@<.5ex>[u]^{\mathstrut r} \ar@<.5ex>[ur] &
}
\end{document}
相同之处tikz-cd
:
\documentclass[a4paper,12pt]{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[sep=huge]
A \arrow[r,shift left=0.5ex,"f"] \arrow[d,shift left=0.5ex,"\mathstrut g"] &
B \arrow[l,shift left=0.5ex,"h"] \arrow[dl,shift left=0.5ex] \\
C \arrow[u,shift left=0.5ex,"\mathstrut r"] \arrow[ur,shift left=0.5ex]
\end{tikzcd}
\end{document}
答案2
根据非常好的用户 @barbara beeton 的建议,我添加了您的解决方案(通过您的评论):
1.使用\vphantom
:
\documentclass[a4paper,12pt]{article}
\usepackage[cmtip,all]{xy}
\labelmargin-{1pt}
\begin{document}
\xymatrix@R=1.5cm@C=2cm{
A \ar@<.5ex>[r]^{f} \ar@<.5ex>[d]^{g}& \ar@<.5ex>[l]^{h} B\ar@<.5ex>[dl]\\
C \ar@<.5ex>[u]^{r\vphantom{g}} \ar@<.5ex>[ur] &
}
\end{document}
2.或使用\smash[b]{g}
\documentclass[a4paper,12pt]{article}
\usepackage{mathtools}
\usepackage[cmtip,all]{xy}
\labelmargin-{1pt}
\begin{document}
\xymatrix@R=1.5cm@C=2cm{
A \ar@<.5ex>[r]^{f} \ar@<.5ex>[d]^{\smash[b]{g}}& \ar@<.5ex>[l]^{h} B\ar@<.5ex>[dl]\\
C \ar@<.5ex>[u]^{r} \ar@<.5ex>[ur] &
}
\end{document}