带有弯曲箭头、颜色和更改箭头样式的交换图

带有弯曲箭头、颜色和更改箭头样式的交换图

我正在使用 xy 矩阵,我想将一个箭头弯曲到图表中的其他箭头上,同时将其中一些弯曲箭头设置为相等并更改其颜色。这是我目前所拥有的:

\usepackage[all]{xy}

    \xymatrix{
    &&H(Z) \ar@/^2.0pc/[rr]^{F(f^{op} \circ g^{op})} \ar[r]^{H^{*}(g^{op})} & H(Y) \ar@{=}[dl] \ar[r]^{H^{*}(f^{op})} & H(X) \ar@{=}[dl] \ar@/^2.0pc/[ddll]\\
    & H(Z) \ar@{=}[ur] & H(Y) \ar[u]_{G(g^{op})} & H(X) \ar@{=}[dl] \ar[u]_{G(f^{op})}\\
    H(Z) \ar[r]^{H^{*}(g^{op})} \ar@{=}[ur]  &H(Y) \ar@{=}[ur] \ar[r]^{H^{*}(f^{op})}  \ar[u]_{G(g^{op})} &H(X)   \ar[u]_{G(f^{op})} \ar@/^2.0pc/[uu]^{G(f^{op} \circ g^{op})}  \\
    }

我希望较大的弯曲箭头为红色,并且图表右下角的弯曲箭头为 = 箭头,如同ar@{=}[ddll]

答案1

以下是使用包和包color选项的可能解决方案:xyxcolor

\documentclass{article}
\usepackage{xcolor}
\usepackage[all,color]{xy}

\begin{document}

\xymatrix{
& & H(Z) \ar@/^2.0pc/@[red][rr]^{F(f^{op} \circ g^{op})} \ar[r]^{H^{*}(g^{op})} 
  & H(Y) \ar@{=}[dl] \ar[r]^{H^{*}(f^{op})} 
  & H(X) \ar@{=}[dl] \ar@/^2.0pc/@{=>}@[red][ddll] \\
& H(Z) \ar@{=}[ur] 
  & H(Y) \ar[u]_{G(g^{op})} 
  & H(X) \ar@{=}[dl] \ar[u]_{G(f^{op})} \\
H(Z) \ar[r]_{H^{*}(g^{op})} \ar@{=}[ur] 
  & H(Y) \ar@{=}[ur] \ar[r]_{H^{*}(f^{op})}  \ar[u]_{G(g^{op})}
  & H(X)  \ar[u]_{G(f^{op})} 
  \ar@/^2.0pc/@[red][uu]^{G(f^{op} \circ g^{op})}
}

\end{document}

上述代码将产生以下结果(我的回答仅关注问题中提到的问题;图表的布局必须改进以避免元素重叠):

在此处输入图片描述

改变列间距,防止元素重叠:

\documentclass{article}
\usepackage{xcolor}
\usepackage[all,color]{xy}

\begin{document}

\xymatrix@C=2cm{
& & H(Z) \ar@/^2.0pc/@[red][rr]^{F(f^{op} \circ g^{op})} \ar[r]^{H^{*}(g^{op})} 
  & H(Y) \ar@{=}[dl] \ar[r]^{H^{*}(f^{op})} 
  & H(X) \ar@{=}[dl] \ar@/^2.0pc/@{=>}@[red][ddll] \\
& H(Z) \ar@{=}[ur] 
  & H(Y) \ar[u]_{G(g^{op})} 
  & H(X) \ar@{=}[dl] \ar[u]_{G(f^{op})} \\
H(Z) \ar[r]_{H^{*}(g^{op})} \ar@{=}[ur] 
  & H(Y) \ar@{=}[ur] \ar[r]_{H^{*}(f^{op})}  \ar[u]_{G(g^{op})}
  & H(X)  \ar[u]_{G(f^{op})} 
  \ar@/^2.0pc/@[red][uu]^{G(f^{op} \circ g^{op})}
}

\end{document}

在此处输入图片描述

附注:您可能感兴趣的软件包是tikz-cd

相关内容