\newcommand{\initial}  {
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % Macro initial declares variables and initializes the       %
   % variables and the unitlength.  Macro reinit resets the     %
   % values of the variables and the unitlength to the          %
   % original values.                                           %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
     \setlength{\unitlength}{.1pt}
     \newcount\xi        \newcount\yi
     \xi=0               \yi=300
     % coordinates of lower left corner
     \newcount\pht       \pht=900            % picture height
     \newcount\pw        \pw=400             % picture width
     \newcount\xbox      \xbox=50            % width of minipage
     \newcount\len  }    % general purpose variable
     % end macro initial
  \newcommand{\reinit}   {\xi=0   \yi=300    \xbox=50
              \setlength{\unitlength}{.1pt}
              \pht=900 \pw=400  }   % end macro reinit
 \newcommand{\cbranch}[9]    {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % The cbranch macro draws vertical branches as single and    %
  % double bonds, up and down.                                 %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
  \begin{picture}(\pw,\pht)(-\xi,-\yi)
               \put(0,200)    {#1}                 % upper subst.
   \ifx#2S     \put(40,85)    {\line(0,1)  {100}}  % single up
   \else\ifx#2D\multiput(27,85)(26,0){2}           % double up
                              {\line(0,1)  {100}} \fi \fi
   \ifx#4Q     \put(-305,0)   {\makebox(300,87)[r]{#3}}
                              % left substituent without bond
   \else       \put(-455,0)   {\makebox(300,87)[r]{#3}} \fi
                              % left substituent with bond
   \ifx#4S     \put(-150,33)  {\line(1,0)  {140}}  % single left
   \else\ifx#4D\multiput(-150,20)(0,26){2}         % double left
                              {\line(1,0)  {140}} \fi \fi
               \put(0,0)      {#5}                 % center
                                                   %  atom(s)
   \ifx#6S     \put(90,33)    {\line(1,0)  {140}}  % single right
   \else\ifx#6D\multiput(90,20)(0,26){2}           % double right
                              {\line(1,0)  {140}} \fi \fi
               \put(240,0)    {#7}                 % right subst.
   \ifx#8S     \put(40,-15)   {\line(0,-1) {100}}  % single down
   \else\ifx#8D\multiput(27,-15)(26,0){2}          % double down
                              {\line(0,-1) {100}} \fi \fi
               \put(0,-210)   {#9}                 % lower subst.
  \end{picture}           }   % end cbranch macro
 \newcommand{\tbranch}[7]    {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % Macro tbranch draws structures with vertical branches,     %
  % single or double bonds, going up or down.                  %
  % This macro uses the LaTeX tabbing mechanism.               %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
  \begin{minipage}{\xbox pt}
   \begin{tabbing}
    $#3$\= $#4$\+ \kill
           $#1$   \\ [-#7pt]     % print top subst.
    \ifx#2S                      % vertical bond going up
           \hspace{4pt}\rule{0.4pt}{8pt}  \\ [-#7pt]\fi
    \ifx#2D
           \hspace{2pt}\rule{0.4pt}{8pt}
           \hspace{-2pt}\rule{0.4pt}{8pt} \\ [-#7pt]\fi
           \- \kill
    $#3$\> $#4$\+ \\ [-#7pt]     % substituents on print line
    \ifx#5S                      % vertical bond going down
           \hspace{4pt}\rule{0.4pt}{8pt}  \\ [-#7pt]\fi
    \ifx#5D
           \hspace{2pt}\rule{0.4pt}{8pt}
           \hspace{-2pt}\rule{0.4pt}{8pt} \\ [-#7pt]\fi
           $#6$
  \end{tabbing}
 \end{minipage}    }             % end tbranch macro
 \newcommand{\ethene}[4]    {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets a horizontal ethene fragment with    %
  % four variable substituents.                              %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(-405,170)  {\makebox(300,87)[r]{#1}}       % upper left
                                                    %  subst.
    \put(-405,-185) {\makebox(300,87)[r]{#3}}       % lower left
                                                    %  subst.
    \put(0,70)      {\line(-1,1)        {100}}      % NW bond
    \put(0,0)       {\line(-1,-1)       {100}}      % SW bond
    \put(0,0)       {C}                             % left C
    \multiput(90,20)(0,25){2} {\line(1,0){140}}     % double bond
    \put(240,0)     {C}                             % right C
    \put(315,70)    {\line(1,1)         {100}}      % NE bond
    \put(315,0)     {\line(1,-1)        {100}}      % SE bond
    \put(425,170)   {#2}                            % upper right
                                                    %  subst.
    \put(425,-170)  {#4}                            % lower right
                                                    %  subst.
   \end{picture}               }              % end ethene macro
 \newcommand{\upethene}[4]   {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets a vertical ethene fragment with four   %
  % variable substituents.                                     %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(-430,360)           {\makebox(300,87)[r]{#1}} % NW subst.
    \put(-430,-150)          {\makebox(300,87)[r]{#2}} % SW subst.
    \put(210,370)            {#3}                      % NE subst.
    \put(210,-140)           {#4}                      % SE subst.
    \put(0,300)              {\line(-5,3)  {121}}      % NW bond
    \put(0,230)              {C}                       % upper C
    \put(20,80)              {\line(0,1)   {140}}      % vertical
    \put(46,80)              {\line(0,1)   {140}}      %  d. bond
    \put(0,0)                {C}                       % lower C
    \put(0,0)                {\line(-5,-3) {121}}      % SW bond
    \put(80,300)             {\line(5,3)   {121}}      % NE bond
    \put(80,0)               {\line(5,-3)  {121}}      % SE bond
   \end{picture}             }              % end upethene macro
 \newcommand{\cright}[7]        {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets a trigonal fragment, opening to the     %
  % right. The fragment has a variable center atom and three    %
  % variable substituents. Bonds can be single or double.       %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \ifx#2Q \put(-305,-15){\makebox(300,87)[r]{#1}}   % left sub.
     \else  \put(-455,-15){\makebox(300,87)[r]{#1}} \fi
    \ifx#2S \put(-150,33)    {\line(1,0)   {140}} \fi % single
                                                      % hor. bond
    \ifx#2D \put(-150,20)    {\line(1,0)   {140}}     % hor.
            \put(-150,46)    {\line(1,0)   {140}} \fi %  d. bond
    \put(0,0)                {#3}                     % center
                                                      %  atoms
    \ifx#4S \put(80,70)      {\line(1,1)   {100}} \fi % NE single
                                                      %  bond
    \ifx#4D \put(71,79)      {\line(1,1)   {100}}
            \put(89,61)      {\line(1,1)   {100}} \fi % NE double
    \put(185,170)            {#5}                     % NE subst.
    \ifx#6S \put(80,0)       {\line(1,-1)  {100}} \fi % SE single
    \ifx#6D \put(71,-9)      {\line(1,-1)  {100}}     % SE double
            \put(89,9)       {\line(1,-1)  {100}} \fi %  bond
    \put(185,-170)           {#7}                     % SE subst.
   \end{picture}             }               % end cright macro
 \newcommand{\cleft}[7]      {
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % This macro typesets a trigonal fragment, opening to the     %
 % left. The fragment has a variable center atom and three     %
 % variable substituents. Bonds can be single or double.       %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(-405,160)           {\makebox(300,87)[r]{#1}} % NW subst.
    \ifx#2S \put(0,70)       {\line(-1,1)  {100}} \fi  % NW single
                                                       %  bond
    \ifx#2D \put(9,79)       {\line(-1,1)  {100}}      % NW double
            \put(-9,61)      {\line(-1,1)  {100}} \fi  %  bond
    \put(0,0)                {#3}                      % center
                                                       %  atoms(s)
    \ifx#4S \put(0,0)        {\line(-1,-1) {100}} \fi  % SW single
    \ifx#4D \put(-9,9)       {\line(-1,-1) {100}}      % SW double
            \put(9,-9)       {\line(-1,-1) {100}} \fi  %  bond
    \put(-405,-185)          {\makebox(300,87)[r]{#5}} % SW subst.
    \ifx#6S \put(90,33)      {\line(1,0)   {140}} \fi  % hor.
                                                       %  single
    \ifx#6D \put(90,20)      {\line(1,0)   {140}}      %  double
            \put(90,46)      {\line(1,0)   {140}} \fi  %  bond
    \put(240,0)              {#7}                      % right sub.
   \end{picture}             }               % end cleft macro
 \newcommand{\chemup}[7]        {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets a trigonal fragment, opening          %
  % upwards.  The fragment has a variable center atom and     %
  % three variable substituents.  Bonds are single or         %
  % double.                                                   %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(-430,130)           {\makebox(300,87)[r]{#1}} % NW subst.
    \ifx#2S \put(0,70)       {\line(-5,3)  {121}} \fi  % NW single
    \ifx#2D \put(7,81)       {\line(-5,3)  {121}}      % NW double
            \put(-7,59)      {\line(-5,3)  {121}} \fi  %    bond
    \put(0,0)                {#3}                      % center
                                                       %  atom(s)
    \ifx#4S \put(33,-10)     {\line(0,-1)  {140}} \fi  % vertical
                                                       %  single
    \ifx#4D \put(20,-10)     {\line(0,-1)  {140}}      % vertical
            \put(46,-10)     {\line(0,-1)  {140}} \fi  %  double
    \put(0,-230)             {#5}                      % bottom
                                                       %  subst.
    \ifx#6S \put(80,70)      {\line(5,3)   {121}} \fi  % NE single
    \ifx#6D \put(73,81)      {\line(5,3)   {121}}      % NE double
            \put(87,59)      {\line(5,3)   {121}} \fi  %    bond
    \put(210,140)            {#7}                      % NE subst.
  \end{picture}              }                % end chemup macro
 \newcommand{\cdown}[7]      {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets a trigonal fragment, opening            %
  % downwards. The fragment has a variable center atom and      %
  % three variable substituents. Bonds are single or double.    %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(0,230)              {#1}                      % upper sub.
    \ifx#2S \put(33,80)      {\line(0,1)   {140}} \fi  % vert.
                                                       %  single
    \ifx#2D \put(20,80)      {\line(0,1)   {140}}      %  double
            \put(46,80)      {\line(0,1)   {140}} \fi
    \put(0,0)                {#3}                      % center
                                                       %  atom(s)
    \ifx#4S \put(0,0)        {\line(-5,-3) {121}} \fi  % SW single
    \ifx#4D \put(-7,11)      {\line(-5,-3) {121}}      % SW double
            \put(7,-11)      {\line(-5,-3) {121}} \fi  %    bond
    \put(-430,-150)          {\makebox(300,87)[r]{#5}} % SW subst.
    \ifx#6S \put(80,0)       {\line(5,-3)  {121}} \fi  % SE bond
    \ifx#6D \put(87,11)      {\line(5,-3)  {121}}      % SE double
            \put(73,-11)     {\line(5,-3)  {121}} \fi  %    bond
    \put(210,-140)           {#7}                      % SE subst.
   \end{picture}             }               % end cdown macro
 \newcommand{\csquare}[5]    {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets a fragment that consists of a variable  %
  % center atom with four variable substituents pointing to     %
  % the four corners of a square.                               %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(-405,160)           {\makebox(300,87)[r]{#1}} % NW subst.
    \put(0,70)               {\line(-1,1)  {100}}      % NW bond
    \put(0,0)                {#3}                      % center
                                                       %  atom
    \put(0,0)                {\line(-1,-1) {100}}      % SW bond
    \put(-405,-185)          {\makebox(300,87)[r]{#4}} % SW subst.
    \put(80,70)              {\line(1,1)   {100}}      % NE bond
    \put(185,170)            {#2}                      % NE subst.
    \put(80,0)               {\line(1,-1)  {100}}      % SE bond
    \put(185,-170)           {#5}                      % SE subst.
  \end{picture}              }                % end csquare macro
 \newcommand{\ccirc}[4]    {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % The ccirc macro draws a circle with 2 substituents          %
  % infront of the circle and 2 behind it to give a             %
  % threedimensional impression.                                %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
 \begin{picture}(\pw,\pht)(-\xi,-\yi)
   \put(90,0)    {\circle{180}}
   \put(90,90)   {\line(0,1)   {70}}        % behind and up
   \put(60,170)  {#1}
   \thicklines
   \put(30,10)   {\line(-5,2)  {140}}       % in front
   \put(-415,30) {\makebox(300,87)[r]{#2}}  %  and left
   \put(150,10)  {\line(5,2)   {140}}       % in front
   \put(300,30)  {#3}                       %  and right
   \thinlines
   \put(90,-90)  {\line(0,-1) {90}}         % behind and
   \put(60,-260) {#4}                       %  down
 \end{picture}     }                % end ccirc macro
 
 \newcommand{\threering}[9]     {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % The threering macro typesets the cyclopropane ring       %
  % with optional substituents, an optional double bond,     %
  % and a plus inside the ring for aromaticity.              %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
     \begin{picture}(\pw,\pht)(-\xi,-\yi)
       \put(300,0)     {\line(-3,-5) {150}}     % bond 1 to 2
       \put(150,-244)  {\line(-3,5)  {150}}     % bond 2 to 3
       \put(0,0)       {\line(1,0)   {300}}     % bond 3 to 1
       \ifx#7D \put(40,-40){\line(1,0){220}}\fi % double 3 to 1
       \ifx#1Q                                  % subst. on 1
         \else\put(300,0)    {\line(5,3)   {128}}
              \put(433,50)   {#1}           \fi
       \ifx#2Q                                  % subst. on 2
         \else\ifx#9C \put(150,-244) {\line(0,-1){100}}
                      \put(114,-424) {#2}  % on straight bond
                 \else\put(150,-244) {\line(5,-3)  {128}}
                      \put(283,-344) {#2} \fi \fi % slanted
       \ifx#2Q                                  % subst. on 2
         \else\ifx#5Q \put(150,-244) {\line(0,-1){100}}
                      \put(114,-424) {#2}  % on straight bond
                 \else\put(150,-244) {\line(5,-3)  {128}}
                      \put(283,-344) {#2} \fi \fi % slanted
       \ifx#3Q                                  % subst. on 3
         \else\put(0,0)      {\line(-5,3)  {128}}
              \put(-430,34) {\makebox(300,87)[r]{#3}} \fi
       \ifx#4Q                                  % second subst.
         \else\put(300,0)    {\line(5,-3)  {128}} %  on 1
              \put(433,-100) {#4}           \fi
       \ifx#5Q                                  % second subst.
         \else\put(150,-244) {\line(-5,-3) {128}} %  on 2
              \put(-280,-360){\makebox(300,87)[r]{#5}}  \fi
       \ifx#6Q                                  % second subst.
         \else\put(0,0)      {\line(-5,-3) {128}} %  on 3
              \put(-430,-116){\makebox(300,87)[r]{#6}} \fi
       \ifx#8Q
         \else\multiput(135,-244)(30,0){2}      % outside
              {\line(0,-1)   {100}}             %  double
              \put(114,-424) {#8}           \fi %  on 2
       \ifx#9C \put(150,-90){\circle{120}}   % circle with +
               \put(110,-120){+}            \fi
       \end{picture}            }   % end cycloprop. macro
 \newcommand{\fourring}[9]      {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % The fourring macro typesets the cyclobutane ring with      %
  % optional substituents and double bonds.                    %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
     \begin{picture}(\pw,\pht)(-\xi,-\yi)
      \put(300,300)   {\line(0,-1)  {300}}      % bond 1 to 2
      \put(300,0)     {\line(-1,0)  {300}}      %      2 to 3
      \put(0,0)       {\line(0,1)   {300}}      %      3 to 4
      \put(0,300)     {\line(1,0)   {300}}      %      4 to 1
      \ifx#7D\put(260,260){\line(0,-1){220}}\fi % double 1 to 2
      \ifx#8D\put(40,40)  {\line(0,1) {220}}\fi % double 3 to 4
      \ifx#1Q                                   % subst. on 1
        \else\put(300,300){\line(5,3) {128}}
             \put(433,350){#1}              \fi
      \ifx#2Q                                   % subst. on 2
        \else\put(300,0)  {\line(5,-3){128}}
             \put(433,-100){#2}             \fi
      \ifx#3Q                                   % subst. on 3
        \else\put(0,0)    {\line(-5,-3){128}}
             \put(-430,-116){\makebox(300,87)[r]{#3}} \fi
      \ifx#4Q                                   % subst. on 4
        \else\put(0,300)  {\line(-5,3) {128}}
             \put(-430,334){\makebox(300,87)[r]{#4}}  \fi
      \ifx#5Q                                   % second subst.
        \else\put(300,300){\line(5,-3) {128}}   %  on 1
             \put(433,200){#5}              \fi
      \ifx#6Q                                   % second subst.
        \else\put(0,300)  {\line(-5,-3){128}}   %  on 4
             \put(-430,184){\makebox(300,87)[r]{#6}}  \fi
      \ifx#9Q                                   % outs. double
        \else\multiput(280,-5)(20,30){2}        %  and subst.
             {\line(1,-1){100}} \put(405,-140){#9}   \fi % on 2
    \end{picture}         }             % end cyclobutane macro
   \newcommand{\fivering}[9]    {
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % This macro typesets the cyclopentane ring with optional    %
    % substituents and double bonds. A minus sign in a circle    %
    % can be put inside the ring to denote aromaticity.          %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %
       \begin{picture}(\pw,\pht)(-\xi,-\yi)
        \put(342,200)    {\line(0,-1)   {200}}       % bond 1 to 2
        \put(342,0)      {\line(-5,-3)  {171}}       % bond 2 to 3
        \put(171,-103)   {\line(-5,3)   {171}}       % bond 3 to 4
        \put(0,0)        {\line(0,1)    {200}}       % bond 4 to 5
        \put(0,200)      {\line(1,0)    {342}}       % bond 5 to 1
        \ifx#1Q                                      % subst. on 1
          \else\put(342,200)   {\line(5,3)  {128}}
               \put(475,250)   {#1}              \fi
        \ifx#2Q                                      % subst. on 2
          \else\put(342,0)     {\line(5,-3) {128}}
               \put(475,-100)  {#2}              \fi
        \ifx#3Q                                      % subst. on 3
          \else\put(171,-103)  {\line(0,-1) {100}}
               \put(150,-283)  {#3}              \fi
        \ifx#4Q                                      % subst. on 4
          \else\put(0,0)       {\line(-5,-3){128}}
               \put(-430,-116) {\makebox(300,87)[r]{#4}}  \fi
        \ifx#5Q                                      % subst. on 5
          \else\put(0,200)     {\line(-5,3) {128}}
               \put(-430,234)  {\makebox(300,87)[r]{#5}}  \fi
        \ifx#6D\put(316,174)   {\line(0,-1) {148}}   % double 1,2
          \else\ifx#6S
                 \else\put(342,200) {\line(5,-3) {128}}
                      \put(475,100){#6}   \fi        % second sub.
        \fi                                          %  on 1
        \ifx#7D\put(26,26)     {\line(0,1)  {148}}   % double 4,5
          \else\ifx#7S
                 \else\put(0,200){\line(-5,-3){128}} % second sub.
                      \put(-430,84){\makebox(300,87)[r]{#7}}  \fi
        \fi                                          %  on 5
        \ifx#8Q                                      % outs. double
          \else\multiput(156,-103)(30,0){2}          %  and subst.
               {\line(0,-1) {100}} \put(135,-283){#8}  \fi  % on 3
        \ifx#9C\put(171,60)    {\circle{210}}        % circle and
               \put(130,35)    {$-$}       \fi       %  minus
      \end{picture}          }                 % end 5-ring macro
  \newcommand{\sixring}[9]   {
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % The sixring macro draws standard carbon sixrings in the    %
   % shape of a regular hexagon. There are optional ring        %
   % double bonds and substituents.                             %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(342,200)  {\line(0,-1)  {200}}          % bond 1 to 2
    \put(342,0)    {\line(-5,-3) {171}}          % bond 2 to 3
    \put(171,-103) {\line(-5,3)  {171}}          % bond 3 to 4
    \put(0,0)      {\line(0,1)   {200}}          % bond 4 to 5
    \put(0,200)    {\line(5,3)   {171}}          % bond 5 to 6
    \put(171,303)  {\line(5,-3)  {171}}          % bond 6 to 1
    \ifx#7D                                      % d. bond 1,2
      \put(316,174)   {\line(0,-1)  {148}}
      \else \ifx#7S                              % 2. sub. on 1
            \else\put(342,200) {\line(5,-3) {128}}
                 \put(475,100) {#7}    \fi  \fi
    \ifx#8D
      \put(162,-67)   {\line(-5,3)  {126}}       % double 3 to 4
      \else\ifx#8S
           \else\put(156,-203) {\line(0,1){100}} % outside
                                                 %  double and
                \put(186,-203) {\line(0,1){100}} %  subst. on 3
                \put(135,-283) {#8}    \fi  \fi
    \ifx#9D
      \put(36,191)    {\line(5,3)   {126}} \fi   % double 5 to 6
    \ifx#9C \put(171,100) {\circle{250}}   \fi   % circle for
                                                 %  aromaticity
    \ifx#1Q                                      % subst. on 1
      \else\put(342,200)  {\line(5,3){128}}
           \put(475,250)  {#1}             \fi
    \ifx#2Q
      \else\put(342,0)    {\line(5,-3){128}}     % subst. on 2
           \put(475,-100)    {#2}          \fi
    \ifx#3Q
      \else\put(171,-203) {\line(0,1){100}}
           \put(150,-283) {#3}             \fi   % subst. on 3
    \ifx#4Q
       \else\put(0,0)     {\line(-5,-3){128}}    % subst. on 4
            \put(-430,-116){\makebox(300,87)[r]{#4}}  \fi
    \ifx#5Q
      \else\put(0,200)    {\line(-5,3){128}}     % subst. on 5
           \put(-430,234) {\makebox(300,87)[r]{#5}}   \fi
    \ifx#6Q
      \else\put(171,303)  {\line(0,1){100}}      % subst. on 6
           \put(150,410)  {#6}             \fi
    \ifx#7D  \ifx#9C \message{Error: ring double bond
                             simultaneous with circle}
    \fi   \fi
   \end{picture}           }                % end sixring macro
  \newcommand{\sixringa}[9]   {
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % This macro differs from the original sixring macro only    %
   % in the position of the double bonds in the ring.           %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
     \begin{picture}(\pw,\pht)(-\xi,-\yi)
       \put(342,200)  {\line(0,-1)  {200}}          % bond 1 to 2
       \put(342,0)    {\line(-5,-3) {171}}          % bond 2 to 3
       \put(171,-103) {\line(-5,3)  {171}}          % bond 3 to 4
       \put(0,0)      {\line(0,1)   {200}}          % bond 4 to 5
       \put(0,200)    {\line(5,3)   {171}}          % bond 5 to 6
       \put(171,303)  {\line(5,-3)  {171}}          % bond 6 to 1
       \ifx#7D                                      % double 1,6
         \put(306,191)   {\line(-5,3)  {126}}
         \else \ifx#7S                              % second subst.
               \else\put(342,200) {\line(5,-3) {128}}
                    \put(475,100) {#7}    \fi  \fi  %  on 1
       \ifx#8D
         \put(178,-67)   {\line(5,3)   {126}}       % double 3,2
         \else\ifx#8S
              \else\put(156,-203) {\line(0,1){100}} % outs. double
                   \put(186,-203) {\line(0,1){100}} %  and subst.
                   \put(135,-283) {#8}    \fi   \fi %  on 3
       \ifx#9D
         \put(26,26)     {\line(0,1)   {148}} \fi   % double 4,5
       \ifx#9C \put(171,100) {\circle{250}}   \fi   % circle for
                                                    %  aromaticity
       \ifx#1Q                                      % subst. on 1
         \else\put(342,200)  {\line(5,3){128}}
              \put(475,250)  {#1}             \fi
       \ifx#2Q
         \else\put(342,0)    {\line(5,-3){128}}     % subst. on 2
              \put(475,-100)    {#2}          \fi
      \ifx#3Q
         \else\put(171,-203) {\line(0,1){100}}
              \put(150,-283) {#3}             \fi   % subst. on 3
       \ifx#4Q
          \else\put(0,0)     {\line(-5,-3){128}}    % subst. on 4
               \put(-430,-116){\makebox(300,87)[r]{#4}} \fi
       \ifx#5Q
         \else\put(0,200)    {\line(-5,3){128}}     % subst. on 5
              \put(-430,234) {\makebox(300,87)[r]{#5}}  \fi
       \ifx#6Q
         \else\put(171,303)  {\line(0,1){100}}      % subst. on 6
              \put(150,410)  {#6}             \fi
       \ifx#7D  \ifx#9C \message{Error: ring double bond with
                                        circle} \fi   \fi
      \end{picture}           }             % end sixringa macro
  \newcommand{\sixringb}[9]   {
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % This variation of the sixring can typeset all combina-     %
   % tions of double bonds in the ring through argument 9.      %
   % A para-quinoid structure is also possible.                 %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % macros to typeset the ring double bonds:
  \newcommand{\di}   {\put(316,174){\line(0,-1){148}}} %double 1-2
  \newcommand{\dii}  {\put(178,-67){\line(5,3) {126}}} %double 2-3
  \newcommand{\diii} {\put(162,-67){\line(-5,3){126}}} %double 3-4
  \newcommand{\dfour}{\put(26,26)  {\line(0,1) {148}}} %double 4-5
  \newcommand{\dv}   {\put(36,191) {\line(5,3) {126}}} %double 5-6
  \newcommand{\dsix} {\put(306,191){\line(-5,3){126}}} %double 6-1
     \begin{picture}(\pw,\pht)(-\xi,-\yi)
       \put(342,200)  {\line(0,-1)  {200}}          % bond 1 to 2
       \put(342,0)    {\line(-5,-3) {171}}          % bond 2 to 3
       \put(171,-103) {\line(-5,3)  {171}}          % bond 3 to 4
       \put(0,0)      {\line(0,1)   {200}}          % bond 4 to 5
       \put(0,200)    {\line(5,3)   {171}}          % bond 5 to 6
       \put(171,303)  {\line(5,-3)  {171}}          % bond 6 to 1
       \ifx#7Q
        \else\put(158,303) {\line(0,1) {100}}       % outs. double
             \put(184,303) {\line(0,1) {100}}       %  bond and
             \put(130,420) {#7}    \fi              %  sub. on 6
       \ifx#8Q
        \else\put(156,-203){\line(0,1){100}}        % outs. double
             \put(186,-203){\line(0,1){100}}        %  bond and
             \put(135,-283) {#8}   \fi              %  sub.on 3
       % 17 double bond combinations:
       \ifcase#9 \put(171,100) {\circle{250}}        % circle
         \or \di \or \dii \or \or diii \or \di \diii % arg 9=1-5
         \or \or \or dfour \or \dfour \di            % arg 9=6-9
         \or \dfour \dii \or \or \or \or \or \or \dv % arg 9=10-16
         \or \dv \di \or \dv \dii \or \or \dv \diii  % arg 9=17-20
         \or \dv \diii \di \or \or \or \or \or \or   % arg 9=21-27
         \or \or \or \or \or \dsix \or \or \dsix \dii %      28-34
         \or \or \dsix \diii \or \or \or             % arg 9=35-39
         \or \dsix \dfour \or \or \dsix \dfour \dii  % arg 9=40-42
       \fi
       \ifx#1Q                                      % subst. on 1
         \else\put(342,200)  {\line(5,3){128}}
              \put(475,250)  {#1}       \fi
       \ifx#2Q
         \else\put(342,0)    {\line(5,-3){128}}     % subst. on 2
              \put(475,-100)    {#2}    \fi
      \ifx#3Q
         \else\put(171,-203) {\line(0,1){100}}
              \put(150,-283) {#3}       \fi         % subst. on 3
       \ifx#4Q
          \else\put(0,0)     {\line(-5,-3){128}}    % subst. on 4
               \put(-430,-116){\makebox(300,87)[r]{#4}}  \fi
       \ifx#5Q
         \else\put(0,200)    {\line(-5,3){128}}     % subst. on 5
              \put(-430,234) {\makebox(300,87)[r]{#5}}   \fi
       \ifx#6Q
         \else\put(171,303)  {\line(0,1){100}}      % subst. on 6
              \put(150,410)  {#6}       \fi
       \ifx#7D  \ifx#9C \message{Error: ring double bond with
                                        circle}  \fi  \fi
      \end{picture}           }              % end sixringb macro
  \newcommand{\chair}[8]       {
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % The chair macro typesets the saturated carbon sixring in   %
   % its most favorable conformation. Axial and equatorial      %
   % substituents can be attached in 4 positions.               %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
     \begin{picture}(\pw,\pht)(-\xi,-\yi)
      \put(0,0)       {\line(3,-4)  {170}}      % bond 1 to 2
      \put(170,-226)  {\line(3,1)   {403}}      %      2 to 3
      \put(573,-91)   {\line(6,-1)  {210}}      %      3 to 4
      \put(783,-126)  {\line(-3,4)  {170}}      %      4 to 5
      \put(613,100)   {\line(-3,-1) {403}}      %      5 to 6
      \put(210,-35)   {\line(-6,1)  {210}}      %      6 to 1
                                          % bonds to subst. :
      \put(0,0)       {\line(0,1)   {100}}      % axial on 1
      \put(170,-226)  {\line(0,-1)  {100}}      % axial on 2
      \put(573,-91)   {\line(0,1)   {100}}      % axial on 3
      \put(783,-126)  {\line(0,-1)  {100}}      % axial on 4
      \put(613,100)   {\line(0,1)   {100}}      % axial on 5
      \put(210,-35)   {\line(0,-1)  {100}}      % axial on 6
      \put(0,0)       {\line(-3,-1) {128}}      % eq. on 1
      \put(170,-226)  {\line(-3,1)  {128}}      % eq. on 2
      \put(573,-91)   {\line(3,-1)  {128}}      % eq. on 3
      \put(783,-126)  {\line(3,1)   {128}}      % eq. on 4
      \put(613,100)   {\line(3,-1)  {128}}      % eq. on 5
      \put(210,-35)   {\line(-3,1)  {128}}      % eq on 6
                                          % variable subst.:
      \ifx#1Q\else\put(-30,110)     {#1}    \fi % axial on 1
      \ifx#2Q\else\put(140,-406)    {#2}    \fi % axial on 2
      \ifx#3Q\else\put(543,9)       {#3}    \fi % axial on 3
      \ifx#4Q\else\put(753,-306)    {#4}    \fi % axial on 4
      \ifx#5Q\else\put(-430,-85) {\makebox(300,87)[r]{#5}}
      \fi                                       % eq. on 1
      \ifx#6Q\else\put(-260,-226){\makebox(300,87)[r]{#6}}
      \fi                                       % eq. on 2
      \ifx#7Q\else\put(415,-230) {\makebox(300,87)[r]{#7}}
      \fi                                       % eq. on 3
      \ifx#8Q\else\put(916,-115)    {#8}    \fi % eq. on 4
     \end{picture}              }         % end chair macro
 \newcommand{\naphth}[9]        {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets the naphthalene ring system.           %
  % One or both rings can be saturated. An optional sub-       %
  % stituent is possible at each ring position.                %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
    \begin{picture}(\pw,\pht)(-\xi,-\yi)
     \multiput(0,200)(342,0){2}   {\line(5,3) {171}} % 7,8; 8a,1
     \multiput(171,303)(342,0){2} {\line(5,-3){171}} % 8,8a; 1,2
     \multiput(0,0)(342,0){3}     {\line(0,1) {200}} % 6,7;4a,8a
                                                     % 3,2
     \multiput(0,0)(342,0){2}     {\line(5,-3){171}} % 6,5; 4a,4
     \multiput(171,-103)(342,0){2}{\line(5,3) {171}} % 5,4a; 4,3
     \ifx#1Q
       \else\put(513,303)         {\line(0,1) {100}}  % sub. on 1
            \put(492,410)         {#1}    \fi
     \ifx#2Q
       \else\put(684,200)         {\line(5,3) {128}}  % sub. on 2
            \put(817,250)         {#2}    \fi
     \ifx#3Q
       \else\put(684,0)           {\line(5,-3){128}}  % sub. on 3
            \put(817,-100)        {#3}    \fi
     \ifx#4Q
       \else\put(513,-103)        {\line(0,-1){100}}  % sub. on 4
            \put(492,-283)        {#4}    \fi
     \ifx#5Q
       \else\put(171,-103)        {\line(0,-1){100}}  % sub. on 5
            \put(150,-283)        {#5}    \fi
     \ifx#6Q
       \else\put(0,0)             {\line(-5,-3){128}} % sub. on 6
            \put(-430,-116) {\makebox(300,87)[r]{#6}}   \fi
     \ifx#7Q
       \else\put(0,200)           {\line(-5,3) {128}} % sub. on 7
            \put(-430,234)  {\makebox(300,87)[r]{#7}}   \fi
     \ifx#8Q
       \else\put(171,303)         {\line(0,1)  {100}} %sub. on 8
            \put(150,410)         {#8}    \fi
     \ifx#9S                                          %all single
       \else\put(316,174)         {\line(0,-1) {148}} %double
                                                      %  4a,8a
            \put(162,-67)         {\line(-5,3) {126}} %double 5,6
            \put(36,191)          {\line(5,3)  {126}} %double 7,8
     \fi
     \ifx#9D\put(648,191)         {\line(-5,3) {126}} %double 2,1
            \put(520,-67)         {\line(5,3)  {126}} %double 4,3
     \fi
   \end{picture}       }                % end naphthalene macro
 \newcommand{\terpene}[9]    {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets the bicyclo(2.2.1)heptane ring         %
  % system with optional methyl groups at the one-carbon       %
  % bridge.                                                    %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
 \begin{picture}(\pw,\pht)(-\xi,-\yi)
  \put(0,0)       {\line(5,1)  {196}}        % bond 5 to 4
  \put(196,39)    {\line(5,-2) {186}}        % bond 4 to 3
  \put(382,-35)   {\line(2,5)  {66}}         % bond 3 to 2
  \put(448,130)   {\line(-5,2) {186}}        % bond 2 to 1
  \put(262,204)   {\line(-5,-1){196}}        % bond 1 to 6
  \put(66,165)    {\line(-2,-5){66}}         % bond 6 to 5
  \put(196,39)    {\line(0,1)  {330}}        % long part of
                                             %  bridge
  \put(262,204)   {\line(-2,5) {66}}         % shorter part
                                             %  of bridge
  \ifx#1Q                                    % subst. on 1
    \else\put(262,204)   {\line(4,3)  {120}}
         \put(387,267)   {#1}            \fi
  \ifx#2Q                                    % subst. on 2
    \else\put(448,130)   {\line(4,3)  {120}}
         \put(573,193)   {#2}            \fi
  \ifx#3Q                                    % subst. on 3
    \else\put(382,-35)   {\line(5,-2) {120}}
         \put(507,-121)  {#3}            \fi
  \ifx#4Q                                    % subst. on 4
    \else\put(196,39)    {\line(2,-5) {56}}
         \put(231,-180)  {#4}            \fi
  \ifx#5Q                                    % subst. on 5
    \else\put(0,0)       {\line(-5,-2){139}}
         \put(-441,-95)  {\makebox(300,87)[r]{#5}}  \fi
  \ifx#6Q                                    % subst. on 6
    \else\put(66,165)    {\line(-4,3) {120}}
         \put(-362,216)  {\makebox(300,87)[r]{#6}}  \fi
  \ifx#7M\put(196,369)   {\line(4,3)  {120}} % methyl
         \put(196,369)   {\line(-4,3) {120}} %  groups
         \put(321,432)   {\small ${\rm CH_3}$}
         \put(-226,425)                      %  on bridge
         {\makebox(300,87)[r]{\small ${\rm CH_3}$}} \fi
  \ifx#8Q\else
  \ifx#8O\put(443,142)   {\line(5,2)  {130}} % double-
         \put(453,118)   {\line(5,2)  {130}} %  bonded
         \put(583,155)   {$O$}               %  O on 2
    \else\put(448,130)   {\line(5,-2) {120}} % sec. subst.
         \put(573,44)    {#8}  \fi       \fi %  on 2
  \ifx#9Q\else
  \ifx#9D\put(368,-1)    {\line(2,5) {46}}   % double 3 to 2
    \else\put(382,-35)   {\line(4,3) {120}}  % second subst.
         \put(507,28)    {#9}    \fi     \fi %  on 3
 \end{picture}    }   % end terpene macro
 \newcommand{\steroid}[9]        {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets the steroid skeleton. Optional double  %
  % bonds and substituents make it possible to print the       %
  % structures of common steroids.                             %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
     \begin{picture}(\pw,\pht)(-\xi,-\yi)
       \multiput(0,0)(342,0){3}    {\line(0,1) {200}} %3-2,
                                                      % 5-10,7-8
       \multiput(513,303)(342,0){3}{\line(0,1) {200}} %9-11,14-13,
                                                      %  15-16
       \multiput(0,200)(342,0){3}  {\line(5,3) {171}} %2-1,
                                                      % 10-9,
                                                      % 8-14
       \multiput(0,0)(342,0){2}    {\line(5,-3){171}} %3-4, 5-6
       \multiput(171,-103)(342,0){2}{\line(5,3) {171}} %4-5, 6-7
       \multiput(171,303)(342,0){2}{\line(5,-3){171}} %1-10, 9-8
       \multiput(513,503)(342,0){2}{\line(5,3) {171}} %11-12,
                                                      % 13-17
       \multiput(684,606)(342,0){2}{\line(5,-3){171}} %12-13,
                                                      % 17-16
       \put(855,303)               {\line(1,0) {342}} %14-15
       \put(855,503)               {\line(0,1) {128}} % methyl 18
       \put(795,638)               {\small ${\rm CH_3}$}
       \ifx#1D\put(36,191)         {\line(5,3)  {126}}% double
        \else\ifx#1Q                                  %  1 to 2
              \else\put(520,514)   {\line(-5,3)  {128}}
                   \put(506,492)   {\line(-5,3)  {128}}
                   \put(83,547)    {\makebox(300,87)[r]{#1}} \fi
       \fi                            % outside double & subst. 11
       \ifx#2D\put(162,-67)        {\line(-5,3) {126}} % double
        \else\ifx#2Q                                   %  4 to 3
              \else\put(-7,11)     {\line(-5,-3) {128}}
                   \put(7,-11)     {\line(-5,-3) {128}}
                   \put(-430,-116) {\makebox(300,87)[r]{#2}} \fi
       \fi                            % outside double & subst. 3
       \ifx#3Q
        \else\put(0,0)       {\line(-5,-3){128}}           % subst.
             \put(-430,-116) {\makebox(300,87)[r]{#3}} \fi %  on 3
       \ifx#4D\put(178,-67)  {\line(5,3)  {126}}     \fi % double
                                                         %  4 to 5
       \ifx#5D\put(378,9)    {\line(5,-3) {126}}         % double
                                                         %  6 to 5
        \else\ifx#5Q
               \else\multiput(1011,606)(30,0){2} {\line(0,1) {100}}
                    \put(985,713)         {#5}         \fi
       \fi                             % outside double & subst. 17
       \ifx#6D\put(316,174)  {\line(0,-1) {148}}     \fi % double
                                                         % 5 to 10
       \ifx#6M\put(342,200)  {\line(0,1)  {128}}         % methyl
                                                         %  19
              \put(282,335)  {\small ${\rm CH_3}$}     \fi
       \ifx#7Q
        \else\put(1026,606)  {\line(0,1)  {100}}         % lower
                                                         %  subst.
             \put(995,713)   {#7}                    \fi %  part
                                                         %  on 17
       \ifx#8Q
        \else\put(1026,791)  {\line(0,1)  {100}}         % upper
                                                         %  subst.
             \put(995,900)   {#8}                    \fi %  part
                                                         %  on 17
       \ifx#9Q
        \else\put(1026,606)  {\line(1,0)  {128}}         % the other
             \put(1160,575)  {#9}                    \fi %  subst.
                                                         %  on 17
     \end{picture}       }                    % end steroid macro
 
 \newcommand{\hetthree}[8]       {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % The hetthree macro draws a three-membered ring with one    %
  % hetero atom.                                               %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
  \begin{picture}(\pw,\pht)(-\xi,-\yi)
   \put(170,-170)  {#8}                        % hetero atom
   \put(0,0)       {C}                         % C-2
   \put(360,0)     {C}                         % C-3
   \put(80,30)     {\line(1,0)  {270}}         % bond 2-3
   \put(70,-10)    {\line(1,-1) {100}}         % bond 2-1
   \put(350,-10)   {\line(-1,-1){100}}         % bond 3-1
   \ifx#1Q                                     % substituent
     \else\put(210,-180) {\line(0,-1){80}}     %  on het. atom
          \put(180,-340) {#1}               \fi
   \ifx#6S\put(-10,30)   {\line(-1,0){140}}    % subst. on C-2
          \put(-460,-10) {\makebox(300,87)[r]{#2}} % with hor.
                                                   % bond
     \else\ifx#6H\put(-90,30)   {\line(-1,0) {140}}% bond and H
                 \put(-70,0)    {H}                %  on C-2
                 \put(-540,-10) {\makebox(300,87)[r]{#2}}
          \else  \put(-310,-10) {\makebox(300,87)[r]{#2}} \fi \fi
                                                   % no bond on 2
   \ifx#7S\put(440,30)   {\line(1,0) {140}}    % subst. on C-3
          \put(590,0)    {#3}                  %  with hor. bond
     \else\ifx#7H\put(430,0)    {H}            %  bond with H
                 \put(510,30)   {\line(1,0)  {140}}
                 \put(660,0)    {#3}
          \else  \put(445,0)    {#3}   \fi \fi % no bond on 3
   \ifx#4Q
     \else\put(40,80)    {\line(0,1) {140}}    % second subst.
          \put(-225,220) {\makebox(300,87)[r]{#4}} \fi % on C-2
   \ifx#5Q
     \else\put(400,80)   {\line(0,1) {140}}    % second subst.
          \put(360,230)  {#5}              \fi %  on C-3
  \end{picture}   }      % end hetthree macro
 \newcommand{\hetifive}[9]       {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % The hetifive macro typesets a five-membered ring with one     %
  % hetero atom.                                                  %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(342,0)          {\line(-5,-3) {140}}         % bond 2,1
    \put(342,0)          {\line(0,1)   {200}}         % bond 2,3
    \put(342,200)        {\line(-1,0)  {342}}         % bond 3,4
    \put(0,200)          {\line(0,-1)  {200}}         % bond 4,5
    \put(0,0)            {\line(5,-3)  {140}}         % bond 5,1
    \ifx#1Q
     \else\put(171,-137) {\line(0,-1)  {83}}          % subst.on
          \put(135,-283) {#1}                     \fi % het.atom
    \ifx#2Q
     \else\ifx#2O\put(349,11) {\line(5,-3) {128}}     % outside
                 \put(335,-11){\line(5,-3) {128}}     %  double O
                 \put(475,-120)            {O}        %  on C-2
          \else\put(342,0)    {\line(5,-3) {128}}     % single
               \put(475,-100) {#2}                \fi %  subst.
    \fi                                               %  on C-2
    \ifx#3Q
     \else\put(342,200)  {\line(5,3)   {128}}         % subst. on
          \put(475,250)  {#3}                     \fi %  C-3
    \ifx#4Q
     \else\put(0,200)    {\line(-5,3)  {128}}         % subst. on
          \put(-430,234) {\makebox(300,87)[r]{#4}}\fi %  C-4
    \ifx#5Q
     \else\ifx#5O\put(-7,11)  {\line(-5,-3) {128}}    % outside
                 \put(7,-11)  {\line(-5,-3) {128}}    %  double O
                 \put(-200,-130)            {O}       %  on C-5
          \else\put(0,0)      {\line(-5,-3) {128}}    % single
               \put(-430,-116){\makebox(300,87)[r]{#5}} \fi % sub.
    \fi                                               %  on C-5
    \ifx#6D\put(316,26)       {\line(0,1)  {148}} \fi % double 2,3
    \ifx#7D\put(316,174)      {\line(-1,0) {290}} \fi % double 3,4
    \ifx#8D\put(26,174)       {\line(0,-1) {148}} \fi % double 4,5
    \put(135,-130)            {#9}                    % hetero atom
  \end{picture}               }     % end one-hetero fivering macro
 \newcommand{\heticifive}[9]     {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % The heticifive macro typesets a five-membered ring with     %
  % two hetero atoms separated by a carbon atom.                %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(342,0)          {\line(-5,-3) {140}}         % bond 2,1
    \put(342,0)          {\line(0,1)   {160}}         % bond 2,3
    \put(0,200)          {\line(1,0)   {300}}         % bond 4,3
    \put(0,200)          {\line(0,-1)  {200}}         % bond 4,5
    \put(0,0)            {\line(5,-3)  {140}}         % bond 5,1
    \ifx#1Q
     \else\put(171,-137) {\line(0,-1)  {83}}          % subst. on
          \put(135,-283) {#1}                     \fi %  het-1
    \ifx#2Q
     \else\ifx#2O\put(349,11)   {\line(5,-3) {128}}   % outside
                 \put(335,-11)  {\line(5,-3) {128}}   %  double O
                 \put(475,-120) {O}                   %  on C-2
          \else\put(342,0)      {\line(5,-3) {128}}   % single sub.
               \put(475,-100)   {#2}              \fi %  on C-2
    \fi
    \ifx#3Q
     \else\put(370,217)  {\line(5,3)    {100}}        % subst. on
          \put(475,250)  {#3}                     \fi %  on het-3
    \ifx#4Q
     \else\ifx#4O\put(-7,189)   {\line(-5,3) {128}}   % outside
                 \put(7,211)    {\line(-5,3) {128}}   %  double O
                 \put(-200,250) {O}                   %  on C-4
           \else\put(0,200)     {\line(-5,3) {128}}   % single sub.
                \put(-430,234)  {\makebox(300,87)[r]{#4}} \fi
    \fi                                               % on C-4
    \ifx#5Q
     \else\put(0,0)      {\line(-5,-3)  {128}}        % 1. single
          \put(-430,-116){\makebox(300,87)[r]{#5}}\fi %  subst.
                                                      %  on C-5
    \ifx#6D\put(316,26)  {\line(0,1)    {130}}    \fi % double 2,3
    \ifx#7Q
     \else\ifx#7D\put(26,174)   {\line(0,-1) {148}}   % double 4,5
          \else\put(0,0)        {\line(-5,3) {128}}   % 2. subst.
               \put(-430,34)    {\makebox(300,87)[r]{#7}}  \fi
    \fi                                               %  on C-5
    \put(135,-130)              {#8}                  % het.atom 1
    \put(310,170)               {#9}                  % het.atom 3
   \end{picture}                }    % end heticifive macro
 \newcommand{\pyrazole}[8]      {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets the pyrazole ring with optional        %
  % substituents and double bonds inside and outside the       %
  % ring.                                                      %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(200,-84)        {\line(5,3)    {110}}        % bond 1,2
    \put(342,200)        {\line(0,-1)   {140}}        % bond 3,2
    \put(342,200)        {\line(-1,0)   {342}}        % bond 3,4
    \put(0,200)          {\line(0,-1)   {200}}        % bond 4,5
    \put(0,0)            {\line(5,-3)   {140}}        % bond 5,1
    \put(135,-130)       {N}                          % ring N-1
    \put(310,-30)        {N}                          % ring N-2
    \ifx#1Q
     \else\put(171,-137) {\line(0,-1)   {83}}         % subst. on
          \put(150,-283) {#1}                     \fi %  on N-1
    \ifx#2Q
     \else\put(370,-17)  {\line(5,-3)   {100}}        % subst. on
          \put(475,-100) {#2}                     \fi %  N-2
    \ifx#3Q
     \else\ifx#3O\put(335,211)  {\line(5,3)  {128}}   % outside
                 \put(349,189)  {\line(5,3)  {128}}   %  double O
                 \put(475,250)  {O}                   %  on C-3
          \else\put(342,200)    {\line(5,3)  {128}}   % single sub.
               \put(475,250)    {#3}              \fi %  on C-3
    \fi
    \ifx#4Q
     \else\put(0,200)    {\line(-5,3)   {128}}        % single sub.
          \put(-430,234) {\makebox(300,87)[r]{#4}}\fi %  on C-4
    \ifx#5Q
     \else\ifx#5O\put(-7,11)    {\line(-5,-3){128}}   % outside
                 \put(7,-11)    {\line(-5,-3){128}}   %  double O
                 \put(-200,-130){O}                   %  on C-5
          \else\put(0,0)        {\line(-5,-3){128}}   % single sub.
               \put(-430,-116)  {\makebox(300,87)[r]{#5}}  \fi
    \fi                                               % on C-5
    \ifx#6D\put(316,174) {\line(0,-1)   {114}}    \fi % double 3,2
    \ifx#7D\put(316,174) {\line(-1,0)   {290}}    \fi % double 3,4
    \ifx#8D\put(26,174)  {\line(0,-1)   {148}}    \fi % double 4,5
  \end{picture}          }         % end pyrazole macro
 \newcommand{\hetisix}[9]       {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % The hetisix macro typesets a six-membered ring with        %
  % one hetero atom.                                           %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
    \begin{picture}(\pw,\pht)(-\xi,-\yi)
      \put(342,0)     {\line(-5,-3)  {140}}    % bond 2 to 1
      \put(0,0)       {\line(5,-3)   {140}}    % bond 6 to 1
      \put(342,0)     {\line(0,1)    {200}}    % bond 2 to 3
      \put(342,200)   {\line(-5,3)   {171}}    % bond 3 to 4
      \put(171,303)   {\line(-5,-3)  {171}}    % bond 4 to 5
      \put(0,200)     {\line(0,-1)   {200}}    % bond 5 to 6
      \ifx#7D
        \put(316,26)  {\line(0,1)    {148}}    % double 2 to 3
        \else\ifx#7Q
             \else\put(349,11)  {\line(5,-3){128}} % outside
                  \put(335,-11) {\line(5,-3){128}} %  double sub.
                  \put(475,-120){#7}         \fi   %  on C-2
      \fi
      \ifx#8D
        \put(36,191)  {\line(5,3)    {126}} \fi  % double 5 to 4
      \ifx#1D
        \put(36,9)     {\line(5,-3)  {110}}      % double 6 to 1
        \else\ifx#1Q
             \else\put(171,-220) {\line(0,1) {83}}
                  \put(150,-283) {#1}       \fi  % subst. on het.
      \fi
      \put(135,-130)  {#9}                       % the het.atom
      \ifx#2Q
        \else\put(342,0)    {\line(5,-3)  {128}} % subst. on 2
             \put(475,-100)   {#2}
      \fi
      \ifx#3Q
        \else\put(342,200)  {\line(5,3)   {128}} % subst. on 3
             \put(475,250)  {#3}
      \fi
      \ifx#4Q
        \else\put(171,303)  {\line(0,1)   {100}} % subst. on 4
             \put(150,410)  {#4}
      \fi
      \ifx#5Q
        \else\put(0,200)    {\line(-5,3)  {128}} % subst. on 5
             \put(-430,234) {\makebox(300,87)[r]{#5}}
      \fi
      \ifx#6Q
        \else\put(0,0)      {\line(-5,-3) {128}} % subst. on 6
             \put(-430,-116){\makebox(300,87)[r]{#6}}
      \fi                             % end sixring macro with
    \end{picture}     }               %  one hetero atom
  \newcommand{\pyrimidine}[9]        {
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   % This macro typesets the pyrimidine ring with optional      %
   % substituents and double bonds inside and outside the       %
   % ring.                                                      %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
     \begin{picture}(\pw,\pht)(-\xi,-\yi)
       \put(342,0)     {\line(-5,-3)  {140}}   % from 2 to 1
       \put(0,0)       {\line(5,-3)   {140}}   % from 6 to 1
       \put(342,0)     {\line(0,1)    {160}}   % from 2 to 3
       \put(171,303)   {\line(5,-3)   {140}}   % from 4 to 3
       \put(171,303)   {\line(-5,-3)  {171}}   % from 4 to 5
       \put(0,200)     {\line(0,-1)   {200}}   % from 5 to 6
       \put(135,-130)  {N}
       \put(310,170)   {N}
       \ifx#1Q
        \else\put(171,-137)  {\line(0,-1)  {83}} % sub. on N-1
             \put(150,-283)  {#1}               \fi
       \ifx#2Q
        \else\ifx#2O\put(349,11)  {\line(5,-3) {128}}  % outside
                    \put(335,-11) {\line(5,-3) {128}}  %  double O
                    \put(475,-120){O}                  %  on C-2
             \else\put(342,0)     {\line(5,-3) {128}}  % single
                  \put(475,-100)  {#2}           \fi   %  subst.
       \fi
       \ifx#3Q
        \else\put(370,217)   {\line(5,3)   {100}}      % subst.
             \put(475,250)   {#3}                \fi   %  on N-3
       \ifx#4Q
        \else\ifx#4O\put(158,303) {\line(0,1)  {100}}  % outside
                    \put(184,303) {\line(0,1)  {100}}  %  double O
                    \put(130,410) {O}                  %  on C-4
             \else\put(171,303)   {\line(0,1)  {100}}  % single
                  \put(150,410)    {#4}           \fi  %  subst.
       \fi                                             %  on C-4
       \ifx#5Q
        \else\put(0,200)     {\line(-5,3)   {128}}     % 1. subst.
             \put(-430,234)  {\makebox(300,87)[r]{#5}} \fi
                                                       %  on C-5
       \ifx#6Q
        \else\ifx#6O\put(-7,11)   {\line(-5,-3){128}}  % outside
                    \put(7,-11)   {\line(-5,-3){128}}  %  double O
                    \put(-210,-130){O}                 %  on C-6
             \else\put(0,0)       {\line(-5,-3){128}}  % single s.
                  \put(-430,-116) {\makebox(300,87)[r]{#6}} \fi
       \fi                                             %  on C-6
       \ifx#7D\put(306,9)    {\line(-5,-3)  {120}} \fi % 2,1 doub.
       \ifx#8D\put(180,267)  {\line(5,-3)   {120}}     % 4,3 doub.
        \else\ifx#8Q
             \else\put(0,200){\line(-5,-3)  {128}}     % 2. subst.
                  \put(-430,84) {\makebox(300,87)[r]{#8}}   \fi
       \fi                                             %  on C-5
       \ifx#9D\put(26,174)   {\line(0,-1)   {148}} \fi % 5,6 doub.
   \end{picture}  }                     % end pyrimidine macro
 \newcommand{\pyranose}[9]   {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets monosaccharides with a pyran ring      %
  % system.                                                    %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(588,0)         {\line(-1,-1) {159}}          % 1,2 bond
    \put(429,-159)      {\line(-1,0)  {270}}          % 2,3 bond
    \put(159,-159)      {\line(-1,1)  {159}}          % 3,4 bond
    \put(0,0)           {\line(1,1)   {159}}          % 4,5 bond
    \put(159,159)       {\line(1,0)   {225}}          % C-5 to O
    \put(394,130)       {\small O}                    % ring O
    \put(460,130)       {\line(1,-1)  {128}}          % O to C-1
    \ifx#1Q
     \else\put(588,0)   {\line(1,1)   {100}}          % beta sub.
          \put(700,75)  {#1}                     \fi  %  on C-1
    \ifx#2Q
     \else\put(588,0)   {\line(1,-1)  {100}}          % alpha sub.
          \put(700,-120){#2}                     \fi  %  on C-1
    \ifx#3Q
     \else\put(429,-159){\line(0,1)   {85}}           % up subst.
          \put(225,-75) {\makebox(250,87)[r]{#3}} \fi %  on C-2
    \ifx#4Q
     \else\put(429,-159){\line(0,-1)  {85}}           % down sub.
          \put(400,-315){#4}                      \fi %  on C-2
    \ifx#5Q
     \else\put(159,-159){\line(0,1)   {85}}           % up subst.
          \put(130,-73) {#5}                     \fi  %  on C-3
    \ifx#6Q
     \else\put(159,-159){\line(0,-1)  {85}}           % down sub.
          \put(130,-315){#6}                     \fi  %  on C-3
    \ifx#7Q
     \else\put(0,0)     {\line(0,1)   {85}}           % up subst.
          \put(-270,84) {\makebox(300,87)[r]{#7}} \fi %  on C-4
    \ifx#8Q
     \else\put(0,0)     {\line(0,-1)  {85}}           % down sub.
          \put(-270,-160){\makebox(300,87)[r]{#8}}\fi %  on C-4
    \put(159,159)       {\line(0,1)   {85}}           % C-6
    \put(130,250)       {\small ${\rm CH_{2}}$}       % sub. on
    \put(-370,245)      {\makebox(500,87)[r]{#9}}     %  C-6
  \end{picture}         }                 % end pyranose macro
 \newcommand{\furanose}[8]   {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets monosaccharides with a furan ring      %
  % system.                                                    %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(448,0)              {\line(-1,-2) {89}}      % bond 1,2
    \put(359,-179)           {\line(-1,0)  {270}}     % bond 2,3
    \put(89,-179)            {\line(-1,2)  {89}}      % bond 3,4
    \put(0,0)                {\line(5,3)   {188}}     % C-4 to O
    \put(192,110)            {\small O}               % ring O
    \put(260,113)            {\line(5,-3)  {188}}     % O to C-1
    \ifx#1Q
     \else\ifx#1N\put(448,0) {\line(0,1)   {380}}     % long bond
                                                      %  for nucl.
          \else\put(448,0)   {\line(5,3)   {105}}     % beta sub.
               \put(558,50)  {#1}                 \fi %  on C-1
    \fi
    \ifx#2Q
     \else\put(448,0)        {\line(5,-3)  {105}}     % alpha sub.
          \put(558,-90)      {#2}                \fi  %   on C-1
    \ifx#3Q
     \else\put(359,-179)     {\line(0,1)   {85}}      % up subst.
          \put(155,-95)      {\makebox(250,87)[r]{#3}}\fi %on C-2
    \ifx#4Q
     \else\put(359,-179)     {\line(0,-1)  {85}}      % down sub.
          \put(330,-335)     {#4}                \fi  %  on C-2
    \ifx#5Q
     \else\put(89,-179)      {\line(0,1)   {85}}      % up sub.
          \put(60,-93)       {#5}                \fi  %  on C-3
    \ifx#6Q
     \else\put(89,-179)      {\line(0,-1)  {85}}      % down sub.
          \put(60,-335)      {#6}                \fi  %   on C-3
    \ifx#7Q
     \else\put(0,0)          {\line(0,-1)  {85}}      % down sub.
          \put(-270,-160)    {\makebox(300,87)[r]{#7}}\fi %on C-4
    \put(0,0)                {\line(0,1)   {85}}      % C-5
    \put(-30,90)             {\small ${\rm CH_{2}}$}
    \put(-530,80)            {\makebox(500,87)[r]{#8}}
  \end{picture}        }          % end furanose macro
 \newcommand{\purine}[9]           {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets the purine ring system with optional   %
  % double bonds and substituents.                             %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
    \begin{picture}(\pw,\pht)(-\xi,-\yi)
      \put(0,0)      {\line(0,1)   {160}}          % bond 2 to 1
      \put(0,0)      {\line(5,-3)  {140}}          % from 2 to 3
      \put(342,0)    {\line(-5,-3) {140}}          % from 4 to 3
      \put(342,0)    {\line(0,1)   {200}}          % from 4 to 5
      \put(316,174)  {\line(0,-1)  {148}}          % double 5 to 4
      \put(342,200)  {\line(-5,3)  {171}}          % from 5 to 6
      \put(171,303)  {\line(-5,-3) {140}}          % from 6 to 1
      \put(342,200)  {\line(1,0)   {300}}          % from 5 to 7
      \put(684,0)    {\line(0,1)   {160}}          % from 8 to 7
      \put(684,0)    {\line(-5,-3) {140}}          % from 8 to 9
      \put(342,0)    {\line(5,-3)  {140}}          % from 4 to 9
      \put(-32,170)  {\small N}                    % N at 1
      \put(135,-130) {\small N}                    % N at 3
      \put(652,170)  {\small N}                    % N at 7
      \put(477,-130) {\small N}                    % N at 9
      \ifx#1Q
        \else\put(-128,277) {\line(5,-3) {100}}    % subst. on 1
             \put(-430,234) {\makebox(300,87)[r]{#1}}
      \fi
      \ifx#2D\put(36,9)     {\line(5,-3) {100}}    % double 2 to 3
        \else\put(-7,11)    {\line(-5,-3) {128}}
             \put(7,-11)    {\line(-5,-3) {128}}
             \put(-430,-116){\makebox(300,87)[r]{#2}}
      \fi                                          %outside double
                                                   %  bond on 2
      \ifx#3Q                                      % subst. on 3
        \else\put(171,-130) {\line(0,-1) {73}}
             \put(135,-283) {#3}
      \fi
      \ifx#4D\put(162,267)  {\line(-5,-3){110}} \fi % d. bond 6,1
      \ifx#5Q
        \else\multiput(158,303)(26,0){2} {\line(0,1) {100}}
             \put(135,410)  {#5}                % outside d.-bond
      \fi                                       % and subst. on 6
      \ifx#6Q                                   % single-bonded
        \else\put(171,303)  {\line(0,1)  {100}} % subst. on 6
             \put(150,410)  {#6}
      \fi
      \ifx#7Q                                   % subst. on 7
        \else\put(812,277)  {\line(-5,-3){100}}
             \put(817,250)  {#7}
      \fi
      \ifx#8D\put(658,26)   {\line(0,1)  {125}} % d.-bond 8 to 7
        \else\put(691,11)   {\line(5,-3) {128}}
             \put(677,-11)  {\line(5,-3) {128}}
             \put(817,-110) {#8}                % outside d.-bond
      \fi                                       % and subst. on 8
      \ifx#9Q                                   % subst. on 9
        \else\put(513,-130) {\line(0,-1) {73}}
             \put(492,-283) {#9}
      \fi
      \end{picture}      }            % end purine macro
 
 
 
 
 
 
 
 \newcommand{\fuseiv}[9]      {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets a four-carbon fragment designed to     %
  % be connected to another ring at two places. As the         %
  % result, a sixring is fused linearly to another ring        %
  % system.                                                    %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(0,200)     {\line(5,3)  {171}}                % NE bond
    \put(171,303)   {\line(5,-3) {171}}                % SE bond
    \put(342,200)   {\line(0,-1) {200}}                % S  bond
    \put(342,0)     {\line(-5,-3){171}}                % SW bond
    \put(171,-103)  {\line(-5,3) {171}}                % NW bond
    \ifx#1Q
     \else\put(171,303)   {\line(0,1)   {100}}         % subst.
          \put(150,410)   {#1}                     \fi %  on top
    \ifx#2Q
     \else\put(342,200)   {\line(5,3)   {128}}         % subst.
          \put(475,250)   {#2}                     \fi %  top rt.
    \ifx#3Q
     \else\put(342,0)     {\line(5,-3)  {128}}         % subst.
          \put(475,-100)  {#3}                     \fi %  low rt.
    \ifx#4Q
     \else\put(171,-103)  {\line(0,-1)  {100}}         % bottom
          \put(150,-283)  {#4}                     \fi %  subst.
    \ifx#5D \put(36,191)  {\line(5,3)   {126}}     \fi % NE double
    \ifx#6D \put(180,267) {\line(5,-3)  {126}}         % SE double
     \else\ifx#6Q
           \else\put(342,200)  {\line(5,-3)  {128}}    % 2. subst.
                \put(475,100)  {#6}                \fi %  top rt.
    \fi
    \ifx#7D \put(316,174) {\line(0,-1)  {148}}     \fi % S  double
    \ifx#8D \put(306,9)   {\line(-5,-3) {126}}         % SW double
     \else\ifx#8Q
           \else\put(342,0)    {\line(5,3)   {128}}    % 2. subst.
                \put(475,50)   {#8}                \fi % lower rt.
    \fi
    \ifx#9D \put(162,-67) {\line(-5,3)       {126}}\fi % NW double
  \end{picture}        }               % end fuseiv macro
 \newcommand{\fuseup}[9]   {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets a four-carbon fragment designed to     %
  % connect to another ring at two places. As the result,      %
  % a sixring is fused angularly to the original ring.         %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(-171,303)        {\line(0,1)   {200}}         % N  bond
    \put(-171,503)        {\line(5,3)   {171}}         % NE bond
    \put(0,606)           {\line(5,-3)  {171}}         % SE bond
    \put(171,503)         {\line(0,-1)  {200}}         % S  bond
    \put(171,303)         {\line(-5,-3) {171}}         % SW bond
    \ifx#1Q
     \else\put(-171,503)  {\line(-5,3)  {128}}      % upper left
          \put(-600,537)  {\makebox(300,87)[r]{#1}}\fi %  subst.
    \ifx#2Q
     \else\put(0,606)     {\line(0,1)   {100}}         % top sub.
          \put(-19,713)   {#2}                     \fi
    \ifx#3Q
     \else\put(171,503)   {\line(5,3)   {128}}         % top rt.
          \put(304,553)   {#3}                     \fi %  subst.
    \ifx#4Q
     \else\put(171,303)   {\line(5,-3)  {128}}         % lower rt.
          \put(304,203)   {#4}                     \fi %  subst.
    \ifx#5D\put(-145,329) {\line(0,1)   {148}}     \fi % N double
    \ifx#6D\put(-135,494) {\line(5,3)   {126}}     \fi % NE double
    \ifx#7D\put(9,570)    {\line(5,-3)  {126}}     \fi % SE double
    \ifx#8D\put(145,477)  {\line(0,-1)  {148}}     \fi % S  double
    \ifx#9D\put(135,312)  {\line(-5,-3) {126}}     \fi % SW double
  \end{picture}      }                  % end fuseup macro
 \newcommand{\fuseiii}[6]    {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets a three-carbon fragment designed to    %
  % be connected to another ring at two places. As the         %
  % result, a fivering is fused linearly to the original       %
  % ring system.                                               %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \begin{picture}(\pw,\pht)(-\xi,-\yi)
    \put(0,200)     {\line(1,0)   {342}}               % E  bond
    \put(342,200)   {\line(0,-1)  {200}}               % S  bond
    \put(342,0)     {\line(-5,-3) {171}}               % SW bond
    \put(171,-103)  {\line(-5,3)  {171}}               % NW bond
    \ifx#1Q
     \else\put(342,200)   {\line(5,3)   {128}}         % upper rt.
          \put(475,250)   {#1}                     \fi %  subst.
    \ifx#2Q
     \else\put(342,0)     {\line(5,-3)  {128}}         % lower rt.
          \put(475,-100)  {#2}                     \fi %  subst.
    \ifx#3Q
     \else\put(171,-103)  {\line(0,-1)  {100}}         % bottom
          \put(150,-283)  {#3}                     \fi %  subst.
    \ifx#4Q
     \else\put(342,200)   {\line(5,-3)  {128}}         % 2. upper
          \put(475,100)   {#4}                     \fi %  rt. sub.
    \ifx#5Q
     \else\put(342,0)     {\line(5,3)   {128}}         % 2. lower
          \put(475,50)    {#5}                     \fi %  rt. sub.
    \ifx#6D \put(316,174) {\line(0,-1)  {148}}     \fi % S double
  \end{picture}      }                  % end fuseiii macro
 \newcommand{\cto}[3]   {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets an arrow for a chemical equation and   %
  % puts text above and below it.                              %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
   \len=50   \multiply \len by #3                % calc. arrow
   \advance  \len by 120                         % length
     \begin{picture}(\pw,\pht)(-\xi,-\yi)
      \put(60,50)     {\vector(1,0)   {\len}}    % draw arrow
      \put(90,70)     {\makebox(\len,70)[l]
                      {\scriptsize ${\rm #1}$}}  % text on top
      \put(90,-40)    {\makebox(\len,70)[l]
                      {\scriptsize ${\rm #2}$}}  % text below
    \end{picture}     }
 \newcommand{\sbond}[1]    {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets a horizontal single bond of user-      %
  % specified length.                                          %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
  \xbox=#1  \advance \xbox by 2
  \hspace{1.5pt} \parbox{\xbox pt} {\rule{#1 pt}{0.4pt} }
  \xbox=50     }  % end sbond macro
 \newcommand{\dbond}[2]    {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets a horizontal double bond of user-     %
  % specified length.                                         %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
  \xbox=#1  \advance \xbox by 2
  \hspace{1.5pt}\parbox{\xbox pt}
                       {\rule{#1 pt}{0.4pt}\vspace{-#2 pt}\\
                        \rule{#1 pt}{0.4pt}  }
  \xbox=50     }  % end dbond macro
 \newcommand{\tbond}[2]   {
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % This macro typesets a horizontal triple bond of user-     %
  % specified length.                                         %
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %
  \xbox=#1   \advance  \xbox by 2
  \hspace{1.5pt} \parbox{\xbox pt}
                        {\rule{#1 pt}{0.4pt}\vspace{-#2 pt}\\
                         \rule{#1 pt}{0.4pt}\vspace{-#2 pt}\\
                         \rule{#1 pt}{0.4pt}   }
  \xbox=50     }   % end tbond macro