diff options
Diffstat (limited to 'macros/latex/contrib/xymtex/base/aliphat.dtx')
-rw-r--r-- | macros/latex/contrib/xymtex/base/aliphat.dtx | 4767 |
1 files changed, 4767 insertions, 0 deletions
diff --git a/macros/latex/contrib/xymtex/base/aliphat.dtx b/macros/latex/contrib/xymtex/base/aliphat.dtx new file mode 100644 index 0000000000..e8c0f377d1 --- /dev/null +++ b/macros/latex/contrib/xymtex/base/aliphat.dtx @@ -0,0 +1,4767 @@ +% \iffalse meta-comment +%% File: aliphat.dtx +% +% Copyright 1993,1996,1998,2001,2002,2004,2005,2009,2010,2013 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]. +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% The Current Maintainer of this work is Shinsaku Fujita. +% +% This work consists of the files aliphat.dtx and aliphat.ins +% and the derived file aliphat.sty. +% +% Please report any bugs, comments, suggestions, etc. to: +% (Old Address) Shinsaku Fujita, +% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd., +% Minami-Ashigara, Kanagawa-ken, 250-01, Japan. +% (Present Address) Shinsaku Fujita +% Shonan Institute of Chemoinformatics and +% Mathematical Chemistry +% fujita-sicimc@nifmail.jp +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \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 +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{aliphat} +% \def\versi@ndate{December 25, 1998} +% \def\versi@nno{ver2.00} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{aliphat} +% \def\versi@ndate{June 20, 2001} +% \def\versi@nno{ver2.01} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{aliphat} +% \def\versi@ndate{April 30, 2002} +% \def\versi@nno{ver3.00} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{aliphat} +% \def\versi@ndate{May 30, 2002} +% \def\versi@nno{ver4.00} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{aliphat} +% \def\versi@ndate{August 30, 2004} +% \def\versi@nno{ver4.01} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{aliphat} +% \def\versi@ndate{December 20, 2004} +% \def\versi@nno{ver4.02} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{aliphat} +% \def\versi@ndate{July 20, 2005} +% \def\versi@nno{ver4.03} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{aliphat} +% \def\versi@ndate{November 07, 2009} +% \def\versi@nno{ver4.05} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{aliphat} +% \def\versi@ndate{October 01, 2010} +% \def\versi@nno{ver5.00} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{aliphat} +% \def\versi@ndate{April 02, 2013} +% \def\versi@nno{ver5.01b} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \fi +% +% \CheckSum{6477} +%% \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} +% \changes{v2.01}{2001/06/20}{Size reduction and clipping information} +% \changes{v2.01}{2001/06/21}{The command \cs{dotorline} is added.} +% \changes{v3.00}{2002/04/30}{sfpicture environment, etc.} +% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv} +% \changes{v4.01}{2004/08/30}{Variable size of a central atom} +% \changes{v4.02}{2004/12/20}{Tetrhedral units with wedges bonds} +% \changes{v4.02a}{2004/12/27}{Bug fix: \cs{square} to \cs{squarecomplex}} +% \changes{v4.03}{2004/07/20}{Wave bonds} +% \changes{v4.05}{2009/11/07}{Bug fix: \cs{@tetrahedral} to \cs{@@tetrahedral}} +% \changes{v5.00}{2010/10/01}{Bond Coloring and the LaTeX Project Public License; +% \cs{square} renamed into \cs{squareplanar}} +% \changes{v5.01b}{2013/04/02}{Bug fix: \cs{Nothbond}, \cs{Southbond}, etc} +% \changes{v5.01}{2013/07/30}{Bug fix: \cs{yltetrahedralposition}, etc} +% \fi +% +% \iffalse +%<*driver> +\NeedsTeXFormat{pLaTeX2e} +% \fi +\ProvidesFile{aliphat.dtx}[2013/07/30 v5.01 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 \\ +Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\ +Kanagawa, 258-0019, Japan +% Department of Chemistry and Materials Technology, \\ +% Kyoto Institute of Technology, \\ +% Matsugasaki, Sakyoku, Kyoto, 606-8585 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 5.01} +\typeout{ -- Released July 20, 2013 by Shinsaku Fujita} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\j@urnalname{aliphat} +\def\versi@ndate{July 20, 2013} +\def\versi@nno{ver5.01} +\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 ---> \squarplanar \@square ---> \@squareplanar +% +% <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 +% \ethyleneh +% \Ethylene \@Ethylene +% \Ethyleneh +% \ethylenev \@ethylenev +% \Ethylenev \@Ethylenev +% +% <Macros for stereo-projection> +% +% \tetrastereo \@tetrastereo +% \dtetrastereo \@dtetrastereo +% \ethanestereo \@ethanestereo +% +% <Macros for tetrahedral units with wedged bonds> +% +% \rtetrahedralS \RtetrahedralS +% \ltetrahedralS \LtetrahedralS +% \utetrahedralS \UtetrahedralS +% \dtetrahedralS \DtetrahedralS +% \htetrahedralS +% +% <Macros for trigonal bipyramidal intermediates> +% +% \utrigpyramid \dtrigpyramid +% \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{}. +% +% \changes{v4.01}{2004/8/30}{Adding \cs{ifno@centeratom}} +% \begin{macrocode} +% ************************* +% * input of basic macros * +% ************************* +\@ifundefined{setsixringv}{\input chemstr.sty\relax}{} +\unitlength=0.1pt +\newif\ifno@centeratom \no@centeratomfalse +% \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}} +% \changes{v2.01}{2001/06/21}{The command \cs{dotorline} is added.} +% \changes{v4.00}{2002/06/13}{Bug fix: Northbond etc. A and B inversed} +% \changes{v4.01}{2004/8/30}{Variable bond length.} +% \changes{v5.01}{2013/04/02}{Bug fix} +% +% \begin{macro}{\Northbond} +% \begin{macrocode} +% ******************************** +% * Conventions for bond-setting * +% ******************************** +\def\Northbond{% +\@ifnextchar[{\N@rthbond}{\N@rthbond[]}} +\def\N@rthbond[#1]{% +\yl@xdiff=40 +\yl@ydiff=-15 +\def\@tempXX{#1}% +\ifx\@tempXX\empty +\@tempcnta=100\relax +\@tempcntb=100\relax +\else +\@tempcnta=#1\relax +\@tempcntb=#1\relax +\fi +\ifno@centeratom +\advance\@tempcnta by52\relax +\advance\@tempcntb by52\relax +\fi +\edef\@tempcntavaluea{\the\@tempcnta}% +\@tempcnta=\@tempcntb +\ifno@centeratom\else%%added2013/4/2 +\advance\@tempcnta by52\relax +\fi +\edef\@tempcntavalueb{\the\@tempcnta}% +\@tempcnta=\@tempcntb +\ifno@centeratom +\advance\@tempcnta by15\relax%%67-52=15added2013/4/2 +\else +\advance\@tempcnta by67\relax +\fi +\edef\@tempcntavaluec{\the\@tempcnta}% +%\begin{sfpicture}(100,200)(0,0) +\begin{sfpicture}(0,0)(0,0) +\ifno@centeratom% + \if\@tmpb D\relax% +% \Multiput@Direct(-13,0)(26,0){2}{\line(0,1){\@tempcntavaluea}}% double bond up + \Multiput@Direct(-13,0)(26,0){2}{\Put@Line(0,0)(0,1){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb T\relax% +% \Multiput@Direct(-20,0)(20,0){3}{\line(0,1){\@tempcntavaluea}}% triple bond up + \Multiput@Direct(-20,0)(20,0){3}{\Put@Line(0,0)(0,1){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13 + {\thicklines\Put@Line(-8,0)(0,1){\@tempcntavaluea}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13 + \dotorline(0,0)(0,1){\@tempcntavaluea}/(0,0)(0,\@tempcntavalueb)% + \else\if\@tmpb S% + \Put@Line(0,0)(0,1){\@tempcntavaluea}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(0,0)(0,1){\@tempcntavaluea}% + }% + \else \Put@Line(0,0)(0,1){\@tempcntavaluea}% + \fi\fi\fi\fi\fi\fi% + \else% + \if\@tmpb D\relax% +% \Multiput@Direct(-13,52)(26,0){2}{\line(0,1){\@tempcntavaluea}}% double bond up + \Multiput@Direct(-13,52)(26,0){2}{\Put@Line(0,0)(0,1){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb T\relax% +% \Multiput@Direct(-20,52)(20,0){3}{\line(0,1){\@tempcntavaluea}}% triple bond up + \Multiput@Direct(-20,52)(20,0){3}{\Put@Line(0,0)(0,1){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13 + {\thicklines\Put@Line(-8,52)(0,1){\@tempcntavaluea}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13 + \dotorline(0,52)(0,1){\@tempcntavaluea}/(0,52)(0,\@tempcntavalueb)% + \else\if\@tmpb S% + \Put@Line(0,52)(0,1){\@tempcntavaluea}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(0,52)(0,1){\@tempcntavaluea}% + }% + \else \Put@Line(0,52)(0,1){\@tempcntavaluea}% + \fi\fi\fi\fi\fi\fi% + \fi% + \putlratom{-40}{\@tempcntavaluec}{\@memberb}%==1 upper substituent +\end{sfpicture}}%End of Northbond +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% \changes{v4.01}{2004/8/30}{Variable bond length.} +% \changes{v5.01}{2013/04/02}{Bug fix} +% +% \begin{macro}{\Eastbond} +% \begin{macrocode} +\def\Eastbond{% +\@ifnextchar[{\E@stbond}{\E@stbond[]}} +\def\E@stbond[#1]{% +\yl@xdiff=-10 +\yl@ydiff=33 +\edef\@tempXX{#1}% +\ifx\@tempXX\empty +\@tempcnta=140\relax +\@tempcntb=140\relax +\else +\@tempcnta=#1\relax +\@tempcntb=#1\relax +\fi +\ifno@centeratom% +\advance\@tempcnta by50\relax +\advance\@tempcntb by50\relax +\fi +\edef\@tempcntavaluea{\the\@tempcnta}% +\@tempcnta=\@tempcntb +\ifno@centeratom\else%%added 2013/4/2 +\advance\@tempcnta by63\relax +\fi +\edef\@tempcntavalueb{\the\@tempcnta}% +\@tempcnta=\@tempcntb +\ifno@centeratom +\advance\@tempcnta by13\relax%%63-50=13added 2013/4/2 +\else +\advance\@tempcnta by50\relax +\fi +\edef\@tempcntavaluec{\the\@tempcnta}% +%\begin{sfpicture}(200,200)(0,0) +\begin{sfpicture}(0,0)(0,0) + \ifno@centeratom% + \if\@tmpb D\relax% +% \Multiput@Direct(0,-13)(0,26){2}{\line(1,0){\@tempcntavaluea}}% double bond right + \Multiput@Direct(0,-13)(0,26){2}{\Put@Line(0,0)(1,0){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb T\relax% +% \Multiput@Direct(0,-20)(0,20){3}{\line(1,0){\@tempcntavaluea}}% double bond right + \Multiput@Direct(0,-20)(0,20){3}{\Put@Line(0,0)(1,0){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13 + {\thicklines\Put@Line(0,0)(1,0){\@tempcntavaluea}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13 + \dotorline(0,0)(1,0){\@tempcntavaluea}/(0,0)(\@tempcntavaluec,0)% + \else\if\@tmpb S% + \Put@Line(0,0)(1,0){\@tempcntavaluea}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(0,0)(1,0){\@tempcntavaluea}% + }% + \else \Put@Line(0,0)(1,0){\@tempcntavaluea}% + \fi\fi\fi\fi\fi\fi% + \else% + \if\@tmpb D\relax% +% \Multiput@Direct(50,-13)(0,26){2}{\line(1,0){\@tempcntavaluea}}% double bond right + \Multiput@Direct(50,-13)(0,26){2}{\Put@Line(0,0)(1,0){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb T\relax% +% \Multiput@Direct(50,-20)(0,20){3}{\line(1,0){\@tempcntavaluea}}% double bond right + \Multiput@Direct(50,-20)(0,20){3}{\Put@Line(0,0)(1,0){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13 + {\thicklines\Put@Line(50,0)(1,0){\@tempcntavaluea}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13 + \dotorline(50,0)(1,0){\@tempcntavaluea}/(50,0)(\@tempcntavaluec,0)% + \else\if\@tmpb S% + \Put@Line(50,0)(1,0){\@tempcntavaluea}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(50,0)(1,0){\@tempcntavaluea}% + }% + \else \Put@Line(50,0)(1,0){\@tempcntavaluea}% + \fi\fi\fi\fi\fi\fi% + \fi% + \putratom{\@tempcntavalueb}{-33}{\@memberb}%==2 right substituent +\end{sfpicture}}%End of Eastbond +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% \changes{v4.01}{2004/8/30}{Variable bond length.} +% \changes{v5.01}{2013/04/02}{Bug fix} +% +% \begin{macro}{\Southbond} +% \begin{macrocode} +\def\Southbond{% +\@ifnextchar[{\S@uthbond}{\S@uthbond[]}} +\def\S@uthbond[#1]{% +\yl@xdiff=40 +\yl@ydiff=95 +\def\@tempXX{#1}% +\ifx\@tempXX\empty +\@tempcnta=100\relax +\@tempcntb=100\relax +\else +\@tempcnta=#1\relax +\@tempcntb=#1\relax +\fi +\ifno@centeratom +\advance\@tempcnta by48\relax +\advance\@tempcntb by48\relax +\fi +\edef\@tempcntavaluea{\the\@tempcnta}% +\@tempcnta=-\@tempcntb +\ifno@centeratom\else%%added2013/4/2 +\advance\@tempcnta by-48\relax +\fi +\edef\@tempcntavalueb{\the\@tempcnta}% +\@tempcnta=-\@tempcntb +\ifno@centeratom +\advance\@tempcnta by-90\relax%%143-48=98 (-8) added2013/4/2 +\else +\advance\@tempcnta by-143\relax +\fi +\edef\@tempcntavaluec{\the\@tempcnta}% +%\begin{sfpicture}(100,300)(0,0) +\begin{sfpicture}(0,0)(0,0) + \ifno@centeratom% + \if\@tmpb D\relax% +% \Multiput@Direct(-13,0)(26,0){2}{\line(0,-1){\@tempcntavaluea}}% double bond down + \Multiput@Direct(-13,0)(26,0){2}{\Put@Line(0,0)(0,-1){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb T\relax% +% \Multiput@Direct(-20,0)(20,0){3}{\line(0,-1){\@tempcntavaluea}}% double bond down + \Multiput@Direct(-20,0)(20,0){3}{\Put@Line(0,0)(0,-1){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13 + {\thicklines\Put@Line(-8,0)(0,-1){\@tempcntavaluea}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13 + \dotorline(0,0)(0,-1){\@tempcntavaluea}/(0,0)(0,\@tempcntavalueb)% + \else\if\@tmpb S% + \Put@Line(0,-0)(0,-1){\@tempcntavaluea}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(0,-0)(0,-1){\@tempcntavaluea}% + }% + \else \Put@Line(0,0)(0,-1){\@tempcntavaluea}% + \fi\fi\fi\fi\fi\fi% + \else% + \if\@tmpb D\relax% +% \Multiput@Direct(-13,-48)(26,0){2}{\line(0,-1){\@tempcntavaluea}}% double bond down + \Multiput@Direct(-13,-48)(26,0){2}{\Put@Line(0,0)(0,-1){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb T\relax% +% \Multiput@Direct(-20,-48)(20,0){3}{\line(0,-1){\@tempcntavaluea}}% double bond down + \Multiput@Direct(-20,-48)(20,0){3}{\Put@Line(0,0)(0,-1){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13 + {\thicklines\Put@Line(-8,-48)(0,-1){\@tempcntavaluea}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13 + \dotorline(0,-48)(0,-1){\@tempcntavaluea}/(0,-48)(0,\@tempcntavalueb)% + \else\if\@tmpb S% + \Put@Line(0,-48)(0,-1){\@tempcntavaluea}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(0,-48)(0,-1){\@tempcntavaluea}% + }% + \else \Put@Line(0,-48)(0,-1){\@tempcntavaluea}% + \fi\fi\fi\fi\fi\fi% + \fi% + \putlratom{-40}{\@tempcntavaluec}{\@memberb}%==3 down substituent +\end{sfpicture}}%End of Southbond +% \end{macrocode} +% \end{macro} +% +% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}} +% \changes{v4.01}{2004/8/30}{Variable bond length.} +% \changes{v5.01}{2013/04/02}{Bug fix} +% + +% \begin{macro}{\Westbond} +% \begin{macrocode} +\def\Westbond{% +\@ifnextchar[{\W@stbond}{\W@stbond[]}} +\def\W@stbond[#1]{% +\yl@xdiff=10 +\yl@ydiff=33 +\def\@tempXX{#1}% +\ifx\@tempXX\empty +\@tempcnta=140\relax +\@tempcntb=140\relax +\else +\@tempcnta=#1\relax +\@tempcntb=#1\relax +\fi +\ifno@centeratom +\advance\@tempcnta by50\relax +\advance\@tempcntb by50\relax +\fi +\edef\@tempcntavaluea{\the\@tempcnta}% +\@tempcnta=-\@tempcntb +\ifno@centeratom\else%%added 2013/4/2 +\advance\@tempcnta by-63\relax +\fi +\edef\@tempcntavalueb{\the\@tempcnta}% +\@tempcnta=\@tempcntb +\ifno@centeratom +\advance\@tempcnta by-13\relax%%63-50=13 added 2013/4/2 +\else% +\advance\@tempcnta by50\relax +\fi +\edef\@tempcntavaluec{\the\@tempcnta}% +%\begin{sfpicture}(100,300)(0,0) +\begin{sfpicture}(0,0)(0,0) + \ifno@centeratom% + \if\@tmpb D\relax% +% \Multiput@Direct(0,-13)(0,26){2}{\line(-1,0){\@tempcntavaluea}}% double bond left + \Multiput@Direct(0,-13)(0,26){2}{\Put@Line(0,0)(-1,0){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb T\relax% +% \Multiput@Direct(0,-20)(0,20){3}{\line(-1,0){\@tempcntavaluea}}% double bond left + \Multiput@Direct(0,-20)(0,20){3}{\Put@Line(0,0)(-1,0){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13 + {\thicklines\Put@Line(0,0)(-1,0){\@tempcntavaluea}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13 +%% \dotorline(0,0)(-1,0){\@tempcntavaluea}/(\@tempcntavalueb,0)(-40,0)% + \dotorline(0,0)(-1,0){\@tempcntavaluea}/(0,0)(\@tempcntavalueb,0)%2013/04/02 + \else\if\@tmpb S% + \Put@Line(0,0)(-1,0){\@tempcntavaluea}% + \else\if\@tmpb U% undefine + {% + \WaveBonds% + \Put@Line(0,0)(-1,0){\@tempcntavaluea}% + }% + \else \Put@Line(0,0)(-1,0){\@tempcntavaluea}% + \fi\fi\fi\fi\fi\fi% + \else% + \if\@tmpb D\relax% +% \Multiput@Direct(-50,-13)(0,26){2}{\line(-1,0){\@tempcntavaluea}}% double bond left + \Multiput@Direct(-50,-13)(0,26){2}{\Put@Line(0,0)(-1,0){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb T\relax% +% \Multiput@Direct(-50,-20)(0,20){3}{\line(-1,0){\@tempcntavaluea}}% double bond left + \Multiput@Direct(-50,-20)(0,20){3}{\Put@Line(0,0)(-1,0){\@tempcntavaluea}}%2010/10/01 + \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13 + {\thicklines\Put@Line(-50,0)(-1,0){\@tempcntavaluea}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13 +%% \dotorline(-50,0)(-1,0){\@tempcntavaluea}/(\@tempcntavalueb,0)(-40,0)% +% \dotorline(-50,0)(-1,0){\@tempcntavaluea}/(0,0)(\@tempcntavalueb,0)%%2013/04/02 + \dotorline(-50,0)(-1,0){\@tempcntavaluea}/(-40,0)(\@tempcntavalueb,0)%%2013/06/16 + \else\if\@tmpb S% + \Put@Line(-50,0)(-1,0){\@tempcntavaluea}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(-50,0)(-1,0){\@tempcntavaluea}% + }% + \else \Put@Line(-50,0)(-1,0){\@tempcntavaluea}% + \fi\fi\fi\fi\fi\fi% + \fi% + \putlatom{\@tempcntavalueb}{-33}{\@memberb}%==4 left substituent +\end{sfpicture}}%End of Westbond +% \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{sfpicture}(100,300)(0,0) + \if\@tmpb D\relax% + \Put@Line(33,48)(5,3){121}% + \Put@Line(47,26)(5,3){121}%northeast double bond + \else\if\@tmpb T\relax% + \Put@Line(31,52)(5,3){121}% + \Put@Line(40,37)(5,3){121}% + \Put@Line(49,22)(5,3){121}%northeast triple bond +% \else\if\@tmpb A%(A) alpha + \else\if\@tmpb B%(B) beta + {\thicklines\Put@Line(40,47)(5,3){121}}% single bond (alpha) +% \else\if\@tmpb B%(B) beta + \else\if\@tmpb A%(A) alpha + \dotorline(40,47)(5,3){121}/(40,47)(161,120)% + \else\if\@tmpb S% + \Put@Line(40,47)(5,3){121}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(40,47)(5,3){121}% + }% + \else \Put@Line(40,47)(5,3){121}% + \fi\fi\fi\fi\fi\fi% + \putratom{170}{107}{\@memberb}%==2 (northeast substituent) +\end{sfpicture}}% +% \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{sfpicture}(100,300)(0,0) + \if\@tmpb D\relax% + \Put@Line(31,46)(1,1){100}% + \Put@Line(49,28)(1,1){100}%northeast double bond + \else\if\@tmpb T\relax% + \Put@Line(27,50)(1,1){100}% + \Put@Line(40,37)(1,1){100}% + \Put@Line(53,24)(1,1){100}%northeast triple bond + \else\if\@tmpb B%(B) beta + {\thicklines\Put@Line(40,47)(1,1){100}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha + \dotorline(40,47)(1,1){100}/(40,47)(140,147)% + \else\if\@tmpb S% + \Put@Line(40,47)(1,1){100}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(40,47)(1,1){100}% + }% + \else \Put@Line(40,47)(1,1){100}% + \fi\fi\fi\fi\fi\fi% + \putratom{145}{137}{\@memberb}%==2 (northeast substituent) +\end{sfpicture}}% +% \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{sfpicture}(100,300)(0,0) + \if\@tmpb D\relax% + \Put@Line(33,-48)(5,-3){121}% + \Put@Line(47,-26)(5,-3){121}%southeast double bond + \else\if\@tmpb T\relax% + \Put@Line(31,-52)(5,-3){121}% + \Put@Line(40,-37)(5,-3){121}% + \Put@Line(49,-22)(5,-3){121}%southeast triple bond + \else\if\@tmpb B%(B) beta + {\thicklines\Put@Line(40,-47)(5,-3){121}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha + \dotorline(40,-47)(5,-3){121}/(40,-47)(161,-120)% + \else\if\@tmpb S% + \Put@Line(40,-47)(5,-3){121}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(40,-47)(5,-3){121}% + }% + \else \Put@Line(40,-47)(5,-3){121}% + \fi\fi\fi\fi\fi\fi% + \putratom{170}{-187}{\@memberb}%==2 (southeast substituent) +\end{sfpicture}}% +% \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{sfpicture}(100,300)(0,0) + \if\@tmpb D\relax% + \Put@Line(31,-46)(1,-1){100}% + \Put@Line(49,-28)(1,-1){100}%southeast double bond + \else\if\@tmpb T\relax% + \Put@Line(27,-50)(1,-1){100}% + \Put@Line(40,-37)(1,-1){100}% + \Put@Line(53,-24)(1,-1){100}%southeast triple bond + \else\if\@tmpb B%(B) beta + {\thicklines\Put@Line(53,-47)(1,-1){100}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha + \dotorline(40,-47)(1,-1){100}/(40,-47)(140,-147)% + \else\if\@tmpb S% + \Put@Line(40,-47)(1,-1){100}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(40,-47)(1,-1){100}% + }% + \else \Put@Line(40,-47)(1,-1){100}% + \fi\fi\fi\fi\fi\fi% + \putratom{145}{-203}{\@memberb}%==3 (southeast substituent) +\end{sfpicture}}% +% \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{sfpicture}(100,300)(0,0) +\yl@xdiff=9 +\yl@ydiff=13 + \if\@tmpb D\relax% + \Put@Line(-59,48)(-5,3){121}% + \Put@Line(-73,26)(-5,3){121}%northwest double bond + \else\if\@tmpb T\relax% + \Put@Line(-57,52)(-5,3){121}% + \Put@Line(-66,37)(-5,3){121}% + \Put@Line(-75,22)(-5,3){121}%northwest triple bond + \else\if\@tmpb B%(B) beta + {\thicklines\Put@Line(-66,47)(-5,3){121}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha + \dotorline(-66,47)(-5,3){121}/(-66,47)(-187,120)% + \else\if\@tmpb S% + \Put@Line(-66,47)(-5,3){121}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(-66,47)(-5,3){121}% + }% + \else \Put@Line(-66,47)(-5,3){121}% + \fi\fi\fi\fi\fi\fi% + \putlatom{-196}{107}{\@memberb}%==2 (northwest substituent) +\end{sfpicture}}% +% \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{sfpicture}(100,300)(0,0) +\yl@xdiff=13 +\yl@ydiff=10 + \if\@tmpb D\relax% + \Put@Line(-41,46)(-1,1){100}% + \Put@Line(-59,28)(-1,1){100}%northwest double bond + \else\if\@tmpb T\relax% + \Put@Line(-37,50)(-1,1){100}% + \Put@Line(-50,37)(-1,1){100}% + \Put@Line(-63,24)(-1,1){100}%northwest triple bond + \else\if\@tmpb B%(B) beta + {\thicklines\Put@Line(-50,47)(-1,1){100}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha + \dotorline(-50,47)(-1,1){100}/(-50,47)(-137,147)% + \else\if\@tmpb S% + \Put@Line(-50,47)(-1,1){100}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(-50,47)(-1,1){100}% + }% + \else \Put@Line(-50,47)(-1,1){100}% + \fi\fi\fi\fi\fi\fi% + \putlatom{-163}{137}{\@memberb}%==2 (northwest substituent) +\end{sfpicture}}% +% \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{sfpicture}(100,300)(0,0) + \if\@tmpb D\relax% + \Put@Line(-59,-48)(-5,-3){121}% + \Put@Line(-73,-26)(-5,-3){121}%southwest double bond + \else\if\@tmpb T\relax% + \Put@Line(-57,-52)(-5,-3){121}% + \Put@Line(-66,-37)(-5,-3){121}% + \else\if\@tmpb B%(B) beta + \Put@Line(-75,-22)(-5,-3){121}%southwest triple bond + {\thicklines\Put@Line(-66,-47)(-5,-3){121}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha + \dotorline(-66,-47)(-5,-3){121}/(-66,-47)(-187,-120)% + \else\if\@tmpb S% + \Put@Line(-66,-47)(-5,-3){121}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(-66,-47)(-5,-3){121}% + }% + \else \Put@Line(-66,-47)(-5,-3){121}% + \fi\fi\fi\fi\fi\fi% + \putlatom{-196}{-187}{\@memberb}%==2 (southwest substituent) +\end{sfpicture}}% +% \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{sfpicture}(100,300)(0,0) + \if\@tmpb D\relax% + \Put@Line(-41,-46)(-1,-1){100}% + \Put@Line(-59,-28)(-1,-1){100}%southwest double bond + \else\if\@tmpb T\relax% + \Put@Line(-37,-50)(-1,-1){100}% + \Put@Line(-50,-37)(-1,-1){100}% + \Put@Line(-63,-24)(-1,-1){100}%southwest triple bond + \else\if\@tmpb B%(B) beta + {\thicklines\Put@Line(-50,-47)(-1,-1){100}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha + \dotorline(-50,-47)(-1,-1){100}/(-50,-47)(-137,-147)% + \else\if\@tmpb S% + \Put@Line(-50,-47)(-1,-1){100}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(-50,-47)(-1,-1){100}% + }% + \else \Put@Line(-50,-47)(-1,-1){100}% + \fi\fi\fi\fi\fi\fi% + \putlatom{-163}{-203}{\@memberb}%==3 (southwest substituent) +\end{sfpicture}}% +% \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{sfpicture}(100,300)(0,0) + \if\@tmpb D\relax% + \Put@Line(48,33)(3,5){72}% + \Put@Line(26,47)(3,5){72}%northeast double bond + \else\if\@tmpb T\relax% + \Put@Line(52,31)(3,5){72}% + \Put@Line(37,40)(3,5){72}% + \Put@Line(22,49)(3,5){72}%northeast triple bond + \else\if\@tmpb B%(B) beta + {\thicklines\Put@Line(40,47)(3,5){72}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha + \dotorline(47,40)(3,5){72}/(47,40)(120,161)% + \else\if\@tmpb S% + \Put@Line(47,40)(3,5){72}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(47,40)(3,5){72}% + }% + \else \Put@Line(47,40)(3,5){72}% + \fi\fi\fi\fi\fi\fi% + \putratom{120}{170}{\@memberb}%==2 (northeast substituent) +\end{sfpicture}}% +% \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{sfpicture}(100,300)(0,0) + \if\@tmpb D\relax% + \Put@Line(48,-33)(3,-5){72}% + \Put@Line(26,-47)(3,-5){72}%southeast double bond + \else\if\@tmpb T\relax% + \Put@Line(52,-31)(3,-5){72}% + \Put@Line(37,-40)(3,-5){72}% + \Put@Line(22,-49)(3,-5){72}%southeast triple bond + \else\if\@tmpb B%(B) beta + {\thicklines\Put@Line(47,-40)(3,-5){72}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha + \dotorline(47,-40)(3,-5){72}/(47,-40)(120,-161)% + \else\if\@tmpb S% + \Put@Line(47,-40)(3,-5){72}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(47,-40)(3,-5){72}% + }% + \else \Put@Line(47,-40)(3,-5){72}% + \fi\fi\fi\fi\fi\fi% + \putratom{120}{-230}{\@memberb}%==2 (southeast substituent) +\end{sfpicture}}% +% \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{sfpicture}(100,300)(0,0) + \if\@tmpb D\relax% + \Put@Line(-48,33)(-3,5){72}% + \Put@Line(-26,47)(-3,5){72}%northwest double bond + \else\if\@tmpb T\relax% + \Put@Line(-52,31)(-3,5){72}% + \Put@Line(-37,40)(-3,5){72}% + \Put@Line(-22,49)(-3,5){72}%northwest triple bond + \else\if\@tmpb B%(B) beta + {\thicklines\Put@Line(-40,47)(-3,5){72}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha + \dotorline(-47,40)(-3,5){72}/(-47,40)(-120,161)% + \else\if\@tmpb S% + \Put@Line(-47,40)(-3,5){72}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(-47,40)(-3,5){72}% + }% + \else \Put@Line(-47,40)(-3,5){72}% + \fi\fi\fi\fi\fi\fi% + \putlatom{-120}{170}{\@memberb}%==2 (northwest substituent) +\end{sfpicture}}% +% \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{sfpicture}(100,300)(0,0) + \if\@tmpb D\relax% + \Put@Line(-48,-33)(-3,-5){72}% + \Put@Line(-26,-47)(-3,-5){72}%southwest double bond + \else\if\@tmpb T\relax% + \Put@Line(-52,-31)(-3,-5){72}% + \Put@Line(-37,-40)(-3,-5){72}% + \Put@Line(-22,-49)(-3,-5){72}%southwest triple bond + \else\if\@tmpb B%(B) beta + {\thicklines\Put@Line(-47,-40)(-3,-5){72}}% single bond (alpha) + \else\if\@tmpb A%(A) alpha + \dotorline(-47,-40)(-3,-5){72}/(-47,-40)(-120,-161)% + \else\if\@tmpb S% + \Put@Line(-47,-40)(-3,-5){72}% + \else\if\@tmpb U% undefined + {% + \WaveBonds% + \Put@Line(-47,-40)(-3,-5){72}% + }% + \else \Put@Line(-47,-40)(-3,-5){72}% + \fi\fi\fi\fi\fi\fi% + \putlatom{-120}{-230}{\@memberb}%==2 (southwest substituent) +\end{sfpicture}}% +% \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}<L1,L2,L3,L4> +% \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} +% +% +% The arguments |Ln| (n = 1, 2, 3, 4) represents the bond length +% of the bond 0--n (n = 1, 2, 3, 4). This is used to realize variable +% bond lengths. The vacant for the |Ln| depicts a bond of the standard +% bond length. +% \changes{v4.01}{2004/8/30}{Variable bond length.} +% +% +% \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}} +% +% \changes{v4.01}{2004/8/30}{Variable sized central atoms} +% \changes{v4.05}{2009/11/07}{bug fix: @tetrahedral to @@tetrahedral} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\tetrahedral} +% \begin{macro}{\@tetrahedral} +% \begin{macrocode} +\def\tetrahedral{\@ifnextchar[{\@tetrahedral[r}{\@tetrahedral[r]}} +\def\@tetrahedral#1]#2{% +\@ifnextchar<{\@@tetrahedral#1]{#2}}{\@@tetrahedral#1]{#2}<,,,>}}%bug @ added 2009/11/07 +\def\@@tetrahedral#1]#2<#3,#4,#5,#6>{% +\@reset@ylsw% +\West@bondfalse +\East@bondfalse +\centralatomcheck{#2}% +\yltetrahedralposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){tetrahedral}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{47}{50}{\scriptsize\@@tmpb}}\fi}% +%%%%%%%%%%%%%%%%%%%%%% +%setting central atom% +%%%%%%%%%%%%%%%%%%%%%% +\@tempdima=0pt +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa%central atom +\setbox9=\hbox{\@memberb}% +\ifdim\wd9<0.72em +\@tempdima=0.72em +{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}% +\else +\ifWest@bond +\@tempdima=\wd9 +{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb}}}%central atom +%%%\global\West@bondfalse +\else +\@tempdima=\wd9 +{\putlratom{-40}{-33}{\hbox to.72em{\@memberb\hss}}}%central atom +\fi\fi +\else%%no action +\fi%end of ifcase% +\fi\fi}% +%%%%%%%%%%%%%%%%%%%%%% +%%setting four bonds%% +%%%%%%%%%%%%%%%%%%%%%% +\@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 +\ifWest@bond +\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Northbond[#3]}}% +%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Northbond[#3]}% +\else +\setBScolor{\Put@Direct(0,0){\Northbond[#3]}}% +%\Put@Direct(0,0){\Northbond[#3]}% +\fi +\or{% +\ifWest@bond +\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Westbond[#4]}}% +%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Westbond[#4]}% +\else +\setBScolor{\Put@Direct(0,0){\Westbond[#4]}}% +%\Put@Direct(0,0){\Westbond[#4]}% +\fi +}% +\or +\ifWest@bond +\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Southbond[#5]}}% +%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Southbond[#5]}% +\else +\setBScolor{\Put@Direct(0,0){\Southbond[#5]}}% +%\Put@Direct(0,0){\Southbond[#5]}% +\fi +\or{% +\ifno@centeratom% +\setBScolor{\Put@Direct(0,0){\Eastbond[#6]}}% +%\Put@Direct(0,0){\Eastbond[#6]}% +\else% +%\advance\@tempdima by-0.72em +%\Put@Direct(0,0){\kern\@tempdima\Eastbond[#6]}% +\setBScolor{\Put@Direct(0,0){\kern\@tempdima\kern-0.72em\Eastbond[#6]}}% +%\Put@Direct(0,0){\kern\@tempdima\kern-0.72em\Eastbond[#6]}% +\fi}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +\West@bondfalse +\East@bondfalse +}%end of macro tetrahedral +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \changes{v4.01}{2004/8/30}{Newly added macro: +% \cs{centralatomcheck}} +% +% \begin{macro}{\centralatomcheck} +% \begin{macrocode} +\def\centralatomcheck#1{% +\no@centeratomtrue% +\@forsemicol\member:=#1\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax +\expandafter\threech@r\@membera{}{}\relax +\ifcase\@tmpa\relax% +\no@centeratomfalse% +\else%no action +\fi\fi% +}} +% \end{macrocode} +% \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}} +% \changes{v4.01}{2004/8/30}{Newly added switches: +% \cs{ifEast@bond} and \cs{ifWest@bond}} +% \changes{v5.01}{2013/7/30}{Bug fix} +% +% \begin{macro}{\yltetrahedralposition} +% \begin{macrocode} +\newif\ifEast@bond +\newif\ifWest@bond +\def\yltetrahedralposition#1{% +\@@ylswfalse%%%\@reset@ylsw +\reset@@yl%%2013/07/30bug fix +\West@bondfalse +\East@bondfalse +\@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% + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1 + \else% + \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1 + \fi% + \or% + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% + \else% + \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue% + \fi% + \East@bondtrue%W subst. on 1 + \or% + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%S subst. on 1 + \else% + \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1 + \fi% + \or% + \ifno@centeratom% +% \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%?????? + \gdef\@ylii{-72}\gdef\@yli{0}\global\@ylswtrue%?????? + \else% + \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue% + \fi% + \West@bondtrue%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}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \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 +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,400)(-300,-200){\divalenth}%2002/4/30 by S. Fujita +(300,200)% +{\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\setBScolor{\Put@Direct(0,0){\Westbond}}% +%\Put@Direct(0,0){\Westbond}% +\or\setBScolor{\Put@Direct(\the\@tempcnta,0){\Eastbond}}% +%\Put@Direct(\the\@tempcnta,0){\Eastbond}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +}%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}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\rtrigonal} +% \begin{macro}{\@rtrigonal} +% \begin{macrocode} +\def\rtrigonal{\@ifnextchar[{\@rtrigonal[r}{\@rtrigonal[r]}} +\def\@rtrigonal#1]#2{% +\begingroup +\@reset@ylsw% +\West@bondfalse +\East@bondfalse +\ylrtrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){rtrigonal}%2002/4/30 by S. Fujita +(300,300)% +\@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\setBScolor{\Put@Direct(0,0){\Westbond}}% +%\Put@Direct(0,0){\Westbond}% +\or\setBScolor{\Put@Direct(0,0){\SEbond}}% +%\Put@Direct(0,0){\SEbond}% +\or\setBScolor{\Put@Direct(0,0){\NEbond}}% +%\Put@Direct(0,0){\NEbond}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +\endgroup}%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}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \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{% +\begingroup +\@reset@ylsw% +\West@bondfalse +\East@bondfalse +\ylRtrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){Rtrigonal}%2002/4/30 by S. Fujita +(300,300)% +\@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\setBScolor{\Put@Direct(0,0){\Westbond}}% +%\Put@Direct(0,0){\Westbond}% +\or\setBScolor{\Put@Direct(0,0){\SEBOND}}% +%\Put@Direct(0,0){\SEBOND}% +\or\setBScolor{\Put@Direct(0,0){\NEBOND}}% +%\Put@Direct(0,0){\NEBOND}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +\endgroup}%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. +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \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{0==C;1==Cl;2==F;3==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}} +% \changes{v4.01}{2004/8/30}{Variable sized central atoms} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\ltrigonal} +% \begin{macro}{\@ltrigonal} +% \begin{macrocode} +\def\ltrigonal{\@ifnextchar[{\@ltrigonal[r}{\@ltrigonal[r]}} +\def\@ltrigonal#1]#2{% +\begingroup +\@reset@ylsw% +\West@bondfalse +\East@bondfalse +\ylltrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){ltrigonal}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +\@tempdima=0pt +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa +\setbox9=\hbox{\@memberb}% +\ifdim\wd9<0.72em +\@tempdima=0.72em +{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}%central atom +\else +\ifWest@bond +\@tempdima=\wd9 +{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb}}}%central atom +\else +\@tempdima=\wd9 +{\putlratom{-40}{-33}{\hbox to.72em{\@memberb\hss}}}%central atom +\fi\fi +\else%%no action +\fi%end of ifcase +\fi\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 +\or{% +\advance\@tempdima by-0.72em +\setBScolor{\Put@Direct(0,0){\kern\@tempdima\Eastbond}}}% +%\Put@Direct(0,0){\kern\@tempdima\Eastbond}}% +\or{% +\ifWest@bond +\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\NWbond}}% +%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\NWbond}% +\else +\setBScolor{\Put@Direct(0,0){\NWbond}}% +%\Put@Direct(0,0){\NWbond}% +\fi +}% +\or{% +\ifWest@bond +\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\SWbond}}% +%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\SWbond}% +\else +\setBScolor{\Put@Direct(0,0){\SWbond}}% +%\Put@Direct(0,0){\SWbond}% +\fi +}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +\West@bondfalse +\East@bondfalse +\endgroup}%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}} +% \changes{v4.01}{2004/8/30}{Newly added switch: +% \cs{ifWest@bond}} +% +% \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% E subst. on 1 + \West@bondtrue% + \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}} +% \changes{v4.01}{2004/8/30}{Variable sized central atoms} +% \changes{v4.01}{2004/8/30}{Newly added switch: +% \cs{ifWest@bond}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\Ltrigonal} +% \begin{macro}{\@Ltrigonal} +% \begin{macrocode} +\def\Ltrigonal{\@ifnextchar[{\@Ltrigonal[r}{\@Ltrigonal[r]}} +\def\@Ltrigonal#1]#2{% +\begingroup +\@reset@ylsw% +\West@bondfalse +\East@bondfalse +\ylLtrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){Ltrigonal}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +\@tempdima=0pt +\@forsemicol\member:=#2\do{% +\ifx\member\empty\else +\expandafter\@m@mb@r\member;\relax% +\expandafter\threech@r\@membera{}{}% +\ifx\@memberb\@yl\else +\ifcase\@tmpa +\setbox9=\hbox{\@memberb}% +\ifdim\wd9<0.72em +\@tempdima=0.72em +{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}%central atom +\else +\ifWest@bond +\@tempdima=\wd9 +{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb}}}%central atom +%%%%\global\West@bondfalse +\else +\@tempdima=\wd9 +{\putlratom{-40}{-33}{\hbox to.72em{\@memberb\hss}}}%central atom +\fi\fi +\else%%no action +\fi%end of ifcase +\fi\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 +\or{% +\advance\@tempdima by-0.72em +\setBScolor{\Put@Direct(0,0){\kern\@tempdima\Eastbond}}}% +%\Put@Direct(0,0){\kern\@tempdima\Eastbond}}% +\or{% +\ifWest@bond +\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\NWBOND}}% +%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\NWBOND}% +\else +\setBScolor{\Put@Direct(0,0){\NWBOND}}% +%\Put@Direct(0,0){\NWBOND}% +\fi +}% +\or{% +\ifWest@bond +\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\SWBOND}}% +%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\SWBOND}% +\else +\setBScolor{\Put@Direct(0,0){\SWBOND}}% +%\Put@Direct(0,0){\SWBOND}% +\fi +}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +\West@bondfalse +\East@bondfalse +\endgroup}%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% E subst. on 1 + \West@bondtrue% + \or \gdef\@ylii{47}\gdef\@yli{-40}\global\@ylswtrue% NWB subst. on 1 + \or \gdef\@ylii{47}\gdef\@yli{40}\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}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\utrigonal} +% \begin{macro}{\@utrigonal} +% \begin{macrocode} +\def\utrigonal{\@ifnextchar[{\@utrigonal[r}{\@utrigonal[r]}} +\def\@utrigonal#1]#2{% +\begingroup +\@reset@ylsw% +\centralatomcheck{#2}%2013/04/01 added +\ylutrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){utrigonal}%2002/4/30 by S. Fujita +(300,300)% +\@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\setBScolor{\Put@Direct(0,0){\Southbond}}% +%\Put@Direct(0,0){\Southbond}% +\or\setBScolor{\Put@Direct(0,0){\NEbond}}% +%\Put@Direct(0,0){\NEbond}% +\or\setBScolor{\Put@Direct(0,0){\NWbond}}% +%\Put@Direct(0,0){\NWbond}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +\endgroup}%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}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\Utrigonal} +% \begin{macro}{\@Utrigonal} +% \begin{macrocode} +\def\Utrigonal{\@ifnextchar[{\@Utrigonal[r}{\@Utrigonal[r]}} +\def\@Utrigonal#1]#2{% +\begingroup +\@reset@ylsw% +\ylUtrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){Utrigonal}%2002/4/30 by S. Fujita +(300,300)% +\@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\setBScolor{\Put@Direct(0,0){\Southbond}}% +%\Put@Direct(0,0){\Southbond}% +\or\setBScolor{\Put@Direct(0,0){\NEBond}}% +%\Put@Direct(0,0){\NEBond}% +\or\setBScolor{\Put@Direct(0,0){\NWBond}}% +%\Put@Direct(0,0){\NWBond}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +\endgroup}%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}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\dtrigonal} +% \begin{macro}{\@dtrigonal} +% \begin{macrocode} +\def\dtrigonal{\@ifnextchar[{\@dtrigonal[r}{\@dtrigonal[r]}} +\def\@dtrigonal#1]#2{% +\begingroup +\@reset@ylsw% +\yldtrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){dtrigonal}%2002/4/30 by S. Fujita +(300,300)% +\@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\setBScolor{\Put@Direct(0,0){\Northbond}}% +%\Put@Direct(0,0){\Northbond}% +\or\setBScolor{\Put@Direct(0,0){\SEbond}}% +%\Put@Direct(0,0){\SEbond}% +\or\setBScolor{\Put@Direct(0,0){\SWbond}}% +%\Put@Direct(0,0){\SWbond}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +\endgroup}%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}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\Dtrigonal} +% \begin{macro}{\@Dtrigonal} +% \begin{macrocode} +\def\Dtrigonal{\@ifnextchar[{\@Dtrigonal[r}{\@Dtrigonal[r]}} +\def\@Dtrigonal#1]#2{% +\begingroup +\@reset@ylsw% +\ylDtrigonalposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){Dtrigonal}%2002/4/30 by S. Fujita +(300,300)% +\@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\setBScolor{\Put@Direct(0,0){\Northbond}}% +%\Put@Direct(0,0){\Northbond}% +\or\setBScolor{\Put@Direct(0,0){\SEBond}}% +%\Put@Direct(0,0){\SEBond}% +\or\setBScolor{\Put@Direct(0,0){\SWBond}}% +%\Put@Direct(0,0){\SWBond}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +\endgroup}%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}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \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 +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(800,600)(-300,-300){ethylene}%2002/4/30 by S. Fujita +(300,300)% +{\def\aaa{#1}\ifx\aaa\empty% +% \Multiput@Direct(42,-13)(0,25){2}{\line(1,0){140}}\fi% double bond + \Multiput@Direct(42,-13)(0,25){2}{\Put@Line(0,0)(1,0){140}}\fi%2010/10/01 +}% +\@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@Direct(42,-13)(0,25){2}{\line(1,0){140}}}% double bond + {\Multiput@Direct(42,-13)(0,25){2}{\Put@Line(0,0)(1,0){140}}}%2010/10/01 + \else\if\@@tmpa t\relax% +% {\Multiput@Direct(42,-20)(0,20){3}{\line(1,0){140}}}% triple bond right + {\Multiput@Direct(42,-20)(0,20){3}{\Put@Line(0,0)(1,0){140}}}%2010/10/01 + \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\setBScolor{\Put@Direct(0,0){\NWbond}}% +%\Put@Direct(0,0){\NWbond}% +\or\setBScolor{\Put@Direct(0,0){\SWbond}}% +%\Put@Direct(0,0){\SWbond}% +\or\setBScolor{\Put@Direct(230,0){\SEbond}}% +%\Put@Direct(230,0){\SEbond}% +\or\setBScolor{\Put@Direct(230,0){\NEbond}}% +%\Put@Direct(230,0){\NEbond}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +}%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}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\Ethylene} +% \begin{macro}{\@Ethylene} +% \begin{macrocode} +\def\Ethylene{\@ifnextchar[{\@Ethylene}{\@Ethylene[]}}%bug \@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 +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(800,600)(-300,-300){Ethylene}%2002/4/30 by S. Fujita +(300,300)% +{\def\aaa{#1}\ifx\aaa\empty% +% \Multiput@Direct(42,-13)(0,25){2}{\line(1,0){140}}\fi% double bond + \Multiput@Direct(42,-13)(0,25){2}{\Put@Line(0,0)(1,0){140}}\fi%2010/10/01 +}% +\@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@Direct(42,-13)(0,25){2}{\line(1,0){140}}}% double bond + {\Multiput@Direct(42,-13)(0,25){2}{\Put@Line(0,0)(1,0){140}}}%2010/10/01 + \else\if\@@tmpa t\relax% +% {\Multiput@Direct(42,-20)(0,20){3}{\line(1,0){140}}}% triple bond right + {\Multiput@Direct(42,-20)(0,20){3}{\Put@Line(0,0)(1,0){140}}}%2010/10/01 + \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\setBScolor{\Put@Direct(0,0){\NWBOND}}% +%\Put@Direct(0,0){\NWBOND}% +\or\setBScolor{\Put@Direct(0,0){\SWBOND}}% +%\Put@Direct(0,0){\SWBOND}% +\or\setBScolor{\Put@Direct(230,0){\SEBOND}}% +%\Put@Direct(230,0){\SEBOND}% +\or\Put@Direct(230,0){\NEBOND}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +}%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}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \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 +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,800)(-300,-300){ethylenev}%2002/4/30 by S. Fujita +(300,300)% +\def\aaa{#1}\ifx\aaa\empty% + \Put@Line(-20,47)(0,1){140}% vertical + \Put@Line(6,47)(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@Line(-13,47)(0,1){140}% vertical + \Put@Line(13,47)(0,1){140}% double bond + \else\if\@@tmpa t\relax% + \Put@Line(-20,47)(0,1){140}% vertical + \Put@Line(-0,47)(0,1){140}% triple bond + \Put@Line(20,47)(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\setBScolor{\Put@Direct(0,0){\SWbond}}% +%\Put@Direct(0,0){\SWbond}% +\or\setBScolor{\Put@Direct(0,0){\SEbond}}% +%\Put@Direct(0,0){\SEbond}% +\or\setBScolor{\Put@Direct(0,230){\NEbond}}% +%\Put@Direct(0,230){\NEbond}% +\or\setBScolor{\Put@Direct(0,230){\NWbond}}% +%\Put@Direct(0,230){\NWbond}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +}%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}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \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 +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,800)(-300,-300){Ethylenev}%2002/4/30 by S. Fujita +(300,300)% +\def\aaa{#1}\ifx\aaa\empty% + \Put@Line(-20,47)(0,1){140}% vertical + \Put@Line(6,47)(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@Line(-13,47)(0,1){140}% vertical + \Put@Line(13,47)(0,1){140}% double bond + \else\if\@@tmpa t\relax% + \Put@Line(-20,47)(0,1){140}% vertical + \Put@Line(-0,47)(0,1){140}% triple bond + \Put@Line(20,47)(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\setBScolor{\Put@Direct(0,0){\SWBond}}% +%\Put@Direct(0,0){\SWBond}% +\or\setBScolor{\Put@Direct(0,0){\SEBond}}% +%\Put@Direct(0,0){\SEBond}% +\or\setBScolor{\Put@Direct(0,230){\NEBond}}% +%\Put@Direct(0,230){\NEBond}% +\or\setBScolor{\Put@Direct(0,230){\NWBond}}% +%\Put@Direct(0,230){\NWBond}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +}%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. +% +% Because |\square| is defined in the present LaTeX2e, +% the command |\squarecomplex| is newly defined. +% +% \changes{v4.02a}{2004/12/27}{Bug fix: \cs{square} to \cs{squarecomplex}} +% +% The command |\square| is renamed to be |\squareplanar|. The code is entirely replaced. +% +% \changes{v4.05}{2009/11/08}{Bug fix: \cs{square} to \cs{squareplanar}} +% +% \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} +% \squareplanar[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. +% +% \squareplanar{0==C;1==Cl;2==F} +% \squareplanar{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}} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\squareplanar} +% \begin{macro}{\@squareplanar} +% \begin{macrocode} +\def\squareplanar{\@ifnextchar[{\@squareplanar[r}{\@squareplanar[r]}} +\def\@squareplanar#1]#2{% +\@reset@ylsw% +\ylsquareposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){square}%2002/4/30 by S. Fujita +(300,300)% +\@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\setBScolor{\Put@Direct(0,0){\NEbond}}% +%\Put@Direct(0,0){\NEbond}% +\or\setBScolor{\Put@Direct(0,0){\SEbond}}% +%\Put@Direct(0,0){\SEbond}% +\or\setBScolor{\Put@Direct(0,0){\SWbond}}% +%\Put@Direct(0,0){\SWbond}% +\or\setBScolor{\Put@Direct(0,0){\NWbond}}% +%\Put@Direct(0,0){\NWbond}% +\fi%end of ifcase +\fi\fi}% +\end{ShiftPicEnvB}% +}%end of macro squareplanar +\let\squarecomplex=\squareplanar +\let\square=\squarplanar%combatible to the old version (<4.04) +% \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}} +% \changes{v5.01}{2013/07/30}{Bug fix} +% +% \begin{macro}{\ylsquareposition} +% \begin{macrocode} +\def\ylsquareposition#1{% +\@@ylswfalse%%%\@reset@ylsw +\reset@@yl%%2013/07/30bug fix +\@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} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\tetrastereo} +% \begin{macro}{\@tetrastero} +% \begin{macrocode} +\def\tetrastereo{\@ifnextchar[{\@tetrastereo[r}{\@tetrastereo[r]}} +\def\@tetrastereo#1]#2{% +\begin{sfpicture}(600,600)(-300,-300) + \OrigptOutput(300,300){tetrastereo} +\Put@oCircle(0,0){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% + \setBScolor{\Put@Line(0,100)(0,1){70}}% behind +% \Put@Line(0,100)(0,1){70}% behind + \putlratom{-30}{180}{\@memberb}% and up +\or% + {\thicklines% + \setBScolor{\Put@Line(-60,10)(-5,2){140}}% in front +% \Put@Line(-60,10)(-5,2){140}% in front + \putlatom{-205}{30}{\@memberb}}% and left +\or% + \setBScolor{\Put@Line(0,-100)(0,-1){90}}% behind and +% \Put@Line(0,-100)(0,-1){90}% behind and + \putlratom{-30}{-260}{\@memberb}% down +\or% + {\thicklines% + \setBScolor{\Put@Line(60,10)(5,2){140}}% in front +% \Put@Line(60,10)(5,2){140}% in front + \putratom{210}{30}{\@memberb}}% and right +\fi\fi}%end of ifcase +\end{sfpicture}}%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} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\dtetrastereo} +% \begin{macro}{\@dtetrastereo} +% \begin{macrocode} +\def\dtetrastereo{\@ifnextchar[{\@dtetrastereo[r}{\@dtetrastereo[r]}} +\def\@dtetrastereo#1]#2{% +\begin{sfpicture}(600,600)(-300,-300) + \OrigptOutput(300,300){dtetrastereo} +\Put@oCircle(0,0){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% + \setBScolor{\Put@Line(0,100)(0,1){70}}% behind +% \Put@Line(0,100)(0,1){70}% behind + \putlratom{-30}{180}{\@memberb}% and up +\or% + \setBScolor{\Put@Line(-94,-10)(-5,-2){108}}% in back +% \Put@Line(-94,-10)(-5,-2){108}% in back + \putlatom{-205}{-110}{\@memberb}% and left +\or% + {\thicklines% + \setBScolor{\Put@Line(0,-50)(0,-1){150}}% behind and +% \Put@Line(0,-50)(0,-1){150}% behind and + \putlratom{-30}{-260}{\@memberb}}% down +\or% + \setBScolor{\Put@Line(94,-10)(5,-2){108}}% in back +% \Put@Line(94,-10)(5,-2){108}% in back + \putratom{210}{-110}{\@memberb}% and right +\fi\fi}%end of ifcase +\end{sfpicture}}%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} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\ethanestereo} +% \begin{macro}{\@ethanestereo} +% \begin{macrocode} +\def\ethanestereo{\@ifnextchar[{\@ethanestereo}{\@ethanestereo[]}} +\def\@ethanestereo[#1]#2#3{% +\begin{sfpicture}(600,800)(-300,-300) + \OrigptOutput(300,300){ethanestereo} +\Put@oCircle(0,0){200}% +\Put@oCircle(0,270){200}% +\Put@Line(0,100)(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% + \setBScolor{\Put@Line(-94,-10)(-5,-2){108}}% in back +% \Put@Line(-94,-10)(-5,-2){108}% in back + \putlatom{-205}{-110}{\@memberb}% and left +\or% + {\thicklines% + \setBScolor{\Put@Line(0,-50)(0,-1){150}}% behind and +% \Put@Line(0,-50)(0,-1){150}% behind and + \putlratom{-30}{-260}{\@memberb}}% down +\or% + \setBScolor{\Put@Line(94,-10)(5,-2){108}}% in back +% \Put@Line(94,-10)(5,-2){108}% in back + \putratom{210}{-110}{\@memberb}% and right +% %%%%%%%% +\or% + {\thicklines% + \setBScolor{\Put@Line(60,280)(5,2){140}}% in front +% \Put@Line(60,280)(5,2){140}% in front + \putratom{210}{300}{\@memberb}}% and right +\or% + \setBScolor{\Put@Line(0,370)(0,1){70}}% behind +% \Put@Line(0,370)(0,1){70}% behind + \putlratom{-30}{450}{\@memberb}% and up +\or% + {\thicklines% + \setBScolor{\Put@Line(-60,280)(-5,2){140}}% in front +% \Put@Line(-60,280)(-5,2){140}% in front + \putlatom{-205}{300}{\@memberb}}% and left +\fi\fi}%end of ifcase +\end{sfpicture}}%end of macro ethanestereo +%</aliphat> +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +%<*aliphat> +% \section{Wedged bonds for stereochemistry} +% \subsection{Various tetrahedral units with wedged bonds} +% +% The macros |\rtetrahedralS| etc. typesets tetrahedral units weith bold wedged +% bonds. The following modes of numbering are adopted in these macro. +% +% \begin{verbatim} +% ************************************** +% * tetrahedral units with wedged bonds * +% ************************************** +% +% +% 2 +% +% / +% 1 -- 0 0 <== the original point +% | | +% 3 4 +% 1,2,3,4 <== substituents +% \end{verbatim} +% +% This macro has an argument |SUBSLIST| as well as an optional +% argument |AUXLIST|. +% +% \begin{verbatim} +% \rtetrahedralS[AUXLIST]{SUBSLIST} +% \RtetrahedralS[AUXLIST]{SUBSLIST} +% \ltetrahedralS[AUXLIST]{SUBSLIST} +% \LtetrahedralS[AUXLIST]{SUBSLIST} +% \utetrahedralS[AUXLIST]{SUBSLIST} +% \UtetrahedralS[AUXLIST]{SUBSLIST} +% \dtetrahedralS[AUXLIST]{SUBSLIST} +% \DtetrahedralS[AUXLIST]{SUBSLIST} +% \htetrahedralS[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} +% \changes{v5.00}{2010/10/01}{for bond coloring} +% +% \begin{macro}{\rtetrahedralS} +% \begin{macro}{\@rtetrahedralS} +% \begin{macrocode} +\def\rtetrahedralS{\@ifnextchar[{\@rtetrahedralS[r}{\@rtetrahedralS[r]}} +\def\@rtetrahedralS#1]#2{% +\begingroup +\@reset@ylsw% +\centralatomcheck{#2}% +\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi% +\ylrtetrahedralSposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){rtetrahedralS}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +%set of bond and atoms +\@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\setBScolor{\setatombondh}%1 (-1,0) +%\setatombondh%1 (-1,0) +\or\setBScolor{\setatombondF}%2 (3,5) +%\setatombondF%2 (3,5) +\or\setBScolor{\setatombonde}%3 (5,-3) +%\setatombonde%3 (5,-3) +\or\setBScolor{\setatombondE}%4 (3,-5) +%\setatombondE%4 (3,-5) +\fi%end of ifcase +\fi\fi}% +%\@clipfusefalse% +\end{ShiftPicEnvB}% +\endgroup}%end of macro rtetrahedralS +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% The command |\ylrtetrahedralSposition| is used in +% |\rtetrahedralS| to adjust a substitution position. +% \changes{v4.02}{2004/12/20}{Newly added command: +% \cs{ylrtetrahedralSposition}} +% +% \begin{macro}{\ylrtetrahedralSposition} +% \begin{macrocode} +\def\ylrtetrahedralSposition#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\relax + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \else + \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2 + \else + \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 2 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{-40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{-20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3 + \fi% +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v5.00}{2010/10/01}{for bond coloring} +% \begin{macro}{\ltetrahedralS} +% \begin{macro}{\@ltetrahedralS} +% \begin{macrocode} +\def\ltetrahedralS{\@ifnextchar[{\@ltetrahedralS[r}{\@ltetrahedralS[r]}} +\def\@ltetrahedralS#1]#2{% +\begingroup +\@reset@ylsw% +\centralatomcheck{#2}% +\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi% +\ylltetrahedralSposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){ltetrahedralS}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +%set of bond and atoms +\@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\setBScolor{\setatombondb}%1 (1,0) +%\setatombondb%1 (1,0) +\or\setBScolor{\setatombondD}%2 (-3,5) +%\setatombondD%2 (-3,5) +\or\setBScolor{\setatombondg}%3 (-5,-3) +%\setatombondg%3 (-5,-3) +\or\setBScolor{\setatombondG}%4 (-3,-5) +%\setatombondG%4 (-3,-5) +\fi%end of ifcase +\fi\fi}% +%\@clipfusefalse% +\end{ShiftPicEnvB}% +\endgroup}%end of macro ltetrahedralS +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% The command |\ylltetrahedralSposition| is used in +% |\ltetrahedralS| to adjust a substitution position. +% \changes{v4.02}{2004/12/20}{Newly added command: +% \cs{ylltetrahedralSposition}} +% +% \begin{macro}{\ylltetrahedralSposition} +% \begin{macrocode} +\def\ylltetrahedralSposition#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\relax + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \else + \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2 + \else + \gdef\@ylii{40}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 2 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3 + \fi% +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v5.00}{2010/10/01}{for bond coloring} +% \begin{macro}{\dtetrahedralS} +% \begin{macro}{\@dtetrahedralS} +% \begin{macrocode} +\def\dtetrahedralS{\@ifnextchar[{\@dtetrahedralS[r}{\@dtetrahedralS[r]}} +\def\@dtetrahedralS#1]#2{% +\begingroup +\@reset@ylsw% +\centralatomcheck{#2}% +\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi% +\yldtetrahedralSposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){dtetrahedralS}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +%set of bond and atoms +\@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\setBScolor{\setatombonda}%1 (0,1) +%\setatombonda%1 (0,1) +\or\setBScolor{\setatombonde}%5 (5,-3) +%\setatombonde%5 (5,-3) +\or\setBScolor{\setatombondg}%3 (-5,-3) +%\setatombondg%3 (-5,-3) +\or\setBScolor{\setatombondG}%4 (-3,-5) +%\setatombondG%4 (-3,-5) +\fi%end of ifcase +\fi\fi}% +%\@clipfusefalse% +\end{ShiftPicEnvB}% +\endgroup}%end of macro dtetrahedralS +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\yldtetrahedralSposition| is used in +% |\dtetrahedralS| to adjust a substitution position. +% \changes{v4.02}{2004/12/20}{Newly added command: +% \cs{yldtetrahedralSposition}} +% +% \begin{macro}{\yldtetrahedralSposition} +% \begin{macrocode} +\def\yldtetrahedralSposition#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\relax + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1 + \else + \gdef\@ylii{0}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 1 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 2 + \else +% \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 2 + \gdef\@ylii{-42}\gdef\@yli{20}\global\@ylswtrue%W subst. on 2 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3 + \fi% +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v5.00}{2010/10/01}{for bond coloring} +% \begin{macro}{\DtetrahedralS} +% \begin{macro}{\@DtetrahedralS} +% \begin{macrocode} +\def\DtetrahedralS{\@ifnextchar[{\@DtetrahedralS[r}{\@DtetrahedralS[r]}} +\def\@DtetrahedralS#1]#2{% +\begingroup +\@reset@ylsw% +\centralatomcheck{#2}% +\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi% +\ylDtetrahedralSposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){DtetrahedralS}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +%set of bond and atoms +\@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\setBScolor{\setatombonda}%1 (0,1) +%\setatombonda%1 (0,1) +\or\setBScolor{\setatombondg}%5 (-5,-3) +%\setatombondg%5 (-5,-3) +\or\setBScolor{\setatombonde}%3 (5,-3) +%\setatombonde%3 (5,-3) +\or\setBScolor{\setatombondE}%4 (3,-5) +%\setatombondE%4 (3,-5) +\fi%end of ifcase +\fi\fi}% +%\@clipfusefalse% +\end{ShiftPicEnvB}% +\endgroup}%end of macro DtetrahedralS +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\ylDtetrahedralSposition| is used in +% |\DtetrahedralS| to adjust a substitution position. +% \changes{v4.02}{2004/12/20}{Newly added command: +% \cs{ylDtetrahedralSposition}} +% +% \begin{macro}{\ylDtetrahedralSposition} +% \begin{macrocode} +\def\ylDtetrahedralSposition#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\relax + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \else + \gdef\@ylii{0}\gdef\@yli{-47}\global\@ylswtrue%W subst. on 1 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2 + \else + \gdef\@ylii{40}\gdef\@yli{20}\global\@ylswtrue%N subst. on 2 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{-40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{-20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3 + \fi% +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v5.00}{2010/10/01}{for bond coloring} +% \begin{macro}{\utetrahedralS} +% \begin{macro}{\@utetrahedralS} +% \begin{macrocode} +\def\utetrahedralS{\@ifnextchar[{\@utetrahedralS[r}{\@utetrahedralS[r]}} +\def\@utetrahedralS#1]#2{% +\begingroup +\@reset@ylsw% +\centralatomcheck{#2}% +\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi% +\ylutetrahedralSposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){utetrahedralS}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +%set of bond and atoms +\@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\setBScolor{\setatombondc}%8 (0,-1) +%\setatombondc%8 (0,-1) +\or\setBScolor{\setatombondf}%3 (5,3) +%\setatombondf%3 (5,3) +\or\setBScolor{\setatombondD}%1 (-3,5) +%\setatombondD%1 (-3,5) +\or\setBScolor{\setatombondd}%3 (-5,3) +%\setatombondd%3 (-5,3) +\fi%end of ifcase +\fi\fi}% +%\@clipfusefalse% +\end{ShiftPicEnvB}% +\endgroup}%end of macro utetrahedralS +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\ylutetrahedralSposition| is used in +% |\utetrahedralS| to adjust a substitution position. +% \changes{v4.02}{2004/12/20}{Newly added command: +% \cs{ylutetrahedralSposition}} +% +% \begin{macro}{\ylutetrahedralSposition} +% \begin{macrocode} +\def\ylutetrahedralSposition#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\relax + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1 + \else + \gdef\@ylii{0}\gdef\@yli{47}\global\@ylswtrue%N subst. on 1 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 2 + \else + \gdef\@ylii{-42}\gdef\@yli{-20}\global\@ylswtrue%W subst. on 2 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3 + \fi% + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{40}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3 + \fi +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v5.00}{2010/10/01}{for bond coloring} +% \begin{macro}{\UtetrahedralS} +% \begin{macro}{\@UtetrahedralS} +% \begin{macrocode} +\def\UtetrahedralS{\@ifnextchar[{\@UtetrahedralS[r}{\@UtetrahedralS[r]}} +\def\@UtetrahedralS#1]#2{% +\begingroup +\@reset@ylsw% +\centralatomcheck{#2}% +\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi% +\ylUtetrahedralSposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){UtetrahedralS}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +%set of bond and atoms +\@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\setBScolor{\setatombondc}%1 (0,-1) +%\setatombondc%1 (0,-1) +\or\setBScolor{\setatombondd}%2 (-5,3) +%\setatombondd%2 (-5,3) +\or\setBScolor{\setatombondF}%3 (3,5) +%\setatombondF%3 (3,5) +\or\setBScolor{\setatombondf}%4 (5,3) +%\setatombondf%4 (5,3) +\fi%end of ifcase +\fi\fi}% +%\@clipfusefalse% +\end{ShiftPicEnvB}% +\endgroup}%end of macro UtetrahedralS +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% The command |\ylUtetrahedralSposition| is used in +% |\UtetrahedralS| to adjust a substitution position. +% \changes{v4.02}{2004/12/20}{Newly added command: +% \cs{ylUtetrahedralSposition}} +% +% \begin{macro}{\ylUtetrahedralSposition} +% \begin{macrocode} +\def\ylUtetrahedralSposition#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\relax + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \else + \gdef\@ylii{0}\gdef\@yli{47}\global\@ylswtrue%W subst. on 1 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2 + \else + \gdef\@ylii{40}\gdef\@yli{-20}\global\@ylswtrue%N subst. on 2 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{-20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3 + \fi% + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{-40}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3 + \fi +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v5.00}{2010/10/01}{for bond coloring} +% \begin{macro}{\htetrahedralS} +% \begin{macro}{\@htetrahedralS} +% \begin{macrocode} +\def\htetrahedralS{\@ifnextchar[{\@htetrahedralS[r}{\@htetrahedralS[r]}} +\def\@htetrahedralS#1]#2{% +\begingroup +\@reset@ylsw% +\centralatomcheck{#2}% +\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi% +\ylhtetrahedralSposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){htetrahedralS}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +%set of bond and atoms +\@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\setBScolor{\setatombondg}%5 (-5,-3) +%\setatombondg%5 (-5,-3) +\or\setBScolor{\setatombonde}%5 (5,-3) +%\setatombonde%5 (5,-3) +\or\setBScolor{\setatombondF}%1 (3,5) +%\setatombondF%1 (3,5) +\or\setBScolor{\setatombondD}%1 (-3,5) +%\setatombondD%1 (-3,5) +\fi%end of ifcase +\fi\fi}% +%\@clipfusefalse% +\end{ShiftPicEnvB}% +\endgroup}%end of macro htetrahedralS +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% The command |\ylhtetrahedralSposition| is used in +% |\htetrahedralS| to adjust a substitution position. +% \changes{v4.02}{2004/12/20}{Newly added command: +% \cs{ylhtetrahedralSposition}} +% +% \begin{macro}{\ylhtetrahedralSposition} +% \begin{macrocode} +\def\ylhtetrahedralSposition#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\relax + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \else + \gdef\@ylii{40}\gdef\@yli{30}\global\@ylswtrue%W subst. on 1 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2 + \else + \gdef\@ylii{-40}\gdef\@yli{30}\global\@ylswtrue%N subst. on 2 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{-20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3 + \fi% + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{40}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3 + \fi +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v5.00}{2010/10/01}{for bond coloring} +% \begin{macro}{\RtetrahedralS} +% \begin{macro}{\@RtetrahedralS} +% \begin{macrocode} +\def\RtetrahedralS{\@ifnextchar[{\@RtetrahedralS[r}{\@RtetrahedralS[r]}} +\def\@RtetrahedralS#1]#2{% +\begingroup +\@reset@ylsw% +\centralatomcheck{#2}% +\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi% +\ylRtetrahedralSposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){RtetrahedralS}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +%set of bond and atoms +\@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 +\setBScolor{\setatombondh}%1 (-1,0) +%\setatombondh%1 (-1,0) +\or\setBScolor{\setatombondE}%7 (3,-5) +%\setatombondE%7 (3,-5) +\or\setBScolor{\setatombondF}%2 (3,5) +%\setatombondF%2 (3,5) +\or\setBScolor{\setatombondf}%3 (5,3) +%\setatombondf%3 (5,3) +\fi%end of ifcase +\fi\fi}% +%\@clipfusefalse% +\end{ShiftPicEnvB}% +\endgroup}%end of macro RtetrahedralS +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% The command |\ylRtetrahedralSposition| is used in +% |\RtetrahedralS| to adjust a substitution position. +% \changes{v4.02}{2004/12/20}{Newly added command: +% \cs{ylRtetrahedralSposition}} +% +% \begin{macro}{\ylRtetrahedralSposition} +% \begin{macrocode} +\def\ylRtetrahedralSposition#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\relax + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \else + \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2 + \else + \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue%N subst. on 2 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{-20}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3 + \fi% +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v5.00}{2010/10/01}{for bond coloring} +% \begin{macro}{\LtetrahedralS} +% \begin{macro}{\@LtetrahedralS} +% \begin{macrocode} +\def\LtetrahedralS{\@ifnextchar[{\@LtetrahedralS[r}{\@LtetrahedralS[r]}} +\def\@LtetrahedralS#1]#2{% +\begingroup +\@reset@ylsw% +\centralatomcheck{#2}% +\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi% +\ylLtetrahedralSposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){LtetrahedralS}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +%set of bond and atoms +\@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 +\setBScolor{\setatombondb}%1 (1,0) +%\setatombondb%1 (1,0) +\or\setBScolor{\setatombondG}%2 (-3,-5) +%\setatombondG%2 (-3,-5) +\or\setBScolor{\setatombondD}%3 (-3,5) +%\setatombondD%3 (-3,5) +\or\setBScolor{\setatombondd}%4 (-5,3) +%\setatombondd%4 (-5,3) +\fi%end of ifcase +\fi\fi}% +%\@clipfusefalse% +\end{ShiftPicEnvB}% +\endgroup}%end of macro LtetrahedralS +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% The command |\ylLtetrahedralSposition| is used in +% |\LtetrahedralS| to adjust a substitution position. +% \changes{v4.02}{2004/12/20}{Newly added command: +% \cs{ylLtetrahedralSposition}} +% +% \begin{macro}{\ylLtetrahedralSposition} +% \begin{macrocode} +\def\ylLtetrahedralSposition#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\relax + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \else + \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2 + \else + \gdef\@ylii{40}\gdef\@yli{47}\global\@ylswtrue%N subst. on 2 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{40}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{20}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3 + \fi% +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \subsection{Trigonal bipyramidal uits for transition states} +% +% \changes{v5.00}{2010/10/01}{for bond coloring} +% \begin{macro}{\utrigpyramid} +% \begin{macro}{\@utrigpyramid} +% \begin{macrocode} +\def\utrigpyramid{\@ifnextchar[{\@utrigpyramid[r}{\@utrigpyramid[r]}} +\def\@utrigpyramid#1]#2{% +\begingroup +\@reset@ylsw% +\centralatomcheck{#2}% +\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi% +\ylutrigpyramidposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){utrigpyramid}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +%set of bond and atoms +\@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\setBScolor{\setatombondc}%1 (0,-1) +%\setatombondc%1 (0,-1) +\or\setBScolor{\setatombondF}%2 (3,5) +%\setatombondF%2 (3,5) +\or\setBScolor{\setatombondD}%3 (-3,5) +%\setatombondD%3 (-3,5) +\or{\let\dotorline=\d@t@rline \setBScolor{\setatombondh}}%4 (-1,0) +%{\let\dotorline=\d@t@rline \setatombondh}%4 (-1,0) +\or{\let\dotorline=\d@t@rline \setBScolor{\setatombondb}}%5 (1,0) +%{\let\dotorline=\d@t@rline \setatombondb}%5 (1,0) +\fi%end of ifcase +\fi\fi}% +%\@clipfusefalse% +\end{ShiftPicEnvB}% +\endgroup}%end of macro utrigpyramid +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The command |\ylutrigpyramidposition| is used in +% |\utrigpyramid| to adjust a substitution position. +% \changes{v4.02}{2004/12/20}{Newly added command: +% \cs{ylutrigpyramidposition}} +% +% \begin{macro}{\ylutrigpyramidposition} +% \begin{macrocode} +\def\ylutrigpyramidposition#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\relax + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \else + \gdef\@ylii{0}\gdef\@yli{47}\global\@ylswtrue%W subst. on 1 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2 + \else + \gdef\@ylii{-20}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 2 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3 + \fi% + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{-40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \fi +\fi%end of ifcase +\fi\fi\fi}}% +% \end{macrocode} +% \end{macro} +% +% \changes{v5.00}{2010/10/01}{for bond coloring} +% \begin{macro}{\dtrigpyramid} +% \begin{macro}{\@dtrigpyramid} +% \begin{macrocode} +\def\dtrigpyramid{\@ifnextchar[{\@dtrigpyramid[r}{\@dtrigpyramid[r]}} +\def\@dtrigpyramid#1]#2{% +\begingroup +\@reset@ylsw% +\centralatomcheck{#2}% +\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi% +\yldtrigpyramidposition{#2}% +\if@ylsw \ifx\@@ylii\empty +\def\@@ylii{0}\def\@@yli{0}\fi +\fi +\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/% +(600,600)(-300,-300){dtrigpyramid}%2002/4/30 by S. Fujita +(300,300)% +\@tfor\member:=#1\do{% + \expandafter\twoch@@r\member{}{}% + \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}% +%set of bond and atoms +\@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\setBScolor{\setatombonda}%1 (0,1) +%\setatombonda%1 (0,1) +\or\setBScolor{\setatombondE}%2 (3,-5) +%\setatombondE%2 (3,-5) +\or\setBScolor{\setatombondG}%3 (-3,-5) +%\setatombondG%3 (-3,-5) +\or{\let\dotorline=\d@t@rline \setBScolor{\setatombondh}}%4 (-1,0) +%{\let\dotorline=\d@t@rline \setatombondh}%4 (-1,0) +\or{\let\dotorline=\d@t@rline \setBScolor{\setatombondb}}%5 (1,0) +%{\let\dotorline=\d@t@rline \setatombondb}%5 (1,0) +\fi%end of ifcase +\fi\fi}% +%\@clipfusefalse% +\end{ShiftPicEnvB}% +\endgroup}%end of macro dtrigpyramid +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% The command |\yldtrigpyramidposition| is used in +% |\dtrigpyramid| to adjust a substitution position. +% \changes{v4.02}{2004/12/20}{Newly added command: +% \cs{yldtrigpyramidposition}} +% +% \begin{macro}{\yldtrigpyramidposition} +% \begin{macrocode} +\def\yldtrigpyramidposition#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\relax + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1 + \else + \gdef\@ylii{0}\gdef\@yli{-47}\global\@ylswtrue%W subst. on 1 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2 + \else + \gdef\@ylii{-20}\gdef\@yli{47}\global\@ylswtrue%N subst. on 2 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3 + \fi% + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \fi + \or + \ifno@centeratom% + \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \else + \gdef\@ylii{-40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3 + \fi +\fi%end of ifcase +\fi\fi\fi}}% +%</aliphat> +% \end{macrocode} +% \end{macro} +% +% \Finale +% +\endinput |