我遇到的問題是,對於直接求和,我希望箭頭向下,從第一個被加數開始,而不是從中間開始。沒問題,我可以移動箭頭。但是下一行的目標呢?我的臨時解決方案是一個手工製作的幻影盒(只是...)。
\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}