使用 xy 包为一个老问题创建的交换图

使用 xy 包为一个老问题创建的交换图

从此开始问题有了第一张图片,

在此处输入图片描述

我想用包装重现绘画xy作为训练。

\documentclass[a4paper,12pt]{article}
\usepackage[all,cmtip]{xy}
\begin{document}
\[\xymatrix@R=2pc{
H_{\bullet}(\Sigma X) \ar@/_1.8pc/[dr]_{\Delta} \ar[r]^(.45){c_*} & H_{\bullet}(\Sigma X\vee\Sigma X) \ar[d]_{j?}  \ar[r]^(.6){(f\vee g)_*}  & H_{\bullet}(Y)  \\
& H_{\bullet}(\Sigma X)\oplus H_{\bullet}(\Sigma X) \ar@<2ex>[u]_{i_{1*}\oplus i_{2*}}  \ar@/_1.8pc/[ur]_{f_*\oplus g_*} &}\]
\end{document}

我的输出是这样的:

在此处输入图片描述

我的疑问是:

  1. 为什么标签没有自动居中,而我被迫使用参数\ar[r]^(.45){c_*}?(见橙色矩形)。
  2. 如何创建两个向下和向上的箭头,并在向量两侧放置正确的标签?为了获得我使用的距离 \ar@<2ex>(参见红色矩形)。

答案1

标签位于箭头的中间,但这个中间点是根据源单元格和目标单元格中​​心的距离确定的。当单元格中的对象宽度大致相同时,这是很好的,但在其他情况下绝对不行。

为了将标签放置在实际箭头的中间,请使用^-{<label>}或。这是和 的_-{<label>}简写。^(0.5)_(0.5)

沿着弯曲箭头的定位总是需要纠正。

我还对称地移动了两个中心箭头。

\documentclass[a4paper,12pt]{article}
\usepackage[all,cmtip]{xy}
\begin{document}
\[
\xymatrix@R=2pc{
  H_{\bullet}(\Sigma X)
    \ar@/_1.8pc/[dr]_-{\Delta}
    \ar[r]^-{c_*}
  &
  H_{\bullet}(\Sigma X\vee\Sigma X)
    \ar@<-1ex>[d]_{j?}
    \ar[r]^-{(f\vee g)_*}
  &
  H_{\bullet}(Y)
  \\
  &
  H_{\bullet}(\Sigma X)\oplus H_{\bullet}(\Sigma X)
    \ar@<-1ex>[u]_{i_{1*}\oplus i_{2*}}
    \ar@/_1.8pc/[ur]_-{f_*\oplus g_*}
}
\]
\end{document}

在此处输入图片描述

无论如何,使用 Xy-pic 多年后,我现在更喜欢tikz-cd

相关内容