%% 
%%  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}
