我希望本例中的所有垂直线都平行。我该怎么做?非常感谢。这是一张图片。
\documentclass{scrartcl}
\usepackage{tikz}
\usepackage{amsmath}
\usepackage{amsfonts}
\usetikzlibrary{matrix,arrows,calc}
\begin{document}
\begin{center}
\begin{tikzpicture}[]
\matrix (m) [matrix of math nodes, row sep=1.5em,
column sep=1.5em, text height=1.5ex, text depth=0.25ex, text centered]
{
& 0 & & A & & A\amalg_AB & & C & & 0\\
0 & & A & & B & & C & & 0\\
& 0 & & A & & A\amalg_AB & & C & & 0\\
0 & & A & & B & & C & & 0\\
};
\path[->,font=\scriptsize]
(m-2-1) edge node[auto] {} (m-2-3)
(m-2-3) edge node[auto] {$f$} (m-2-5)
(m-2-5) edge node[auto] {$g$} (m-2-7)
(m-2-7) edge node[auto] {} (m-2-9)
(m-4-1) edge node[auto] {} (m-4-3)
(m-4-3) edge node[auto] {$f$} (m-4-5)
(m-4-5) edge node[auto] {$g$} (m-4-7)
(m-4-7) edge node[auto] {} (m-4-9)
(m-1-2) edge node[auto] {} (m-1-4)
(m-1-4) edge node[auto] {$$} (m-1-6)
(m-1-6) edge node[auto] {$$} (m-1-8)
(m-1-8) edge node[auto] {} (m-1-10)
(m-3-2) edge node[auto] {} (m-3-4)
(m-3-4) edge node[auto] {$$} (m-3-6)
(m-3-6) edge node[auto] {$$} (m-3-8)
(m-3-8) edge node[auto] {} (m-3-10)
(m-2-3) edge node[auto] {} (m-1-4)
(m-2-5) edge node[auto] {} (m-1-6)
(m-2-7) edge node[auto] {} (m-1-8)
(m-4-3) edge node[auto] {} (m-3-4)
(m-4-5) edge node[auto] {} (m-3-6)
(m-4-7) edge node[auto] {} (m-3-8)
;
\end{tikzpicture}
\end{center}
\end{document}
答案1
在 Qrrbrbirlbel 的帮助下,我们找到了以下解决方案tikz-cd
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\newcommand\push[3]{#1\amalg_{#2}#3}
\begin{document}
\begin{tikzcd}[column sep={{{{3em,between origins}}}}]%[bo column sep=3em]
{} &
0 \arrow{rr} &&
A' \arrow{rr} &&
\smash[b]{\push{A'}{A}{B} \arrow{rr}} &&
C \arrow{rr} &&
0
\\
0 \arrow{rr} &&
A \arrow{rr}{f} \arrow{ur} &&
B \arrow{rr}{g} \arrow{ur} &&
C \arrow{rr} \arrow{ur} &&
0
\\
{} &
0 \arrow{rr} &&
A' \arrow{rr} &&
\smash[b]{\push{A'}{A}{B'}} \arrow{rr} &&
C' \arrow{rr} &&
0
\\
0 \arrow{rr} &&
A \arrow{rr}{f'} \arrow{ur} &&
B' \arrow{rr}{g'} \arrow{ur} &&
C' \arrow{rr} \arrow{ur} &&
0
\end{tikzcd}
\end{document}
唯一微妙的一点是
column sep={{{{3em,between origins}}}}
配有四副牙套。- 将
\smash[b]{...}
其周围推出,以使中间的箭头获得相同的长度。
的语法tikz-cd
肯定更友好。我认为应该向的作者提交错误报告tikz-cd
以修复该column sep
问题。