I have tried many different things and I just can't wrap my head around how to work around the fact that the column sep option to TikZ's \matrix command changes the positioning of the matrix on the page. The code for my (rather large) picture is below with some added comments.
I would like to have a larger column sep than here (such as the 4em that's commented out below) while having the picture positioned such that the arrows down the middle are centered on the page. I can't see how this is possible without some ugly \hspace trial and error.
\documentclass[a4paper,11pt]{article}
\usepackage{tikz,relsize,mathtools}
\usetikzlibrary{matrix,arrows,shapes}
\usepackage{units}
\newcommand\onehalf{\nicefrac{1}{2}}
\begin{document}
\thispagestyle{empty}
\begin{center}{\huge\textbf{Separation Properties}}\end{center}
%
\vspace{1ex}
\begin{tikzpicture}
\tikzstyle{every node}=[font=\small]
\matrix (m) [nodes={draw,rectangle,thin,fill=blue!10},%
row sep=1.7em,%column sep=4em,% Uncomment this to see m move around
text depth=0.25ex,%
draw=red] % Comment this out to not see the outline of the matrix
{%
\node (Met) {Metrizable}; & \node (T6) {P.\@ Normal Hausdorff (T$_{\smash[b]{6}}$)}; & \node (PN) {P.\@ Normal}; \\
\node (Ord) {Total order}; & \node (T5) {C./H.\@ T$_4$ (T$_{\smash[b]{5}}$)}; & \node (HN) {C./H.\@ Normal}; \\
\node (CH) {Cpt.\@ Hausdorff}; & \node (T4) {Normal Hausdorff (T$_{\smash[b]{4}}$)}; & \node (Norm) {Normal}; \\
\node (LCH) {Loc.\@ Cpt.\@ Hausdorff}; & \node (T3h) {Tychonoff (T$_{\smash[b]{3\onehalf}}$)}; & \node (CReg) {C.\@ Regular}; \\
\node (FH) {F./C.\@ Hausdorff}; & \node (T3) {Regular Hausdorff (T$_{\smash[b]{3}}$)}; & \node (Reg) {Regular}; \\
& \node (T2h) {Urysohn (T$_{\smash[b]{2\onehalf}}$)}; \\
& \node (T2) {Hausdorff (T$_{\smash[b]{2}}$)}; & \node (PReg) {Preregular (R$_1$)};\\
& \node (T1) {T$_{\smash[b]{1}}$}; \\
& \node (T0) {T$_{\smash[b]{0}}$}; \\
};
\path[->,thin]
(T3h) edge [bend left=90] node[fill=white,inner sep=2pt,pos=0.25]{$\scriptstyle\beta$} (T5)
(T0) edge [bend right=60] node[fill=white,inner sep=2pt]{\scriptsize+R$\scriptstyle_1$} (T2)
(PReg) edge [bend right=60] node[fill=white,inner sep=2pt]{\scriptsize+Loc.~Cpt.} (CReg)
(Reg) edge [bend right=80] node[fill=white,inner sep=2pt,pos=0.70]{\scriptsize+Lindel\"{o}f} (Norm)
(Reg) edge [bend right=80] node[fill=white,inner sep=2pt,pos=0.75]{\scriptsize+2nd count.} (HN);
\path[->,thick]
(T6) edge node[]{} (T5) (T6) edge node[]{} (PN)
(T5) edge node[]{} (T4) (T5) edge node[]{} (HN)
(T4) edge node[auto]{\smaller UL} (T3h)
(T4) edge node[]{} (Norm)
(T3h) edge node[]{} (T3) (T3h) edge node[]{} (FH) (T3h) edge node[above,midway]{\smaller KEQ} (CReg)
(FH) edge node[]{} (T2h)
(T3) edge node[]{} (T2h) (T3) edge node[above,midway]{\smaller KEQ} (Reg)
(T2h) edge node[]{} (T2)
(T2) edge node[]{} (T1) (T2) edge node[above,midway]{\smaller KEQ} (PReg)
(T1) edge node[]{} (T0)
(PN) edge node[]{} (HN)
(HN) edge node[]{} (Norm)
(CReg) edge node[]{} (Reg)
(Reg) edge node[]{} (PReg);
\path[->,thick]
(Met) edge node[]{} (T6)
(Ord) edge node[]{} (T5)
(CH) edge [preaction={draw=white,-,line width=6pt}] node[]{} (T4) (CH) edge node[]{} (LCH)
(LCH) edge node[]{} (T3h);
\end{tikzpicture}
\end{document}

\"{o}breaking the syntax highlighting was only in the preview. Yes, I know, it's really annoying that the preview is so different from the final result; it's already been a long time, but they haven't fixed it yet. – Hendrik Vogt Mar 1 '11 at 15:44