Tikz 中的列规范问题

Tikz 中的列规范问题

考虑以下 tikz 代码

\begin{tikzcd}[column sep=20pt]
A \arrow{rr}\arrow{dr} && B && C \arrow{ll}\\
& D \arrow{dr}\arrow{ur}\\
&& E \arrow{urur}
\end{tikzcd}

我面临的问题是 D 到 B 和 E 到 C 的箭头不平行(从 B 到 C 的箭头太短)。我认为问题出在节点 C 未被指定为属于第四列。

因此,例如,A 在第 0 列(无 &),D 在第 1 列(&),B 和 E 在第 2 列(&&),但 C 也是如此。但是,如果我尝试指定第 3 列(&&&),我会收到错误消息。我做错了什么?

(或者,如果我可以手动将箭头的长度从 B 更改为 C,那么也可以!)

答案1

如果你将其设置column sep为,between origins我认为它看起来不错。

在此处输入图片描述

\documentclass[border=5mm]{standalone}
\usepackage{tikz-cd}
\begin{document}

\begin{tikzcd}[column sep={35pt,between origins}]
A \arrow{rr}\arrow{dr} && B && C \arrow{ll}\\
& D \arrow{dr}\arrow{ur}\\
&& E \arrow{urur}
\end{tikzcd}

\end{document}

答案2

使用 TikZ:

在此处输入图片描述

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\def\a{2}
\path
(0,0)     node (B) {$B$} 
+(0:\a)   node (C) {$C$}
+(180:\a) node (A) {$A$} 
+(-90:\a) node (E) {$E$}
(A)--(E)  node[pos=.5] (D) {$D$};

\draw[->] (A)--(B); \draw[->] (C)--(B);
\draw[->] (A)--(D); \draw[->] (D)--(E);
\draw[->] (E)--(C); \draw[->] (D)--(B);
\end{tikzpicture}
\end{document}

相关内容