# How can I set the node size for a TikZ image to be the same for all nodes?

I'm attempting to draw a Kripke structure in TikZ and while I'm successful for the most part, I'm not quite satisfied with the result. Here is my preamble:

\documentclass[10pt,letterpaper]{amsart}

% Personal Packages

\usepackage{notation}

% TikZ Drawing packages

\usepackage{tikz}
\usetikzlibrary{arrows}

% Font and Typography Settings

\usepackage{concrete}
\usepackage{euler}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[babel=true]{microtype}


\begin{figure}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=3cm,
thick,base node/.style={circle,draw}, real node/.style={double,circle,draw}]

\node[real node] (1) {$s(C)$};
\node[base node] (2) [below left of=1] {$s(\alpha)$};
\node[base node] (3) [below right of=1] {$\neg{s(\alpha)}$};
\path[]
(1) edge node[left] {$L,J$} (2)
edge node[right] {$L,J$} (3)
edge [loop above] node {$C$} (1)
(2) edge [bend left] node {$C,L,J$} (3)
edge [loop left] node {$C,L,J$} (2)
(3) edge [bend left] node {$C,L,J$} (2)
edge [loop right] node {$C,L,J$} (3);
\end{tikzpicture}
\caption{The initial state of the domain in Ex.~\ref{ex:whisper}.}
\end{figure}


The difficulty that I'm having is that node 3 is larger than node 2 (presumably because it's resizing itself to accommodate the label text). Is there any way that I can have the nodes all have the same size? Also, any suggestions on how to make the diagram more aesthetically pleasing would be much appreciated (I'm coming from OmniGraffle and the transition is bit difficult).

-

You can use the minimum size= key:

\documentclass[10pt,letterpaper]{amsart}

% Personal Packages

%\usepackage{notation}

% TikZ Drawing packages

\usepackage{tikz}
\usetikzlibrary{arrows}

% Font and Typography Settings

\usepackage{concrete}
\usepackage{euler}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[babel=true]{microtype}

\begin{document}

\begin{figure}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=3cm,
thick,base node/.style={circle,draw,minimum size=35pt}, real node/.style={double,circle,draw,minimum size=35pt}]

\node[real node] (1) {$s(C)$};
\node[base node] (2) [below left of=1] {$s(\alpha)$};
\node[base node] (3) [below right of=1] {$\neg{s(\alpha)}$};
\path[]
(1) edge node[left] {$L,J$} (2)
edge node[right] {$L,J$} (3)
edge [loop above] node {$C$} (1)
(2) edge [bend left] node {$C,L,J$} (3)
edge [loop left] node {$C,L,J$} (2)
(3) edge [bend left] node {$C,L,J$} (2)
edge [loop right] node {$C,L,J$} (3);
\end{tikzpicture}
\caption{The initial state of the domain in Ex.~\ref{ex:whisper}.}
\end{figure}

\end{document}


From the pgf manual:

It is much better to use the minimum size option instead. This option allows > Hagen to specify a minimum size that the node should have. If the nodes actually needs to be bigger because of a longer text, it will be larger, but if the text is empty, then the node will have minimum size. This option is also useful to ensure that several nodes containing different amounts of text have the same size.

-
Thank you very much. –  ggelfond Apr 9 '13 at 1:27