我想画一个交换图xy-pic包裹类似于下图。从 C 到 D 和从 D 到 C 的两个箭头应该从下方通过矩形 ABEF,相隔一段距离,并且是水平的。问题是我无法使这两个箭头的部分水平,而是像图中这样倾斜。
该图是通过以下代码生成的:
\begin{equation*}
\xymatrix@!=3.5pc{
& A \ar[dd] \ar[r] & B \ar[dd] & \\
C \ar@<2ex>'[r]'[rr][rrr] &&& D \ar@{->}@<2ex>'[l]'[ll][lll] \\
& E \ar[r] & F &
}
\end{equation*}
当两个箭头精确地位于一起(即零距离)时,两者都是水平的,没有问题。
但是,当我在它们之间留出距离时,它们不会保持水平,并且每个箭头部分都会倾斜。在上面的代码中,我使用2ex
箭头之间的距离来夸大问题。虽然我原本打算使用较小的距离。我该如何解决这个问题?谢谢。
答案1
您还可以通过在箭头上放置一个小间隙来获得交叉箭头,通过使用特殊标签来断开箭头\hole
。要查看讨论和示例,请查看 AMS-LaTeX 入门“开始使用 AMS-LaTeX”amshelp.pdf, 在https://ctan.org/tex-archive/info/amslatex/primer?lang=en,第 8.6 节(更多交叉箭头)。对于您的具体问题:
\documentclass{amsart}
\usepackage[all,cmtip]{xy}
\begin{document}
\begin{equation*}
\xymatrix@!=3.5pc{
& A \ar[dd] \ar[r] & B \ar[dd] & \\
C
\ar@<2ex>|!{[ru];[rd]}{\hole}|!{[rru];[rrd]}{\hole}[rrr]
&&& D
\ar@<2ex>|!{[lu];[ld]}{\hole}|!{[llu];[lld]}{\hole}[lll]\\
& E \ar[r] & F &
}
\end{equation*}
\end{document}
答案2
只是为了好玩:一种tikz-cd
认识。
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[column sep=2em,row sep=2em]
& A \arrow[r] & B & \\
C \arrow[rrr,yshift=0.65ex]& & & \arrow[lll,yshift=-0.65ex] D\\
& E \arrow[r] \arrow[uu,<-,crossing over] & F \arrow[uu,<-,crossing over]& \\
\end{tikzcd}
\end{document}