% 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 * % ********************************* % % % % \Northbond % \Eastbond % \Southbond % \Westbond % \NEBond % \NEbond % \SEBond % \SEbond % \NWBond % \NWbond % \SWBond % \SWbond % % % % \tetrahedral \@tetrahedral % \square \@square % % % % \rtrigonal \@rtrigonal % \ltrigonal \@ltrigonal % \utrigonal \@utrigonal % \Utrigonal \@Utrigonal % \dtrigonal \@dtrigonal % \Dtrigonal \@Dtrigonal % % % % \ethylene \@ethylene % \ethylenev \@ethylenev % \Ethylenev \@Ethylenev % % % % \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