[Tex/LaTex] Tikz, mindmap, and nodes – control over node radius

mindmapsnodestikz-pgf

I'm trialling TikZ mindmap as a tool for drawing network diagrams. Everything is great, however what I'd like is to be able to have some control over the node sizes.

As an example, say my root note is a firewall with 8 interfaces, and the 8 child nodes under this firewall node are interface nodes. Child to that is then any single-homed hosts. Each multihomed host would be configured similar to this, and I'd use paths to connect them.

Basically what I'm getting at is this: I'd prefer to have something like the mindmap, but in fact not a tree – rather a graph; I did not find such a library in TikZ. Other notes:

  • I'm avoiding dot2tex and graffle for the time being, as I need these diagrams to have a little fancy).
  • I don't want to use simple nodes and paths (as I have to do more work with positioning the nodes).

Any suggestions? So all I'm after, is the ability to declare nodes, and give them a set radius, for example:

\centering\begin{tikzpicture}[
mindmap,
every node/.style={concept, execute at begin node=\hskip0pt, fill, scale=0.7},
root concept/.append style={level distance=10, concept color=black, grow cyclic},
level 1 concept/.append style={level distance=90, sibling angle=60, text=white},
level 2 concept/.append style={level distance=70, sibling angle=60, text=white},
router/.style={concept color=green, fill=black, text=lime, line width=1ex},
firewall/.style={concept color=red, fill=black, text=red, line width=1ex},
site/.style={concept color=green},
linux/.style={concept color=blue!75!white},
null/.style={concept color=red},
lan/.style={concept color=gray},
iface/.style={
    concept color=black,
    fill=red,
    text=white,
    line width=1ex,
    font=\small\scshape,
    node width=1cm % *** for example ***
},   
openbsd/.style={concept color=yellow!50!orange},
]

Best Answer

You can set the node size by using the parameters

minimum size=0pt,
text width=<dimension>

in place of your node width parameter and entering the desired value instead of <dimension>. Note that the actual size of the node will be larger than dimension by the values for inner sep and line width.

Related Question