%%
%%  A DANTE-Edition example
%%
%%  Example 36-00-56 on page 791.
%%
%%  Copyright (C) 2011 Herbert Voss
%%
%%  It may be distributed and/or modified under the conditions
%%  of the LaTeX Project Public License, either version 1.3
%%  of this license or (at your option) any later version.
%%
%%  See http://www.latex-project.org/lppl.txt for details.
%%
%%
%% ====
% Show page(s) 1
%%
\documentclass[]{article}
\pagestyle{empty}
\setlength\textwidth{375.57637pt}
\setlength\parindent{0pt}

\usepackage{pstricks,pst-node,pst-slpe}
\def\OneDot{\psdot(0,0)}
\def\TwoDots{\psdots(0,0.2)(0,-0.2)}
\def\ObjectA{%
 \pscircle[fillstyle=ccslope,slopebegin=white,slopeend=blue,
    slopecenter=0.2 0.5](0.5,0.5){0.55}}
\def\ObjectB{%
 \psccurve[fillstyle=ccslope,slopebegin=white,slopeend=blue,
    slopecenter=0.9 0.5](0,0.3)(0.2,0)(0.8,0.1)(1,0.2)(1,0.8)(0.8,0.9)(0.2,1)(0,0.8)}
\def\ObjectC#1{%
 \psccurve[fillstyle=solid,fillcolor=red!10]%
     (0,0.3)(0.2,0)(0.8,0.1)(1,0.2)(1,0.8)(0.8,0.9)(0.2,1)(0,0.8)
 \rput(0.5,0.5){#1}}
\def\ObjectD#1{%
 \pscircle[fillstyle=solid,fillcolor=red!10](0.5,0.5){0.55}
 \rput(0.5,0.5){#1}}
\def\Molecule#1#2#3{%
 \pspicture(3,1.1)
   \psset{dotscale=1.5}%
   \rput(1.3,0.1){\ObjectA}
   \rput(0.1,0.1){#1}
   \rput{180}(2.9,1.1){#2}
   \rput(1,0){\ObjectD{#3}}
 \endpspicture%
}
\def\MoleculeA{\Molecule{\ObjectB}{\ObjectC{\TwoDots}}{\OneDot}}
\def\MoleculeB{\Molecule{\ObjectB}{\ObjectC{\OneDot}}{\TwoDots}}
\def\MoleculeC{\Molecule{\ObjectC{\OneDot}}{\ObjectB}{\TwoDots}}
\def\MoleculeD{\Molecule{\ObjectC{\TwoDots}}{\ObjectB}{\OneDot}}


\begin{document}
\begin{psmatrix}[colsep=0.5]
 [name=MoleculeA] \MoleculeA                               \\[0pt]
 [name=MoleculeB] \MoleculeB & [name=MoleculeC] \MoleculeC \\
                             & [name=MoleculeD] \MoleculeD
\end{psmatrix}% Connections and labels
\psset{arrowscale=2}
\ncline[offset=0.2,linewidth=0.15]{MoleculeA}{MoleculeB}
\ncline[offset=0.2,linewidth=0.15]{MoleculeC}{MoleculeD}
\ncarc[offset=-0.4,arcangle=60]{MoleculeB}{MoleculeC}
\naput{\psline[linestyle=dashed]{<-}(1,2)\rput[l](1.2,2){singlet coupling}}
\ncbar[linestyle=dashed,angleA=-60,angleB=-135,armB=0]{<->}{MoleculeB}{MoleculeC}
\nbput[npos=0.9]{lone pair repulsion}
\nbput[npos=0.2]{$\pi_2$}
\nbput[npos=1.8]{$\pi_3$}
\end{document}