tikz 节点定位

tikz 节点定位

我想生成一个简单的组织结构图,其中 x 和 y 方向上的距离看起来合理。如何获得节点之间的等距距离?

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}
[topline/.style={rectangle,rounded corners,fill=red,xshift=3cm, yshift=2.5cm, minimum width=15mm,minimum height=10mm},
botline/.style={rectangle,rounded corners,fill=orange,xshift=3cm, yshift=2cm, minimum width=15mm,minimum height=10mm},
]
\node at (0,0) [topline] {A};
\node at (1,0) [topline] {B};
\node at (2,0) [topline] {C};
\node at (0,-1) [botline] {D};
\node at (0,-2) [botline] {E};
\end{tikzpicture}

\end{document}

tikz 节点定位

答案1

您使用了不同的minimum widthminimum height。将它们都设置为相同的值,您就应该得到正确的距离。

如果你添加以下行

\tikzset{x=15mm,y=15mm}

在开始图片之前,你会得到更好的结果。还要确保你的xshiftyshift是相同的,你会得到类似

在此处输入图片描述

最后,由于您的很多style内容都是重复的,因此我将重复的内容分离出来。

这是最后一张图片的代码

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}
[
    x=15mm,y=15mm,
    mybox/.style={rectangle,rounded corners,xshift=1cm,yshift=1cm,minimum width=15mm, minimum height=15mm},
    topline/.style={mybox,fill=red},
    botline/.style={mybox,fill=orange},
]
\node at (0,0) [topline] {A};
\node at (1,0) [topline] {B};
\node at (2,0) [topline] {C};
\node at (0,-1) [botline] {D};
\node at (0,-2) [botline] {E};
\end{tikzpicture}

\end{document}

相关内容