我想要绘制如下内容:
+-------+
| Alpha |
+-------+ +---------+
| betas |----->| Beta |
+-------+ +---------+ +--------+
| foo | | gammas |----->| Gamma |
+-------+ +---------+ +--------+
| bar | | foo | | deltas |
+-------+ +---------+ +--------+
| bar | | foo |
+---------+ +--------+
| bar |
+--------+
事实上,它一直持续到Epsilon
。
到目前为止我有以下信息:
\documentclass[tikz,border=1cm]{standalone}
\usetikzlibrary{positioning,shapes.multipart}
\begin{document}
\begin{tikzpicture}[%
mod/.style={%
draw,%
rectangle split,rectangle split parts=4,%
minimum height=3cm,minimum width=2cm}%
]
\node[mod] (a) {%
Alpha
\nodepart{two} betas
\nodepart{three} foo
\nodepart{four} bar
};
\node[mod,right=of a] (b) {%
Beta
\nodepart{two} gammas
\nodepart{three} foo
\nodepart{four} bar
};
\node[mod,right=of b] (c) {%
Gamma
\nodepart{two} deltas
\nodepart{three} foo
\nodepart{four} bar
};
\end{tikzpicture}
\end{document}
输出结果如下:
betas
例如,我如何从分割节点部分绘制路径?我的意思是我如何指定该坐标?
我想知道上述问题的答案也可以解决按照我上面展示的方式排列这些节点的问题。
最后一个问题:有没有一种简单的方法可以应用于\bfseries
所有人第一的节点部分?那么对于Alpha
、Beta
和Gamma
?
答案1
您可以使用锚点two east
和text west
来进行定位和箭头。
\documentclass[tikz,border=1cm]{standalone}
\usetikzlibrary{positioning,shapes.multipart}
\begin{document}
\begin{tikzpicture}[>=stealth,%
mod/.style={%
draw,%
rectangle split,rectangle split parts=4,%
minimum height=3cm,minimum width=2cm}%
]
\node[mod] (a) {%
Alpha
\nodepart{two} betas
\nodepart{three} foo
\nodepart{four} bar
};
\node[mod,right=of a.two east,anchor=text west] (b) {%
Beta
\nodepart{two} gammas
\nodepart{three} foo
\nodepart{four} bar
};
\node[mod,right=of b.two east,anchor=text west] (c) {%
Gamma
\nodepart{two} deltas
\nodepart{three} foo
\nodepart{four} bar
};
\draw[->] (a.two east) -- (b.text west);
\draw[->] (b.two east) -- (c.text west);
\end{tikzpicture}
\end{document}
至于只将第一个文本加粗,恐怕没有超级简单的解决方案。您可以将其全部替换\nodepart
为\nodepart[font=\normalfont]
并添加font=\bfseries
到节点的定义中。
\documentclass[tikz,border=1cm]{standalone}
\usetikzlibrary{positioning,shapes.multipart}
\begin{document}
\begin{tikzpicture}[>=stealth,%
mod/.style={%
draw,%
font=\bfseries,%
rectangle split,rectangle split parts=4,%
minimum height=3cm,minimum width=2cm}%
]
\node[mod] (a) {%
Alpha
\nodepart[font=\normalfont]{two} betas
\nodepart[font=\normalfont]{three} foo
\nodepart[font=\normalfont]{four} bar
};
\node[mod,right=of a.two east,anchor=one west] (b) {%
Beta
\nodepart[font=\normalfont]{two} gammas
\nodepart[font=\normalfont]{three} foo
\nodepart[font=\normalfont]{four} bar
};
\node[mod,right=of b.two east,anchor=one west] (c) {%
Gamma
\nodepart[font=\normalfont]{two} deltas
\nodepart[font=\normalfont]{three} foo
\nodepart[font=\normalfont]{four} bar
};
\draw[->] (a.two east) -- (b.text west);
\draw[->] (b.two east) -- (c.text west);
\end{tikzpicture}
\end{document}