tikz-cd 中的箭头不对称

tikz-cd 中的箭头不对称

所以我有这个代码:

\documentclass{article}
\usepackage[utf8]{inputenc}

\begin{document}

\usetikzlibrary{decorations.markings} 

\tikzset{negated/.style = {
        decoration={markings, 
            mark = at position 0.5 with {
                \node[transform shape] (tempnode) {$\backslash$};
            }
        },
        postaction={decorate}
    } 
}

\begin{figure} 
\centering 
\begin{tikzcd} {} & \quad LY\text{-chaos} \\ 
AY\text{-chaos} \arrow[Rightarrow, shift left = 0.5ex]{r} \arrow[Rightarrow, shift left = 0.6ex]{dr} \arrow[Leftarrow, shift left = -1.2ex, negated]{dr} \arrow[Leftarrow, shift left = 1.2ex, negated]{ur} \arrow[Rightarrow, shift left = -0.6ex]{ur} & D\text{-chaos} \arrow[Rightarrow, shift left = 0.7ex]{l} \\ 
{} & T\text{-chaos} 
\end{tikzcd} 
\end{figure}

\end{document}

问题在于从 AY-chaos 到 LY-chaos 和 T-chaos 的箭头不是从同一点(在 x 轴上)开始的。

答案1

这里的问题是 TiZ 尝试变得聪明并将箭头分布在节点周围。

您可以通过让节点更高来智取它,这样箭头将仅固定在节点的侧面。要使节点更高,请使用 键minimum height

然而,更大的问题是每个节点有两个箭头,因此您必须做一些手动劳动才能使其看起来正确。

我还将节点的宽度设为相同,以minimum width保持一致性。

AY-chaos最后,我在、LY-chaos和中的连字符前添加了一个小的字距调整,T-chaos使其看起来像一个东西。

有一件事需要您考虑:没有办法让箭头从相同的 X 坐标开始,而不会让它们太远,因为它们位于节点的东侧AY-chaos,或者不会让它们太拥挤。有一种想法可以让它看起来更好,那就是如果您以某种方式使节点AY-chaos(甚至其他节点)在视觉上更高,也许绘制方框或添加左括号...只是一个想法 :)

无论如何,这里是:

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{tikz-cd}
\usetikzlibrary{decorations.markings}

\begin{document}
\pagenumbering{gobble}

\tikzset{negated/.style = {
        decoration={markings, 
            mark = at position 0.5 with {
                \node[transform shape] (tempnode) {$\backslash$};
            }
        },
        postaction={decorate}
    } 
}

\begin{figure}
\centering
\begin{tikzcd}[cells={nodes={minimum height=1.0cm,minimum width=1.7cm}},column sep=4em,row sep=0pt]
& LY\kern-0.5ex\text{-chaos} \\
  AY\kern-0.5ex\text{-chaos}
  \arrow[Leftarrow , start anchor=north east,
                       end anchor={[yshift= 0.2cm]}, negated]{ur}
  \arrow[Rightarrow, start anchor={[yshift= 0.5ex]},
                       end anchor={[yshift= 0.2cm]south west}]{ur}
  \arrow[Rightarrow, yshift=-0.7ex]{r}
  \arrow[Leftarrow , yshift= 0.7ex]{r}
  \arrow[Rightarrow, start anchor={[yshift=-0.5ex]},
                       end anchor={[yshift=-0.2cm]north west}]{dr}
  \arrow[Leftarrow , start anchor=south east,
                       end anchor={[yshift=-0.2cm]}, negated]{dr}
& D\text{-chaos} \\
& T\kern-0.5ex\text{-chaos}
\end{tikzcd}
\end{figure}

\end{document}

相关内容