tikz 的问题:箭头不平行

tikz 的问题:箭头不平行

我希望本例中的所有垂直线都平行。我该怎么做?非常感谢。这是一张图片。

图片

\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}

唯一微妙的一点是

  1. column sep={{{{3em,between origins}}}}配有四副牙套。
  2. \smash[b]{...}其周围推出,以使中间的箭头获得相同的长度。

的语法tikz-cd肯定更友好。我认为应该向的作者提交错误报告tikz-cd以修复该column sep问题。

在此处输入图片描述

相关内容