在 tikzcd 中移动 Mayer-Vietors 序列的箭头和节点

在 tikzcd 中移动 Mayer-Vietors 序列的箭头和节点

我遇到了一个问题,对于直接求和,我希望箭头向下,从第一个被加数开始,而不是从中间开始。没问题,我可以 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}

另一个问题是如何使第二行开始的第一个箭头更短(从更右边开始)。

答案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}

在此处输入图片描述

相关内容