% aliphat.sty
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
\typeout{       -- Released December 1, 1993 by Shinsaku Fujita}
\typeout{}
% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
%
% This file is a part of the macro package ``XyMTeX'' which has been 
% designed for typesetting chemical structural formulas.
%
% This file is to be contained in the ``xymtex'' directory which is 
% an input directory for TeX. It is a LaTeX optional style file and 
% should be used only within LaTeX, because several macros of the file 
% are based on LaTeX commands. 
%
% For the review of XyMTeX, see
%  (1)  Shinsaku Fujita, ``Typesetting structural formulas with the text
%    formatter TeX/LaTeX'', Computers and Chemistry, in press.    
% The following book deals with an application of TeX/LaTeX to 
% preparation of manuscripts of chemical fields:
%  (2)  Shinsaku Fujita, ``LaTeX for Chemists and Biochemists'' 
%    Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].  
%
% Copying of this file is authorized only if either
%  (1) you make absolutely no changes to your copy, including name and 
%     directory name; or
%  (2) if you do make changes, 
%     (a) you name it something other than the names included in the 
%         ``xymtex'' directory and 
%     (b) you are requested to leave this notice intact.
% This restriction ensures that all standard styles are identical.
%
% Please report any bugs, comments, suggestions, etc. to:
%   Shinsaku Fujita, 
%   Ashigara Research Laboratories, Fuji Photo Film Co., Ltd., 
%   Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\j@urnalname{aliphat}
\def\versi@ndate{December 01, 1993}
\def\versi@nno{ver1.00}
\def\copyrighth@lder{SF}% Shinsaku Fujita
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\typeout{Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>\space%
 [\copyrighth@lder]}
%
% *********************************
% * aliphat.sty: list of commands *
% *********************************
%
% <Conventions for bond-setting>
%
%     \Northbond
%     \Eastbond
%     \Southbond
%     \Westbond
%     \NEBond
%     \NEbond
%     \SEBond
%     \SEbond
%     \NWBond
%     \NWbond
%     \SWBond
%     \SWbond
%
%  <Macros for tetravalent atoms>
%
%     \tetrahedral                       \@tetrahedral
%     \square                            \@square
%
%  <Macros for trivalent atoms>
%
%     \rtrigonal                         \@rtrigonal
%     \ltrigonal                         \@ltrigonal
%     \utrigonal                         \@utrigonal
%     \Utrigonal                         \@Utrigonal
%     \dtrigonal                         \@dtrigonal
%     \Dtrigonal                         \@Dtrigonal
%
%  <Macros for two-carbon compounds>
%
%     \ethylene                          \@ethylene
%     \ethylenev                         \@ethylenev
%     \Ethylenev                         \@Ethylenev
%
%  <Macros for stereo-projection>
%
%     \tetrastereo                       \@tetrastereo
%     \dtetrastereo                      \@dtetrastereo
%     \ethanestereo                      \@ethanestereo
%
% *************************
% * input of basic macros *
% *************************
\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
\unitlength=0.1pt
% ********************************
% * Conventions for bond-setting *
% ********************************
\def\Northbond{%
\begin{picture}(100,200)(0,0)
  \putlratom{-40}{167}{\@memberb}%==1 upper substituent
  \if\@tmpb D\relax%
    \multiput(-13,52)(26,0){2}{\line(0,1){100}}% double bond up
  \else\if\@tmpb T\relax%
    \multiput(-20,52)(20,0){3}{\line(0,1){100}}% triple bond up
  \else\if\@tmpb A%(A) alpha
    {\thicklines\put(-8,52){\line(0,1){100}}}% single bond (alpha)
  \else\if\@tmpb B%(B) beta
       \@ifundefined{dottedline}{\put(0,52){\line(0,1){100}}}%
         {{\thicklines \dottedline{20}(0,52)(0,152)}}%
  \else\if\@tmpb S%
       \put(0,52){\line(0,1){100}}%
  \else \put(0,52){\line(0,1){100}}%
  \fi\fi\fi\fi\fi%
\end{picture}}%
\def\Eastbond{%
\begin{picture}(200,200)(0,0)
  \putratom{200}{-33}{\@memberb}%==2 right substituent
  \if\@tmpb D\relax%
     \multiput(50,-13)(0,26){2}{\line(1,0){140}}% double bond right
  \else\if\@tmpb T\relax%
     \multiput(50,-20)(0,20){3}{\line(1,0){140}}% double bond right
  \else\if\@tmpb A%(A) alpha
    {\thicklines\put(50,0){\line(1,0){140}}}% single bond (alpha)
  \else\if\@tmpb B%(B) beta
       \@ifundefined{dottedline}{\put(50,0){\line(1,0){140}}}%
         {{\thicklines \dottedline{20}(50,0)(203,0)}}%
  \else\if\@tmpb S%
       \put(50,0){\line(1,0){140}}%
    \else \put(50,0){\line(1,0){140}}%
  \fi\fi\fi\fi\fi%
\end{picture}}%
\def\Southbond{%
\begin{picture}(100,300)(0,0)
  \putlratom{-40}{-243}{\@memberb}%==3 down substituent
  \if\@tmpb D\relax%
     \multiput(-13,-48)(26,0){2}{\line(0,-1){100}}% double bond down
  \else\if\@tmpb T\relax%
     \multiput(-20,-48)(20,0){3}{\line(0,-1){100}}% double bond down
  \else\if\@tmpb A%(A) alpha
    {\thicklines\put(-8,-48){\line(0,-1){100}}}% single bond (alpha)
  \else\if\@tmpb B%(B) beta
       \@ifundefined{dottedline}{\put(0,-48){\line(0,-1){100}}}%
         {{\thicklines \dottedline{20}(0,-48)(0,-148)}}%
  \else\if\@tmpb S%
       \put(0,-48){\line(0,-1){100}}%
    \else \put(0,-48){\line(0,-1){100}}%
  \fi\fi\fi\fi\fi%
\end{picture}}%
%
\def\Westbond{%
\begin{picture}(100,300)(0,0)
 \putlatom{-200}{-33}{\@memberb}%==4 left substituent
  \if\@tmpb D\relax%
     \multiput(-190,-13)(0,26){2}{\line(1,0){140}}% double bond left
  \else\if\@tmpb T\relax%
     \multiput(-190,-20)(0,20){3}{\line(1,0){140}}% double bond left
  \else\if\@tmpb A%(A) alpha
    {\thicklines\put(-190,0){\line(1,0){140}}}% single bond (alpha)
  \else\if\@tmpb B%(B) beta
       \@ifundefined{dottedline}{\put(-190,0){\line(1,0){140}}}%
         {{\thicklines \dottedline{20}(-190,0)(-40,0)}}%
  \else\if\@tmpb S%
       \put(-190,0){\line(1,0){140}}%
  \else \put(-190,0){\line(1,0){140}}%
  \fi\fi\fi\fi\fi\end{picture}}%
%
\def\NEBond{%degree 120
\begin{picture}(100,300)(0,0)
  \putratom{170}{107}{\@memberb}%==2 (northeast substituent)
  \if\@tmpb D\relax%
    \put(33,48){\line(5,3){121}}%
    \put(47,26){\line(5,3){121}}%northeast double bond
  \else\if\@tmpb T\relax%
    \put(31,52){\line(5,3){121}}%
    \put(40,37){\line(5,3){121}}%
    \put(49,22){\line(5,3){121}}%northeast triple bond
  \else\if\@tmpb A%(A) alpha
    {\thicklines\put(40,47){\line(5,3){121}}}% single bond (alpha)
  \else\if\@tmpb B%(B) beta
       \@ifundefined{dottedline}{\put(40,47){\line(5,3){121}}}%
         {{\thicklines \dottedline{20}(40,47)(161,120)}}%
  \else\if\@tmpb S%
       \put(40,47){\line(5,3){121}}%
  \else \put(40,47){\line(5,3){121}}%
  \fi\fi\fi\fi\fi\end{picture}}%
%
\def\NEbond{%degree 90
\begin{picture}(100,300)(0,0)
  \putratom{145}{137}{\@memberb}%==2 (northeast substituent)
  \if\@tmpb D\relax%
     \put(31,46){\line(1,1){100}}%
     \put(49,28){\line(1,1){100}}%northeast double bond
  \else\if\@tmpb T\relax%
     \put(27,50){\line(1,1){100}}%
     \put(40,37){\line(1,1){100}}%
     \put(53,24){\line(1,1){100}}%northeast triple bond
  \else\if\@tmpb A%(A) alpha
    {\thicklines\put(40,47){\line(1,1){100}}}% single bond (alpha)
  \else\if\@tmpb B%(B) beta
       \@ifundefined{dottedline}{\put(40,47){\line(1,1){100}}}%
         {{\thicklines \dottedline{20}(40,47)(140,147)}}%
  \else\if\@tmpb S%
       \put(40,47){\line(1,1){100}}%
  \else \put(40,47){\line(1,1){100}}%
  \fi\fi\fi\fi\fi\end{picture}}%
%%
\def\SEBond{%degree 120
\begin{picture}(100,300)(0,0)
  \putratom{170}{-187}{\@memberb}%==2 (southeast substituent)
  \if\@tmpb D\relax%
    \put(33,-48){\line(5,-3){121}}%
    \put(47,-26){\line(5,-3){121}}%southeast double bond
  \else\if\@tmpb T\relax%
    \put(31,-52){\line(5,-3){121}}%
    \put(40,-37){\line(5,-3){121}}%
    \put(49,-22){\line(5,-3){121}}%southeast triple bond
  \else\if\@tmpb A%(A) alpha
    {\thicklines\put(40,-47){\line(5,-3){121}}}% single bond (alpha)
  \else\if\@tmpb B%(B) beta
       \@ifundefined{dottedline}{\put(40,-47){\line(5,-3){121}}}%
         {{\thicklines \dottedline{20}(40,-47)(161,-120)}}%
  \else\if\@tmpb S%
       \put(40,-47){\line(5,-3){121}}%
  \else \put(40,-47){\line(5,-3){121}}%
  \fi\fi\fi\fi\fi\end{picture}}%
%%
\def\SEbond{%degree 90
\begin{picture}(100,300)(0,0)
 \putratom{145}{-203}{\@memberb}%==3 (southeast substituent)
  \if\@tmpb D\relax%
     \put(31,-46){\line(1,-1){100}}%
     \put(49,-28){\line(1,-1){100}}%southeast double bond
  \else\if\@tmpb T\relax%
     \put(27,-50){\line(1,-1){100}}%
     \put(40,-37){\line(1,-1){100}}%
     \put(53,-24){\line(1,-1){100}}%southeast triple bond
  \else\if\@tmpb A%(A) alpha
    {\thicklines\put(53,-47){\line(1,-1){100}}}% single bond (alpha)
  \else\if\@tmpb B%(B) beta
       \@ifundefined{dottedline}{\put(40,-47){\line(1,-1){100}}}%
         {{\thicklines \dottedline{20}(40,-47)(140,-147)}}%
  \else\if\@tmpb S%
       \put(40,-47){\line(1,-1){100}}%
  \else \put(40,-47){\line(1,-1){100}}%
  \fi\fi\fi\fi\fi\end{picture}}%
%
\def\NWBond{%
\begin{picture}(100,300)(0,0)
  \putlatom{-196}{107}{\@memberb}%==2 (northwest substituent)
  \if\@tmpb D\relax%
    \put(-59,48){\line(-5,3){121}}%
    \put(-73,26){\line(-5,3){121}}%northwest double bond
  \else\if\@tmpb T\relax%
    \put(-57,52){\line(-5,3){121}}%
    \put(-66,37){\line(-5,3){121}}%
    \put(-75,22){\line(-5,3){121}}%northwest triple bond
  \else\if\@tmpb A%(A) alpha
    {\thicklines\put(-66,47){\line(-5,3){121}}}% single bond (alpha)
  \else\if\@tmpb B%(B) beta
       \@ifundefined{dottedline}{\put(-66,47){\line(-5,3){121}}}%
         {{\thicklines \dottedline{20}(-66,47)(-187,120)}}%
  \else\if\@tmpb S%
       \put(-66,47){\line(-5,3){121}}%
  \else \put(-66,47){\line(-5,3){121}}%
  \fi\fi\fi\fi\fi\end{picture}}%
%%
\def\NWbond{%
\begin{picture}(100,300)(0,0)
  \putlatom{-163}{137}{\@memberb}%==2 (northwest substituent)
  \if\@tmpb D\relax%
     \put(-41,46){\line(-1,1){100}}%
     \put(-59,28){\line(-1,1){100}}%northwest double bond
  \else\if\@tmpb T\relax%
     \put(-37,50){\line(-1,1){100}}%
     \put(-50,37){\line(-1,1){100}}%
     \put(-63,24){\line(-1,1){100}}%northwest triple bond
  \else\if\@tmpb A%(A) alpha
    {\thicklines\put(-50,47){\line(-1,1){100}}}% single bond (alpha)
  \else\if\@tmpb B%(B) beta
       \@ifundefined{dottedline}{\put(-50,47){\line(-1,1){100}}}%
         {{\thicklines \dottedline{20}(-50,47)(-137,147)}}%
  \else\if\@tmpb S%
       \put(-50,47){\line(-1,1){100}}%
  \else \put(-50,47){\line(-1,1){100}}%
  \fi\fi\fi\fi\fi\end{picture}}%
%
\def\SWBond{%
\begin{picture}(100,300)(0,0)
  \putlatom{-196}{-187}{\@memberb}%==2 (southwest substituent)
  \if\@tmpb D\relax%
    \put(-59,-48){\line(-5,-3){121}}%
    \put(-73,-26){\line(-5,-3){121}}%southwest double bond
  \else\if\@tmpb T\relax%
    \put(-57,-52){\line(-5,-3){121}}%
    \put(-66,-37){\line(-5,-3){121}}%
    \put(-75,-22){\line(-5,-3){121}}%southwest triple bond
  \else\if\@tmpb A%(A) alpha
    {\thicklines\put(-66,-47){\line(-5,-3){121}}}% single bond (alpha)
  \else\if\@tmpb B%(B) beta
       \@ifundefined{dottedline}{\put(-66,-47){\line(-5,-3){121}}}%
         {{\thicklines \dottedline{20}(-66,-47)(-187,-120)}}%
  \else\if\@tmpb S%
       \put(-66,-47){\line(-5,-3){121}}%
  \else \put(-66,-47){\line(-5,-3){121}}%
  \fi\fi\fi\fi\fi\end{picture}}%
%%
\def\SWbond{%
\begin{picture}(100,300)(0,0)
 \putlatom{-163}{-203}{\@memberb}%==3 (southwest substituent)
  \if\@tmpb D\relax%
     \put(-41,-46){\line(-1,-1){100}}%
     \put(-59,-28){\line(-1,-1){100}}%southwest double bond
  \else\if\@tmpb T\relax%
     \put(-37,-50){\line(-1,-1){100}}%
     \put(-50,-37){\line(-1,-1){100}}%
     \put(-63,-24){\line(-1,-1){100}}%southwest triple bond
  \else\if\@tmpb A%(A) alpha
    {\thicklines\put(-50,-47){\line(-1,-1){100}}}% single bond (alpha)
  \else\if\@tmpb B%(B) beta
       \@ifundefined{dottedline}{\put(-50,-47){\line(-1,-1){100}}}%
         {{\thicklines \dottedline{20}(-50,-47)(-137,-147)}}%
  \else\if\@tmpb S%
       \put(-50,-47){\line(-1,-1){100}}%
  \else \put(-50,-47){\line(-1,-1){100}}%
  \fi\fi\fi\fi\fi\end{picture}}%
%
% ********************
% * tetrahedral unit *
% ********************
%
% The following numbering is adopted in this macro. 
%
%                1
%
%                |
%          2  -- 0 --  4       0 <== the original point
%                |
%
%                3
%
%   \tetrahedral[AUXLIST]{SUBSLIST}          
%
%     AUXLIST = 
%
%           {0+}       :  + charge (or another one chararacter) on the center
%
%     SUBSLIST: list of substituents (max 4 substitution positions)
%
%       for n = 1 to 4 
%
%           nT         :  triple bond at n-atom 
%           nD         :  double bond at n-atom 
%           n or nS    :  single bond at n-atom
%           nA         :  alpha single bond at n-atom
%           nB         :  beta single bond at n-atom
%
%       for 0          :  cetral atom (e.g. 0==C)
%
%       e.g. 
%        
%        \tetrahedral{1==Cl;2==F}
%        \tetrahedral{1==Cl;4==F;2==CH$_{3}$}
%
\def\tetrahedral{\@ifnextchar[{\@tetrahedral[r}{\@tetrahedral[r]}}
\def\@tetrahedral#1]#2{%
 \begin{picture}(600,600)(-300,-300)%
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `tetrahedral' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\@tfor\member:=#1\do{%
   \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 0\relax \putratom{47}{50}{\scriptsize\@@tmpb}\fi}%
\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
%\ifcase\@tmpa \Putlratom{-27}{-33}{\@memberb}%central atom
\or\put(0,0){\Northbond}%
\or\put(0,0){\Westbond}%
\or\put(0,0){\Southbond}%
\or\put(0,0){\Eastbond}%
\fi}%end of ifcase
\end{picture}}%end of macro tetrahedral
%
% *************************
% * trigonal unit (right) *
% *************************
%
% The following numbering is adopted in this macro. 
%
%                      3
%                    /
%                  /
%         1  --- 0  90      0 <== the original point
%                 `
%                   `
%                     2
%
%   \rtrigonal[AUXLIST]{SUBSLIST}          
%
%     AUXLIST = 
%
%           {0+}       :  + charge (or another one chararacter) on the center
%
%     SUBSLIST: list of substituents (max 3 substitution positions)
%
%       for n = 1 to 3 
%
%           nT         :  triple bond at n-atom 
%           nD         :  double bond at n-atom 
%           n or nS    :  single bond at n-atom
%           nA         :  alpha single bond at n-atom
%           nB         :  beta single bond at n-atom
%
%       for 0          :  cetral atom (e.g. 0==C)
%
%       e.g. 
%        
%        \rtrigonal{1==Cl;2==F}
%        \rtrigonal{1==Cl;4==F;2==CH$_{3}$}
%
\def\rtrigonal{\@ifnextchar[{\@rtrigonal[r}{\@rtrigonal[r]}}
\def\@rtrigonal#1]#2{%
\begin{picture}(600,600)(-300,-300)%
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `rtrigonal' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\@tfor\member:=#1\do{%
   \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 0\relax \putratom{-27}{50}{\scriptsize\@@tmpb}\fi}%
\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
%\ifcase\@tmpa \Putlratom{-27}{-33}{\@memberb}%central atom
\or\put(0,0){\Westbond}%
\or\put(0,0){\SEbond}%
\or\put(0,0){\NEbond}%
\fi}%end of ifcase
\end{picture}}%end of macro rtrigonal
%
% ************************
% * trigonal unit (left) *
% ************************
%
% The following numbering is adopted in this macro. 
%
%         2
%           ` 
%             `
%          90   0 --- 1       0 <== the original point
%             /
%           /
%         3
%
%   \ltrigonal[AUXLIST]{SUBSLIST}          
%
%     AUXLIST = 
%
%           {0+}       :  + charge (or another one chararacter) on the center
%
%     SUBSLIST: list of substituents (max 3 substitution positions)
%
%       for n = 1 to 3 
%
%           nT         :  triple bond at n-atom 
%           nD         :  double bond at n-atom 
%           n or nS    :  single bond at n-atom
%           nA         :  alpha single bond at n-atom
%           nB         :  beta single bond at n-atom
%
%       for 0          :  cetral atom (e.g. 0==C)
%
%       e.g. 
%        
%        \ltrigonal{1==Cl;2==F}
%        \ltrigonal{1==Cl;4==F;2==CH$_{3}$}
%
\def\ltrigonal{\@ifnextchar[{\@ltrigonal[r}{\@ltrigonal[r]}}
\def\@ltrigonal#1]#2{%
 \begin{picture}(600,600)(-300,-300)%
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `ltrigonal' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\@tfor\member:=#1\do{%
   \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 0\relax \putratom{-27}{50}{\scriptsize\@@tmpb}\fi}%
\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
%\ifcase\@tmpa \Putlratom{-27}{-33}{\@memberb}%central atom
\or\put(0,0){\Eastbond}%
\or\put(0,0){\NWbond}%
\or\put(0,0){\SWbond}%
\fi}%end of ifcase
\end{picture}}%end of macro ltrigonal
%
% **********************
% * trigonal unit (up) *
% **********************
%
% The following numbering is adopted in this macro. 
%
%         3       .   2
%           `   90  /
%             `   /
%               0        0 <== the original point
%               |
%               |
%               1
%
%   \utrigonal[AUXLIST]{SUBSLIST}          
%
%     AUXLIST = 
%
%           {0+}       :  + charge (or another one chararacter) on the center
%
%     SUBSLIST: list of substituents (max 3 substitution positions)
%
%       for n = 1 to 3 
%
%           nT         :  triple bond at n-atom 
%           nD         :  double bond at n-atom 
%           n or nS    :  single bond at n-atom
%           nA         :  alpha single bond at n-atom
%           nB         :  beta single bond at n-atom
%
%       for 0          :  cetral atom (e.g. 0==C)
%
%       e.g. 
%        
%        \utrigonal{1==Cl;2==F}
%        \utrigonal{1==Cl;4==F;2==CH$_{3}$}
%
\def\utrigonal{\@ifnextchar[{\@utrigonal[r}{\@utrigonal[r]}}
\def\@utrigonal#1]#2{%
 \begin{picture}(600,600)(-300,-300)%
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `utrigonal' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\@tfor\member:=#1\do{%
   \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 0\relax \putratom{-27}{50}{\scriptsize\@@tmpb}\fi}%
\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa\putlratom{-40}{-33}{\@memberb}%central atom
%\ifcase\@tmpa\Putlratom{-27}{-33}{\@memberb}%central atom
\or\put(0,0){\Southbond}%
\or\put(0,0){\NEbond}%
\or\put(0,0){\NWbond}%
\fi}%end of ifcase
\end{picture}}%end of macro utrigonal
%
% **********************
% * trigonal unit (up) *
% **********************
%
% The following numbering is adopted in this macro. 
%
%         3           2
%           `  120  /
%             `   /
%               0        0 <== the original point
%               |
%               |
%               1
%
%   \Utrigonal[AUXLIST]{SUBSLIST}          
%
%     AUXLIST = 
%
%           {0+}       :  + charge (or another one chararacter) on the center
%
%     SUBSLIST: list of substituents (max 3 substitution positions)
%
%       for n = 1 to 3 
%
%           nT         :  triple bond at n-atom 
%           nD         :  double bond at n-atom 
%           n or nS    :  single bond at n-atom
%           nA         :  alpha single bond at n-atom
%           nB         :  beta single bond at n-atom
%
%       for 0          :  cetral atom (e.g. 0==C)
%
%       e.g. 
%        
%        \Utrigonal{1==Cl;2==F}
%        \Utrigonal{1==Cl;4==F;2==CH$_{3}$}
%
\def\Utrigonal{\@ifnextchar[{\@Utrigonal[r}{\@Utrigonal[r]}}
\def\@Utrigonal#1]#2{%
 \begin{picture}(600,600)(-300,-300)%
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `Utrigonal' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\@tfor\member:=#1\do{%
   \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 0\relax \putratom{-27}{50}{\scriptsize\@@tmpb}\fi}%
\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa\putlratom{-40}{-33}{\@memberb}%central atom
%\ifcase\@tmpa\Putlratom{-27}{-33}{\@memberb}%central atom
\or\put(0,0){\Southbond}%
\or\put(0,0){\NEBond}%
\or\put(0,0){\NWBond}%
\fi}%end of ifcase
\end{picture}}%end of macro Utrigonal
%
% ************************
% * trigonal unit (down) *
% ************************
%
% The following numbering is adopted in this macro. 
%
%                1
%                |
%                |
%                0       0 <== the original point
%              /  `
%            /  90  `
%          2          3
%
%   \dtrigonal[AUXLIST]{SUBSLIST}          
%
%     AUXLIST = 
%
%           {0+}       :  + charge (or another one chararacter) on the center
%
%     SUBSLIST: list of substituents (max 3 substitution positions)
%
%       for n = 1 to 3 
%
%           nT         :  triple bond at n-atom 
%           nD         :  double bond at n-atom 
%           n or nS    :  single bond at n-atom
%           nA         :  alpha single bond at n-atom
%           nB         :  beta single bond at n-atom
%
%       for 0          :  cetral atom (e.g. 0==C)
%
%       e.g. 
%        
%        \dtrigonal{1==Cl;2==F}
%        \dtrigonal{1==Cl;4==F;2==CH$_{3}$}
%
\def\dtrigonal{\@ifnextchar[{\@dtrigonal[r}{\@dtrigonal[r]}}
\def\@dtrigonal#1]#2{%
 \begin{picture}(600,600)(-300,-300)
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `dtrigonal' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\@tfor\member:=#1\do{%
   \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 0\relax \putratom{37}{50}{\scriptsize\@@tmpb}\fi}%
\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
%\ifcase\@tmpa \Putlratom{-27}{-33}{\@memberb}%central atom
\or\put(0,0){\Northbond}%
\or\put(0,0){\SEbond}%
\or\put(0,0){\SWbond}%
\fi}%end of ifcase
\end{picture}}%end of macro dtrigonal
%
% ************************
% * trigonal unit (down) *
% ************************
%
% The following numbering is adopted in this macro. 
%
%                1
%                |
%                |
%                0       0 <== the original point
%              /  `
%            /  120 `
%          2          3
%
%   \Dtrigonal[AUXLIST]{SUBSLIST}          
%
%     AUXLIST = 
%
%           {0+}       :  + charge (or another one chararacter) on the center
%
%     SUBSLIST: list of substituents (max 3 substitution positions)
%
%       for n = 1 to 3 
%
%           nT         :  triple bond at n-atom 
%           nD         :  double bond at n-atom 
%           n or nS    :  single bond at n-atom
%           nA         :  alpha single bond at n-atom
%           nB         :  beta single bond at n-atom
%
%       for 0          :  cetral atom (e.g. 0==C)
%
%       e.g. 
%        
%        \Dtrigonal{1==Cl;2==F}
%        \Dtrigonal{1==Cl;4==F;2==CH$_{3}$}
%
\def\Dtrigonal{\@ifnextchar[{\@Dtrigonal[r}{\@Dtrigonal[r]}}
\def\@Dtrigonal#1]#2{%
 \begin{picture}(600,600)(-300,-300)
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `Dtrigonal' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\@tfor\member:=#1\do{%
   \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 0\relax \putratom{37}{50}{\scriptsize\@@tmpb}\fi}%
\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
%\ifcase\@tmpa \Putlratom{-27}{-33}{\@memberb}%central atom
\or\put(0,0){\Northbond}%
\or\put(0,0){\SEBond}%
\or\put(0,0){\SWBond}%
\fi}%end of ifcase
\end{picture}}%end of macro Dtrigonal
%
% *****************
% * ethylene unit *
% *****************
%
% The following numbering is adopted in this macro. 
%
%         1                4
%           `            /
%             `        /
%          90  (1)===(2) 90     (1) <== the original point
%             /        `
%           /            `
%         2                3
%
%   \ethylene[BONDLIST]{ATOMLIST}{SUBSLIST}          
%
%     BONDLIST: list of inner bonds and charges
%
%           {n+}       :  + charge (or another one chararacter) on n-atom
%             d        :  inner double bond (between (1) and (2))
%             t        :  inner triple bond (between (1) and (2))
%
%     SUBSLIST: list of substituents (max 3 substitution positions)
%
%       for n = 1 to 4
%
%           nT         :  triple bond at n-atom 
%           nD         :  double bond at n-atom 
%           n or nS    :  single bond at n-atom
%           nA         :  alpha single bond at n-atom
%           nB         :  beta single bond at n-atom
%
%     ATOMLIST: list of central atoms
%           n          :  atom for n-position (e.g. 1==C)
%
%       e.g. 
%        
%        \ethylene{}{1==Cl;2==F}
%        \ethylene{}{1==Cl;4==F;2==CH$_{3}$}
%
\def\ethylene{\@ifnextchar[{\@ethylene}{\@ethylene[]}}
\def\@ethylene[#1]#2#3{%
\begin{picture}(800,600)(-300,-300)
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `ethylene' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\def\aaa{#1}\ifx\aaa\empty%
 \multiput(42,-13)(0,25){2}{\line(1,0){140}}\fi% double bond
\@tfor\member:=#1\do{%
 \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 1\relax \putratom{-27}{60}{\scriptsize\@@tmpb}%
   \else\if\@@tmpa 2\relax \putratom{203}{60}{\scriptsize\@@tmpb}%
   \else\if\@@tmpa d\relax%
       \multiput(42,-13)(0,25){2}{\line(1,0){140}}% double bond
   \else\if\@@tmpa t\relax%
     \multiput(42,-20)(0,20){3}{\line(1,0){140}}% triple bond right
   \fi\fi\fi\fi}%
\def\aaa{#2}%
\ifx\aaa\empty%
\putratom{-40}{-33}{C}%central atom
\putratom{190}{-33}{C}%central atom
\else%
\@forsemicol\member:=#2\do{%
\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa%
\or\putratom{-40}{-33}{\@memberb}%central atom
\or\putratom{190}{-33}{\@memberb}%central atom
\fi}%end of ifcase
\fi% 
\@forsemicol\member:=#3\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa%
\or\put(0,0){\NWbond}%
\or\put(0,0){\SWbond}%
\or\put(230,0){\SEbond}%
\or\put(230,0){\NEbond}%
\fi}%end of ifcase
\end{picture}}%end of macro ethylene
%
% ****************************
% * ethylene unit (vertical) *
% ****************************
%
% The following numbering is adopted in this macro. 
%
%         4          3
%           `  90  /
%             `  /
%              (2)
%               ||
%               ||
%              (1)  <== the original point
%             /  `
%           /  90 `
%         1         2
%
%   \ethylenev[BONDLIST]{ATOMLIST}{SUBSLIST}          
%
%     BONDLIST: list of inner bonds and charges
%
%           {n+}       :  + charge (or another one chararacter) on n-atom
%             d        :  inner double bond (between (1) and (2))
%             t        :  inner triple bond (between (1) and (2))
%
%     SUBSLIST: list of substituents (max 3 substitution positions)
%
%       for n = 1 to 4
%
%           nT         :  triple bond at n-atom 
%           nD         :  double bond at n-atom 
%           n or nS    :  single bond at n-atom
%           nA         :  alpha single bond at n-atom
%           nB         :  beta single bond at n-atom
%
%     ATOMLIST: list of central atoms
%           n          :  atom for n-position (e.g. 1==C)
%
%       e.g. 
%        
%        \ethylenev{1==Cl;2==F}
%        \ethylenev{1==Cl;4==F;2==CH$_{3}$}
%
\def\ethylenev{\@ifnextchar[{\@ethylenev}{\@ethylenev[]}}
\def\@ethylenev[#1]#2#3{%
\begin{picture}(600,800)(-300,-300)
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `ethylenev' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\def\aaa{#1}\ifx\aaa\empty%
    \put(-20,47){\line(0,1){140}}% vertical
    \put(6,47){\line(0,1){140}}\fi%  double bond
\@tfor\member:=#1\do{%
 \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 1\relax \putratom{37}{0}{\scriptsize\@@tmpb}
   \else\if\@@tmpa 2\relax \putratom{37}{216}{\scriptsize\@@tmpb}
   \else\if\@@tmpa d\relax%
      \put(-13,47){\line(0,1){140}}% vertical
      \put(13,47){\line(0,1){140}}%  double bond
   \else\if\@@tmpa t\relax%
      \put(-20,47){\line(0,1){140}}% vertical
      \put(-0,47){\line(0,1){140}}%   triple bond
      \put(20,47){\line(0,1){140}}%
   \fi\fi\fi\fi}%
\def\aaa{#2}%
\ifx\aaa\empty%
\putratom{-40}{-33}{C}%central atom
\putratom{-40}{197}{C}%central atom
\else%
\@forsemicol\member:=#2\do{%
\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa%
\or\putratom{-40}{-33}{\@memberb}%central atom
\or\putratom{-40}{197}{\@memberb}%central atom
\fi}%end of ifcase
\fi% 
\@forsemicol\member:=#3\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa%
\or\put(0,0){\SWbond}%
\or\put(0,0){\SEbond}%
\or\put(0,230){\NEbond}%
\or\put(0,230){\NWbond}%
\fi}%end of ifcase
\end{picture}}%end of macro ethylenev
%
% ****************************
% * ethylene unit (vertical) *
% ****************************
%
% The following numbering is adopted in this macro. 
%
%         4          3
%           `  120 /
%             `  /
%              (2)
%               ||
%               ||
%              (1)  <== the original point
%             /  `
%           /  120 `
%         1          2
%
%   \Ethylenev[BONDLIST]{ATOMLIST}{SUBSLIST}          
%
%     BONDLIST: list of inner bonds and charges
%
%           {n+}       :  + charge (or another one chararacter) on n-atom
%             d        :  inner double bond (between (1) and (2))
%             t        :  inner triple bond (between (1) and (2))
%
%     SUBSLIST: list of substituents (max 3 substitution positions)
%
%       for n = 1 to 4
%
%           nT         :  triple bond at n-atom 
%           nD         :  double bond at n-atom 
%           n or nS    :  single bond at n-atom
%           nA         :  alpha single bond at n-atom
%           nB         :  beta single bond at n-atom
%
%     ATOMLIST: list of central atoms
%           n          :  atom for n-position (e.g. 1==C)
%
%       e.g. 
%        
%        \Ethylenev{1==Cl;2==F}
%        \Ethylenev{1==Cl;4==F;2==CH$_{3}$}
%
\def\Ethylenev{\@ifnextchar[{\@Ethylenev}{\@Ethylenev[]}}
\def\@Ethylenev[#1]#2#3{%
\begin{picture}(600,800)(-300,-300)
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `Ethylenev' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\def\aaa{#1}\ifx\aaa\empty%
    \put(-20,47){\line(0,1){140}}% vertical
    \put(6,47){\line(0,1){140}}\fi%  double bond
\@tfor\member:=#1\do{%
 \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 1\relax \putratom{37}{0}{\scriptsize\@@tmpb}
   \else\if\@@tmpa 2\relax \putratom{37}{216}{\scriptsize\@@tmpb}
   \else\if\@@tmpa d\relax%
      \put(-13,47){\line(0,1){140}}% vertical
      \put(13,47){\line(0,1){140}}%   double bond
   \else\if\@@tmpa t\relax%
      \put(-20,47){\line(0,1){140}}% vertical
      \put(-0,47){\line(0,1){140}}%   triple bond
      \put(20,47){\line(0,1){140}}%
   \fi\fi\fi\fi}%
\def\aaa{#2}%
\ifx\aaa\empty%
\putratom{-40}{-33}{C}%central atom
\putratom{-40}{197}{C}%central atom
\else%
\@forsemicol\member:=#2\do{%
\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa%
\or\putratom{-40}{-33}{\@memberb}%central atom
\or\putratom{-40}{197}{\@memberb}%central atom
\fi}%end of ifcase
\fi% 
\@forsemicol\member:=#3\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa%
\or\put(0,0){\SWBond}%
\or\put(0,0){\SEBond}%
\or\put(0,230){\NEBond}%
\or\put(0,230){\NWBond}%
\fi}%end of ifcase
\end{picture}}%end of macro Ethylenev
%
% ***************
% * square unit *
% ***************
%
% The following numbering is adopted in this macro. 
%
%         4          1
%           `      /
%             `  /
%              (0)  <== the original point
%             /  `
%           /     `
%         3         2
%
%   \square[AUXLIST]{SUBSLIST}          
%
%     AUXLIST = 
%
%           {0+}       :  + charge (or another one chararacter) on the center
%
%     SUBSLIST: list of substituents (max 4 substitution positions)
%
%       for n = 1 to 4 
%
%           nT         :  triple bond at n-atom 
%           nD         :  double bond at n-atom 
%           n or nS    :  single bond at n-atom
%           nA         :  alpha single bond at n-atom
%           nB         :  beta single bond at n-atom
%
%       for 0          :  cetral atom (e.g. 0==C)
%
%       e.g. 
%        
%        \square{0==C;1==Cl;2==F}
%        \square{0==C;1==Cl;4==F;2==CH$_{3}$}
%
\def\square{\@ifnextchar[{\@square[r}{\@square[r]}}
\def\@square#1]#2{%
 \begin{picture}(600,600)(-300,-300)
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `square' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\@tfor\member:=#1\do{%
   \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 0\relax \putratom{37}{0}{\scriptsize\@@tmpb}\fi}%
\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa \Putlratom{-40}{-33}{\@memberb}%central atom
%\ifcase\@tmpa \Putlratom{-27}{-33}{\@memberb}%central atom
\or\put(0,0){\NEbond}%
\or\put(0,0){\SEbond}%
\or\put(0,0){\SWbond}%
\or\put(0,0){\NWbond}%
\fi}%end of ifcase
\end{picture}}%end of macro square
%
% *****************************
% * tetrahedral unit (stereo) *
% *****************************
%
% The following numbering is adopted in this macro. 
%
%                1
%
%                |
%          2  -- 0 --  4       0 <== the original point
%                |
%
%                3
%
%   \tetrastereo[AUXLIST]{SUBSLIST}          
%
%     AUXLIST = 
%
%           {0+}       :  + charge (or another one chararacter) on the center
%
%     SUBSLIST: list of substituents (max 4 substitution positions)
%
%       for n = 1 to 4 
%
%           n          :  single bond at n-atom
%
%       for 0          :  cetral atom (e.g. 0==C)
%
%       e.g. 
%        
%        \tetrastereo{1==Cl;2==F}
%        \tetrastereo{1==Cl;4==F;2==CH$_{3}$}
%
\def\tetrastereo{\@ifnextchar[{\@tetrastereo[r}{\@tetrastereo[r]}}
\def\@tetrastereo#1]#2{%
\begin{picture}(600,600)(-300,-300)
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `tetrastero' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\put(0,0){\circle{200}}%
\@tfor\member:=#1\do{%
   \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 0\relax \putratom{87}{90}{\scriptsize\@@tmpb}\fi}%
\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
\or%
   \put(0,100){\line(0,1){70}}% behind 
   \putlratom{-30}{180}{\@memberb}%   and up
\or%
  {\thicklines%
   \put(-60,10){\line(-5,2){140}}%   in front
   \putlatom{-205}{30}{\@memberb}}%  and left
\or%
   \put(0,-100){\line(0,-1){90}}%     behind and
   \putlratom{-30}{-260}{\@memberb}% down
\or%
  {\thicklines%
   \put(60,10){\line(5,2){140}}%     in front
   \putratom{210}{30}{\@memberb}}%   and right
\fi}%end of ifcase
\end{picture}}%end of macro tetrastereo
%
% *****************************
% * tetrahedral unit (stereo) *
% *****************************
%
% The following numbering is adopted in this macro. 
%
%                1
%
%                |
%          2  -- 0 --  4       0 <== the original point
%                |
%
%                3
%
%   \dtetrastereo[AUXLIST]{SUBSLIST}          
%
%     AUXLIST = 
%
%           {0+}       :  + charge (or another one chararacter) on the center
%
%     SUBSLIST: list of substituents (max 4 substitution positions)
%
%       for n = 1 to 4 
%
%           n          :  single bond at n-atom
%
%       for 0          :  cetral atom (e.g. 0==C)
%
%       e.g. 
%        
%        \dtetrastereo{1==Cl;2==F}
%        \dtetrastereo{1==Cl;4==F;2==CH$_{3}$}
%
\def\dtetrastereo{\@ifnextchar[{\@dtetrastereo[r}{\@dtetrastereo[r]}}
\def\@dtetrastereo#1]#2{%
\begin{picture}(600,600)(-300,-300)
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `dtetrastero' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\put(0,0){\circle{200}}%
\@tfor\member:=#1\do{%
   \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 0\relax \putratom{87}{90}{\scriptsize\@@tmpb}\fi}%
\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
\or%
   \put(0,100){\line(0,1){70}}% behind 
   \putlratom{-30}{180}{\@memberb}%   and up
\or%
   \put(-94,-10){\line(-5,-2){108}}%   in back
   \putlatom{-205}{-110}{\@memberb}%  and left
\or%
  {\thicklines%
   \put(0,-50){\line(0,-1){150}}%     behind and
   \putlratom{-30}{-260}{\@memberb}}% down
\or%
   \put(94,-10){\line(5,-2){108}}%     in back
   \putratom{210}{-110}{\@memberb}%   and right
\fi}%end of ifcase
\end{picture}}%end of macro dtetrastereo
%
% **************************
% * ethane unit (vertical) *
% **************************
%
% The following numbering is adopted in this macro. 
%
%               5
%               |
%        6 --  (2) -- 4
%               |
%               |
%        1 --  (1) -- 3 <== the original point
%               |
%               2
%
%   \ethanestereo[AUXLIST]{ATOMLIST}{SUBSLIST}          
%
%     AUXLIST: list of charges
%
%           {n+}       :  + charge (or another one chararacter) on n-atom
%
%     SUBSLIST: list of substituents (max 3 substitution positions)
%
%       for n = 1 to 6
%
%           n          :  single bond at n-atom
%
%     ATOMLIST: list of central atoms
%
%           n          :  atom for n-position (e.g. 1==C)
%
%       e.g. 
%        
%        \ethanestereo{1==Cl;2==F}
%        \ethanestereo{1==C;2==C}{1==Cl;4==F;2==CH$_{3}$}
%
\def\ethanestereo{\@ifnextchar[{\@ethanestereo}{\@ethanestereo[]}}
\def\@ethanestereo[#1]#2#3{%
\begin{picture}(600,800)(-300,-300)
  \iforigpt \put(-300,-300){\circle*{50}}%
           \put(-\noshift,-\noshift){\circle{50}}% 
   \typeout{command `ethanestereo' origin: %
    (\the\noshift,\the\noshift) ---> (300,300)}\fi%
\put(0,0){\circle{200}}%
\put(0,270){\circle{200}}%
\put(0,100){\line(0,1){70}}% central bond
\@tfor\member:=#1\do{%
 \expandafter\twoch@@r\member{}{}%
   \if\@@tmpa 1\relax \putratom{87}{90}{\scriptsize\@@tmpb}
   \else\if\@@tmpa 2\relax \putratom{87}{360}{\scriptsize\@@tmpb}
   \fi\fi}%
\def\aaa{#2}%
\ifx\aaa\empty\else%
\@forsemicol\member:=#2\do{%
\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa%
\or\putratom{-40}{-33}{\@memberb}%central atom
\or\putratom{-40}{237}{\@memberb}%central atom
\fi}%end of ifcase
\fi% 
\@forsemicol\member:=#3\do{\expandafter\@m@mb@r\member;\relax%
\expandafter\threech@r\@membera{}{}%
\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
\or%
   \put(-94,-10){\line(-5,-2){108}}%   in back
   \putlatom{-205}{-110}{\@memberb}%  and left
\or%
  {\thicklines%
   \put(0,-50){\line(0,-1){150}}%     behind and
   \putlratom{-30}{-260}{\@memberb}}% down
\or%
   \put(94,-10){\line(5,-2){108}}%     in back
   \putratom{210}{-110}{\@memberb}%   and right
%%%%%%%%%
\or%
  {\thicklines%
   \put(60,280){\line(5,2){140}}%     in front
   \putratom{210}{300}{\@memberb}}%   and right
\or%
   \put(0,370){\line(0,1){70}}% behind 
   \putlratom{-30}{450}{\@memberb}%   and up
\or%
  {\thicklines%
   \put(-60,280){\line(-5,2){140}}%   in front
   \putlatom{-205}{300}{\@memberb}}%  and left
\fi}%end of ifcase
\end{picture}}%end of macro ethanestereo

