Aliphatic compounds by aliphat.sty (v4.05) of XΥMTEX

Shinsaku Fujita

Shonan Institute of Chemoinformatics and Mathematical Chemistry, Kanagawa, 258-0019, Japan

2009/11/07

1 Introduction

1.1 Options for docstrip

option function
aliphat aliphat.sty
driver driver for this dtx file

1.2 Version Information

1 ⟨∗aliphat⟩

2 \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 4.05}
3 \typeout{       -- Released November 07, 2009 by Shinsaku Fujita}
4 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5 \def\j@urnalname{aliphat}
6 \def\versi@ndate{November 07, 2009}
7 \def\versi@nno{ver4.05}
8 \def\copyrighth@lder{SF} % Shinsaku Fujita
9 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10 \typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
11 \space[\copyrighth@lder]}

2 List of commands for aliphat.sty

*********************************
* 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
\Ethylene                          \@Ethylene
\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

3 Input of basic macros

To assure the compatibility to L^{A}TEX2.09 (the native mode), the commands added by L^{A}TEX 2ε have not been used in the resulting sty files (aliphat.sty for the present case). Hence, the combination of \input and \@ifundefined is used to crossload sty files (chemstr.sty for the present case) in place of the \RequirePackage command of L^{A}TEX 2ε.

12 % *************************
13 % * input of basic macros *
14 % *************************
15 \@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
16 \unitlength=0.1pt
17 \newif\ifno@centeratom \no@centeratomfalse

4 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.
\Northbond
18 % ********************************
19 % * Conventions for bond-setting *
20 % ********************************
21 \def\Northbond{%
22 \@ifnextchar[{\N@rthbond}{\N@rthbond[]}}
23 \def\N@rthbond[#1]{%
24 \yl@xdiff=40
25 \yl@ydiff=-15
26 \def\@tempXX{#1}%
27 \ifx\@tempXX\empty
28 \@tempcnta=100\relax
29 \@tempcntb=100\relax
30 \else

31 \@tempcnta=#1\relax
32 \@tempcntb=#1\relax
33 \fi
34 \ifno@centeratom
35 \advance\@tempcnta by52\relax
36 \advance\@tempcntb by52\relax
37 \fi
38 \edef\@tempcntavaluea{\the\@tempcnta}%
39 \@tempcnta=\@tempcntb
40 \advance\@tempcnta by52\relax
41 \edef\@tempcntavalueb{\the\@tempcnta}%
42 \@tempcnta=\@tempcntb
43 \advance\@tempcnta by67\relax
44 \edef\@tempcntavaluec{\the\@tempcnta}%
45 %\begin{sfpicture}(100,200)(0,0)
46 \begin{sfpicture}(0,0)(0,0)
47 \ifno@centeratom%
48 \if\@tmpb D\relax%
49  \Multiput@Direct(-13,0)(26,0){2}{\line(0,1){\@tempcntavaluea}}% double bond up
50 \else\if\@tmpb T\relax%
51  \Multiput@Direct(-20,0)(20,0){3}{\line(0,1){\@tempcntavaluea}}% triple bond up
52 \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
53  {\thicklines\Put@Line(-8,0)(0,1){\@tempcntavaluea}}% single bond (alpha)
54 \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
55  \dotorline(0,0)(0,1){\@tempcntavaluea}/(0,0)(0,\@tempcntavalueb)%
56 \else\if\@tmpb S%
57  \Put@Line(0,0)(0,1){\@tempcntavaluea}%
58 \else\if\@tmpb U% undefined
59  {%
60  \WaveBonds%
61  \Put@Line(0,0)(0,1){\@tempcntavaluea}%
62  }%
63 \else \Put@Line(0,0)(0,1){\@tempcntavaluea}%
64 \fi\fi\fi\fi\fi\fi%
65 \else%
66 \if\@tmpb D\relax%
67  \Multiput@Direct(-13,52)(26,0){2}{\line(0,1){\@tempcntavaluea}}% double bond up
68 \else\if\@tmpb T\relax%
69  \Multiput@Direct(-20,52)(20,0){3}{\line(0,1){\@tempcntavaluea}}% triple bond up
70 \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
71  {\thicklines\Put@Line(-8,52)(0,1){\@tempcntavaluea}}% single bond (alpha)
72 \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
73  \dotorline(0,52)(0,1){\@tempcntavaluea}/(0,52)(0,\@tempcntavalueb)%
74 \else\if\@tmpb S%
75  \Put@Line(0,52)(0,1){\@tempcntavaluea}%
76 \else\if\@tmpb U% undefined
77  {%
78  \WaveBonds%
79  \Put@Line(0,52)(0,1){\@tempcntavaluea}%
80  }%
81 \else \Put@Line(0,52)(0,1){\@tempcntavaluea}%
82 \fi\fi\fi\fi\fi\fi%
83 \fi%
84 \putlratom{-40}{\@tempcntavaluec}{\@memberb}%==1 upper substituent

 85 \end{sfpicture}}%
\Eastbond
 86 \def\Eastbond{%
 87 \@ifnextchar[{\E@stbond}{\E@stbond[]}}
 88 \def\E@stbond[#1]{%
 89 \yl@xdiff=-10
 90 \yl@ydiff=33
 91 \edef\@tempXX{#1}%
 92 \ifx\@tempXX\empty
 93 \@tempcnta=140\relax
 94 \@tempcntb=140\relax
 95 \else
 96 \@tempcnta=#1\relax
 97 \@tempcntb=#1\relax
 98 \fi
 99 \ifno@centeratom%
100 \advance\@tempcnta by50\relax
101 \advance\@tempcntb by50\relax
102 \fi
103 \edef\@tempcntavaluea{\the\@tempcnta}%
104 \@tempcnta=\@tempcntb
105 \advance\@tempcnta by63\relax
106 \edef\@tempcntavalueb{\the\@tempcnta}%
107 \@tempcnta=\@tempcntb
108 \advance\@tempcnta by50\relax
109 \edef\@tempcntavaluec{\the\@tempcnta}%
110 %\begin{sfpicture}(200,200)(0,0)
111 \begin{sfpicture}(0,0)(0,0)
112 \ifno@centeratom%
113 \if\@tmpb D\relax%
114  \Multiput@Direct(0,-13)(0,26){2}{\line(1,0){\@tempcntavaluea}}% double bond right
115 \else\if\@tmpb T\relax%
116  \Multiput@Direct(0,-20)(0,20){3}{\line(1,0){\@tempcntavaluea}}% double bond right
117 \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
118  {\thicklines\Put@Line(0,0)(1,0){\@tempcntavaluea}}% single bond (alpha)
119 \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
120  \dotorline(0,0)(1,0){\@tempcntavaluea}/(0,0)(\@tempcntavaluec,0)%
121 \else\if\@tmpb S%
122  \Put@Line(0,0)(1,0){\@tempcntavaluea}%
123 \else\if\@tmpb U% undefined

124 {%

125  \WaveBonds%
126  \Put@Line(0,0)(1,0){\@tempcntavaluea}%

127 }%

128  \else \Put@Line(0,0)(1,0){\@tempcntavaluea}%
129 \fi\fi\fi\fi\fi\fi%
130 \else%
131 \if\@tmpb D\relax%
132  \Multiput@Direct(50,-13)(0,26){2}{\line(1,0){\@tempcntavaluea}}% double bond right
133 \else\if\@tmpb T\relax%
134  \Multiput@Direct(50,-20)(0,20){3}{\line(1,0){\@tempcntavaluea}}% double bond right
135 \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
136  {\thicklines\Put@Line(50,0)(1,0){\@tempcntavaluea}}% single bond (alpha)

137 \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
138  \dotorline(50,0)(1,0){\@tempcntavaluea}/(50,0)(\@tempcntavaluec,0)%
139 \else\if\@tmpb S%
140  \Put@Line(50,0)(1,0){\@tempcntavaluea}%
141 \else\if\@tmpb U% undefined

142 {%

143  \WaveBonds%
144  \Put@Line(50,0)(1,0){\@tempcntavaluea}%

145 }%

146  \else \Put@Line(50,0)(1,0){\@tempcntavaluea}%
147 \fi\fi\fi\fi\fi\fi%
148 \fi%
149 \putratom{\@tempcntavalueb}{-33}{\@memberb}%==2 right substituent
150 \end{sfpicture}}%
\Southbond
151 \def\Southbond{%
152 \@ifnextchar[{\S@uthbond}{\S@uthbond[]}}
153 \def\S@uthbond[#1]{%
154 \yl@xdiff=40
155 \yl@ydiff=95
156 \def\@tempXX{#1}%
157 \ifx\@tempXX\empty
158 \@tempcnta=100\relax
159 \@tempcntb=100\relax
160 \else
161 \@tempcnta=#1\relax
162 \@tempcntb=#1\relax
163 \fi
164 \ifno@centeratom
165 \advance\@tempcnta by48\relax
166 \advance\@tempcntb by48\relax
167 \fi
168 \edef\@tempcntavaluea{\the\@tempcnta}%
169 \@tempcnta=-\@tempcntb
170 \advance\@tempcnta by-48\relax
171 \edef\@tempcntavalueb{\the\@tempcnta}%
172 \@tempcnta=-\@tempcntb
173 \advance\@tempcnta by-143\relax
174 \edef\@tempcntavaluec{\the\@tempcnta}%
175 %\begin{sfpicture}(100,300)(0,0)
176 \begin{sfpicture}(0,0)(0,0)
177 \ifno@centeratom%
178 \if\@tmpb D\relax%
179  \Multiput@Direct(-13,0)(26,0){2}{\line(0,-1){\@tempcntavaluea}}% double bond down
180 \else\if\@tmpb T\relax%
181  \Multiput@Direct(-20,0)(20,0){3}{\line(0,-1){\@tempcntavaluea}}% double bond down
182 \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
183  {\thicklines\Put@Line(-8,0)(0,-1){\@tempcntavaluea}}% single bond (alpha)
184 \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
185  \dotorline(0,0)(0,-1){\@tempcntavaluea}/(0,0)(0,\@tempcntavalueb)%
186 \else\if\@tmpb S%
187  \Put@Line(0,-0)(0,-1){\@tempcntavaluea}%
188 \else\if\@tmpb U% undefined

189 {%

190  \WaveBonds%
191  \Put@Line(0,-0)(0,-1){\@tempcntavaluea}%

192 }%

193  \else \Put@Line(0,0)(0,-1){\@tempcntavaluea}%
194 \fi\fi\fi\fi\fi\fi%
195 \else%
196 \if\@tmpb D\relax%
197  \Multiput@Direct(-13,-48)(26,0){2}{\line(0,-1){\@tempcntavaluea}}% double bond down
198 \else\if\@tmpb T\relax%
199  \Multiput@Direct(-20,-48)(20,0){3}{\line(0,-1){\@tempcntavaluea}}% double bond down
200 \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
201  {\thicklines\Put@Line(-8,-48)(0,-1){\@tempcntavaluea}}% single bond (alpha)
202 \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
203  \dotorline(0,-48)(0,-1){\@tempcntavaluea}/(0,-48)(0,\@tempcntavalueb)%
204 \else\if\@tmpb S%
205  \Put@Line(0,-48)(0,-1){\@tempcntavaluea}%
206 \else\if\@tmpb U% undefined

207 {%

208  \WaveBonds%
209  \Put@Line(0,-48)(0,-1){\@tempcntavaluea}%

210 }%

211  \else \Put@Line(0,-48)(0,-1){\@tempcntavaluea}%
212 \fi\fi\fi\fi\fi\fi%
213 \fi%
214 \putlratom{-40}{\@tempcntavaluec}{\@memberb}%==3 down substituent
215 \end{sfpicture}}%
\Westbond
216 \def\Westbond{%
217 \@ifnextchar[{\W@stbond}{\W@stbond[]}}
218 \def\W@stbond[#1]{%
219 \yl@xdiff=10
220 \yl@ydiff=33
221 \def\@tempXX{#1}%
222 \ifx\@tempXX\empty
223 \@tempcnta=140\relax
224 \@tempcntb=140\relax
225 \else
226 \@tempcnta=#1\relax
227 \@tempcntb=#1\relax
228 \fi
229 \ifno@centeratom
230 \advance\@tempcnta by50\relax
231 \advance\@tempcntb by50\relax
232 \fi
233 \edef\@tempcntavaluea{\the\@tempcnta}%
234 \@tempcnta=-\@tempcntb
235 \advance\@tempcnta by-63\relax
236 \edef\@tempcntavalueb{\the\@tempcnta}%
237 \@tempcnta=\@tempcntb
238 \advance\@tempcnta by50\relax
239 \edef\@tempcntavaluec{\the\@tempcnta}%
240 %\begin{sfpicture}(100,300)(0,0)

241 \begin{sfpicture}(0,0)(0,0)
242 \ifno@centeratom%
243 \if\@tmpb D\relax%
244  \Multiput@Direct(0,-13)(0,26){2}{\line(-1,0){\@tempcntavaluea}}% double bond left
245 \else\if\@tmpb T\relax%
246  \Multiput@Direct(0,-20)(0,20){3}{\line(-1,0){\@tempcntavaluea}}% double bond left
247 \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
248  {\thicklines\Put@Line(0,0)(-1,0){\@tempcntavaluea}}% single bond (alpha)
249 \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
250  \dotorline(0,0)(-1,0){\@tempcntavaluea}/(\@tempcntavalueb,0)(-40,0)%
251 \else\if\@tmpb S%
252  \Put@Line(0,0)(-1,0){\@tempcntavaluea}%
253 \else\if\@tmpb U% undefine

254 {%

255  \WaveBonds%
256  \Put@Line(0,0)(-1,0){\@tempcntavaluea}%

257 }%

258 \else \Put@Line(0,0)(-1,0){\@tempcntavaluea}%
259 \fi\fi\fi\fi\fi\fi%
260 \else%
261 \if\@tmpb D\relax%
262  \Multiput@Direct(-50,-13)(0,26){2}{\line(-1,0){\@tempcntavaluea}}% double bond left
263 \else\if\@tmpb T\relax%
264  \Multiput@Direct(-50,-20)(0,20){3}{\line(-1,0){\@tempcntavaluea}}% double bond left
265 \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
266  {\thicklines\Put@Line(-50,0)(-1,0){\@tempcntavaluea}}% single bond (alpha)
267 \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
268  \dotorline(-50,0)(-1,0){\@tempcntavaluea}/(\@tempcntavalueb,0)(-40,0)%
269 \else\if\@tmpb S%
270  \Put@Line(-50,0)(-1,0){\@tempcntavaluea}%
271 \else\if\@tmpb U% undefined

272 {%

273  \WaveBonds%
274  \Put@Line(-50,0)(-1,0){\@tempcntavaluea}%

275 }%

276 \else \Put@Line(-50,0)(-1,0){\@tempcntavaluea}%
277 \fi\fi\fi\fi\fi\fi%
278 \fi%
279 \putlatom{\@tempcntavalueb}{-33}{\@memberb}%==4 left substituent
280 \end{sfpicture}}%
\NEBond
281 \def\NEBond{%degree 120
282 \yl@xdiff=-9
283 \yl@ydiff=13
284 \begin{sfpicture}(100,300)(0,0)
285 \if\@tmpb D\relax%
286  \Put@Line(33,48)(5,3){121}%
287  \Put@Line(47,26)(5,3){121}%northeast double bond
288 \else\if\@tmpb T\relax%
289  \Put@Line(31,52)(5,3){121}%
290  \Put@Line(40,37)(5,3){121}%
291  \Put@Line(49,22)(5,3){121}%northeast triple bond
292 %  \else\if\@tmpb A%(A) alpha

293 \else\if\@tmpb B%(B) beta
294  {\thicklines\Put@Line(40,47)(5,3){121}}% single bond (alpha)
295 %  \else\if\@tmpb B%(B) beta
296 \else\if\@tmpb A%(A) alpha
297  \dotorline(40,47)(5,3){121}/(40,47)(161,120)%
298 \else\if\@tmpb S%
299  \Put@Line(40,47)(5,3){121}%
300 \else\if\@tmpb U% undefined

301 {%

302  \WaveBonds%
303  \Put@Line(40,47)(5,3){121}%

304 }%

305 \else \Put@Line(40,47)(5,3){121}%
306 \fi\fi\fi\fi\fi\fi%
307 \putratom{170}{107}{\@memberb}%==2 (northeast substituent)
308 \end{sfpicture}}%
\NEbond
309 \def\NEbond{%degree 90
310 \yl@xdiff=-5
311 \yl@ydiff=10
312 \begin{sfpicture}(100,300)(0,0)
313 \if\@tmpb D\relax%
314  \Put@Line(31,46)(1,1){100}%
315  \Put@Line(49,28)(1,1){100}%northeast double bond
316 \else\if\@tmpb T\relax%
317  \Put@Line(27,50)(1,1){100}%
318  \Put@Line(40,37)(1,1){100}%
319  \Put@Line(53,24)(1,1){100}%northeast triple bond
320 \else\if\@tmpb B%(B) beta
321  {\thicklines\Put@Line(40,47)(1,1){100}}% single bond (alpha)
322 \else\if\@tmpb A%(A) alpha
323  \dotorline(40,47)(1,1){100}/(40,47)(140,147)%
324 \else\if\@tmpb S%
325  \Put@Line(40,47)(1,1){100}%
326 \else\if\@tmpb U% undefined

327 {%

328  \WaveBonds%
329  \Put@Line(40,47)(1,1){100}%

330 }%

331 \else \Put@Line(40,47)(1,1){100}%
332 \fi\fi\fi\fi\fi\fi%
333 \putratom{145}{137}{\@memberb}%==2 (northeast substituent)
334 \end{sfpicture}}%
\SEBond
335 \def\SEBond{%degree 120
336 \yl@xdiff=-9
337 \yl@ydiff=67
338 \begin{sfpicture}(100,300)(0,0)
339 \if\@tmpb D\relax%
340  \Put@Line(33,-48)(5,-3){121}%
341  \Put@Line(47,-26)(5,-3){121}%southeast double bond
342 \else\if\@tmpb T\relax%

343  \Put@Line(31,-52)(5,-3){121}%
344  \Put@Line(40,-37)(5,-3){121}%
345  \Put@Line(49,-22)(5,-3){121}%southeast triple bond
346 \else\if\@tmpb B%(B) beta
347  {\thicklines\Put@Line(40,-47)(5,-3){121}}% single bond (alpha)
348 \else\if\@tmpb A%(A) alpha
349  \dotorline(40,-47)(5,-3){121}/(40,-47)(161,-120)%
350 \else\if\@tmpb S%
351  \Put@Line(40,-47)(5,-3){121}%
352 \else\if\@tmpb U% undefined

353 {%

354  \WaveBonds%
355  \Put@Line(40,-47)(5,-3){121}%

356 }%

357 \else \Put@Line(40,-47)(5,-3){121}%
358 \fi\fi\fi\fi\fi\fi%
359 \putratom{170}{-187}{\@memberb}%==2 (southeast substituent)
360 \end{sfpicture}}%
\SEbond
361 \def\SEbond{%degree 90
362 \yl@xdiff=-5
363 \yl@ydiff=56
364 \begin{sfpicture}(100,300)(0,0)
365 \if\@tmpb D\relax%
366  \Put@Line(31,-46)(1,-1){100}%
367  \Put@Line(49,-28)(1,-1){100}%southeast double bond
368 \else\if\@tmpb T\relax%
369  \Put@Line(27,-50)(1,-1){100}%
370  \Put@Line(40,-37)(1,-1){100}%
371  \Put@Line(53,-24)(1,-1){100}%southeast triple bond
372 \else\if\@tmpb B%(B) beta
373  {\thicklines\Put@Line(53,-47)(1,-1){100}}% single bond (alpha)
374 \else\if\@tmpb A%(A) alpha
375  \dotorline(40,-47)(1,-1){100}/(40,-47)(140,-147)%
376 \else\if\@tmpb S%
377  \Put@Line(40,-47)(1,-1){100}%
378 \else\if\@tmpb U% undefined

379 {%

380  \WaveBonds%
381  \Put@Line(40,-47)(1,-1){100}%

382 }%

383 \else \Put@Line(40,-47)(1,-1){100}%
384 \fi\fi\fi\fi\fi\fi%
385 \putratom{145}{-203}{\@memberb}%==3 (southeast substituent)
386 \end{sfpicture}}%
\NWBbond
387 \def\NWBond{%
388 \begin{sfpicture}(100,300)(0,0)
389 \yl@xdiff=9
390 \yl@ydiff=13
391 \if\@tmpb D\relax%
392  \Put@Line(-59,48)(-5,3){121}%

393  \Put@Line(-73,26)(-5,3){121}%northwest double bond
394 \else\if\@tmpb T\relax%
395  \Put@Line(-57,52)(-5,3){121}%
396  \Put@Line(-66,37)(-5,3){121}%
397  \Put@Line(-75,22)(-5,3){121}%northwest triple bond
398 \else\if\@tmpb B%(B) beta
399  {\thicklines\Put@Line(-66,47)(-5,3){121}}% single bond (alpha)
400 \else\if\@tmpb A%(A) alpha
401  \dotorline(-66,47)(-5,3){121}/(-66,47)(-187,120)%
402 \else\if\@tmpb S%
403  \Put@Line(-66,47)(-5,3){121}%
404 \else\if\@tmpb U% undefined

405 {%

406  \WaveBonds%
407  \Put@Line(-66,47)(-5,3){121}%

408 }%

409 \else \Put@Line(-66,47)(-5,3){121}%
410 \fi\fi\fi\fi\fi\fi%
411 \putlatom{-196}{107}{\@memberb}%==2 (northwest substituent)
412 \end{sfpicture}}%
\NWbond
413 \def\NWbond{%
414 \begin{sfpicture}(100,300)(0,0)
415 \yl@xdiff=13
416 \yl@ydiff=10
417 \if\@tmpb D\relax%
418  \Put@Line(-41,46)(-1,1){100}%
419  \Put@Line(-59,28)(-1,1){100}%northwest double bond
420 \else\if\@tmpb T\relax%
421  \Put@Line(-37,50)(-1,1){100}%
422  \Put@Line(-50,37)(-1,1){100}%
423  \Put@Line(-63,24)(-1,1){100}%northwest triple bond
424 \else\if\@tmpb B%(B) beta
425  {\thicklines\Put@Line(-50,47)(-1,1){100}}% single bond (alpha)
426 \else\if\@tmpb A%(A) alpha
427  \dotorline(-50,47)(-1,1){100}/(-50,47)(-137,147)%
428 \else\if\@tmpb S%
429  \Put@Line(-50,47)(-1,1){100}%
430 \else\if\@tmpb U% undefined

431 {%

432  \WaveBonds%
433  \Put@Line(-50,47)(-1,1){100}%

434 }%

435 \else \Put@Line(-50,47)(-1,1){100}%
436 \fi\fi\fi\fi\fi\fi%
437 \putlatom{-163}{137}{\@memberb}%==2 (northwest substituent)
438 \end{sfpicture}}%
\SWBond
439 \def\SWBond{%
440 \yl@xdiff=9
441 \yl@ydiff=67
442 \begin{sfpicture}(100,300)(0,0)

443 \if\@tmpb D\relax%
444  \Put@Line(-59,-48)(-5,-3){121}%
445  \Put@Line(-73,-26)(-5,-3){121}%southwest double bond
446 \else\if\@tmpb T\relax%
447  \Put@Line(-57,-52)(-5,-3){121}%
448  \Put@Line(-66,-37)(-5,-3){121}%
449 \else\if\@tmpb B%(B) beta
450  \Put@Line(-75,-22)(-5,-3){121}%southwest triple bond
451  {\thicklines\Put@Line(-66,-47)(-5,-3){121}}% single bond (alpha)
452 \else\if\@tmpb A%(A) alpha
453  \dotorline(-66,-47)(-5,-3){121}/(-66,-47)(-187,-120)%
454 \else\if\@tmpb S%
455  \Put@Line(-66,-47)(-5,-3){121}%
456 \else\if\@tmpb U% undefined

457 {%

458  \WaveBonds%
459  \Put@Line(-66,-47)(-5,-3){121}%

460 }%

461 \else \Put@Line(-66,-47)(-5,-3){121}%
462 \fi\fi\fi\fi\fi\fi%
463 \putlatom{-196}{-187}{\@memberb}%==2 (southwest substituent)
464 \end{sfpicture}}%
\SWbond
465 \def\SWbond{%
466 \yl@xdiff=13
467 \yl@ydiff=56
468 \begin{sfpicture}(100,300)(0,0)
469 \if\@tmpb D\relax%
470  \Put@Line(-41,-46)(-1,-1){100}%
471  \Put@Line(-59,-28)(-1,-1){100}%southwest double bond
472 \else\if\@tmpb T\relax%
473  \Put@Line(-37,-50)(-1,-1){100}%
474  \Put@Line(-50,-37)(-1,-1){100}%
475  \Put@Line(-63,-24)(-1,-1){100}%southwest triple bond
476 \else\if\@tmpb B%(B) beta
477  {\thicklines\Put@Line(-50,-47)(-1,-1){100}}% single bond (alpha)
478 \else\if\@tmpb A%(A) alpha
479  \dotorline(-50,-47)(-1,-1){100}/(-50,-47)(-137,-147)%
480 \else\if\@tmpb S%
481  \Put@Line(-50,-47)(-1,-1){100}%
482 \else\if\@tmpb U% undefined

483 {%

484  \WaveBonds%
485  \Put@Line(-50,-47)(-1,-1){100}%

486 }%

487 \else \Put@Line(-50,-47)(-1,-1){100}%
488 \fi\fi\fi\fi\fi\fi%
489 \putlatom{-163}{-203}{\@memberb}%==3 (southwest substituent)
490 \end{sfpicture}}%
\NEBOND
491 \def\NEBOND{%degree 120
492 \yl@xdiff=-1

493 \yl@ydiff=-10
494 \begin{sfpicture}(100,300)(0,0)
495 \if\@tmpb D\relax%
496  \Put@Line(48,33)(3,5){72}%
497  \Put@Line(26,47)(3,5){72}%northeast double bond
498 \else\if\@tmpb T\relax%
499  \Put@Line(52,31)(3,5){72}%
500  \Put@Line(37,40)(3,5){72}%
501  \Put@Line(22,49)(3,5){72}%northeast triple bond
502 \else\if\@tmpb B%(B) beta
503  {\thicklines\Put@Line(40,47)(3,5){72}}% single bond (alpha)
504 \else\if\@tmpb A%(A) alpha
505  \dotorline(47,40)(3,5){72}/(47,40)(120,161)%
506 \else\if\@tmpb S%
507  \Put@Line(47,40)(3,5){72}%
508 \else\if\@tmpb U% undefined

509 {%

510  \WaveBonds%
511  \Put@Line(47,40)(3,5){72}%

512 }%

513 \else \Put@Line(47,40)(3,5){72}%
514 \fi\fi\fi\fi\fi\fi%
515 \putratom{120}{170}{\@memberb}%==2 (northeast substituent)
516 \end{sfpicture}}%
\SEBOND
517 \def\SEBOND{%degree 120
518 \yl@xdiff=-1
519 \yl@ydiff=70
520 \begin{sfpicture}(100,300)(0,0)
521 \if\@tmpb D\relax%
522  \Put@Line(48,-33)(3,-5){72}%
523  \Put@Line(26,-47)(3,-5){72}%southeast double bond
524 \else\if\@tmpb T\relax%
525  \Put@Line(52,-31)(3,-5){72}%
526  \Put@Line(37,-40)(3,-5){72}%
527  \Put@Line(22,-49)(3,-5){72}%southeast triple bond
528 \else\if\@tmpb B%(B) beta
529  {\thicklines\Put@Line(47,-40)(3,-5){72}}% single bond (alpha)
530 \else\if\@tmpb A%(A) alpha
531  \dotorline(47,-40)(3,-5){72}/(47,-40)(120,-161)%
532 \else\if\@tmpb S%
533  \Put@Line(47,-40)(3,-5){72}%
534 \else\if\@tmpb U% undefined

535 {%

536  \WaveBonds%
537  \Put@Line(47,-40)(3,-5){72}%

538 }%

539 \else \Put@Line(47,-40)(3,-5){72}%
540 \fi\fi\fi\fi\fi\fi%
541 \putratom{120}{-230}{\@memberb}%==2 (southeast substituent)
542 \end{sfpicture}}%
\NWBOND

543 \def\NWBOND{%
544 \yl@xdiff=1
545 \yl@ydiff=-10
546 \begin{sfpicture}(100,300)(0,0)
547 \if\@tmpb D\relax%
548  \Put@Line(-48,33)(-3,5){72}%
549  \Put@Line(-26,47)(-3,5){72}%northwest double bond
550 \else\if\@tmpb T\relax%
551  \Put@Line(-52,31)(-3,5){72}%
552  \Put@Line(-37,40)(-3,5){72}%
553  \Put@Line(-22,49)(-3,5){72}%northwest triple bond
554 \else\if\@tmpb B%(B) beta
555  {\thicklines\Put@Line(-40,47)(-3,5){72}}% single bond (alpha)
556 \else\if\@tmpb A%(A) alpha
557  \dotorline(-47,40)(-3,5){72}/(-47,40)(-120,161)%
558 \else\if\@tmpb S%
559  \Put@Line(-47,40)(-3,5){72}%
560 \else\if\@tmpb U% undefined

561 {%

562  \WaveBonds%
563  \Put@Line(-47,40)(-3,5){72}%

564 }%

565 \else \Put@Line(-47,40)(-3,5){72}%
566 \fi\fi\fi\fi\fi\fi%
567 \putlatom{-120}{170}{\@memberb}%==2 (northwest substituent)
568 \end{sfpicture}}%
\SWBOND
569 \def\SWBOND{%
570 \yl@xdiff=1
571 \yl@ydiff=70
572 \begin{sfpicture}(100,300)(0,0)
573 \if\@tmpb D\relax%
574  \Put@Line(-48,-33)(-3,-5){72}%
575  \Put@Line(-26,-47)(-3,-5){72}%southwest double bond
576 \else\if\@tmpb T\relax%
577  \Put@Line(-52,-31)(-3,-5){72}%
578  \Put@Line(-37,-40)(-3,-5){72}%
579  \Put@Line(-22,-49)(-3,-5){72}%southwest triple bond
580 \else\if\@tmpb B%(B) beta
581  {\thicklines\Put@Line(-47,-40)(-3,-5){72}}% single bond (alpha)
582 \else\if\@tmpb A%(A) alpha
583  \dotorline(-47,-40)(-3,-5){72}/(-47,-40)(-120,-161)%
584 \else\if\@tmpb S%
585  \Put@Line(-47,-40)(-3,-5){72}%
586 \else\if\@tmpb U% undefined

587 {%

588  \WaveBonds%
589  \Put@Line(-47,-40)(-3,-5){72}%

590 }%

591 \else \Put@Line(-47,-40)(-3,-5){72}%
592 \fi\fi\fi\fi\fi\fi%
593 \putlatom{-120}{-230}{\@memberb}%==2 (southwest substituent)
594 \end{sfpicture}}%

5 Tetrahedral unit

The macro \tetrahedral typesets a compound of tetravalency. The following numbering is adopted in this macro.

 ********************
 * tetrahedral unit *
 ********************
                1
                |
          2  -- 0 --  4       0 <== the original point
                |
                3

This macro has an argument SUBSLIST as well as an optional argument

AUXLIST.
   \tetrahedral[AUXLIST]{SUBSLIST}<L1,L2,L3,L4>

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.

     AUXLIST =
        {0+} :  + charge (or another one chararacter) on the center

The arugument SUBLIST designates a set of substitutients.

     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)

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.

       e.g.
        \tetrahedral{1==Cl;2==F}
        \tetrahedral{1==Cl;4==F;2==CH$_{3}$}

\tetrahedral
\@tetrahedral
595 \def\tetrahedral{\@ifnextchar[{\@tetrahedral[r}{\@tetrahedral[r]}}
596 \def\@tetrahedral#1]#2{%
597 \@ifnextchar<{\@@tetrahedral#1]{#2}}{\@@tetrahedral#1]{#2}<,,,>}}%bug @ added 2009/11/07
598 \def\@@tetrahedral#1]#2<#3,#4,#5,#6>{%
599 \@reset@ylsw%
600 \West@bondfalse
601 \East@bondfalse
602 \centralatomcheck{#2}%
603 \yltetrahedralposition{#2}%
604 \if@ylsw \ifx\@@ylii\empty
605 \def\@@ylii{0}\def\@@yli{0}\fi
606 \fi
607 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
608 (600,600)(-300,-300){tetrahedral}%2002/4/30 by S. Fujita
609 (300,300)%
610 \@tfor\member:=#1\do{%
611 \expandafter\twoch@@r\member{}{}%
612 \if\@@tmpa 0\relax {\putratom{47}{50}{\scriptsize\@@tmpb}}\fi}%
613 %%%%%%%%%%%%%%%%%%%%%%
614 %setting central atom%
615 %%%%%%%%%%%%%%%%%%%%%%
616 \@tempdima=0pt
617 \@forsemicol\member:=#2\do{%
618 \ifx\member\empty\else
619 \expandafter\@m@mb@r\member;\relax%
620 \expandafter\threech@r\@membera{}{}%
621 \ifx\@memberb\@yl\else
622 \ifcase\@tmpa%central atom
623 \setbox9=\hbox{\@memberb}%
624 \ifdim\wd9<0.72em
625 \@tempdima=0.72em
626 {\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}%
627 \else
628 \ifWest@bond
629 \@tempdima=\wd9
630 {\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb}}}%central atom
631 %%%\global\West@bondfalse
632 \else
633 \@tempdima=\wd9
634 {\putlratom{-40}{-33}{\hbox to.72em{\@memberb\hss}}}%central atom
635 \fi\fi
636 \else%%no action
637 \fi%end of ifcase%
638 \fi\fi}%
639 %%%%%%%%%%%%%%%%%%%%%%
640 %%setting four bonds%%
641 %%%%%%%%%%%%%%%%%%%%%%
642 \@forsemicol\member:=#2\do{%
643 \ifx\member\empty\else
644 \expandafter\@m@mb@r\member;\relax%
645 \expandafter\threech@r\@membera{}{}%
646 \ifx\@memberb\@yl\else
647 \ifcase\@tmpa

648 \or
649 \ifWest@bond
650 \Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Northbond[#3]}%
651 \else
652 \Put@Direct(0,0){\Northbond[#3]}%
653 \fi
654 \or{%
655 \ifWest@bond
656 \Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Westbond[#4]}%
657 \else
658 \Put@Direct(0,0){\Westbond[#4]}%
659 \fi

660 }%

661 \or
662 \ifWest@bond
663 \Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Southbond[#5]}%
664 \else
665 \Put@Direct(0,0){\Southbond[#5]}%
666 \fi
667 \or{%
668 \ifno@centeratom%
669 \Put@Direct(0,0){\Eastbond[#6]}%
670 \else%
671 %\advance\@tempdima by-0.72em
672 %\Put@Direct(0,0){\kern\@tempdima\Eastbond[#6]}%
673 \Put@Direct(0,0){\kern\@tempdima\kern-0.72em\Eastbond[#6]}%
674 \fi}%
675 \fi%end of ifcase
676 \fi\fi}%
677 \end{ShiftPicEnvB}%
678 \West@bondfalse
679 \East@bondfalse
680 }%end of macro tetrahedral
\centralatomcheck
681 \def\centralatomcheck#1{%
682 \no@centeratomtrue%
683 \@forsemicol\member:=#1\do{%
684 \ifx\member\empty\else
685 \expandafter\@m@mb@r\member;\relax
686 \expandafter\threech@r\@membera{}{}\relax
687 \ifcase\@tmpa\relax%
688 \no@centeratomfalse%
689 \else%no action
690 \fi\fi%

691 }}

    The command \yltetrahedralposition is used in \tetrahedral to adjust a

substitution position.

\yltetrahedralposition
692 \newif\ifEast@bond
693 \newif\ifWest@bond
694 \def\yltetrahedralposition#1{%

695 \@@ylswfalse%%%\@reset@ylsw
696 \West@bondfalse
697 \East@bondfalse
698 \@forsemicol\member:=#1\do{%
699 \if@@ylsw\else
700 \ifx\member\empty\else
701 \expandafter\@m@mb@r\member;\relax
702 \expandafter\threech@r\@membera{}{}\relax
703 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
704 \if@@ylsw%
705 \ifcase\@tmpa%
706 \or%
707 \ifno@centeratom%
708 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1
709 \else%
710 \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1
711 \fi%
712 \or%
713 \ifno@centeratom%
714  \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
715 \else%
716  \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%
717 \fi%
718 \East@bondtrue%W subst. on 1
719 \or%
720 \ifno@centeratom%
721 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%S subst. on 1
722 \else%
723 \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1
724 \fi%
725 \or%
726 \ifno@centeratom%
727 %   \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%??????
728 \gdef\@ylii{-72}\gdef\@yli{0}\global\@ylswtrue%??????
729 \else%
730 \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%
731 \fi%
732  \West@bondtrue%E subst. on 1
733 \fi%end of ifcase
734 \fi\fi\fi}}%

6 Divalenth unit

The command \divalenth produces a length-variable divalent unit.

  ******************
  * Divalenth unit *
  ******************

           1  -- (group) --  2       0 <== the original point

This macro has an argument SUBSLIST as well as an optional argument GROUP.

    \divalenth{GROUP}{SUBSLIST}

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.

      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)

\divalenth
735 \def\divalenth#1#2{%
736 \@reset@ylsw%
737 \yldivalenthposition{#1}{#2}%
738 \if@ylsw \ifx\@@ylii\empty
739 \def\@@ylii{0}\def\@@yli{0}\fi
740 \fi
741 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
742 (600,400)(-300,-200){\divalenth}%2002/4/30 by S. Fujita
743 (300,200)%
744 {\expandafter\@m@mb@r#1;\relax
745 \putratom{-30}{-33}{\@memberb}}%
746 \@forsemicol\member:=#2\do{%
747 \ifx\member\empty\else
748 \expandafter\@m@mb@r\member;\relax%
749 \expandafter\threech@r\@membera{}{}%
750 \ifx\@memberb\@yl\else
751 \ifcase\@tmpa
752 \or\Put@Direct(0,0){\Westbond}%
753 \or\Put@Direct(\the\@tempcnta,0){\Eastbond}\fi%end of ifcase
754 \fi\fi}%
755 \end{ShiftPicEnvB}%
756 }%end of macro tetrahedral
    The command \yldivalenthposition is used in \tetrahedral to adjust a

substitution position.

\yldivalenthposition
757 \def\yldivalenthposition#1#2{%
758 {\expandafter\@m@mb@r#1;\relax
759 \setbox0=\hbox{\@memberb}%
760 \@tempcnta=\wd0

761 \@tempcntb=\unitlength
762 \divide\@tempcnta by\@tempcntb
763 \global\advance\@tempcnta by-62%
764 \@tempcntb=\@tempcnta \global\advance\@tempcntb by50\relax

765 }%

766 \@@ylswfalse%
767 \@forsemicol\member:=#2\do{%
768 \if@@ylsw\else
769 \ifx\member\empty\else
770 \expandafter\@m@mb@r\member;\relax
771 \expandafter\threech@r\@membera{}{}\relax
772 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
773 \if@@ylsw
774 \ifcase\@tmpa
775 \or \gdef\@ylii{50}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
776 \or \edef\@ylii{-\the\@tempcntb}\gdef\@yli{0}\global\@ylswtrue%E subst. on 1
777 \fi%end of ifcase
778 \fi\fi\fi}}%

7 Trigonal unit

7.1 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^{∘} (narrow type), while the left-hand bond is typeset horizontally.

  *************************
  * trigonal unit (right) *
  *************************
                       3
                     /
                   /
          1  --- 0  90      0 <== the original point
                  `
                    `
                      2

This macro has an argument SUBSLIST as well as an optional argument

 AUXLIST.
    \rtrigonal[AUXLIST]{SUBSLIST}

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.

      AUXLIST =
        {0+}:  + charge (or another one chararacter) on the center

The arugument SUBLIST designates a set of substitutients.

      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)

        e.g.
         \rtrigonal{1==Cl;2==F}
         \rtrigonal{1==Cl;4==F;2==CH$_{3}$}

\rtrigonal \@rtrigonal
779 \def\rtrigonal{\@ifnextchar[{\@rtrigonal[r}{\@rtrigonal[r]}}
780 \def\@rtrigonal#1]#2{%
781 \begingroup
782 \@reset@ylsw%
783 \West@bondfalse
784 \East@bondfalse
785 \ylrtrigonalposition{#2}%
786 \if@ylsw \ifx\@@ylii\empty
787 \def\@@ylii{0}\def\@@yli{0}\fi
788 \fi
789 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
790 (600,600)(-300,-300){rtrigonal}%2002/4/30 by S. Fujita
791 (300,300)%
792 \@tfor\member:=#1\do{%
793 \expandafter\twoch@@r\member{}{}%
794 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
795 \@forsemicol\member:=#2\do{%
796 \ifx\member\empty\else
797 \expandafter\@m@mb@r\member;\relax%
798 \expandafter\threech@r\@membera{}{}%
799 \ifx\@memberb\@yl\else
800 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
801 \or\Put@Direct(0,0){\Westbond}%
802 \or\Put@Direct(0,0){\SEbond}%
803 \or\Put@Direct(0,0){\NEbond}%
804 \fi%end of ifcase
805 \fi\fi}%
806 \end{ShiftPicEnvB}%
807 \endgroup}%end of macro rtrigonal

The command \ylrtrigonalposition is used in \rtrigonal to adjust a substitution position.

\ylrtrigonalposition
808 \def\ylrtrigonalposition#1{%
809 \@@ylswfalse%%%\@reset@ylsw
810 \@forsemicol\member:=#1\do{%
811 \if@@ylsw\else
812 \ifx\member\empty\else
813 \expandafter\@m@mb@r\member;\relax
814 \expandafter\threech@r\@membera{}{}\relax
815 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
816 \if@@ylsw
817 \ifcase\@tmpa
818 \or \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue% W subst. on 1
819 \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
820 \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
821 \fi%end of ifcase
822 \fi\fi\fi}}%

7.2 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^{∘} (broad type), while the left-hand bond is typeset horizontally.

  *************************
  * trigonal unit (right) *
  *************************
                       3
                     /
                   /
          1  --- 0  120      0 <== the original point
                  `
                    `
                      2

This macro has an argument SUBSLIST as well as an optional argument

 AUXLIST.
    \rtrigonal[AUXLIST]{SUBSLIST}

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.

      AUXLIST =
        {0+}:  + charge (or another one chararacter) on the center

The arugument SUBLIST designates a set of substitutients.

      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)

        e.g.
         \rtrigonal{1==Cl;2==F}
         \rtrigonal{1==Cl;4==F;2==CH$_{3}$}

\Rtrigonal \@Rtrigonal
823 \def\Rtrigonal{\@ifnextchar[{\@Rtrigonal[r}{\@Rtrigonal[r]}}
824 \def\@Rtrigonal#1]#2{%
825 \begingroup
826 \@reset@ylsw%
827 \West@bondfalse
828 \East@bondfalse
829 \ylRtrigonalposition{#2}%
830 \if@ylsw \ifx\@@ylii\empty
831 \def\@@ylii{0}\def\@@yli{0}\fi
832 \fi
833 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
834 (600,600)(-300,-300){Rtrigonal}%2002/4/30 by S. Fujita
835 (300,300)%
836 \@tfor\member:=#1\do{%
837 \expandafter\twoch@@r\member{}{}%
838 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
839 \@forsemicol\member:=#2\do{%
840 \ifx\member\empty\else
841 \expandafter\@m@mb@r\member;\relax%
842 \expandafter\threech@r\@membera{}{}%
843 \ifx\@memberb\@yl\else
844 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
845 \or\Put@Direct(0,0){\Westbond}%
846 \or\Put@Direct(0,0){\SEBOND}%
847 \or\Put@Direct(0,0){\NEBOND}%
848 \fi%end of ifcase
849 \fi\fi}%
850 \end{ShiftPicEnvB}%
851 \endgroup}%end of macro Rtrigonal

The command \ylRtrigonalposition is used in \Rtrigonal to adjust a substitution position.

\ylRtrigonalposition
852 \def\ylRtrigonalposition#1{%
853 \@@ylswfalse%%%\@reset@ylsw

854 \@forsemicol\member:=#1\do{%
855 \if@@ylsw\else
856 \ifx\member\empty\else
857 \expandafter\@m@mb@r\member;\relax
858 \expandafter\threech@r\@membera{}{}\relax
859 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
860 \if@@ylsw
861 \ifcase\@tmpa
862 \or \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue% W subst. on 1
863 \or \gdef\@ylii{-47}\gdef\@yli{40}\global\@ylswtrue% SE subst. on 1
864 \or \gdef\@ylii{-47}\gdef\@yli{-40}\global\@ylswtrue% NE subst. on 1
865 \fi%end of ifcase
866 \fi\fi\fi}}%

7.3 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^{∘} (narrow type), while the right-hand bond is typeset horizontally.

  ************************
  * trigonal unit (left) *
  ************************
          2
            `
              `
           90   0 --- 1       0 <== the original point
              /
            /
          3

This macro has an argument SUBSLIST as well as an optional argument

 AUXLIST.
    \ltrigonal[AUXLIST]{SUBSLIST}

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.

      AUXLIST =
       {0+} :  + charge (or another one chararacter) on the center

The arugument SUBLIST designates a set of substitutients.

      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)

        e.g.
         \ltrigonal{1==Cl;2==F}
         \ltrigonal{1==Cl;4==F;2==CH$_{3}$}

\ltrigonal \@ltrigonal
867 \def\ltrigonal{\@ifnextchar[{\@ltrigonal[r}{\@ltrigonal[r]}}
868 \def\@ltrigonal#1]#2{%
869 \begingroup
870 \@reset@ylsw%
871 \West@bondfalse
872 \East@bondfalse
873 \ylltrigonalposition{#2}%
874 \if@ylsw \ifx\@@ylii\empty
875 \def\@@ylii{0}\def\@@yli{0}\fi
876 \fi
877 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
878 (600,600)(-300,-300){ltrigonal}%2002/4/30 by S. Fujita
879 (300,300)%
880 \@tfor\member:=#1\do{%
881 \expandafter\twoch@@r\member{}{}%
882 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
883 \@tempdima=0pt
884 \@forsemicol\member:=#2\do{%
885 \ifx\member\empty\else
886 \expandafter\@m@mb@r\member;\relax%
887 \expandafter\threech@r\@membera{}{}%
888 \ifx\@memberb\@yl\else
889 \ifcase\@tmpa
890 \setbox9=\hbox{\@memberb}%
891 \ifdim\wd9<0.72em
892 \@tempdima=0.72em
893 {\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}%central atom
894 \else
895 \ifWest@bond
896 \@tempdima=\wd9
897 {\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb}}}%central atom
898 \else
899 \@tempdima=\wd9
900 {\putlratom{-40}{-33}{\hbox to.72em{\@memberb\hss}}}%central atom
901 \fi\fi
902 \else%%no action
903 \fi%end of ifcase
904 \fi\fi}%
905 %%%%%

906 \@forsemicol\member:=#2\do{%
907 \ifx\member\empty\else
908 \expandafter\@m@mb@r\member;\relax%
909 \expandafter\threech@r\@membera{}{}%
910 \ifx\@memberb\@yl\else
911 \ifcase\@tmpa
912 \or{%
913 \advance\@tempdima by-0.72em
914 \Put@Direct(0,0){\kern\@tempdima\Eastbond}}%
915 \or{%
916 \ifWest@bond
917 \Put@Direct(0,0){\kern-\@tempdima\kern0.72em\NWbond}%
918 \else
919 \Put@Direct(0,0){\NWbond}%
920 \fi

921 }%

922 \or{%
923 \ifWest@bond
924 \Put@Direct(0,0){\kern-\@tempdima\kern0.72em\SWbond}%
925 \else
926 \Put@Direct(0,0){\SWbond}%
927 \fi

928 }%

929 \fi%end of ifcase
930 \fi\fi}%
931 \end{ShiftPicEnvB}%
932 \West@bondfalse
933 \East@bondfalse
934 \endgroup}%end of macro ltrigonal

The command \ylltrigonalposition is used in \ltrigonal to adjust a substitution position.

\ylltrigonalposition
935 \def\ylltrigonalposition#1{%
936 \@@ylswfalse%%%\@reset@ylsw
937 \@forsemicol\member:=#1\do{%
938 \if@@ylsw\else
939 \ifx\member\empty\else
940 \expandafter\@m@mb@r\member;\relax
941 \expandafter\threech@r\@membera{}{}\relax
942 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
943 \if@@ylsw
944 \ifcase\@tmpa
945 \or \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue% E subst. on 1
946  \West@bondtrue%
947 \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
948 \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
949 \fi%end of ifcase
950 \fi\fi\fi}}%

7.4 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^{∘} (broad type), while the right-hand bond is typeset horizontally.

 ************************
 * trigonal unit (left) *
 ************************
         2
           `
             `
         120   0 --- 1       0 <== the original point
             /
           /
         3

This macro has an argument SUBSLIST as well as an optional argument

AUXLIST.
   \Ltrigonal[AUXLIST]{SUBSLIST}

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.

     AUXLIST =
      {0+} :  + charge (or another one chararacter) on the center

The arugument SUBLIST designates a set of substitutients.

     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)

       e.g.
        \Ltrigonal{1==Cl;2==F}
        \Ltrigonal{1==Cl;4==F;2==CH$_{3}$}

\Ltrigonal \@Ltrigonal
951 \def\Ltrigonal{\@ifnextchar[{\@Ltrigonal[r}{\@Ltrigonal[r]}}
952 \def\@Ltrigonal#1]#2{%
953 \begingroup
954 \@reset@ylsw%
955 \West@bondfalse
956 \East@bondfalse
957 \ylLtrigonalposition{#2}%
958 \if@ylsw \ifx\@@ylii\empty
959 \def\@@ylii{0}\def\@@yli{0}\fi
960 \fi
961 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
962 (600,600)(-300,-300){Ltrigonal}%2002/4/30 by S. Fujita
963 (300,300)%
964 \@tfor\member:=#1\do{%
965 \expandafter\twoch@@r\member{}{}%
966 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
967 \@tempdima=0pt
968 \@forsemicol\member:=#2\do{%
969 \ifx\member\empty\else
970 \expandafter\@m@mb@r\member;\relax%
971 \expandafter\threech@r\@membera{}{}%
972 \ifx\@memberb\@yl\else
973 \ifcase\@tmpa
974 \setbox9=\hbox{\@memberb}%
975 \ifdim\wd9<0.72em
976 \@tempdima=0.72em
977 {\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}%central atom
978 \else
979 \ifWest@bond
980 \@tempdima=\wd9
981 {\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb}}}%central atom
982 %%%%\global\West@bondfalse
983 \else
984 \@tempdima=\wd9
985 {\putlratom{-40}{-33}{\hbox to.72em{\@memberb\hss}}}%central atom
986 \fi\fi
987 \else%%no action
988 \fi%end of ifcase
989 \fi\fi}%
990 %%%%%
991 \@forsemicol\member:=#2\do{%
992 \ifx\member\empty\else
993 \expandafter\@m@mb@r\member;\relax%
994 \expandafter\threech@r\@membera{}{}%
995 \ifx\@memberb\@yl\else
996 \ifcase\@tmpa
997 \or{%
998 \advance\@tempdima by-0.72em
999 \Put@Direct(0,0){\kern\@tempdima\Eastbond}}%
1000 \or{%
1001 \ifWest@bond
1002 \Put@Direct(0,0){\kern-\@tempdima\kern0.72em\NWBOND}%
1003 \else

1004 \Put@Direct(0,0){\NWBOND}%

1005 \fi 1006 }%

1007 \or{%
1008 \ifWest@bond
1009 \Put@Direct(0,0){\kern-\@tempdima\kern0.72em\SWBOND}%
1010 \else
1011 \Put@Direct(0,0){\SWBOND}%

1012 \fi 1013 }%

1014 \fi%end of ifcase
1015 \fi\fi}%
1016 \end{ShiftPicEnvB}%
1017 \West@bondfalse
1018 \East@bondfalse
1019 \endgroup}%end of macro Ltrigonal

The command \ylLtrigonalposition is used in \Ltrigonal to adjust a substitution position.

\ylLtrigonalposition
1020 \def\ylLtrigonalposition#1{%
1021 \@@ylswfalse%%%\@reset@ylsw
1022 \@forsemicol\member:=#1\do{%
1023 \if@@ylsw\else
1024 \ifx\member\empty\else
1025 \expandafter\@m@mb@r\member;\relax
1026 \expandafter\threech@r\@membera{}{}\relax
1027 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1028 \if@@ylsw
1029 \ifcase\@tmpa
1030 \or \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue% E subst. on 1
1031  \West@bondtrue%
1032 \or \gdef\@ylii{47}\gdef\@yli{-40}\global\@ylswtrue% NWB subst. on 1
1033 \or \gdef\@ylii{47}\gdef\@yli{40}\global\@ylswtrue% SWB subst. on 1
1034 \fi%end of ifcase
1035 \fi\fi\fi}}%

7.5 Upward trigonal unit (narrow type)

The macro \utrigonal typesets a compound of trivalency. The two upward bonds form an angle of 90^{∘} (narrow type), while the downward bond is typeset vertically. The following numbering is adopted in this macro.

   **********************
   * trigonal unit (up) *
   **********************
   The following numbering is adopted in this macro.
           3       .   2
             `   90  /
               `   /
                 0        0 <== the original point

                 |
                 |
                 1

This macro has an argument SUBSLIST as well as an optional argument

  AUXLIST.
     \utrigonal[AUXLIST]{SUBSLIST}

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.

       AUXLIST =
        {0+}:  + charge (or another one chararacter) on the center

The arugument SUBLIST designates a set of substitutients.

       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)

         e.g.
          \utrigonal{1==Cl;2==F}
          \utrigonal{1==Cl;4==F;2==CH$_{3}$}

\utrigonal \@utrigonal
1036 \def\utrigonal{\@ifnextchar[{\@utrigonal[r}{\@utrigonal[r]}}
1037 \def\@utrigonal#1]#2{%
1038 \begingroup
1039 \@reset@ylsw%
1040 \ylutrigonalposition{#2}%
1041 \if@ylsw \ifx\@@ylii\empty
1042 \def\@@ylii{0}\def\@@yli{0}\fi

1043 \fi

1044 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1045 (600,600)(-300,-300){utrigonal}%2002/4/30 by S. Fujita
1046 (300,300)%
1047 \@tfor\member:=#1\do{%
1048 \expandafter\twoch@@r\member{}{}%

1049 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
1050 \@forsemicol\member:=#2\do{%
1051 \ifx\member\empty\else
1052 \expandafter\@m@mb@r\member;\relax%
1053 \expandafter\threech@r\@membera{}{}%
1054 \ifx\@memberb\@yl\else
1055 \ifcase\@tmpa
1056 {\putlratom{-40}{-33}{\@memberb}}%central atom
1057 \or\Put@Direct(0,0){\Southbond}%
1058 \or\Put@Direct(0,0){\NEbond}%
1059 \or\Put@Direct(0,0){\NWbond}%
1060 \fi%end of ifcase
1061 \fi\fi}%
1062 \end{ShiftPicEnvB}%
1063 \endgroup}%end of macro utrigonal

The command \ylutrigonalposition is used in \utrigonal to adjust a substitution position.

\ylutrigonalposition
1064 \def\ylutrigonalposition#1{%
1065 \@@ylswfalse%%%\@reset@ylsw
1066 \@forsemicol\member:=#1\do{%
1067 \if@@ylsw\else
1068 \ifx\member\empty\else
1069 \expandafter\@m@mb@r\member;\relax
1070 \expandafter\threech@r\@membera{}{}\relax
1071 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1072 \if@@ylsw
1073 \ifcase\@tmpa
1074 \or \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1
1075 \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
1076 \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
1077 \fi%end of ifcase
1078 \fi\fi\fi}}%

7.6 Upward trigonal unit (broad type)

The macro \Utrigonal typesets a compound of trivalency. The two upward bonds form an angle of 120^{∘} (broad type), while the downward bond is typeset vertically. The following numbering is adopted in this macro.

   **********************
   * trigonal unit (up) *
   **********************
           3           2
             `  120  /
               `   /
                 0        0 <== the original point
                 |
                 |
                 1

This macro has an argument SUBSLIST as well as an optional argument

  AUXLIST.
     \Utrigonal[AUXLIST]{SUBSLIST}

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.

       AUXLIST =
       {0+}:  + charge (or another one chararacter) on the center

The arugument SUBLIST designates a set of substitutients.

       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)

         e.g.
          \Utrigonal{1==Cl;2==F}
          \Utrigonal{1==Cl;4==F;2==CH$_{3}$}

\Utrigonal \@Utrigonal
1079 \def\Utrigonal{\@ifnextchar[{\@Utrigonal[r}{\@Utrigonal[r]}}
1080 \def\@Utrigonal#1]#2{%
1081 \begingroup
1082 \@reset@ylsw%
1083 \ylUtrigonalposition{#2}%
1084 \if@ylsw \ifx\@@ylii\empty
1085 \def\@@ylii{0}\def\@@yli{0}\fi

1086 \fi

1087 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1088 (600,600)(-300,-300){Utrigonal}%2002/4/30 by S. Fujita
1089 (300,300)%
1090 \@tfor\member:=#1\do{%
1091 \expandafter\twoch@@r\member{}{}%
1092 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
1093 \@forsemicol\member:=#2\do{%
1094 \ifx\member\empty\else
1095 \expandafter\@m@mb@r\member;\relax%

1096 \expandafter\threech@r\@membera{}{}%
1097 \ifx\@memberb\@yl\else
1098 \ifcase\@tmpa
1099 {\putlratom{-40}{-33}{\@memberb}}%central atom
1100 \or\Put@Direct(0,0){\Southbond}%
1101 \or\Put@Direct(0,0){\NEBond}%
1102 \or\Put@Direct(0,0){\NWBond}%
1103 \fi%end of ifcase
1104 \fi\fi}%
1105 \end{ShiftPicEnvB}%
1106 \endgroup}%end of macro Utrigonal

The command \ylUtrigonalposition is used in \Utrigonal to adjust a substitution position.

\ylUtrigonalposition
1107 \def\ylUtrigonalposition#1{%
1108 \@@ylswfalse%%%\@reset@ylsw
1109 \@forsemicol\member:=#1\do{%
1110 \if@@ylsw\else
1111 \ifx\member\empty\else
1112 \expandafter\@m@mb@r\member;\relax
1113 \expandafter\threech@r\@membera{}{}\relax
1114 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1115 \if@@ylsw
1116 \ifcase\@tmpa
1117 \or \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1
1118 \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NEB subst. on 1
1119 \or \gdef\@ylii{66}\gdef\@yli{-47}\global\@ylswtrue% NWB subst. on 1
1120 \fi%end of ifcase
1121 \fi\fi\fi}}%

7.7 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.

   ************************
   * trigonal unit (down) *
   ************************
   The following numbering is adopted in this macro.
                  1
                  |
                  |
                  0       0 <== the original point
                /  `
              /  90  `
            2          3

This macro has an argument SUBSLIST as well as an optional argument

  AUXLIST.
     \dtrigonal[AUXLIST]{SUBSLIST}

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.

       AUXLIST =
       {0+} :  + charge (or another one chararacter) on the center

The arugument SUBLIST designates a set of substitutients.

       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)

         e.g.
          \dtrigonal{1==Cl;2==F}
          \dtrigonal{1==Cl;4==F;2==CH$_{3}$}

\dtrigonal \@dtrigonal
1122 \def\dtrigonal{\@ifnextchar[{\@dtrigonal[r}{\@dtrigonal[r]}}
1123 \def\@dtrigonal#1]#2{%
1124 \begingroup
1125 \@reset@ylsw%
1126 \yldtrigonalposition{#2}%
1127 \if@ylsw \ifx\@@ylii\empty
1128 \def\@@ylii{0}\def\@@yli{0}\fi

1129 \fi

1130 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1131 (600,600)(-300,-300){dtrigonal}%2002/4/30 by S. Fujita
1132 (300,300)%
1133 \@tfor\member:=#1\do{%
1134 \expandafter\twoch@@r\member{}{}%
1135 \if\@@tmpa 0\relax {\putratom{37}{50}{\scriptsize\@@tmpb}}\fi}%
1136 \@forsemicol\member:=#2\do{%
1137 \ifx\member\empty\else
1138 \expandafter\@m@mb@r\member;\relax%
1139 \expandafter\threech@r\@membera{}{}%

1140 \ifx\@memberb\@yl\else
1141 \ifcase\@tmpa
1142 {\putlratom{-40}{-33}{\@memberb}}%central atom
1143 \or\Put@Direct(0,0){\Northbond}%
1144 \or\Put@Direct(0,0){\SEbond}%
1145 \or\Put@Direct(0,0){\SWbond}%
1146 \fi%end of ifcase
1147 \fi\fi}%
1148 \end{ShiftPicEnvB}%
1149 \endgroup}%end of macro dtrigonal

The command \yldtrigonalposition is used in \dtrigonal to adjust a substitution position.

\yldtrigonalposition
1150 \def\yldtrigonalposition#1{%
1151 \@@ylswfalse%%%\@reset@ylsw
1152 \@forsemicol\member:=#1\do{%
1153 \if@@ylsw\else
1154 \ifx\member\empty\else
1155 \expandafter\@m@mb@r\member;\relax
1156 \expandafter\threech@r\@membera{}{}\relax
1157 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1158 \if@@ylsw
1159 \ifcase\@tmpa
1160 \or \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1
1161 \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
1162 \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
1163 \fi%end of ifcase
1164 \fi\fi\fi}}%

7.8 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.

   ************************
   * trigonal unit (down) *
   ************************
   The following numbering is adopted in this macro.
                  1
                  |
                  |
                  0       0 <== the original point
                /  `
              /  120 `
            2          3

This macro has an argument SUBSLIST as well as an optional argument

  AUXLIST.

     \Dtrigonal[AUXLIST]{SUBSLIST}

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.

       AUXLIST =
       {0+}:  + charge (or another one chararacter) on the center

The arugument SUBLIST designates a set of substitutients.

       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)

         e.g.
          \Dtrigonal{1==Cl;2==F}
          \Dtrigonal{1==Cl;4==F;2==CH$_{3}$}

\Dtrigonal \@Dtrigonal
1165 \def\Dtrigonal{\@ifnextchar[{\@Dtrigonal[r}{\@Dtrigonal[r]}}
1166 \def\@Dtrigonal#1]#2{%
1167 \begingroup
1168 \@reset@ylsw%
1169 \ylDtrigonalposition{#2}%
1170 \if@ylsw \ifx\@@ylii\empty
1171 \def\@@ylii{0}\def\@@yli{0}\fi

1172 \fi

1173 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1174 (600,600)(-300,-300){Dtrigonal}%2002/4/30 by S. Fujita
1175 (300,300)%
1176 \@tfor\member:=#1\do{%
1177 \expandafter\twoch@@r\member{}{}%
1178 \if\@@tmpa 0\relax {\putratom{37}{50}{\scriptsize\@@tmpb}}\fi}%
1179 \@forsemicol\member:=#2\do{%
1180 \ifx\member\empty\else
1181 \expandafter\@m@mb@r\member;\relax%
1182 \expandafter\threech@r\@membera{}{}%
1183 \ifx\@memberb\@yl\else
1184 \ifcase\@tmpa
1185 {\putlratom{-40}{-33}{\@memberb}}%central atom

1186 \or\Put@Direct(0,0){\Northbond}%
1187 \or\Put@Direct(0,0){\SEBond}%
1188 \or\Put@Direct(0,0){\SWBond}%
1189 \fi%end of ifcase
1190 \fi\fi}%
1191 \end{ShiftPicEnvB}%
1192 \endgroup}%end of macro Dtrigonal

The command \ylDtrigonalposition is used in \Dtrigonal to adjust a substitution position.

\ylDtrigonalposition
1193 \def\ylDtrigonalposition#1{%
1194 \@@ylswfalse%%%\@reset@ylsw
1195 \@forsemicol\member:=#1\do{%
1196 \if@@ylsw\else
1197 \ifx\member\empty\else
1198 \expandafter\@m@mb@r\member;\relax
1199 \expandafter\threech@r\@membera{}{}\relax
1200 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1201 \if@@ylsw
1202 \ifcase\@tmpa
1203 \or \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1
1204 \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SEB subst. on 1
1205 \or \gdef\@ylii{66}\gdef\@yli{47}\global\@ylswtrue% SWB subst. on 1
1206 \fi%end of ifcase
1207 \fi\fi\fi}}%

8 Ethylene derivative

8.1 Horizontal ethylene unit (narrow type)

The macro \ethylene typesets ethylene derivatives. The following numbering is adopted in this macro.

   *****************
   * ethylene unit *
   *****************
           1                4
             `            /
               `        /
            90  (1)===(2) 90     (1) <== the original point
               /        `
             /            `
           2                3

     \ethylene[BONDLIST]{ATOMLIST}{SUBSLIST}

The arugument BONDLIST designates the bond between atom (1) and atom (2) as well as charges on these centeral atoms.

       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))

The arugument SUBLIST designates a set of substitutients.

       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

The arugument ATOMLIST designates the list of central atoms.

       ATOMLIST: list of central atoms
             n          :  atom for n-position (e.g. 1==C)

         e.g.
          \ethylene{}{1==Cl;2==F}
          \ethylene{}{1==Cl;4==F;2==CH$_{3}$}

\ethylene \@ethylene
1208 \def\ethylene{\@ifnextchar[{\@ethylene}{\@ethylene[]}}
1209 \def\@ethylene[#1]#2#3{%
1210 \@reset@ylsw%
1211 \ylethylenepositiona{#3}%
1212 \if@ylsw \ifx\@@ylii\empty
1213 \def\@@ylii{0}\def\@@yli{0}\fi
1214 \else
1215 \ylethylenepositionb{#3}%

1216 \fi

1217 \if@ylsw \ifx\@@ylii\empty
1218 \def\@@ylii{-230}\def\@@yli{0}\fi

1219 \fi

1220 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1221 (800,600)(-300,-300){ethylene}%2002/4/30 by S. Fujita
1222 (300,300)%
1223 {\def\aaa{#1}\ifx\aaa\empty%
1224 \Multiput@Direct(42,-13)(0,25){2}{\line(1,0){140}}\fi% double bond

1225 }%

1226 \@tfor\member:=#1\do{%
1227 \expandafter\twoch@@r\member{}{}%
1228 \if\@@tmpa 1\relax {\putratom{-27}{60}{\scriptsize\@@tmpb}}%
1229 \else\if\@@tmpa 2\relax {\putratom{203}{60}{\scriptsize\@@tmpb}}%

1230 \else\if\@@tmpa d\relax%
1231  {\Multiput@Direct(42,-13)(0,25){2}{\line(1,0){140}}}% double bond
1232 \else\if\@@tmpa t\relax%
1233  {\Multiput@Direct(42,-20)(0,20){3}{\line(1,0){140}}}% triple bond right
1234 \fi\fi\fi\fi}%
1235 {\def\aaa{#2}%
1236 \ifx\aaa\empty%
1237 \putratom{-40}{-33}{C}%central atom
1238 \putratom{190}{-33}{C}%central atom
1239 \else%
1240 \@forsemicol\member:=#2\do{%
1241 \ifx\member\empty\else
1242 \expandafter\@m@mb@r\member;\relax%
1243 \expandafter\threech@r\@membera{}{}%
1244 \ifcase\@tmpa%
1245 \or\putratom{-40}{-33}{\@memberb}%central atom
1246 \or\putratom{190}{-33}{\@memberb}%central atom
1247 \fi\fi}%end of ifcase
1248 \fi%

1249 }%

1250 \@forsemicol\member:=#3\do{%
1251 \ifx\member\empty\else
1252 \expandafter\@m@mb@r\member;\relax%
1253 \expandafter\threech@r\@membera{}{}%
1254 \ifx\@memberb\@yl\else
1255 \ifcase\@tmpa%
1256 \or\Put@Direct(0,0){\NWbond}%
1257 \or\Put@Direct(0,0){\SWbond}%
1258 \or\Put@Direct(230,0){\SEbond}%
1259 \or\Put@Direct(230,0){\NEbond}%
1260 \fi%end of ifcase
1261 \fi\fi}%
1262 \end{ShiftPicEnvB}%
1263 }%end of macro ethylene
\ethyleneh
1264 \let\ethyleneh=\ethylene
    The commands \ylethylenepositiona and \ylethylenepositiona are used

in \ethylene to adjust a substitution position.

\ylethylenepositiona
\ylethylenepositionb
1265 \def\ylethylenepositiona#1{%
1266 \@@ylswfalse%%%\@reset@ylsw
1267 \@forsemicol\member:=#1\do{%
1268 \if@@ylsw\else
1269 \ifx\member\empty\else
1270 \expandafter\@m@mb@r\member;\relax
1271 \expandafter\threech@r\@membera{}{}\relax
1272 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1273 \if@@ylsw
1274 \ifcase\@tmpa
1275 \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
1276 \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1

1277 \fi%end of ifcase
1278 \fi\fi\fi}}%
1279 \def\ylethylenepositionb#1{%
1280 \@@ylswfalse%%%\@reset@ylsw
1281 \@forsemicol\member:=#1\do{%
1282 \if@@ylsw\else
1283 \ifx\member\empty\else
1284 \expandafter\@m@mb@r\member;\relax
1285 \expandafter\threech@r\@membera{}{}\relax
1286 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1287 \if@@ylsw
1288 \ifcase\@tmpa
1289 \or%omit
1290 \or%omit
1291 \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
1292 \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
1293 \fi%end of ifcase
1294 \fi\fi\fi}}%

8.2 Horizontal ethylene unit (broad type)

The macro \Ethylene typesets ethylene derivatives. The following numbering is adopted in this macro.

   *****************
   * ethylene unit *
   *****************
           1                4
             `            /
               `        /
           120  (1)===(2) 120     (1) <== the original point
               /        `
             /            `
           2                3

     \Ethylene[BONDLIST]{ATOMLIST}{SUBSLIST}

The arugument BONDLIST designates the bond between atom (1) and atom (2) as well as charges on these centeral atoms.

       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))

The arugument SUBLIST designates a set of substitutients.

       SUBSLIST: list of substituents

             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

The arugument ATOMLIST designates the list of central atoms.

       ATOMLIST: list of central atoms
             n          :  atom for n-position (e.g. 1==C)

         e.g.
          \Ethylene{}{1==Cl;2==F}
          \Ethylene{}{1==Cl;4==F;2==CH$_{3}$}

\Ethylene \@Ethylene
1295 \def\Ethylene{\@ifnextchar[{\@ethylene}{\@ethylene[]}}
1296 \def\@ethylene[#1]#2#3{%
1297 \@reset@ylsw%
1298 \ylethylenepositiona{#3}%
1299 \if@ylsw \ifx\@@ylii\empty
1300 \def\@@ylii{0}\def\@@yli{0}\fi
1301 \else
1302 \ylethylenepositionb{#3}%

1303 \fi

1304 \if@ylsw \ifx\@@ylii\empty
1305 \def\@@ylii{-230}\def\@@yli{0}\fi

1306 \fi

1307 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1308 (800,600)(-300,-300){Ethylene}%2002/4/30 by S. Fujita
1309 (300,300)%
1310 {\def\aaa{#1}\ifx\aaa\empty%
1311 \Multiput@Direct(42,-13)(0,25){2}{\line(1,0){140}}\fi% double bond

1312 }%

1313 \@tfor\member:=#1\do{%
1314 \expandafter\twoch@@r\member{}{}%
1315 \if\@@tmpa 1\relax {\putratom{-27}{60}{\scriptsize\@@tmpb}}%
1316 \else\if\@@tmpa 2\relax {\putratom{203}{60}{\scriptsize\@@tmpb}}%
1317 \else\if\@@tmpa d\relax%
1318  {\Multiput@Direct(42,-13)(0,25){2}{\line(1,0){140}}}% double bond
1319 \else\if\@@tmpa t\relax%
1320  {\Multiput@Direct(42,-20)(0,20){3}{\line(1,0){140}}}% triple bond right
1321 \fi\fi\fi\fi}%
1322 {\def\aaa{#2}%
1323 \ifx\aaa\empty%
1324 \putratom{-40}{-33}{C}%central atom
1325 \putratom{190}{-33}{C}%central atom
1326 \else%

1327 \@forsemicol\member:=#2\do{%
1328 \ifx\member\empty\else
1329 \expandafter\@m@mb@r\member;\relax%
1330 \expandafter\threech@r\@membera{}{}%
1331 \ifcase\@tmpa%
1332 \or\putratom{-40}{-33}{\@memberb}%central atom
1333 \or\putratom{190}{-33}{\@memberb}%central atom
1334 \fi\fi}%end of ifcase
1335 \fi%

1336 }%

1337 \@forsemicol\member:=#3\do{%
1338 \ifx\member\empty\else
1339 \expandafter\@m@mb@r\member;\relax%
1340 \expandafter\threech@r\@membera{}{}%
1341 \ifx\@memberb\@yl\else
1342 \ifcase\@tmpa%
1343 \or\Put@Direct(0,0){\NWBOND}%
1344 \or\Put@Direct(0,0){\SWBOND}%
1345 \or\Put@Direct(230,0){\SEBOND}%
1346 \or\Put@Direct(230,0){\NEBOND}%
1347 \fi%end of ifcase
1348 \fi\fi}%
1349 \end{ShiftPicEnvB}%
1350 }%end of macro Ethylene
\Ethyleneh
1351 \let\Ethyleneh=\Ethylene

8.3 Vertical ethylene unit (narrow type)

The macro \ethylenev typesets ethylene derivatives in a vatical manner. The following numbering is adopted in this macro.

   ****************************
   * ethylene unit (vertical) *
   ****************************
   The following numbering is adopted in this macro.
           4          3
             `  90  /
               `  /
                (2)
                 ||
                 ||
                (1)  <== the original point
               /  `
             /  90 `
           1         2

     \ethylenev[BONDLIST]{ATOMLIST}{SUBSLIST}

             {n+}  :  + charge (or another one chararacter) on n-atom
               d   :  inner double bond (between (1) and (2))
               t   :  inner triple bond (between (1) and (2))

       SUBSLIST: list of substituents
         for n = 1 to 4
             nT         :  triple bond at n-atom
             nD         :  double bond at n-atom
             n or nS    :  single bond at n-atom
             nA         :  alpha single bond at n-atom
             nB         :  beta single bond at n-atom

       ATOMLIST: list of central atoms
             n          :  atom for n-position (e.g. 1==C)

         e.g.
          \ethylenev{1==Cl;2==F}
          \ethylenev{1==Cl;4==F;2==CH$_{3}$}

\ethylenev \@ethylenev
1352 \def\ethylenev{\@ifnextchar[{\@ethylenev}{\@ethylenev[]}}
1353 \def\@ethylenev[#1]#2#3{%
1354 \@reset@ylsw%
1355 \ylethylenevpositiona{#3}%
1356 \if@ylsw \ifx\@@ylii\empty
1357 \def\@@ylii{0}\def\@@yli{0}\fi
1358 \else
1359 \ylethylenevpositionb{#3}%

1360 \fi

1361 \if@ylsw \ifx\@@ylii\empty
1362 \def\@@ylii{0}\def\@@yli{-230}\fi

1363 \fi

1364 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1365 (600,800)(-300,-300){ethylenev}%2002/4/30 by S. Fujita
1366 (300,300)%
1367 \def\aaa{#1}\ifx\aaa\empty%
1368  \Put@Line(-20,47)(0,1){140}% vertical
1369  \Put@Line(6,47)(0,1){140}\fi%  double bond
1370 \@tfor\member:=#1\do{%
1371 \expandafter\twoch@@r\member{}{}%
1372 \if\@@tmpa 1\relax \putratom{37}{0}{\scriptsize\@@tmpb}
1373 \else\if\@@tmpa 2\relax \putratom{37}{216}{\scriptsize\@@tmpb}
1374 \else\if\@@tmpa d\relax%
1375  \Put@Line(-13,47)(0,1){140}% vertical
1376  \Put@Line(13,47)(0,1){140}%  double bond
1377 \else\if\@@tmpa t\relax%

1378  \Put@Line(-20,47)(0,1){140}% vertical
1379  \Put@Line(-0,47)(0,1){140}%   triple bond
1380  \Put@Line(20,47)(0,1){140}%
1381 \fi\fi\fi\fi}%
1382 \def\aaa{#2}%
1383 \ifx\aaa\empty%
1384 \putratom{-40}{-33}{C}%central atom
1385 \putratom{-40}{197}{C}%central atom
1386 \else%
1387 \@forsemicol\member:=#2\do{%
1388 \ifx\member\empty\else
1389 \expandafter\@m@mb@r\member;\relax%
1390 \expandafter\threech@r\@membera{}{}%
1391 \ifcase\@tmpa%
1392 \or\putratom{-40}{-33}{\@memberb}%central atom
1393 \or\putratom{-40}{197}{\@memberb}%central atom
1394 \fi\fi}%end of ifcase
1395 \fi%
1396 \@forsemicol\member:=#3\do{%
1397 \ifx\member\empty\else
1398 \expandafter\@m@mb@r\member;\relax%
1399 \expandafter\threech@r\@membera{}{}%
1400 \ifx\@memberb\@yl\else
1401 \ifcase\@tmpa%
1402 \or\Put@Direct(0,0){\SWbond}%
1403 \or\Put@Direct(0,0){\SEbond}%
1404 \or\Put@Direct(0,230){\NEbond}%
1405 \or\Put@Direct(0,230){\NWbond}%
1406 \fi%end of ifcase
1407 \fi\fi}%
1408 \end{ShiftPicEnvB}%
1409 }%end of macro ethylenev
    The commands \ylethylenevpositiona and \ylethylenevpositiona are

used in \ethylenev to adjust a substitution position.

\ylethylenepositiona
\ylethylenepositionb
1410 \def\ylethylenevpositiona#1{%
1411 \@@ylswfalse%%%\@reset@ylsw
1412 \@forsemicol\member:=#1\do{%
1413 \if@@ylsw\else
1414 \ifx\member\empty\else
1415 \expandafter\@m@mb@r\member;\relax
1416 \expandafter\threech@r\@membera{}{}\relax
1417 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1418 \if@@ylsw
1419 \ifcase\@tmpa
1420 \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
1421 \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
1422 \fi%end of ifcase
1423 \fi\fi\fi}}%
1424 \def\ylethylenevpositionb#1{%
1425 \@@ylswfalse%%%\@reset@ylsw
1426 \@forsemicol\member:=#1\do{%

1427 \if@@ylsw\else
1428 \ifx\member\empty\else
1429 \expandafter\@m@mb@r\member;\relax
1430 \expandafter\threech@r\@membera{}{}\relax
1431 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1432 \if@@ylsw
1433 \ifcase\@tmpa
1434 \or%omit
1435 \or%omit
1436 \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
1437 \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
1438 \fi%end of ifcase
1439 \fi\fi\fi}}%

8.4 Vertical ethylene unit (broad type)

The macro \Ethylenev typesets ethylene derivatives in a vatical manner. The following numbering is adopted in this macro.

   ****************************
   * ethylene unit (vertical) *
   ****************************
           4          3
             `  120 /
               `  /
                (2)
                 ||
                 ||
                (1)  <== the original point
               /  `
             /  120 `
           1          2

     \Ethylenev[BONDLIST]{ATOMLIST}{SUBSLIST}

       BONDLIST: list of inner bonds and charges
             {n+} :  + charge (or another one chararacter) on n-atom
               d  :  inner double bond (between (1) and (2))
               t  :  inner triple bond (between (1) and (2))

       SUBSLIST: list of substituents
         for n = 1 to 4
             nT         :  triple bond at n-atom
             nD         :  double bond at n-atom
             n or nS    :  single bond at n-atom
             nA         :  alpha single bond at n-atom
             nB         :  beta single bond at n-atom

       ATOMLIST: list of central atoms
             n          :  atom for n-position (e.g. 1==C)

         e.g.
          \Ethylenev{1==Cl;2==F}
          \Ethylenev{1==Cl;4==F;2==CH$_{3}$}

\Ethylenev \@Ethylenev
1440 \def\Ethylenev{\@ifnextchar[{\@Ethylenev}{\@Ethylenev[]}}
1441 \def\@Ethylenev[#1]#2#3{%
1442 \@reset@ylsw%
1443 \ylethylenevpositiona{#3}%
1444 \if@ylsw \ifx\@@ylii\empty
1445 \def\@@ylii{0}\def\@@yli{0}\fi
1446 \else
1447 \ylethylenevpositionb{#3}%

1448 \fi

1449 \if@ylsw \ifx\@@ylii\empty
1450 \def\@@ylii{0}\def\@@yli{-230}\fi

1451 \fi

1452 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1453 (600,800)(-300,-300){Ethylenev}%2002/4/30 by S. Fujita
1454 (300,300)%
1455 \def\aaa{#1}\ifx\aaa\empty%
1456  \Put@Line(-20,47)(0,1){140}% vertical
1457  \Put@Line(6,47)(0,1){140}\fi%  double bond
1458 \@tfor\member:=#1\do{%
1459 \expandafter\twoch@@r\member{}{}%
1460 \if\@@tmpa 1\relax \putratom{37}{0}{\scriptsize\@@tmpb}
1461 \else\if\@@tmpa 2\relax \putratom{37}{216}{\scriptsize\@@tmpb}
1462 \else\if\@@tmpa d\relax%
1463  \Put@Line(-13,47)(0,1){140}% vertical
1464  \Put@Line(13,47)(0,1){140}%   double bond
1465 \else\if\@@tmpa t\relax%
1466  \Put@Line(-20,47)(0,1){140}% vertical
1467  \Put@Line(-0,47)(0,1){140}%   triple bond
1468  \Put@Line(20,47)(0,1){140}%
1469 \fi\fi\fi\fi}%
1470 \def\aaa{#2}%
1471 \ifx\aaa\empty%
1472 \putratom{-40}{-33}{C}%central atom
1473 \putratom{-40}{197}{C}%central atom
1474 \else%
1475 \@forsemicol\member:=#2\do{%
1476 \ifx\member\empty\else
1477 \expandafter\@m@mb@r\member;\relax%
1478 \expandafter\threech@r\@membera{}{}%
1479 \ifcase\@tmpa%
1480 \or\putratom{-40}{-33}{\@memberb}%central atom
1481 \or\putratom{-40}{197}{\@memberb}%central atom
1482 \fi\fi}%end of ifcase

1483 \fi%
1484 \@forsemicol\member:=#3\do{%
1485 \ifx\member\empty\else
1486 \expandafter\@m@mb@r\member;\relax%
1487 \expandafter\threech@r\@membera{}{}%
1488 \ifx\@memberb\@yl\else
1489 \ifcase\@tmpa%
1490 \or\Put@Direct(0,0){\SWBond}%
1491 \or\Put@Direct(0,0){\SEBond}%
1492 \or\Put@Direct(0,230){\NEBond}%
1493 \or\Put@Direct(0,230){\NWBond}%
1494 \fi%end of ifcase
1495 \fi\fi}%
1496 \end{ShiftPicEnvB}%
1497 }%end of macro Ethylenev

9 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.

The command \square is renamed to be \squareplanar. The code is entirely replaced.

   ***************
   * square unit *
   ***************
   The following numbering is adopted in this macro.
           4          1
             `      /
               `  /
                (0)  <== the original point
               /  `
             /     `
           3         2

This macro has an argument SUBSLIST as well as an optional argument

  AUXLIST.
     \squareplanar[AUXLIST]{SUBSLIST}

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.

       AUXLIST =
       {0+}:  + charge (or another one chararacter) on the center

       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)

         e.g.
          \squareplanar{0==C;1==Cl;2==F}
          \squareplanar{0==C;1==Cl;4==F;2==CH$_{3}$}

\squareplanar
\@squareplanar
1498 \def\squareplanar{\@ifnextchar[{\@squareplanar[r}{\@squareplanar[r]}}
1499 \def\@squareplanar#1]#2{%
1500 \@reset@ylsw%
1501 \ylsquareposition{#2}%
1502 \if@ylsw \ifx\@@ylii\empty
1503 \def\@@ylii{0}\def\@@yli{0}\fi

1504 \fi

1505 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1506 (600,600)(-300,-300){square}%2002/4/30 by S. Fujita
1507 (300,300)%
1508 \@tfor\member:=#1\do{%
1509 \expandafter\twoch@@r\member{}{}%
1510 \if\@@tmpa 0\relax {\putratom{37}{0}{\scriptsize\@@tmpb}}\fi}%
1511 \@forsemicol\member:=#2\do{%
1512 \ifx\member\empty\else
1513 \expandafter\@m@mb@r\member;\relax%
1514 \expandafter\threech@r\@membera{}{}%
1515 \ifx\@memberb\@yl\else
1516 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
1517 \or\Put@Direct(0,0){\NEbond}%
1518 \or\Put@Direct(0,0){\SEbond}%
1519 \or\Put@Direct(0,0){\SWbond}%
1520 \or\Put@Direct(0,0){\NWbond}%
1521 \fi%end of ifcase
1522 \fi\fi}%
1523 \end{ShiftPicEnvB}%
1524 }%end of macro squareplanar
1525 \let\squarecomplex=\squareplanar
1526 \let\square=\squarplanar%combatible to the old version (<4.04)
    The commands \ylsquarepositiona and \ylsquarepositiona are used in

\square to adjust a substitution position.

\ylsquareposition

1527 \def\ylsquareposition#1{%
1528 \@@ylswfalse%%%\@reset@ylsw
1529 \@forsemicol\member:=#1\do{%
1530 \if@@ylsw\else
1531 \ifx\member\empty\else
1532 \expandafter\@m@mb@r\member;\relax
1533 \expandafter\threech@r\@membera{}{}\relax
1534 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1535 \if@@ylsw
1536 \ifcase\@tmpa
1537 \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
1538 \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
1539 \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
1540 \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
1541 \fi%end of ifcase
1542 \fi\fi\fi}}%

10 Ball-stick models

10.1 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.

   *****************************
   * tetrahedral unit (stereo) *
   *****************************
   The following numbering is adopted in this macro.
                  1
                  |
            2  -- 0 --  4       0 <== the original point
                  |
                  3

This macro has an argument SUBSLIST as well as an optional argument

  AUXLIST.
     \tetrastereo[AUXLIST]{SUBSLIST}

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.

       AUXLIST =
       {0+} :  + charge (or another one chararacter) on the center

         for n = 1 to 4
             n          :  single bond at n-atom
         for 0          :  cetral atom (e.g. 0==C)

         e.g.
          \tetrastereo{1==Cl;2==F}
          \tetrastereo{1==Cl;4==F;2==CH$_{3}$}

\tetrastereo
\@tetrastero
1543 \def\tetrastereo{\@ifnextchar[{\@tetrastereo[r}{\@tetrastereo[r]}}
1544 \def\@tetrastereo#1]#2{%
1545 \begin{sfpicture}(600,600)(-300,-300)
1546 \OrigptOutput(300,300){tetrastereo}
1547 \Put@oCircle(0,0){200}%
1548 \@tfor\member:=#1\do{%
1549 \expandafter\twoch@@r\member{}{}%
1550 \if\@@tmpa 0\relax \putratom{87}{90}{\scriptsize\@@tmpb}\fi}%
1551 \@forsemicol\member:=#2\do{%
1552 \ifx\member\empty\else
1553 \expandafter\@m@mb@r\member;\relax%
1554 \expandafter\threech@r\@membera{}{}%
1555 \ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
1556 \or%
1557 \Put@Line(0,100)(0,1){70}% behind
1558 \putlratom{-30}{180}{\@memberb}%   and up
1559 \or%
1560 {\thicklines%
1561 \Put@Line(-60,10)(-5,2){140}%   in front
1562 \putlatom{-205}{30}{\@memberb}}%  and left
1563 \or%
1564 \Put@Line(0,-100)(0,-1){90}%     behind and
1565 \putlratom{-30}{-260}{\@memberb}% down
1566 \or%
1567 {\thicklines%
1568 \Put@Line(60,10)(5,2){140}%     in front
1569 \putratom{210}{30}{\@memberb}}%   and right
1570 \fi\fi}%end of ifcase
1571 \end{sfpicture}}%end of macro tetrastereo

10.2 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.

   *****************************
   * tetrahedral unit (stereo) *
   *****************************

   The following numbering is adopted in this macro.
                  1
                  |
            2  -- 0 --  4       0 <== the original point
                  |
                  3

This macro has an argument SUBSLIST as well as an optional argument

  AUXLIST.
     \dtetrastereo[AUXLIST]{SUBSLIST}

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.

       AUXLIST =
       {0+} :  + charge (or another one chararacter) on the center

       SUBSLIST: list of substituents
         for n = 1 to 4
             n          :  single bond at n-atom
         for 0          :  cetral atom (e.g. 0==C)

         e.g.
          \dtetrastereo{1==Cl;2==F}
          \dtetrastereo{1==Cl;4==F;2==CH$_{3}$}

\dtetrastereo
\@dtetrastereo
1572 \def\dtetrastereo{\@ifnextchar[{\@dtetrastereo[r}{\@dtetrastereo[r]}}
1573 \def\@dtetrastereo#1]#2{%
1574 \begin{sfpicture}(600,600)(-300,-300)
1575 \OrigptOutput(300,300){dtetrastereo}
1576 \Put@oCircle(0,0){200}%
1577 \@tfor\member:=#1\do{%
1578 \expandafter\twoch@@r\member{}{}%
1579 \if\@@tmpa 0\relax \putratom{87}{90}{\scriptsize\@@tmpb}\fi}%
1580 \@forsemicol\member:=#2\do{%
1581 \ifx\member\empty\else
1582 \expandafter\@m@mb@r\member;\relax%
1583 \expandafter\threech@r\@membera{}{}%

1584 \ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
1585 \or%
1586 \Put@Line(0,100)(0,1){70}% behind
1587 \putlratom{-30}{180}{\@memberb}%   and up
1588 \or%
1589 \Put@Line(-94,-10)(-5,-2){108}%   in back
1590 \putlatom{-205}{-110}{\@memberb}%  and left
1591 \or%
1592 {\thicklines%
1593 \Put@Line(0,-50)(0,-1){150}%     behind and
1594 \putlratom{-30}{-260}{\@memberb}}% down
1595 \or%
1596 \Put@Line(94,-10)(5,-2){108}%     in back
1597 \putratom{210}{-110}{\@memberb}%   and right
1598 \fi\fi}%end of ifcase
1599 \end{sfpicture}}%end of macro dtetrastereo

10.3 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.

   **************************
   * ethane unit (vertical) *
   **************************
                 5
                 |
          6 --  (2) -- 4
                 |
                 |
          1 --  (1) -- 3 <== the original point
                 |
                 2

This macro has an argument SUBSLIST as well as an optional argument

  AUXLIST.
     \ethanestereo[AUXLIST]{ATOMLIST}{SUBSLIST}

       AUXLIST: list of charges
       {n+}   :  + charge (or another one chararacter) on n-atom

       SUBSLIST: list of substituents
         for n = 1 to 6
             n          :  single bond at n-atom

       ATOMLIST: list of central atoms
             n          :  atom for n-position (e.g. 1==C)

         e.g.
          \ethanestereo{1==Cl;2==F}
          \ethanestereo{1==C;2==C}{1==Cl;4==F;2==CH$_{3}$}

\ethanestereo
\@ethanestereo
1600 \def\ethanestereo{\@ifnextchar[{\@ethanestereo}{\@ethanestereo[]}}
1601 \def\@ethanestereo[#1]#2#3{%
1602 \begin{sfpicture}(600,800)(-300,-300)
1603 \OrigptOutput(300,300){ethanestereo}
1604 \Put@oCircle(0,0){200}%
1605 \Put@oCircle(0,270){200}%
1606 \Put@Line(0,100)(0,1){70}% central bond
1607 \@tfor\member:=#1\do{%
1608 \expandafter\twoch@@r\member{}{}%
1609 \if\@@tmpa 1\relax \putratom{87}{90}{\scriptsize\@@tmpb}
1610 \else\if\@@tmpa 2\relax \putratom{87}{360}{\scriptsize\@@tmpb}
1611 \fi\fi}%
1612 \def\aaa{#2}%
1613 \ifx\aaa\empty\else%
1614 \@forsemicol\member:=#2\do{%
1615 \ifx\member\empty\else
1616 \expandafter\@m@mb@r\member;\relax%
1617 \expandafter\threech@r\@membera{}{}%
1618 \ifcase\@tmpa%
1619 \or\putratom{-40}{-33}{\@memberb}%central atom
1620 \or\putratom{-40}{237}{\@memberb}%central atom
1621 \fi\fi}%end of ifcase
1622 \fi%
1623 \@forsemicol\member:=#3\do{%
1624 \ifx\member\empty\else
1625 \expandafter\@m@mb@r\member;\relax%
1626 \expandafter\threech@r\@membera{}{}%
1627 \ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
1628 \or%
1629 \Put@Line(-94,-10)(-5,-2){108}%   in back
1630 \putlatom{-205}{-110}{\@memberb}%  and left
1631 \or%
1632 {\thicklines%
1633 \Put@Line(0,-50)(0,-1){150}%     behind and
1634 \putlratom{-30}{-260}{\@memberb}}% down
1635 \or%
1636 \Put@Line(94,-10)(5,-2){108}%     in back
1637 \putratom{210}{-110}{\@memberb}%   and right
1638 % %%%%%%%%
1639 \or%
1640 {\thicklines%

1641 \Put@Line(60,280)(5,2){140}%     in front
1642 \putratom{210}{300}{\@memberb}}%   and right
1643 \or%
1644 \Put@Line(0,370)(0,1){70}% behind
1645 \putlratom{-30}{450}{\@memberb}%   and up
1646 \or%
1647 {\thicklines%
1648 \Put@Line(-60,280)(-5,2){140}%   in front
1649 \putlatom{-205}{300}{\@memberb}}%  and left
1650 \fi\fi}%end of ifcase
1651 \end{sfpicture}}%end of macro ethanestereo

1652 ⟨/aliphat⟩

¡*aliphat¿

11 Wedged bonds for stereochemistry

11.1 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.

   **************************************
   * tetrahedral units with wedged bonds *
   **************************************

                  2
                  /
            1 -- 0        0 <== the original point
                  | |
                  3 4
                          1,2,3,4 <== substituents

This macro has an argument SUBSLIST as well as an optional argument

  AUXLIST.
     \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}

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.

       AUXLIST =

       {0+} :  + charge (or another one chararacter) on the center

       SUBSLIST: list of substituents
         for n = 1 to 4
             n          :  single bond at n-atom
         for 0          :  cetral atom (e.g. 0==C)

\rtetrahedralS
\@rtetrahedralS
1653 \def\rtetrahedralS{\@ifnextchar[{\@rtetrahedralS[r}{\@rtetrahedralS[r]}}
1654 \def\@rtetrahedralS#1]#2{%
1655 \begingroup
1656 \@reset@ylsw%
1657 \centralatomcheck{#2}%
1658 \ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
1659 \ylrtetrahedralSposition{#2}%
1660 \if@ylsw \ifx\@@ylii\empty
1661 \def\@@ylii{0}\def\@@yli{0}\fi

1662 \fi

1663 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1664 (600,600)(-300,-300){rtetrahedralS}%2002/4/30 by S. Fujita
1665 (300,300)%
1666 \@tfor\member:=#1\do{%
1667 \expandafter\twoch@@r\member{}{}%
1668 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
1669 %set of bond and atoms
1670 \@forsemicol\member:=#2\do{%
1671 \ifx\member\empty\else
1672 \expandafter\@m@mb@r\member;\relax%
1673 \expandafter\threech@r\@membera{}{}%
1674 \ifx\@memberb\@yl\else
1675 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
1676 \or\setatombondh%1 (-1,0)
1677 \or\setatombondF%2 (3,5)
1678 \or\setatombonde%3  (5,-3)
1679 \or\setatombondE%4 (3,-5)
1680 \fi%end of ifcase
1681 \fi\fi}%
1682 %\@clipfusefalse%
1683 \end{ShiftPicEnvB}%
1684 \endgroup}%end of macro rtetrahedralS
    The command \ylrtetrahedralSposition is used in \rtetrahedralS to ad-

just a substitution position.

\ylrtetrahedralSposition
1685 \def\ylrtetrahedralSposition#1{%
1686 \@@ylswfalse%%%\@reset@ylsw
1687 \@forsemicol\member:=#1\do{%

1688 \if@@ylsw\else
1689 \ifx\member\empty\else
1690 \expandafter\@m@mb@r\member;\relax
1691 \expandafter\threech@r\@membera{}{}\relax
1692 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1693 \if@@ylsw
1694 \ifcase\@tmpa\relax

1695 \or

1696 \ifno@centeratom%
1697 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
1698 \else
1699 \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1

1700 \fi 1701 \or

1702 \ifno@centeratom%
1703 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
1704 \else
1705 \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 2

1706 \fi 1707 \or

1708 \ifno@centeratom%
1709 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
1710 \else
1711 \gdef\@ylii{-40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3

1712 \fi 1713 \or

1714 \ifno@centeratom%
1715 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
1716 \else
1717 \gdef\@ylii{-20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
1718 \fi%
1719 \fi%end of ifcase
1720 \fi\fi\fi}}%
\ltetrahedralS
\@ltetrahedralS
1721 \def\ltetrahedralS{\@ifnextchar[{\@ltetrahedralS[r}{\@ltetrahedralS[r]}}
1722 \def\@ltetrahedralS#1]#2{%
1723 \begingroup
1724 \@reset@ylsw%
1725 \centralatomcheck{#2}%
1726 \ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
1727 \ylltetrahedralSposition{#2}%
1728 \if@ylsw \ifx\@@ylii\empty
1729 \def\@@ylii{0}\def\@@yli{0}\fi

1730 \fi

1731 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1732 (600,600)(-300,-300){ltetrahedralS}%2002/4/30 by S. Fujita
1733 (300,300)%
1734 \@tfor\member:=#1\do{%
1735 \expandafter\twoch@@r\member{}{}%
1736 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
1737 %set of bond and atoms
1738 \@forsemicol\member:=#2\do{%
1739 \ifx\member\empty\else

1740 \expandafter\@m@mb@r\member;\relax%
1741 \expandafter\threech@r\@membera{}{}%
1742 \ifx\@memberb\@yl\else
1743 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
1744 \or\setatombondb%1 (1,0)
1745 \or\setatombondD%2 (-3,5)
1746 \or\setatombondg%3 (-5,-3)
1747 \or\setatombondG%4 (-3,-5)
1748 \fi%end of ifcase
1749 \fi\fi}%
1750 %\@clipfusefalse%
1751 \end{ShiftPicEnvB}%
1752 \endgroup}%end of macro ltetrahedralS
    The command \ylltetrahedralSposition is used in \ltetrahedralS to ad-

just a substitution position.

\ylltetrahedralSposition
1753 \def\ylltetrahedralSposition#1{%
1754 \@@ylswfalse%%%\@reset@ylsw
1755 \@forsemicol\member:=#1\do{%
1756 \if@@ylsw\else
1757 \ifx\member\empty\else
1758 \expandafter\@m@mb@r\member;\relax
1759 \expandafter\threech@r\@membera{}{}\relax
1760 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1761 \if@@ylsw
1762 \ifcase\@tmpa\relax

1763 \or

1764 \ifno@centeratom%
1765 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
1766 \else
1767 \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1

1768 \fi 1769 \or

1770 \ifno@centeratom%
1771 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
1772 \else
1773 \gdef\@ylii{40}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 2

1774 \fi 1775 \or

1776 \ifno@centeratom%
1777 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
1778 \else
1779 \gdef\@ylii{40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3

1780 \fi 1781 \or

1782 \ifno@centeratom%
1783 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
1784 \else
1785 \gdef\@ylii{20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
1786 \fi%
1787 \fi%end of ifcase
1788 \fi\fi\fi}}%

\dtetrahedralS
\@dtetrahedralS
1789 \def\dtetrahedralS{\@ifnextchar[{\@dtetrahedralS[r}{\@dtetrahedralS[r]}}
1790 \def\@dtetrahedralS#1]#2{%
1791 \begingroup
1792 \@reset@ylsw%
1793 \centralatomcheck{#2}%
1794 \ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
1795 \yldtetrahedralSposition{#2}%
1796 \if@ylsw \ifx\@@ylii\empty
1797 \def\@@ylii{0}\def\@@yli{0}\fi

1798 \fi

1799 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1800 (600,600)(-300,-300){dtetrahedralS}%2002/4/30 by S. Fujita
1801 (300,300)%
1802 \@tfor\member:=#1\do{%
1803 \expandafter\twoch@@r\member{}{}%
1804 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
1805 %set of bond and atoms
1806 \@forsemicol\member:=#2\do{%
1807 \ifx\member\empty\else
1808 \expandafter\@m@mb@r\member;\relax%
1809 \expandafter\threech@r\@membera{}{}%
1810 \ifx\@memberb\@yl\else
1811 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
1812 \or\setatombonda%1 (0,1)
1813 \or\setatombonde%5 (5,-3)
1814 \or\setatombondg%3 (-5,-3)
1815 \or\setatombondG%4 (-3,-5)
1816 \fi%end of ifcase
1817 \fi\fi}%
1818 %\@clipfusefalse%
1819 \end{ShiftPicEnvB}%
1820 \endgroup}%end of macro dtetrahedralS
    The command \yldtetrahedralSposition is used in \dtetrahedralS to ad-

just a substitution position.

\yldtetrahedralSposition
1821 \def\yldtetrahedralSposition#1{%
1822 \@@ylswfalse%%%\@reset@ylsw
1823 \@forsemicol\member:=#1\do{%
1824 \if@@ylsw\else
1825 \ifx\member\empty\else
1826 \expandafter\@m@mb@r\member;\relax
1827 \expandafter\threech@r\@membera{}{}\relax
1828 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1829 \if@@ylsw
1830 \ifcase\@tmpa\relax

1831 \or

1832 \ifno@centeratom%
1833 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1
1834 \else
1835 \gdef\@ylii{0}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 1

1836 \fi 1837 \or

1838 \ifno@centeratom%
1839 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 2
1840 \else
1841 %   \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 2
1842 \gdef\@ylii{-42}\gdef\@yli{20}\global\@ylswtrue%W subst. on 2

1843 \fi 1844 \or

1845 \ifno@centeratom%
1846 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
1847 \else
1848 \gdef\@ylii{40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3

1849 \fi 1850 \or

1851 \ifno@centeratom%
1852 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
1853 \else
1854 \gdef\@ylii{20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
1855 \fi%
1856 \fi%end of ifcase
1857 \fi\fi\fi}}%
\DtetrahedralS
\@DtetrahedralS
1858 \def\DtetrahedralS{\@ifnextchar[{\@DtetrahedralS[r}{\@DtetrahedralS[r]}}
1859 \def\@DtetrahedralS#1]#2{%
1860 \begingroup
1861 \@reset@ylsw%
1862 \centralatomcheck{#2}%
1863 \ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
1864 \ylDtetrahedralSposition{#2}%
1865 \if@ylsw \ifx\@@ylii\empty
1866 \def\@@ylii{0}\def\@@yli{0}\fi

1867 \fi

1868 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1869 (600,600)(-300,-300){DtetrahedralS}%2002/4/30 by S. Fujita
1870 (300,300)%
1871 \@tfor\member:=#1\do{%
1872 \expandafter\twoch@@r\member{}{}%
1873 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
1874 %set of bond and atoms
1875 \@forsemicol\member:=#2\do{%
1876 \ifx\member\empty\else
1877 \expandafter\@m@mb@r\member;\relax%
1878 \expandafter\threech@r\@membera{}{}%
1879 \ifx\@memberb\@yl\else
1880 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
1881 \or\setatombonda%1 (0,1)
1882 \or\setatombondg%5 (-5,-3)
1883 \or\setatombonde%3  (5,-3)
1884 \or\setatombondE%4 (3,-5)
1885 \fi%end of ifcase
1886 \fi\fi}%
1887 %\@clipfusefalse%
1888 \end{ShiftPicEnvB}%

1889 \endgroup}%end of macro DtetrahedralS
    The command \ylDtetrahedralSposition is used in \DtetrahedralS to ad-

just a substitution position.

\ylDtetrahedralSposition
1890 \def\ylDtetrahedralSposition#1{%
1891 \@@ylswfalse%%%\@reset@ylsw
1892 \@forsemicol\member:=#1\do{%
1893 \if@@ylsw\else
1894 \ifx\member\empty\else
1895 \expandafter\@m@mb@r\member;\relax
1896 \expandafter\threech@r\@membera{}{}\relax
1897 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1898 \if@@ylsw
1899 \ifcase\@tmpa\relax

1900 \or

1901 \ifno@centeratom%
1902 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
1903 \else
1904 \gdef\@ylii{0}\gdef\@yli{-47}\global\@ylswtrue%W subst. on 1

1905 \fi 1906 \or

1907 \ifno@centeratom%
1908 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
1909 \else
1910 \gdef\@ylii{40}\gdef\@yli{20}\global\@ylswtrue%N subst. on 2

1911 \fi 1912 \or

1913 \ifno@centeratom%
1914 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
1915 \else
1916 \gdef\@ylii{-40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3

1917 \fi 1918 \or

1919 \ifno@centeratom%
1920 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
1921 \else
1922 \gdef\@ylii{-20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
1923 \fi%
1924 \fi%end of ifcase
1925 \fi\fi\fi}}%
\utetrahedralS
\@utetrahedralS
1926 \def\utetrahedralS{\@ifnextchar[{\@utetrahedralS[r}{\@utetrahedralS[r]}}
1927 \def\@utetrahedralS#1]#2{%
1928 \begingroup
1929 \@reset@ylsw%
1930 \centralatomcheck{#2}%
1931 \ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
1932 \ylutetrahedralSposition{#2}%
1933 \if@ylsw \ifx\@@ylii\empty
1934 \def\@@ylii{0}\def\@@yli{0}\fi

1935 \fi

1936 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
1937 (600,600)(-300,-300){utetrahedralS}%2002/4/30 by S. Fujita
1938 (300,300)%
1939 \@tfor\member:=#1\do{%
1940 \expandafter\twoch@@r\member{}{}%
1941 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
1942 %set of bond and atoms
1943 \@forsemicol\member:=#2\do{%
1944 \ifx\member\empty\else
1945 \expandafter\@m@mb@r\member;\relax%
1946 \expandafter\threech@r\@membera{}{}%
1947 \ifx\@memberb\@yl\else
1948 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
1949 \or\setatombondc%8 (0,-1)
1950 \or\setatombondf%3 (5,3)
1951 \or\setatombondD%1 (-3,5)
1952 \or\setatombondd%3 (-5,3)
1953 \fi%end of ifcase
1954 \fi\fi}%
1955 %\@clipfusefalse%
1956 \end{ShiftPicEnvB}%
1957 \endgroup}%end of macro utetrahedralS
    The command \ylutetrahedralSposition is used in \utetrahedralS to ad-

just a substitution position.

\ylutetrahedralSposition
1958 \def\ylutetrahedralSposition#1{%
1959 \@@ylswfalse%%%\@reset@ylsw
1960 \@forsemicol\member:=#1\do{%
1961 \if@@ylsw\else
1962 \ifx\member\empty\else
1963 \expandafter\@m@mb@r\member;\relax
1964 \expandafter\threech@r\@membera{}{}\relax
1965 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1966 \if@@ylsw
1967 \ifcase\@tmpa\relax

1968 \or

1969 \ifno@centeratom%
1970 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1
1971 \else
1972 \gdef\@ylii{0}\gdef\@yli{47}\global\@ylswtrue%N subst. on 1

1973 \fi 1974 \or

1975 \ifno@centeratom%
1976 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 2
1977 \else
1978 \gdef\@ylii{-42}\gdef\@yli{-20}\global\@ylswtrue%W subst. on 2

1979 \fi 1980 \or

1981 \ifno@centeratom%
1982 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
1983 \else
1984 \gdef\@ylii{20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3

1985 \fi%

1986 \or

1987 \ifno@centeratom%
1988 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
1989 \else
1990 \gdef\@ylii{40}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3

1991 \fi

1992 \fi%end of ifcase
1993 \fi\fi\fi}}%
\UtetrahedralS
\@UtetrahedralS
1994 \def\UtetrahedralS{\@ifnextchar[{\@UtetrahedralS[r}{\@UtetrahedralS[r]}}
1995 \def\@UtetrahedralS#1]#2{%
1996 \begingroup
1997 \@reset@ylsw%
1998 \centralatomcheck{#2}%
1999 \ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
2000 \ylUtetrahedralSposition{#2}%
2001 \if@ylsw \ifx\@@ylii\empty
2002 \def\@@ylii{0}\def\@@yli{0}\fi

2003 \fi

2004 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
2005 (600,600)(-300,-300){UtetrahedralS}%2002/4/30 by S. Fujita
2006 (300,300)%
2007 \@tfor\member:=#1\do{%
2008 \expandafter\twoch@@r\member{}{}%
2009 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
2010 %set of bond and atoms
2011 \@forsemicol\member:=#2\do{%
2012 \ifx\member\empty\else
2013 \expandafter\@m@mb@r\member;\relax%
2014 \expandafter\threech@r\@membera{}{}%
2015 \ifx\@memberb\@yl\else
2016 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
2017 \or\setatombondc%1 (0,-1)
2018 \or\setatombondd%2 (-5,3)
2019 \or\setatombondF%3 (3,5)
2020 \or\setatombondf%4 (5,3)
2021 \fi%end of ifcase
2022 \fi\fi}%
2023 %\@clipfusefalse%
2024 \end{ShiftPicEnvB}%
2025 \endgroup}%end of macro UtetrahedralS
    The command \ylUtetrahedralSposition is used in \UtetrahedralS to ad-

just a substitution position.

\ylUtetrahedralSposition
2026 \def\ylUtetrahedralSposition#1{%
2027 \@@ylswfalse%%%\@reset@ylsw
2028 \@forsemicol\member:=#1\do{%
2029 \if@@ylsw\else
2030 \ifx\member\empty\else
2031 \expandafter\@m@mb@r\member;\relax

2032 \expandafter\threech@r\@membera{}{}\relax
2033 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
2034 \if@@ylsw
2035 \ifcase\@tmpa\relax

2036 \or

2037 \ifno@centeratom%
2038 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
2039 \else
2040 \gdef\@ylii{0}\gdef\@yli{47}\global\@ylswtrue%W subst. on 1

2041 \fi 2042 \or

2043 \ifno@centeratom%
2044 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
2045 \else
2046 \gdef\@ylii{40}\gdef\@yli{-20}\global\@ylswtrue%N subst. on 2

2047 \fi 2048 \or

2049 \ifno@centeratom%
2050 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2051 \else
2052 \gdef\@ylii{-20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
2053 \fi%

2054 \or

2055 \ifno@centeratom%
2056 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2057 \else
2058 \gdef\@ylii{-40}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3

2059 \fi

2060 \fi%end of ifcase
2061 \fi\fi\fi}}%
\htetrahedralS
\@htetrahedralS
2062 \def\htetrahedralS{\@ifnextchar[{\@htetrahedralS[r}{\@htetrahedralS[r]}}
2063 \def\@htetrahedralS#1]#2{%
2064 \begingroup
2065 \@reset@ylsw%
2066 \centralatomcheck{#2}%
2067 \ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
2068 \ylhtetrahedralSposition{#2}%
2069 \if@ylsw \ifx\@@ylii\empty
2070 \def\@@ylii{0}\def\@@yli{0}\fi

2071 \fi

2072 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
2073 (600,600)(-300,-300){htetrahedralS}%2002/4/30 by S. Fujita
2074 (300,300)%
2075 \@tfor\member:=#1\do{%
2076 \expandafter\twoch@@r\member{}{}%
2077 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
2078 %set of bond and atoms
2079 \@forsemicol\member:=#2\do{%
2080 \ifx\member\empty\else
2081 \expandafter\@m@mb@r\member;\relax%
2082 \expandafter\threech@r\@membera{}{}%
2083 \ifx\@memberb\@yl\else

2084 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
2085 \or\setatombondg%5 (-5,-3)
2086 \or\setatombonde%5 (5,-3)
2087 \or\setatombondF%1 (3,5)
2088 \or\setatombondD%1 (-3,5)
2089 \fi%end of ifcase
2090 \fi\fi}%
2091 %\@clipfusefalse%
2092 \end{ShiftPicEnvB}%
2093 \endgroup}%end of macro htetrahedralS
    The command \ylhtetrahedralSposition is used in \htetrahedralS to ad-

just a substitution position.

\ylhtetrahedralSposition
2094 \def\ylhtetrahedralSposition#1{%
2095 \@@ylswfalse%%%\@reset@ylsw
2096 \@forsemicol\member:=#1\do{%
2097 \if@@ylsw\else
2098 \ifx\member\empty\else
2099 \expandafter\@m@mb@r\member;\relax
2100 \expandafter\threech@r\@membera{}{}\relax
2101 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
2102 \if@@ylsw
2103 \ifcase\@tmpa\relax

2104 \or

2105 \ifno@centeratom%
2106 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
2107 \else
2108 \gdef\@ylii{40}\gdef\@yli{30}\global\@ylswtrue%W subst. on 1

2109 \fi 2110 \or

2111 \ifno@centeratom%
2112 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
2113 \else
2114 \gdef\@ylii{-40}\gdef\@yli{30}\global\@ylswtrue%N subst. on 2

2115 \fi 2116 \or

2117 \ifno@centeratom%
2118 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2119 \else
2120 \gdef\@ylii{-20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
2121 \fi%

2122 \or

2123 \ifno@centeratom%
2124 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2125 \else
2126 \gdef\@ylii{40}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3

2127 \fi

2128 \fi%end of ifcase
2129 \fi\fi\fi}}%
\RtetrahedralS
\@RtetrahedralS
2130 \def\RtetrahedralS{\@ifnextchar[{\@RtetrahedralS[r}{\@RtetrahedralS[r]}}

2131 \def\@RtetrahedralS#1]#2{%
2132 \begingroup
2133 \@reset@ylsw%
2134 \centralatomcheck{#2}%
2135 \ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
2136 \ylRtetrahedralSposition{#2}%
2137 \if@ylsw \ifx\@@ylii\empty
2138 \def\@@ylii{0}\def\@@yli{0}\fi

2139 \fi

2140 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
2141 (600,600)(-300,-300){RtetrahedralS}%2002/4/30 by S. Fujita
2142 (300,300)%
2143 \@tfor\member:=#1\do{%
2144 \expandafter\twoch@@r\member{}{}%
2145 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
2146 %set of bond and atoms
2147 \@forsemicol\member:=#2\do{%
2148 \ifx\member\empty\else
2149 \expandafter\@m@mb@r\member;\relax%
2150 \expandafter\threech@r\@membera{}{}%
2151 \ifx\@memberb\@yl\else
2152 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
2153 \or\setatombondh%1 (-1,0)
2154 \or\setatombondE%7 (3,-5)
2155 \or\setatombondF%2 (3,5)
2156 \or\setatombondf%3 (5,3)
2157 \fi%end of ifcase
2158 \fi\fi}%
2159 %\@clipfusefalse%
2160 \end{ShiftPicEnvB}%
2161 \endgroup}%end of macro RtetrahedralS
    The command \ylRtetrahedralSposition is used in \RtetrahedralS to ad-

just a substitution position.

\ylRtetrahedralSposition
2162 \def\ylRtetrahedralSposition#1{%
2163 \@@ylswfalse%%%\@reset@ylsw
2164 \@forsemicol\member:=#1\do{%
2165 \if@@ylsw\else
2166 \ifx\member\empty\else
2167 \expandafter\@m@mb@r\member;\relax
2168 \expandafter\threech@r\@membera{}{}\relax
2169 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
2170 \if@@ylsw
2171 \ifcase\@tmpa\relax

2172 \or

2173 \ifno@centeratom%
2174 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
2175 \else
2176 \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1

2177 \fi 2178 \or

2179 \ifno@centeratom%

2180 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
2181 \else
2182 \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue%N subst. on 2

2183 \fi 2184 \or

2185 \ifno@centeratom%
2186 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2187 \else
2188 \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3

2189 \fi 2190 \or

2191 \ifno@centeratom%
2192 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2193 \else
2194 \gdef\@ylii{-20}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3
2195 \fi%
2196 \fi%end of ifcase
2197 \fi\fi\fi}}%
\LtetrahedralS
\@LtetrahedralS
2198 \def\LtetrahedralS{\@ifnextchar[{\@LtetrahedralS[r}{\@LtetrahedralS[r]}}
2199 \def\@LtetrahedralS#1]#2{%
2200 \begingroup
2201 \@reset@ylsw%
2202 \centralatomcheck{#2}%
2203 \ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
2204 \ylLtetrahedralSposition{#2}%
2205 \if@ylsw \ifx\@@ylii\empty
2206 \def\@@ylii{0}\def\@@yli{0}\fi

2207 \fi

2208 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
2209 (600,600)(-300,-300){LtetrahedralS}%2002/4/30 by S. Fujita
2210 (300,300)%
2211 \@tfor\member:=#1\do{%
2212 \expandafter\twoch@@r\member{}{}%
2213 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
2214 %set of bond and atoms
2215 \@forsemicol\member:=#2\do{%
2216 \ifx\member\empty\else
2217 \expandafter\@m@mb@r\member;\relax%
2218 \expandafter\threech@r\@membera{}{}%
2219 \ifx\@memberb\@yl\else
2220 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
2221 \or\setatombondb%1 (1,0)
2222 \or\setatombondG%2 (-3,-5)
2223 \or\setatombondD%3 (-3,5)
2224 \or\setatombondd%4 (-5,3)
2225 \fi%end of ifcase
2226 \fi\fi}%
2227 %\@clipfusefalse%
2228 \end{ShiftPicEnvB}%
2229 \endgroup}%end of macro LtetrahedralS

    The command \ylLtetrahedralSposition is used in \LtetrahedralS to ad-

just a substitution position.

\ylLtetrahedralSposition
2230 \def\ylLtetrahedralSposition#1{%
2231 \@@ylswfalse%%%\@reset@ylsw
2232 \@forsemicol\member:=#1\do{%
2233 \if@@ylsw\else
2234 \ifx\member\empty\else
2235 \expandafter\@m@mb@r\member;\relax
2236 \expandafter\threech@r\@membera{}{}\relax
2237 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
2238 \if@@ylsw
2239 \ifcase\@tmpa\relax

2240 \or

2241 \ifno@centeratom%
2242 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
2243 \else
2244 \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1

2245 \fi 2246 \or

2247 \ifno@centeratom%
2248 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
2249 \else
2250 \gdef\@ylii{40}\gdef\@yli{47}\global\@ylswtrue%N subst. on 2

2251 \fi 2252 \or

2253 \ifno@centeratom%
2254 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2255 \else
2256 \gdef\@ylii{40}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3

2257 \fi 2258 \or

2259 \ifno@centeratom%
2260 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2261 \else
2262 \gdef\@ylii{20}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3
2263 \fi%
2264 \fi%end of ifcase
2265 \fi\fi\fi}}%

11.2 Trigonal bipyramidal uits for transition states

\utrigpyramid
\@utrigpyramid
2266 \def\utrigpyramid{\@ifnextchar[{\@utrigpyramid[r}{\@utrigpyramid[r]}}
2267 \def\@utrigpyramid#1]#2{%
2268 \begingroup
2269 \@reset@ylsw%
2270 \centralatomcheck{#2}%
2271 \ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
2272 \ylutrigpyramidposition{#2}%
2273 \if@ylsw \ifx\@@ylii\empty
2274 \def\@@ylii{0}\def\@@yli{0}\fi

2275 \fi

2276 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
2277 (600,600)(-300,-300){utrigpyramid}%2002/4/30 by S. Fujita
2278 (300,300)%
2279 \@tfor\member:=#1\do{%
2280 \expandafter\twoch@@r\member{}{}%
2281 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
2282 %set of bond and atoms
2283 \@forsemicol\member:=#2\do{%
2284 \ifx\member\empty\else
2285 \expandafter\@m@mb@r\member;\relax%
2286 \expandafter\threech@r\@membera{}{}%
2287 \ifx\@memberb\@yl\else
2288 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
2289 \or\setatombondc%1 (0,-1)
2290 \or\setatombondF%2 (3,5)
2291 \or\setatombondD%3 (-3,5)
2292 \or{\let\dotorline=\d@t@rline \setatombondh}%4 (-1,0)
2293 \or{\let\dotorline=\d@t@rline \setatombondb}%5 (1,0)
2294 \fi%end of ifcase
2295 \fi\fi}%
2296 %\@clipfusefalse%
2297 \end{ShiftPicEnvB}%
2298 \endgroup}%end of macro utrigpyramid
    The command \ylutrigpyramidposition is used in \utrigpyramid to adjust

a substitution position.

\ylutrigpyramidposition
2299 \def\ylutrigpyramidposition#1{%
2300 \@@ylswfalse%%%\@reset@ylsw
2301 \@forsemicol\member:=#1\do{%
2302 \if@@ylsw\else
2303 \ifx\member\empty\else
2304 \expandafter\@m@mb@r\member;\relax
2305 \expandafter\threech@r\@membera{}{}\relax
2306 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
2307 \if@@ylsw
2308 \ifcase\@tmpa\relax

2309 \or

2310 \ifno@centeratom%
2311 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
2312 \else
2313 \gdef\@ylii{0}\gdef\@yli{47}\global\@ylswtrue%W subst. on 1

2314 \fi 2315 \or

2316 \ifno@centeratom%
2317 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
2318 \else
2319 \gdef\@ylii{-20}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 2

2320 \fi 2321 \or

2322 \ifno@centeratom%
2323 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3

2324 \else
2325 \gdef\@ylii{20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
2326 \fi%

2327 \or

2328 \ifno@centeratom%
2329 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2330 \else
2331 \gdef\@ylii{40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3

2332 \fi 2333 \or

2334 \ifno@centeratom%
2335 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2336 \else
2337 \gdef\@ylii{-40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3

2338 \fi

2339 \fi%end of ifcase
2340 \fi\fi\fi}}%
\dtrigpyramid
\@dtrigpyramid
2341 \def\dtrigpyramid{\@ifnextchar[{\@dtrigpyramid[r}{\@dtrigpyramid[r]}}
2342 \def\@dtrigpyramid#1]#2{%
2343 \begingroup
2344 \@reset@ylsw%
2345 \centralatomcheck{#2}%
2346 \ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
2347 \yldtrigpyramidposition{#2}%
2348 \if@ylsw \ifx\@@ylii\empty
2349 \def\@@ylii{0}\def\@@yli{0}\fi

2350 \fi

2351 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
2352 (600,600)(-300,-300){dtrigpyramid}%2002/4/30 by S. Fujita
2353 (300,300)%
2354 \@tfor\member:=#1\do{%
2355 \expandafter\twoch@@r\member{}{}%
2356 \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
2357 %set of bond and atoms
2358 \@forsemicol\member:=#2\do{%
2359 \ifx\member\empty\else
2360 \expandafter\@m@mb@r\member;\relax%
2361 \expandafter\threech@r\@membera{}{}%
2362 \ifx\@memberb\@yl\else
2363 \ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
2364 \or\setatombonda%1 (0,1)
2365 \or\setatombondE%2 (3,-5)
2366 \or\setatombondG%3 (-3,-5)
2367 \or{\let\dotorline=\d@t@rline \setatombondh}%4 (-1,0)
2368 \or{\let\dotorline=\d@t@rline \setatombondb}%5 (1,0)
2369 \fi%end of ifcase
2370 \fi\fi}%
2371 %\@clipfusefalse%
2372 \end{ShiftPicEnvB}%
2373 \endgroup}%end of macro dtrigpyramid

    The command \yldtrigpyramidposition is used in \dtrigpyramid to adjust

a substitution position.

\yldtrigpyramidposition
2374 \def\yldtrigpyramidposition#1{%
2375 \@@ylswfalse%%%\@reset@ylsw
2376 \@forsemicol\member:=#1\do{%
2377 \if@@ylsw\else
2378 \ifx\member\empty\else
2379 \expandafter\@m@mb@r\member;\relax
2380 \expandafter\threech@r\@membera{}{}\relax
2381 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
2382 \if@@ylsw
2383 \ifcase\@tmpa\relax

2384 \or

2385 \ifno@centeratom%
2386 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
2387 \else
2388 \gdef\@ylii{0}\gdef\@yli{-47}\global\@ylswtrue%W subst. on 1

2389 \fi 2390 \or

2391 \ifno@centeratom%
2392 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
2393 \else
2394 \gdef\@ylii{-20}\gdef\@yli{47}\global\@ylswtrue%N subst. on 2

2395 \fi 2396 \or

2397 \ifno@centeratom%
2398 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2399 \else
2400 \gdef\@ylii{20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
2401 \fi%

2402 \or

2403 \ifno@centeratom%
2404 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2405 \else
2406 \gdef\@ylii{40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3

2407 \fi 2408 \or

2409 \ifno@centeratom%
2410 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
2411 \else
2412 \gdef\@ylii{-40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3

2413 \fi

2414 \fi%end of ifcase
2415 \fi\fi\fi}}%

2416 ⟨/aliphat⟩