From page 726 in pgfmanual:
When split vertically, the rectangle split will meet any minimum width
requirements, but any minimum height
will be ignored. Conversely when
split horizontally, minimum height
requirements will be met, but any
minimum width
will be ignored. In addition, inner sep
is applied to
every part that is used, so it cannot be specified independently for a
particular part.
Two alternative solutions:
The first one uses a matrix
of nodes instead of a multipart
nodes. I know they are not the same, so some tricks are required to convert a matrix
to something similar to a multipart
node. In this case I've used a \vphantom
option but a minimum height
could also serve. And I also defined minimum width
for every node in matrix
as 1/3 from d
node width.
The second one, draws nodes the other way, first three nodes a, b, c are drawn and second node d
adjust its size with fit
. In this case, fitting node content must be written with label
options.
\documentclass[border=5mm,tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix,positioning,fit}
\begin{document}
\begin{tikzpicture}[scale=2, every node/.style={fill=blue!10,minimum width=3cm,draw}]
\matrix (N1) [matrix of nodes, inner sep=0pt, nodes={fill=blue!10, minimum width=1cm, inner sep=.3333em}, column sep=-\pgflinewidth, draw=none]
{a\vphantom{d} & b & c\vphantom{d}\\};
\node[yshift=-1cm,anchor=north](N2) at (N1.south){d};
\end{tikzpicture}
\begin{tikzpicture}[scale=2, every node/.style={fill=blue!10,minimum width=1cm,draw, minimum height=5mm}]
\begin{scope}[node distance=0pt]
\node(A) {a};\node[right=of A] (B) {b};\node[right=of B] (C) {c};
\end{scope}
\node[fit=(A.north west) (C.south east), inner sep=0pt, below=1cm of B.south, label=center:d] (N2) {};
\end{tikzpicture}
\end{document}
