我正在使用矩阵将节点放入 Tikz 图中:
\documentclass[border={0pt 0pt 0pt 0pt}]{standalone}
\usepackage{tikz, calc}
\usepackage{array}
\begin{document}
\begin{tikzpicture} [
auto,
fblk/.style = { rectangle, draw=gray, fill=pink!30, text width=4.5em, text centered, minimum height=1em },
%ffblk/.style = { rectangle, draw=gray, fill=pink!30, text width=4.5em, text centered, minimum height=1em },
]
\matrix [column sep=2.3em, row sep=1.em] {
\node[fblk](f1){FBLK1}; && \node[fblk](f2){FBLK2};\\
& \node[fblk](f3){FBLK3}; \\
% \node[ffblk](f4){FBLK1}{FBLK2}; \\
};
\end{tikzpicture}
\end{document}
现在,我想定义一个新的节点样式,ffblk
它有 2 个相邻的矩形。此节点样式采用两个参数,每个矩形各一个。参见图片。
我尝试通过添加xshift=-...
到下一个节点来管理这个问题;并通过制作column sep=0em
。但我无法创建我想要的东西。
答案1
也许像这样,使用shapes.multipart
图书馆?
\documentclass[tikz,border=1mm]{standalone}
\usetikzlibrary{shapes.multipart}
\begin{document}
\begin{tikzpicture}[fblk/.style={rectangle split, rectangle split horizontal, rectangle split parts=2, draw, anchor=center, draw=gray, fill=pink!30}]
\node [fblk] {FBLK1\nodepart{two}FBLK2};
\end{tikzpicture}
\end{document}
输出
答案2
当中的两个相邻节点matrix
应该共享一条边界线,row sep
并且|或column sep
应该固定为-\pgflinewidth
:
\documentclass[border={0pt 0pt 0pt 0pt}]{standalone}
\usepackage{tikz, calc}
\usepackage{array}
\begin{document}
\begin{tikzpicture} [
auto,
fblk/.style = { rectangle, draw=gray, fill=pink!30, text width=4.5em, text centered, minimum height=1em },
]
\matrix [column sep=-\pgflinewidth, row sep=-\pgflinewidth] {
\node[fblk](f1){FBLK1}; & \node[fblk](f2){FBLK2};\\
& \node[fblk](f3){FBLK3}; \\
% \node[ffblk](f4){FBLK1}{FBLK2}; \\
};
\end{tikzpicture}
\end{document}