diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-12 23:25:05 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-12 23:25:05 +0000 |
commit | 2828582f70c71954ec767bead50118e55e23ceae (patch) | |
tree | eb772e5af0b7292319e9fc3357bb16aea5c2c6da /Master/texmf-dist/source/latex/xymtex/aliphat.dtx | |
parent | 03bbdca8223b2d2590f34f46e6ea18bc4cbbf0bc (diff) |
final missing files in source/
git-svn-id: svn://tug.org/texlive/trunk@603 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/xymtex/aliphat.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/xymtex/aliphat.dtx | 3193 |
1 files changed, 3193 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/xymtex/aliphat.dtx b/Master/texmf-dist/source/latex/xymtex/aliphat.dtx new file mode 100644 index 00000000000..4f1367d15ce --- /dev/null +++ b/Master/texmf-dist/source/latex/xymtex/aliphat.dtx @@ -0,0 +1,3193 @@ +% \iffalse meta-comment +%% File: aliphat.dtx +% +% Copyright 1993,1996,1998 by Shinsaku Fujita +% +% This file is part of XyMTeX system. +% ------------------------------------- +% +% This file is a successor to: +% +% aliphat.sty +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00} +% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita} +% 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 +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{aliphat} +% \def\versi@ndate{August 16, 1996} +% \def\versi@nno{ver1.01} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{aliphat} +% \def\versi@ndate{October 31, 1998} +% \def\versi@nno{ver1.02} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \fi +% +% \CheckSum{3929} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +% +% \setcounter{StandardModuleDepth}{1} +% +% \StopEventually{} +% \MakeShortVerb{\|} +% +% \iffalse +% \changes{v1.01}{1996/06/26}{first edition for LaTeX2e} +% \changes{v1.02}{1998/10/31}{revised edition for LaTeX2e} +% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e} +% \fi +% +% \iffalse +%<*driver> +\NeedsTeXFormat{pLaTeX2e} +% \fi +\ProvidesFile{aliphat.dtx}[1998/12/25 v2.00 XyMTeX{} package file] +% \iffalse +\documentclass{ltxdoc} +\GetFileInfo{aliphat.dtx} +% +% %%XyMTeX Logo: Definition 2%%% +\def\UPSILON{\char'7} +\def\XyM{X\kern-.30em\smash{% +\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}} +\def\XyMTeX{\XyM\kern-.1em\TeX} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\title{Aliphatic compounds by {\sffamily aliphat.sty} +(\fileversion) of \XyMTeX{}} +\author{Shinsaku Fujita \\ +Department of Chemistry and Materials Technology, \\ +Kyoto Institute of Technology, \\ +Matsugasaki, Sakyoku, Kyoto, 606 Japan +% % (old address) +% % Ashigara Research Laboratories, +% % Fuji Photo Film Co., Ltd., \\ +% % Minami-Ashigara, Kanagawa, 250-01 Japan +} +\date{\filedate} +% +\begin{document} + \maketitle + \DocInput{aliphat.dtx} +\end{document} +%</driver> +% \fi +% +% \section{Introduction}\label{aliphat:intro} +% +% \subsection{Options for {\sffamily docstrip}} +% +% \DeleteShortVerb{\|} +% \begin{center} +% \begin{tabular}{|l|l|} +% \hline +% \emph{option} & \emph{function}\\ \hline +% aliphat & aliphat.sty \\ +% driver & driver for this dtx file \\ +% \hline +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +% +% \subsection{Version Information} +% +% \begin{macrocode} +%<*aliphat> +\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 2.00} +\typeout{ -- Released December 25, 1998 by Shinsaku Fujita} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\j@urnalname{aliphat} +\def\versi@ndate{December 25, 1998} +\def\versi@nno{ver2.00} +\def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>% +\space[\copyrighth@lder]} +% \end{macrocode} +% +% \section{List of commands for aliphat.sty} +% +% \begin{verbatim} +% ********************************* +% * aliphat.sty: list of commands * +% ********************************* +% +% <Conventions for bond-setting> +% +% \Northbond +% \Eastbond +% \Southbond +% \Westbond +% \NEBond +% \NEbond +% \SEBond +% \SEbond +% \NWBond +% \NWbond +% \SWBond +% \SWbond +% +% \NEBOND +% \NWBOND +% \SEBOND +% \SWBOND +% +% <Macros for position adjustment> +% \ylrtrigonalposition +% \ylRtrigonalposition +% \ylltrigonalposition +% \ylLtrigonalposition +% \ylutrigonalposition +% \ylUtrigonalposition +% \yldtrigonalposition +% \ylDtrigonalposition +% +% \yltethedralposition +% \ylsquareposition +% +% \ylethylenepositiona +% \ylethylenepositionb +% \ylethylenevpositiona +% \ylethylenevpositionb +% +% <Macros for tetravalent atoms> +% +% \tetrahedral \@tetrahedral +% \square \@square +% +% <Macros for trivalent atoms> +% +% \rtrigonal \@rtrigonal +% \Rtrigonal \@Rtrigonal +% \ltrigonal \@ltrigonal +% \Ltrigonal \@Ltrigonal +% \utrigonal \@utrigonal +% \Utrigonal \@Utrigonal +% \dtrigonal \@dtrigonal +% \Dtrigonal \@Dtrigonal +% +% <Macros for two-carbon compounds> +% +% \ethylene \@ethylene +% \Ethylene \@Ethylene +% \ethylenev \@ethylenev +% \Ethylenev \@Ethylenev +% +% <Macros for stereo-projection> +% +% \tetrastereo \@tetrastereo +% \dtetrastereo \@dtetrastereo +% \ethanestereo \@ethanestereo +% \end{verbatim} +% +% \section{Input of basic macros} +% +% To assure the compatibility to \LaTeX{}2.09 (the native mode), +% the commands added by \LaTeXe{} have not been used in the resulting sty +% files ({\sf aliphat.sty} for the present case). Hence, the combination +% of |\input| and |\@ifundefined| is used to crossload sty +% files ({\sf chemstr.sty} for the present case) in place of the +% |\RequirePackage| command of \LaTeXe{}. +% +% \begin{macrocode} +% ************************* +% * input of basic macros * +% ************************* +\@ifundefined{setsixringv}{\input chemstr.sty\relax}{} +\unitlength=0.1pt +% \end{macrocode} +% +% \section{Macros for bond-setting} +% +% Single, double and triple bonds of aliphatic compounds are represented +% by horizontal, vertical or sloped lines, +% which can be drawn by such commands as |\Eastbond|, +% |\Northbond| and |\SEbond|. +% \changes{v1.02}{1998/10/20}{Adding \cs{NEBOND}, \cs{SEBOND}, \cs{NWBOND}, +% and \cs{SWBOND}} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\Northbond} +% \begin{macrocode} +% ******************************** +% * Conventions for bond-setting * +% ******************************** +\def\Northbond{% +\yl@xdiff=40 +\yl@ydiff=-15 +\begin{picture}(100,200)(0,0) + \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% + \putlratom{-40}{167}{\@memberb}%==1 upper substituent +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\Eastbond} +% \begin{macrocode} +\def\Eastbond{% +\yl@xdiff=-10 +\yl@ydiff=33 +\begin{picture}(200,200)(0,0) + \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% + \putratom{200}{-33}{\@memberb}%==2 right substituent +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\Southbond} +% \begin{macrocode} +\def\Southbond{% +\yl@xdiff=40 +\yl@ydiff=95 +\begin{picture}(100,300)(0,0) + \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% + \putlratom{-40}{-243}{\@memberb}%==3 down substituent +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\Westbond} +% \begin{macrocode} +\def\Westbond{% +\yl@xdiff=10 +\yl@ydiff=33 +\begin{picture}(100,300)(0,0) + \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% + \putlatom{-200}{-33}{\@memberb}%==4 left substituent +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\NEBond} +% \begin{macrocode} +\def\NEBond{%degree 120 +\yl@xdiff=-9 +\yl@ydiff=13 +\begin{picture}(100,300)(0,0) + \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% + \putratom{170}{107}{\@memberb}%==2 (northeast substituent) +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\NEbond} +% \begin{macrocode} +\def\NEbond{%degree 90 +\yl@xdiff=-5 +\yl@ydiff=10 +\begin{picture}(100,300)(0,0) + \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% + \putratom{145}{137}{\@memberb}%==2 (northeast substituent) +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\SEBond} +% \begin{macrocode} +\def\SEBond{%degree 120 +\yl@xdiff=-9 +\yl@ydiff=67 +\begin{picture}(100,300)(0,0) + \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% + \putratom{170}{-187}{\@memberb}%==2 (southeast substituent) +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\SEbond} +% \begin{macrocode} +\def\SEbond{%degree 90 +\yl@xdiff=-5 +\yl@ydiff=56 +\begin{picture}(100,300)(0,0) + \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% + \putratom{145}{-203}{\@memberb}%==3 (southeast substituent) +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\NWBbond} +% \begin{macrocode} +\def\NWBond{% +\begin{picture}(100,300)(0,0) +\yl@xdiff=9 +\yl@ydiff=13 + \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% + \putlatom{-196}{107}{\@memberb}%==2 (northwest substituent) +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\NWbond} +% \begin{macrocode} +\def\NWbond{% +\begin{picture}(100,300)(0,0) +\yl@xdiff=13 +\yl@ydiff=10 + \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% + \putlatom{-163}{137}{\@memberb}%==2 (northwest substituent) +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\SWBond} +% \begin{macrocode} +\def\SWBond{% +\yl@xdiff=9 +\yl@ydiff=67 +\begin{picture}(100,300)(0,0) + \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% + \putlatom{-196}{-187}{\@memberb}%==2 (southwest substituent) +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\SWbond} +% \begin{macrocode} +\def\SWbond{% +\yl@xdiff=13 +\yl@ydiff=56 +\begin{picture}(100,300)(0,0) + \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% + \putlatom{-163}{-203}{\@memberb}%==3 (southwest substituent) +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{New command: \cs{NEBOND}} +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\NEBOND} +% \begin{macrocode} +\def\NEBOND{%degree 120 +\yl@xdiff=-1 +\yl@ydiff=-10 +\begin{picture}(100,300)(0,0) + \if\@tmpb D\relax% + \put(48,33){\line(3,5){72}}% + \put(26,47){\line(3,5){72}}%northeast double bond + \else\if\@tmpb T\relax% + \put(52,31){\line(3,5){72}}% + \put(37,40){\line(3,5){72}}% + \put(22,49){\line(3,5){72}}%northeast triple bond + \else\if\@tmpb A%(A) alpha + {\thicklines\put(40,47){\line(3,5){72}}}% single bond (alpha) + \else\if\@tmpb B%(B) beta + \@ifundefined{dottedline}{\put(47,40){\line(3,5){72}}}% + {{\thicklines \dottedline{20}(47,40)(120,161)}}% + \else\if\@tmpb S% + \put(47,40){\line(3,5){72}}% + \else \put(47,40){\line(3,5){72}}% + \fi\fi\fi\fi\fi% + \putratom{120}{170}{\@memberb}%==2 (northeast substituent) +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{New command: \cs{SEBOND}} +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\SEBOND} +% \begin{macrocode} +\def\SEBOND{%degree 120 +\yl@xdiff=-1 +\yl@ydiff=70 +\begin{picture}(100,300)(0,0) + \if\@tmpb D\relax% + \put(48,-33){\line(3,-5){72}}% + \put(26,-47){\line(3,-5){72}}%southeast double bond + \else\if\@tmpb T\relax% + \put(52,-31){\line(3,-5){72}}% + \put(37,-40){\line(3,-5){72}}% + \put(22,-49){\line(3,-5){72}}%southeast triple bond + \else\if\@tmpb A%(A) alpha + {\thicklines\put(47,-40){\line(3,-5){72}}}% single bond (alpha) + \else\if\@tmpb B%(B) beta + \@ifundefined{dottedline}{\put(47,-40){\line(3,-5){72}}}% + {{\thicklines \dottedline{20}(47,-40)(120,-161)}}% + \else\if\@tmpb S% + \put(47,-40){\line(3,-5){72}}% + \else \put(47,-40){\line(3,-5){72}}% + \fi\fi\fi\fi\fi% + \putratom{120}{-230}{\@memberb}%==2 (southeast substituent) +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{New command: \cs{NWBOND}} +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\NWBOND} +% \begin{macrocode} +\def\NWBOND{% +\yl@xdiff=1 +\yl@ydiff=-10 +\begin{picture}(100,300)(0,0) + \if\@tmpb D\relax% + \put(-48,33){\line(-3,5){72}}% + \put(-26,47){\line(-3,5){72}}%northwest double bond + \else\if\@tmpb T\relax% + \put(-52,31){\line(-3,5){72}}% + \put(-37,40){\line(-3,5){72}}% + \put(-22,49){\line(-3,5){72}}%northwest triple bond + \else\if\@tmpb A%(A) alpha + {\thicklines\put(-40,47){\line(-3,5){72}}}% single bond (alpha) + \else\if\@tmpb B%(B) beta + \@ifundefined{dottedline}{\put(-47,40){\line(-3,5){72}}}% + {{\thicklines \dottedline{20}(-47,40)(-120,161)}}% + \else\if\@tmpb S% + \put(-47,40){\line(-3,5){72}}% + \else \put(-47,40){\line(-3,5){72}}% + \fi\fi\fi\fi\fi% + \putlatom{-120}{170}{\@memberb}%==2 (northwest substituent) +%\yl@xdiff=11 +%\yl@ydiff=-14 +% \if\@tmpb D\relax% +% \put(-48,59){\line(-3,5){72}}% +% \put(-26,73){\line(-3,5){72}}%northwest double bond +% \else\if\@tmpb T\relax% +% \put(-52,57){\line(-3,5){72}}% +% \put(-37,66){\line(-3,5){72}}% +% \put(-22,75){\line(-3,5){72}}%northwest triple bond +% \else\if\@tmpb A%(A) alpha +% {\thicklines\put(-47,66){\line(-3,5){72}}}% single bond (alpha) +% \else\if\@tmpb B%(B) beta +% \@ifundefined{dottedline}{\put(-47,66){\line(-3,5){72}}}% +% {{\thicklines \dottedline{20}(-47,66)(-120,187)}}% +% \else\if\@tmpb S% +% \put(-47,66){\line(-3,5){72}}% +% \else \put(-47,66){\line(-3,5){72}}% +% \fi\fi\fi\fi\fi% +% \putlatom{-130}{200}{\@memberb}%==2 (northwest substituent) +%% \putlatom{-120}{170}{\@memberb}%==2 (northwest substituent) +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{New command: \cs{SWBOND}} +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\SWBOND} +% \begin{macrocode} +\def\SWBOND{% +\yl@xdiff=1 +\yl@ydiff=70 +\begin{picture}(100,300)(0,0) + \if\@tmpb D\relax% + \put(-48,-33){\line(-3,-5){72}}% + \put(-26,-47){\line(-3,-5){72}}%southwest double bond + \else\if\@tmpb T\relax% + \put(-52,-31){\line(-3,-5){72}}% + \put(-37,-40){\line(-3,-5){72}}% + \put(-22,-49){\line(-3,-5){72}}%southwest triple bond + \else\if\@tmpb A%(A) alpha + {\thicklines\put(-47,-40){\line(-3,-5){72}}}% single bond (alpha) + \else\if\@tmpb B%(B) beta + \@ifundefined{dottedline}{\put(-47,-40){\line(-3,-5){72}}}% + {{\thicklines \dottedline{20}(-47,-40)(-120,-161)}}% + \else\if\@tmpb S% + \put(-47,-40){\line(-3,-5){72}}% + \else \put(-47,-40){\line(-3,-5){72}}% + \fi\fi\fi\fi\fi% + \putlatom{-120}{-230}{\@memberb}%==2 (southwest substituent) +\end{picture}}% +% \end{macrocode} +% \end{macro} +% +% \section{Tetrahedral unit} +% +% The macro |\tetrahedral| typesets a compound of tetravalency. +% The following numbering is adopted in this macro. +% +% \begin{verbatim} +% ******************** +% * tetrahedral unit * +% ******************** +% +% 1 +% +% | +% 2 -- 0 -- 4 0 <== the original point +% | +% +% 3 +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \tetrahedral[AUXLIST]{SUBSLIST} +% \end{verbatim} +% +% The arugument |AUXLIST| designates an character on the central +% atom of the formula drawn by this macro. It can be used a plus +% or minus charge on the center. +% +% \begin{verbatim} +% AUXLIST = +% +% {0+} : + charge (or another one chararacter) on the center +% \end{verbatim} +% +% The arugument |SUBLIST| designates a set of substitutients. +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \tetrahedral{1==Cl;2==F} +% \tetrahedral{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% \changes{v1.02}{1998/10/31}{Adding \cs{yltetrahedralposition}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\tetrahedral} +% \begin{macro}{\@tetrahedral} +% \begin{macrocode} +\def\tetrahedral{\@ifnextchar[{\@tetrahedral[r}{\@tetrahedral[r]}} +\def\@tetrahedral#1]#2{% +%\def\tetrahedral{\@ifnextchar[{\@tetrahedral}{\@tetrahedral[]}} +%\def\@tetrahedral[#1]#2{% +\@reset@ylsw% +\yltetrahedralposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else + \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% +\fi +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{47}{50}{\scriptsize\@@tmpb}}\fi}% +\@forsemicol\member:=#2\do{ +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa +{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}%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 +\fi\fi}% +\end{picture}}%end of macro tetrahedral +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\yltetrahedralposition| is used in +% |\tetrahedral| to adjust a substitution position. +% \changes{v1.02}{1998/10/20}{Newly added command: +% \cs{yltetrahedralposition}} +% +% \begin{macro}{\yltetrahedralposition} +% \begin{macrocode} +\def\yltetrahedralposition#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1 + \or \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \or \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1 + \or \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%E subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} + +% \section{Divalenth unit} +% +% The command |\divalenth| produces a length-variable divalent unit. +% \changes{v2.00}{1998/12/14}{New command: \cs{divalenth}} +% +% \begin{verbatim} +% ****************** +% * Divalenth unit * +% ****************** +% +% +% +% 1 -- (group) -- 2 0 <== the original point +% +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |GROUP|. +% +% \begin{verbatim} +% \divalenth{GROUP}{SUBSLIST} +% \end{verbatim} +% +% The arugument |GROUP| designates a character strings representing +% a divalent group. The locant number is fixed to be zero. +% +% The arugument |SUBLIST| designates a set of substitutients. +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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) +% \end{verbatim} +% +% +% \begin{macro}{\divalenth} +% \begin{macrocode} +\def\divalenth#1#2{% +\@reset@ylsw% +\yldivalenthposition{#1}{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else + \begin{picture}(600,400)(-300,-200)% + \iforigpt \put(-300,-200){\circle*{50}}% + \put(-\noshift,-\noshift){\circle{50}}% + \typeout{command `tetrahedral' origin: % + (\the\noshift,\the\noshift) ---> (300,200)}\fi% +\fi +{\expandafter\@m@mb@r#1;\relax + \putratom{-30}{-33}{\@memberb}}% +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa +\or\put(0,0){\Westbond}% +\or\put(\the\@tempcnta,0){\Eastbond}\fi%end of ifcase +\fi\fi}% +\end{picture}}%end of macro tetrahedral +% \end{macrocode} +% \end{macro} +% +% The command |\yldivalenthposition| is used in +% |\tetrahedral| to adjust a substitution position. +% \changes{v2.00}{1998/12/14}{Newly added command: +% \cs{yldivalenthposition}} +% +% \begin{macro}{\yldivalenthposition} +% \begin{macrocode} +\def\yldivalenthposition#1#2{% +{\expandafter\@m@mb@r#1;\relax + \setbox0=\hbox{\@memberb}% + \@tempcnta=\wd0 + \@tempcntb=\unitlength + \divide\@tempcnta by\@tempcntb + \global\advance\@tempcnta by-62% + \@tempcntb=\@tempcnta \global\advance\@tempcntb by50\relax + }% +\@@ylswfalse% +\@forsemicol\member:=#2\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{50}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \or \edef\@ylii{-\the\@tempcntb}\gdef\@yli{0}\global\@ylswtrue%E subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \section{Trigonal unit} +% \subsection{Right-hand trigonal unit (narrow type)} +% +% The macro |\rtrigonal| typesets a compound of trivalency. +% The following numbering is adopted in this macro. +% The two right-hand bonds form an angle of 90$^{\circ}$ (narrow type), +% while the left-hand bond is typeset horizontally. +% +% \begin{verbatim} +% ************************* +% * trigonal unit (right) * +% ************************* +% +% 3 +% / +% / +% 1 --- 0 90 0 <== the original point +% ` +% ` +% 2 +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \rtrigonal[AUXLIST]{SUBSLIST} +% \end{verbatim} +% +% The arugument |AUXLIST| designates an character on the central +% atom of the formula drawn by this macro. It can be used a plus +% or minus charge on the center. +% +% \begin{verbatim} +% AUXLIST = +% +% {0+}: + charge (or another one chararacter) on the center +% \end{verbatim} +% +% The arugument |SUBLIST| designates a set of substitutients. +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \rtrigonal{1==Cl;2==F} +% \rtrigonal{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% +% \changes{v1.02}{1998/10/31}{Adding \cs{ylrtrigonalposition}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\rtrigonal} +% \begin{macro}{\@rtrigonal} +% \begin{macrocode} +\def\rtrigonal{\@ifnextchar[{\@rtrigonal[r}{\@rtrigonal[r]}} +\def\@rtrigonal#1]#2{% +\@reset@ylsw% +\ylrtrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else +\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% +\fi +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom +\or\put(0,0){\Westbond}% +\or\put(0,0){\SEbond}% +\or\put(0,0){\NEbond}% +\fi%end of ifcase +\fi\fi}% +\end{picture}}%end of macro rtrigonal +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\ylrtrigonalposition| is used in +% |\rtrigonal| to adjust a substitution position. +% \changes{v1.02}{1998/10/20}{Newly added command: +% \cs{ylrtrigonalposition}} +% +% \begin{macro}{\ylrtrigonalposition} +% \begin{macrocode} +\def\ylrtrigonalposition#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue% W subst. on 1 + \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1 + \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \subsection{Right-hand trigonal unit (broad type)} +% +% The macro |\Rtrigonal| typesets a compound of trivalency. +% The following numbering is adopted in this macro. +% The two right-hand bonds form an angle of 120$^{\circ}$ (broad type), +% while the left-hand bond is typeset horizontally. +% \changes{v1.02}{1998/10/20}{New command: \cs{Rtrigonal}} +% +% \begin{verbatim} +% ************************* +% * trigonal unit (right) * +% ************************* +% +% 3 +% / +% / +% 1 --- 0 120 0 <== the original point +% ` +% ` +% 2 +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \rtrigonal[AUXLIST]{SUBSLIST} +% \end{verbatim} +% +% The arugument |AUXLIST| designates an character on the central +% atom of the formula drawn by this macro. It can be used a plus +% or minus charge on the center. +% +% \begin{verbatim} +% AUXLIST = +% +% {0+}: + charge (or another one chararacter) on the center +% \end{verbatim} +% +% The arugument |SUBLIST| designates a set of substitutients. +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \rtrigonal{1==Cl;2==F} +% \rtrigonal{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% +% \changes{v1.02}{1998/10/31}{Adding \cs{ylRtrigonalposition}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\Rtrigonal} +% \begin{macro}{\@Rtrigonal} +% \begin{macrocode} +\def\Rtrigonal{\@ifnextchar[{\@Rtrigonal[r}{\@Rtrigonal[r]}} +\def\@Rtrigonal#1]#2{% +\@reset@ylsw% +\ylRtrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else +\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% +\fi +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom +\or\put(0,0){\Westbond}% +\or\put(0,0){\SEBOND}% +\or\put(0,0){\NEBOND}% +\fi%end of ifcase +\fi\fi}% +\end{picture}}%end of macro Rtrigonal +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\ylRtrigonalposition| is used in +% |\Rtrigonal| to adjust a substitution position. +% \changes{v1.02}{1998/10/20}{Newly added command: +% \cs{ylRtrigonalposition}} +% +% \begin{macro}{\ylRtrigonalposition} +% \begin{macrocode} +\def\ylRtrigonalposition#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue% W subst. on 1 + \or \gdef\@ylii{-47}\gdef\@yli{40}\global\@ylswtrue% SE subst. on 1 + \or \gdef\@ylii{-47}\gdef\@yli{-40}\global\@ylswtrue% NE subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \subsection{Left-hand trigonal unit (narrow type)} +% +% The macro |\ltrigonal| typesets a compound of trivalency. +% The following numbering is adopted in this macro. +% The two left-hand bonds form an angle of 90$^{\circ}$ (narrow type), +% while the right-hand bond is typeset horizontally. +% +% \begin{verbatim} +% ************************ +% * trigonal unit (left) * +% ************************ +% +% 2 +% ` +% ` +% 90 0 --- 1 0 <== the original point +% / +% / +% 3 +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \ltrigonal[AUXLIST]{SUBSLIST} +% \end{verbatim} +% +% The arugument |AUXLIST| designates an character on the central +% atom of the formula drawn by this macro. It can be used a plus +% or minus charge on the center. +% +% \begin{verbatim} +% AUXLIST = +% +% {0+} : + charge (or another one chararacter) on the center +% \end{verbatim} +% +% The arugument |SUBLIST| designates a set of substitutients. +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \ltrigonal{1==Cl;2==F} +% \ltrigonal{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% \changes{v1.02}{1998/10/31}{Adding \cs{ylltrigonalposition}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\ltrigonal} +% \begin{macro}{\@ltrigonal} +% \begin{macrocode} +\def\ltrigonal{\@ifnextchar[{\@ltrigonal[r}{\@ltrigonal[r]}} +\def\@ltrigonal#1]#2{% +\@reset@ylsw% +\ylltrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else + \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% +\fi +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa +{\putlratom{-40}{-33}{\@memberb}}%central atom +\or\put(0,0){\Eastbond}% +\or\put(0,0){\NWbond}% +\or\put(0,0){\SWbond}% +\fi%end of ifcase +\fi\fi}% +\end{picture}}%end of macro ltrigonal +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\ylltrigonalposition| is used in +% |\ltrigonal| to adjust a substitution position. +% \changes{v1.02}{1998/10/20}{Newly added command: +% \cs{ylltrigonalposition}} +% +% \begin{macro}{\ylltrigonalposition} +% \begin{macrocode} +\def\ylltrigonalposition#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue% W subst. on 1 + \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1 + \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \subsection{Left-hand trigonal unit (broad type)} +% +% The macro |\Ltrigonal| typesets a compound of trivalency. +% The following numbering is adopted in this macro. +% The two left-hand bonds form an angle of 120$^{\circ}$ (broad type), +% while the right-hand bond is typeset horizontally. +% \changes{v1.02}{1998/10/20}{New command: \cs{Ltrigonal}} +% +% \begin{verbatim} +% ************************ +% * trigonal unit (left) * +% ************************ +% +% 2 +% ` +% ` +% 120 0 --- 1 0 <== the original point +% / +% / +% 3 +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \ltrigonal[AUXLIST]{SUBSLIST} +% \end{verbatim} +% +% The arugument |AUXLIST| designates an character on the central +% atom of the formula drawn by this macro. It can be used a plus +% or minus charge on the center. +% +% \begin{verbatim} +% AUXLIST = +% +% {0+} : + charge (or another one chararacter) on the center +% \end{verbatim} +% +% The arugument |SUBLIST| designates a set of substitutients. +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \Ltrigonal{1==Cl;2==F} +% \Ltrigonal{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% \changes{v1.02}{1998/10/31}{Adding \cs{ylLtrigonalposition}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\Ltrigonal} +% \begin{macro}{\@Ltrigonal} +% \begin{macrocode} +\def\Ltrigonal{\@ifnextchar[{\@Ltrigonal[r}{\@Ltrigonal[r]}} +\def\@Ltrigonal#1]#2{% +\@reset@ylsw% +\ylLtrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else + \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% +\fi +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa +{\putlratom{-40}{-33}{\@memberb}}%central atom +\or\put(0,0){\Eastbond}% +\or\put(0,0){\NWBOND}% +\or\put(0,0){\SWBOND}% +\fi%end of ifcase +\fi\fi}% +\end{picture}}%end of macro Ltrigonal +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\ylLtrigonalposition| is used in +% |\Ltrigonal| to adjust a substitution position. +% \changes{v1.02}{1998/10/20}{Newly added command: +% \cs{ylLtrigonalposition}} +% +% \begin{macro}{\ylLtrigonalposition} +% \begin{macrocode} +\def\ylLtrigonalposition#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue% W subst. on 1 + \or \gdef\@ylii{47}\gdef\@yli{-40}\global\@ylswtrue% NWB subst. on 1 +% \or \gdef\@ylii{47}\gdef\@yli{-66}\global\@ylswtrue% NWB subst. on 1 + \or \gdef\@ylii{47}\gdef\@yli{40}\global\@ylswtrue% SWB subst. on 1 +% \or \gdef\@ylii{47}\gdef\@yli{66}\global\@ylswtrue% SWB subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \subsection{Upward trigonal unit (narrow type)} +% +% The macro |\utrigonal| typesets a compound of trivalency. +% The two upward bonds form an angle of 90$^{\circ}$ (narrow type), +% while the downward bond is typeset vertically. +% The following numbering is adopted in this macro. +% +% \begin{verbatim} +% ********************** +% * trigonal unit (up) * +% ********************** +% +% The following numbering is adopted in this macro. +% +% 3 . 2 +% ` 90 / +% ` / +% 0 0 <== the original point +% | +% | +% 1 +% +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \utrigonal[AUXLIST]{SUBSLIST} +% \end{verbatim} +% +% The arugument |AUXLIST| designates an character on the central +% atom of the formula drawn by this macro. It can be used a plus +% or minus charge on the center. +% +% \begin{verbatim} +% AUXLIST = +% +% {0+}: + charge (or another one chararacter) on the center +% \end{verbatim} +% +% The arugument |SUBLIST| designates a set of substitutients. +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \utrigonal{1==Cl;2==F} +% \utrigonal{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% \changes{v1.02}{1998/10/31}{Adding \cs{ylutrigonalposition}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\utrigonal} +% \begin{macro}{\@utrigonal} +% \begin{macrocode} +\def\utrigonal{\@ifnextchar[{\@utrigonal[r}{\@utrigonal[r]}} +\def\@utrigonal#1]#2{% +\@reset@ylsw% +\ylutrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else + \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% +\fi +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa +{\putlratom{-40}{-33}{\@memberb}}%central atom +\or\put(0,0){\Southbond}% +\or\put(0,0){\NEbond}% +\or\put(0,0){\NWbond}% +\fi%end of ifcase +\fi\fi}% +\end{picture}}%end of macro utrigonal +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\ylutrigonalposition| is used in +% |\utrigonal| to adjust a substitution position. +% \changes{v1.02}{1998/10/20}{Newly added command: +% \cs{ylutrigonalposition}} +% +% \begin{macro}{\ylutrigonalposition} +% \begin{macrocode} +\def\ylutrigonalposition#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1 + \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1 + \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \subsection{Upward trigonal unit (broad type)} +% +% The macro |\Utrigonal| typesets a compound of trivalency. +% The two upward bonds form an angle of 120$^{\circ}$ (broad type), +% while the downward bond is typeset vertically. +% The following numbering is adopted in this macro. +% +% \begin{verbatim} +% ********************** +% * trigonal unit (up) * +% ********************** +% +% 3 2 +% ` 120 / +% ` / +% 0 0 <== the original point +% | +% | +% 1 +% +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \Utrigonal[AUXLIST]{SUBSLIST} +% \end{verbatim} +% +% The arugument |AUXLIST| designates an character on the central +% atom of the formula drawn by this macro. It can be used a plus +% or minus charge on the center. +% +% \begin{verbatim} +% AUXLIST = +% +% {0+}: + charge (or another one chararacter) on the center +% \end{verbatim} +% +% The arugument |SUBLIST| designates a set of substitutients. +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \Utrigonal{1==Cl;2==F} +% \Utrigonal{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% \changes{v1.02}{1998/10/31}{Adding \cs{ylutrigonalposition}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\Utrigonal} +% \begin{macro}{\@Utrigonal} +% \begin{macrocode} +\def\Utrigonal{\@ifnextchar[{\@Utrigonal[r}{\@Utrigonal[r]}} +\def\@Utrigonal#1]#2{% +\@reset@ylsw% +\ylUtrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else + \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% +\fi +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa +{\putlratom{-40}{-33}{\@memberb}}%central atom +\or\put(0,0){\Southbond}% +\or\put(0,0){\NEBond}% +\or\put(0,0){\NWBond}% +\fi%end of ifcase +\fi\fi}% +\end{picture}}%end of macro Utrigonal +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\ylUtrigonalposition| is used in +% |\Utrigonal| to adjust a substitution position. +% \changes{v1.02}{1998/10/20}{Newly added command: +% \cs{ylUtrigonalposition}} +% +% \begin{macro}{\ylUtrigonalposition} +% \begin{macrocode} +\def\ylUtrigonalposition#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1 + \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NEB subst. on 1 + \or \gdef\@ylii{66}\gdef\@yli{-47}\global\@ylswtrue% NWB subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \subsection{Downward trigonal unit (narrow type)} +% +% The macro |\dtrigonal| typesets a compound of trivalency. +% The upward bond is typeset vertically. +% The following numbering is adopted in this macro. +% +% \begin{verbatim} +% ************************ +% * trigonal unit (down) * +% ************************ +% +% The following numbering is adopted in this macro. +% +% 1 +% | +% | +% 0 0 <== the original point +% / ` +% / 90 ` +% 2 3 +% +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \dtrigonal[AUXLIST]{SUBSLIST} +% \end{verbatim} +% +% The arugument |AUXLIST| designates an character on the central +% atom of the formula drawn by this macro. It can be used a plus +% or minus charge on the center. +% +% \begin{verbatim} +% AUXLIST = +% +% {0+} : + charge (or another one chararacter) on the center +% \end{verbatim} +% +% The arugument |SUBLIST| designates a set of substitutients. +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \dtrigonal{1==Cl;2==F} +% \dtrigonal{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% \changes{v1.02}{1998/10/31}{Adding \cs{yldtrigonalposition}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\dtrigonal} +% \begin{macro}{\@dtrigonal} +% \begin{macrocode} +\def\dtrigonal{\@ifnextchar[{\@dtrigonal[r}{\@dtrigonal[r]}} +\def\@dtrigonal#1]#2{% +\@reset@ylsw% +\yldtrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else + \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% +\fi +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{37}{50}{\scriptsize\@@tmpb}}\fi}% +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa +{\putlratom{-40}{-33}{\@memberb}}%central atom +\or\put(0,0){\Northbond}% +\or\put(0,0){\SEbond}% +\or\put(0,0){\SWbond}% +\fi%end of ifcase +\fi\fi}% +\end{picture}}%end of macro dtrigonal +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\yldtrigonalposition| is used in +% |\dtrigonal| to adjust a substitution position. +% \changes{v1.02}{1998/10/20}{Newly added command: +% \cs{yldtrigonalposition}} +% +% \begin{macro}{\yldtrigonalposition} +% \begin{macrocode} +\def\yldtrigonalposition#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1 + \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1 + \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \subsection{Downward trigonal unit (broad type)} +% +% The macro |\Dtrigonal| typesets a compound of trivalency. +% The upward bond is typeset vertically. +% The following numbering is adopted in this macro. +% +% \begin{verbatim} +% ************************ +% * trigonal unit (down) * +% ************************ +% +% The following numbering is adopted in this macro. +% +% 1 +% | +% | +% 0 0 <== the original point +% / ` +% / 120 ` +% 2 3 +% +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \Dtrigonal[AUXLIST]{SUBSLIST} +% \end{verbatim} +% +% The arugument |AUXLIST| designates an character on the central +% atom of the formula drawn by this macro. It can be used a plus +% or minus charge on the center. +% +% \begin{verbatim} +% AUXLIST = +% +% {0+}: + charge (or another one chararacter) on the center +% \end{verbatim} +% +% The arugument |SUBLIST| designates a set of substitutients. +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \Dtrigonal{1==Cl;2==F} +% \Dtrigonal{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% \changes{v1.02}{1998/10/31}{Adding \cs{ylDtrigonalposition}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\Dtrigonal} +% \begin{macro}{\@Dtrigonal} +% \begin{macrocode} +\def\Dtrigonal{\@ifnextchar[{\@Dtrigonal[r}{\@Dtrigonal[r]}} +\def\@Dtrigonal#1]#2{% +\@reset@ylsw% +\ylDtrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else + \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% +\fi +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{37}{50}{\scriptsize\@@tmpb}}\fi}% +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa +{\putlratom{-40}{-33}{\@memberb}}%central atom +\or\put(0,0){\Northbond}% +\or\put(0,0){\SEBond}% +\or\put(0,0){\SWBond}% +\fi%end of ifcase +\fi\fi}% +\end{picture}}%end of macro Dtrigonal +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\ylDtrigonalposition| is used in +% |\Dtrigonal| to adjust a substitution position. +% \changes{v1.02}{1998/10/20}{Newly added command: +% \cs{ylDtrigonalposition}} +% +% \begin{macro}{\ylDtrigonalposition} +% \begin{macrocode} +\def\ylDtrigonalposition#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1 + \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SEB subst. on 1 + \or \gdef\@ylii{66}\gdef\@yli{47}\global\@ylswtrue% SWB subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \section{Ethylene derivative} +% \subsection{Horizontal ethylene unit (narrow type)} +% +% The macro |\ethylene| typesets ethylene derivatives. +% The following numbering is adopted in this macro. +% +% \begin{verbatim} +% ***************** +% * ethylene unit * +% ***************** +% +% 1 4 +% ` / +% ` / +% 90 (1)===(2) 90 (1) <== the original point +% / ` +% / ` +% 2 3 +% \end{verbatim} +% +% \begin{verbatim} +% \ethylene[BONDLIST]{ATOMLIST}{SUBSLIST} +% \end{verbatim} +% +% The arugument |BONDLIST| designates the bond between atom (1) and +% atom (2) as well as charges on these centeral atoms. +% +% \begin{verbatim} +% 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)) +% \end{verbatim} +% +% The arugument |SUBLIST| designates a set of substitutients. +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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 +% \end{verbatim} +% +% The arugument |ATOMLIST| designates the list of central atoms. +% +% \begin{verbatim} +% ATOMLIST: list of central atoms +% n : atom for n-position (e.g. 1==C) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \ethylene{}{1==Cl;2==F} +% \ethylene{}{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% \changes{v1.02}{1998/10/31}{Adding \cs{ylethylenepositiona}, +% \cs{ylethylenepositionb}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\ethylene} +% \begin{macro}{\@ethylene} +% \begin{macrocode} +\def\ethylene{\@ifnextchar[{\@ethylene}{\@ethylene[]}} +\def\@ethylene[#1]#2#3{% +\@reset@ylsw% +\ylethylenepositiona{#3}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\else +\ylethylenepositionb{#3}% +\fi +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{-230}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else +\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% +\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{% +\ifx\member\empty\else +\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\fi}%end of ifcase +\fi% +}% +\@forsemicol\member:=#3\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\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 +\fi\fi}% +\end{picture}}%end of macro ethylene +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ethyleneh} +% \begin{macrocode} +\let\ethyleneh=\ethylene +% \end{macrocode} +% \end{macro} +% +% The commands |\ylethylenepositiona| and |\ylethylenepositiona| +% are used in |\ethylene| to adjust a substitution position. +% \changes{v1.02}{1998/10/20}{Newly added command: +% \cs{ylethylenepositiona} and \cs{ylethylenepositionb}} +% +% \begin{macro}{\ylethylenepositiona} +% \begin{macro}{\ylethylenepositionb} +% \begin{macrocode} +\def\ylethylenepositiona#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1 + \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +\def\ylethylenepositionb#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or%omit + \or%omit + \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1 + \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Horizontal ethylene unit (broad type)} +% +% The macro |\Ethylene| typesets ethylene derivatives. +% The following numbering is adopted in this macro. +% \changes{v1.02}{1998/10/20}{New command: \cs{Ethylene}} +% +% \begin{verbatim} +% ***************** +% * ethylene unit * +% ***************** +% +% 1 4 +% ` / +% ` / +% 120 (1)===(2) 120 (1) <== the original point +% / ` +% / ` +% 2 3 +% \end{verbatim} +% +% \begin{verbatim} +% \Ethylene[BONDLIST]{ATOMLIST}{SUBSLIST} +% \end{verbatim} +% +% The arugument |BONDLIST| designates the bond between atom (1) and +% atom (2) as well as charges on these centeral atoms. +% +% \begin{verbatim} +% 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)) +% \end{verbatim} +% +% The arugument |SUBLIST| designates a set of substitutients. +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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 +% \end{verbatim} +% +% The arugument |ATOMLIST| designates the list of central atoms. +% +% \begin{verbatim} +% ATOMLIST: list of central atoms +% n : atom for n-position (e.g. 1==C) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \Ethylene{}{1==Cl;2==F} +% \Ethylene{}{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% \changes{v1.02}{1998/10/31}{Adding \cs{ylethylenepositiona}, +% \cs{ylethylenepositionb}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\Ethylene} +% \begin{macro}{\@Ethylene} +% \begin{macrocode} +\def\Ethylene{\@ifnextchar[{\@ethylene}{\@ethylene[]}} +\def\@ethylene[#1]#2#3{% +\@reset@ylsw% +\ylethylenepositiona{#3}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\else +\ylethylenepositionb{#3}% +\fi +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{-230}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else +\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% +\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{% +\ifx\member\empty\else +\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\fi}%end of ifcase +\fi% +}% +\@forsemicol\member:=#3\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\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 +\fi\fi}% +\end{picture}}%end of macro Ethylene +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Ethyleneh} +% \begin{macrocode} +\let\Ethyleneh=\Ethylene +% \end{macrocode} +% \end{macro} +% +% \subsection{Vertical ethylene unit (narrow type)} +% +% The macro |\ethylenev| typesets ethylene derivatives in a +% vatical manner. +% The following numbering is adopted in this macro. +% +% \begin{verbatim} +% **************************** +% * ethylene unit (vertical) * +% **************************** +% +% The following numbering is adopted in this macro. +% +% 4 3 +% ` 90 / +% ` / +% (2) +% || +% || +% (1) <== the original point +% / ` +% / 90 ` +% 1 2 +% +% \end{verbatim} +% +% \begin{verbatim} +% \ethylenev[BONDLIST]{ATOMLIST}{SUBSLIST} +% \end{verbatim} +% +% \begin{verbatim} +% 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)) +% \end{verbatim} +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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 +% \end{verbatim} +% +% \begin{verbatim} +% ATOMLIST: list of central atoms +% n : atom for n-position (e.g. 1==C) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \ethylenev{1==Cl;2==F} +% \ethylenev{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% \changes{v1.02}{1998/10/31}{Adding \cs{ylethylenevpositiona}, +% \cs{ylethylenevpositionb}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\ethylenev} +% \begin{macro}{\@ethylenev} +% \begin{macrocode} +\def\ethylenev{\@ifnextchar[{\@ethylenev}{\@ethylenev[]}} +\def\@ethylenev[#1]#2#3{% +\@reset@ylsw% +\ylethylenevpositiona{#3}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\else +\ylethylenevpositionb{#3}% +\fi +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{-230}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else +\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% +\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{% +\ifx\member\empty\else +\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\fi}%end of ifcase +\fi% +\@forsemicol\member:=#3\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\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 +\fi\fi}% +\end{picture}}%end of macro ethylenev +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The commands |\ylethylenevpositiona| and |\ylethylenevpositiona| +% are used in |\ethylenev| to adjust a substitution position. +% \changes{v1.02}{1998/10/20}{Newly added command: +% \cs{ylethylenevpositiona} and \cs{ylethylenevpositionb}} +% +% \begin{macro}{\ylethylenepositiona} +% \begin{macro}{\ylethylenepositionb} +% \begin{macrocode} +\def\ylethylenevpositiona#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1 + \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +\def\ylethylenevpositionb#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or%omit + \or%omit + \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1 + \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Vertical ethylene unit (broad type)} +% +% The macro |\Ethylenev| typesets ethylene derivatives in a +% vatical manner. +% The following numbering is adopted in this macro. +% +% \begin{verbatim} +% **************************** +% * ethylene unit (vertical) * +% **************************** +% +% 4 3 +% ` 120 / +% ` / +% (2) +% || +% || +% (1) <== the original point +% / ` +% / 120 ` +% 1 2 +% \end{verbatim} +% +% \begin{verbatim} +% \Ethylenev[BONDLIST]{ATOMLIST}{SUBSLIST} +% \end{verbatim} +% +% \begin{verbatim} +% 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)) +% \end{verbatim} +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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 +% \end{verbatim} +% +% \begin{verbatim} +% ATOMLIST: list of central atoms +% n : atom for n-position (e.g. 1==C) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \Ethylenev{1==Cl;2==F} +% \Ethylenev{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% \changes{v1.02}{1998/10/31}{Adding \cs{ylethylenevpositiona}, +% \cs{ylethylenevpositionb}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\Ethylenev} +% \begin{macro}{\@Ethylenev} +% \begin{macrocode} +\def\Ethylenev{\@ifnextchar[{\@Ethylenev}{\@Ethylenev[]}} +\def\@Ethylenev[#1]#2#3{% +\@reset@ylsw% +\ylethylenevpositiona{#3}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\else +\ylethylenevpositionb{#3}% +\fi +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{-230}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else +\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% +\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{% +\ifx\member\empty\else +\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\fi}%end of ifcase +\fi% +\@forsemicol\member:=#3\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\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 +\fi\fi}% +\end{picture}}%end of macro Ethylenev +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \section{Square unit} +% +% The macro |\square| typesets a compound of tetravalency. +% The following numbering is adopted in this macro. +% +% \begin{verbatim} +% *************** +% * square unit * +% *************** +% +% The following numbering is adopted in this macro. +% +% 4 1 +% ` / +% ` / +% (0) <== the original point +% / ` +% / ` +% 3 2 +% +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \square[AUXLIST]{SUBSLIST} +% \end{verbatim} +% +% The arugument |AUXLIST| designates an character on the central +% atom of the formula drawn by this macro. It can be used a plus +% or minus charge on the center. +% +% \begin{verbatim} +% AUXLIST = +% +% {0+}: + charge (or another one chararacter) on the center +% \end{verbatim} +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% 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) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \square{0==C;1==Cl;2==F} +% \square{0==C;1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% \changes{v1.02}{1998/10/31}{Adding \cs{ylsquareposition}, +% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii}, +% \cs{yl@xdiff} and \cs{yl@ydiff}} +% +% \begin{macro}{\square} +% \begin{macro}{\@square} +% \begin{macrocode} +\def\square{\@ifnextchar[{\@square[r}{\@square[r]}} +\def\@square#1]#2{% +\@reset@ylsw% +\ylsquareposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\if@ylsw + \yl@shiftii=\@ylii + \yl@shifti=\@yli + \advance\yl@shiftii\@@ylii + \advance\yl@shifti\@@yli + \advance\yl@shiftii\yl@xdiff + \advance\yl@shifti\yl@ydiff + \begin{picture}(0,0)(-\yl@shiftii,-\yl@shifti) + \reset@yl@xydiff%1999/1/6 by S. Fujita +\else + \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% +\fi +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{37}{0}{\scriptsize\@@tmpb}}\fi}% +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa {\putlratom{-40}{-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 +\fi\fi}% +\end{picture}}%end of macro square +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The commands |\ylsquarepositiona| and |\ylsquarepositiona| +% are used in |\square| to adjust a substitution position. +% \changes{v1.02}{1998/10/20}{Newly added command: \cs{ylsquareposition}} +% +% \begin{macro}{\ylsquareposition} +% \begin{macrocode} +\def\ylsquareposition#1{% +\@@ylswfalse%%%\@reset@ylsw +\@forsemicol\member:=#1\do{% +\if@@ylsw\else +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi +\if@@ylsw +\ifcase\@tmpa + \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1 + \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1 + \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1 + \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1 +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \section{Ball-stick models} +% \subsection{Tetrahedral unit of stereo type} +% +% The macro |\tetrastereo| typesets a tetrahedral unit in a +% ball-stick fashion. +% The following numbering is adopted in this macro. +% +% \begin{verbatim} +% ***************************** +% * tetrahedral unit (stereo) * +% ***************************** +% +% The following numbering is adopted in this macro. +% +% 1 +% +% | +% 2 -- 0 -- 4 0 <== the original point +% | +% +% 3 +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \tetrastereo[AUXLIST]{SUBSLIST} +% \end{verbatim} +% +% The arugument |AUXLIST| designates an character on the central +% atom of the formula drawn by this macro. It can be used a plus +% or minus charge on the center. +% +% \begin{verbatim} +% AUXLIST = +% +% {0+} : + charge (or another one chararacter) on the center +% \end{verbatim} +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% for n = 1 to 4 +% +% n : single bond at n-atom +% +% for 0 : cetral atom (e.g. 0==C) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \tetrastereo{1==Cl;2==F} +% \tetrastereo{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% +% \begin{macro}{\tetrastereo} +% \begin{macro}{\@tetrastero} +% \begin{macrocode} +\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{% +\ifx\member\empty\else +\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\fi}%end of ifcase +\end{picture}}%end of macro tetrastereo +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Tetrahedral unit of inverse stereo type} +% +% The macro |\dtetrastereo| typesets another tetrahedral unit in a +% ball-stick fashion. +% The following numbering is adopted in this macro. +% +% \begin{verbatim} +% ***************************** +% * tetrahedral unit (stereo) * +% ***************************** +% +% The following numbering is adopted in this macro. +% +% 1 +% +% | +% 2 -- 0 -- 4 0 <== the original point +% | +% +% 3 +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \dtetrastereo[AUXLIST]{SUBSLIST} +% \end{verbatim} +% +% The arugument |AUXLIST| designates an character on the central +% atom of the formula drawn by this macro. It can be used a plus +% or minus charge on the center. +% +% \begin{verbatim} +% AUXLIST = +% +% {0+} : + charge (or another one chararacter) on the center +% \end{verbatim} +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% for n = 1 to 4 +% +% n : single bond at n-atom +% +% for 0 : cetral atom (e.g. 0==C) +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \dtetrastereo{1==Cl;2==F} +% \dtetrastereo{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% +% \begin{macro}{\dtetrastereo} +% \begin{macro}{\@dtetrastereo} +% \begin{macrocode} +\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{% +\ifx\member\empty\else +\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\fi}%end of ifcase +\end{picture}}%end of macro dtetrastereo +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Ethane unit of stereo type} +% +% The macro |\ethanestereo| typesets an ethane molecule in a +% ball-stick fashion. +% The following numbering is adopted in this macro. +% +% \begin{verbatim} +% ************************** +% * ethane unit (vertical) * +% ************************** +% +% 5 +% | +% 6 -- (2) -- 4 +% | +% | +% 1 -- (1) -- 3 <== the original point +% | +% 2 +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \ethanestereo[AUXLIST]{ATOMLIST}{SUBSLIST} +% \end{verbatim} +% +% \begin{verbatim} +% AUXLIST: list of charges +% +% {n+} : + charge (or another one chararacter) on n-atom +% \end{verbatim} +% +% \begin{verbatim} +% SUBSLIST: list of substituents +% +% for n = 1 to 6 +% +% n : single bond at n-atom +% +% \end{verbatim} +% +% \begin{verbatim} +% ATOMLIST: list of central atoms +% +% n : atom for n-position (e.g. 1==C) +% +% \end{verbatim} +% +% \begin{verbatim} +% e.g. +% +% \ethanestereo{1==Cl;2==F} +% \ethanestereo{1==C;2==C}{1==Cl;4==F;2==CH$_{3}$} +% \end{verbatim} +% +% \begin{macro}{\ethanestereo} +% \begin{macro}{\@ethanestereo} +% \begin{macrocode} +\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{% +\ifx\member\empty\else +\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\fi}%end of ifcase +\fi% +\@forsemicol\member:=#3\do{% +\ifx\member\empty\else +\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\fi}%end of ifcase +\end{picture}}%end of macro ethanestereo +%</aliphat> +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \Finale +% +\endinput +
\ No newline at end of file |