Mayer-Vietors シーケンスの tikzcd で矢印とノードを移動する

Mayer-Vietors シーケンスの tikzcd で矢印とノードを移動する

直和の場合、矢印を真ん中からではなく最初の加数から下に移動させる必要があるという問題に遭遇しました。問題ありません。矢印を xshift できます。しかし、次の行のターゲットはどうでしょうか。私の即興の解決策は、手作りのファントムボックスです (ただ......)。

\documentclass{article}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{tikz}
\usepackage{tikz-cd}
\newcommand*{\ZZ}{\mathbb{Z}}

   \begin{document}
\[
\begin{tikzcd}[row sep=small]
{}\rar\arrow[equal]{d} & H_3(V)\oplus H_3(C)\rar \arrow[equal,xshift=-4.5ex]{d}& {}\rar \arrow[equal]{d}{\sim}& {}\arrow[equal]{d}{\sim}\\
0 & 0..............& \ZZ & \ZZ\\
{}\rar& H_2(V)\oplus H_2(C)\rar \arrow[equal,xshift=-4.5ex]{d}& {}\rar \arrow[equal]{d}& {}\arrow[equal]{d}{\sim} \\
{} & 0.............. & 0& \ZZ\oplus \ZZ\\
{}\rar& H_1(V)\oplus H_1(C)\rar \arrow[equal,xshift=-4.5ex]{d}{\sim}& {}\rar& {} \\
 & \ZZ.............. & 0 & {}\\
\end{tikzcd}
\]
\end{document}

さらに疑問なのは、2 行目以降の最初の矢印を(右から)短くするにはどうすればよいかということです。

答え1

目視で計算したシフトですが、次のようになります。

\documentclass{article}

\usepackage{amsmath,amssymb,calc}
\usepackage{tikz-cd}

\newcommand*{\ZZ}{\mathbb{Z}}
\newcommand{\alignfirst}[3]{%
  \makebox[\widthof{$#2\oplus#3$}][l]{%
    \makebox[\widthof{$#2$}]{$#1$}%
  }%
}

\begin{document}
\[
\begin{tikzcd}[row sep=small]
{}\rar\arrow[equal]{d} &
  H_3(V)\oplus H_3(C)\rar \arrow[equal,xshift=-2.05em]{d} &
  {}\rar \arrow[equal]{d}{\sim} &
  {}\arrow[equal]{d}{\sim}
\\
0 & \alignfirst{0}{H_3(V)}{H_3(C)} & \ZZ & \ZZ
\\
{\qquad}\rar& H_2(V)\oplus H_2(C)\rar \arrow[equal,xshift=-2.05em]{d} &
  {}\rar \arrow[equal]{d} &
  {}\arrow[equal]{d}{\sim}
\\
{} & \alignfirst{0}{H_2(V)}{H_2(C)} & 0 & \ZZ\oplus \ZZ
\\
{\qquad}\rar& H_1(V)\oplus H_1(C)\rar \arrow[equal,xshift=-2.05em]{d}{\sim} &
  {}\rar \arrow[equal]{d} & {} 
\\
{\qquad} & \alignfirst{\ZZ}{H_1(V)}{H_1(C)} & 0 & {}\\
\end{tikzcd}
\]
\end{document}

ここに画像の説明を入力してください

関連情報