我在 TikZ 中有以下交换图:
\begin{tikzpicture}
\matrix (b) [matrix of math nodes, row sep=2em, column sep=2em]
{
D(0) & D(1) & \cdots & C \\
C & C & \cdots & C \\
};
\path[->, font=\scriptsize]
(b-1-1) edge node[auto]{\(\scriptstyle{g_0}\)} (b-1-2) edge node[auto]{\(\scriptstyle{\phi_0}\)} (b-2-1)
(b-1-2) edge node[auto]{\(\scriptstyle{\phi_1}\)} (b-2-2) edge node[auto]{\(\scriptstyle{g_1}\)} (b-1-3)
(b-1-3) edge node[auto]{\(\scriptstyle{\phi_i}\)} (b-2-3) edge (b-1-4)
(b-2-1) edge[-,double] (b-2-2)
(b-2-2) edge[-,double] (b-2-3)
(b-2-3) edge[-,double] (b-2-4)
(b-1-4) edge[-,double] (b-2-4);
\end{tikzpicture}.
\end{center}
当我渲染它时,我最终得到了进入点的奇怪的斜线。
如果我只使用 \dots,问题会更加严重。我该如何解决这个问题,让线条变直?我知道 tikz-cd 可能可以解决这个问题,但我现在没有时间学习语法和转换所有内容,所以我现在仍然按照老方法做事。
答案1
用于tikz-cd
此项工作。
语法更加简单,并且箭头标签以脚本样式正确排版。
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
D(0) \arrow[r,"g_0"] \arrow[d,"\phi_0"] &
D(1) \arrow[r,"g_1"] \arrow[d,"\phi_1"] &
\cdots \arrow[r] \arrow[d,"\phi_i"] &
C \arrow[d,equal]
\\
C \arrow[r,equal] & C \arrow[r,equal] & \cdots \arrow[r,equal] & C
\end{tikzcd}
\end{document}
您可以使用幻影使箭头变直。请注意,我删除了错误的font=\scriptsize
声明。
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (b) [matrix of math nodes, row sep=2em, column sep=2em]
{
D(0) & D(1) & \cdots\vphantom{()} & C\vphantom{()} \\
C & C & \cdots\vphantom{C} & C \\
};
\path[->]
(b-1-1) edge node[auto]{\(\scriptstyle{g_0}\)} (b-1-2) edge node[auto]{\(\scriptstyle{\phi_0}\)} (b-2-1)
(b-1-2) edge node[auto]{\(\scriptstyle{\phi_1}\)} (b-2-2) edge node[auto]{\(\scriptstyle{g_1}\)} (b-1-3)
(b-1-3) edge node[auto]{\(\scriptstyle{\phi_i}\)} (b-2-3) edge (b-1-4)
(b-2-1) edge[-,double] (b-2-2)
(b-2-2) edge[-,double] (b-2-3)
(b-2-3) edge[-,double] (b-2-4)
(b-1-4) edge[-,double] (b-2-4);
\end{tikzpicture}
\end{document}