Basic Commands for Drawing Chemical Structures by chemstr.sty (v4.05) of XΥMTEX

Shinsaku Fujita

Shonan Institute of Chemoinformatics and Mathematical Chemistry

Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa, 258-0019 Japan

2009/10/25

1 Introduction

1.1 Options for docstrip

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

1.2 Version Information

1 ⟨∗chemstr⟩

2 \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 4.04a}
3 \typeout{       -- Released October 25, 2009 by Shinsaku Fujita}
4 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5 \def\j@urnalname{chemstr}
6 \def\versi@ndate{October 25, 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 chemstr.sty

*********************************
* chemstr.sty: list of commands *
*********************************
 <For separating an augument list to each argument>
    \@forsemicol
    \@forl@@p
    \@iforl@@p
    \@m@mb@r
    \twoch@r

\twoCH@R (terminater //)
\twoch@@r
\twoCH@@R (terminater //)
\threech@r

<Convention>
\rmoiety
\lmoiety
\putlatom
\putratom
\putlratom
\Putlratom
\dotorline

<Treatment of substitution positions>
\if@clip  \@clipfalse  \@cliptrue
\if@aclip \@aclipfalse \@acliptrue
\if@bclip \@bclipfalse \@bcliptrue
\if@cclip \@cclipfalse \@ccliptrue
\if@eclip \@eclipfalse \@ecliptrue
\if@fclip \@fclipfalse \@fcliptrue
\iforigpt \origptfalse \origpttrue
\@tmpaa (counter)
\clipinfo \storeclipinfo \developclipinfo
<Structures as substituents>
\@yl
\yl@xdiff \yl@ydiff
\yl@shiftii
\yl@shifti
\@ylii
\@yli
\@@ylii
\@@yli
<Fused positions check>
\fuseAx \fuseAy
\fuseBx \fuseBy

<VERTICAL SETTING>
Substitution
\@substa
\@substb
\@substc
\@substd

\@subste
\@substf

Setting of atoms and bonds
\setsixringv      (on a vertical six-membered ring)
\setdecaringv     (on a decaline (six-six) ring)
\setfusedbond     (at fused bond positions)
\if@clipfuse \@clipfusefalse \@clipfusetrue
\setatombond      (at an appropiate position)
Placing structures as substituents
\ylposition
\ylfusedpostion
\ylatombondposition

<HORIZONTAL SETTING>
Substitution
\@hsubsta
\@hsubstb
\@hsubstc
\@hsubstd
\@hsubste
\@hsubstf

Setting of atoms and bonds
\setsixringh       (on a horizontal six-membered ring)
Placing structures as substituents
\ylpositionh

<Linking unit>
\ryl       (right linking unit)
\lyl       (left linking unit)
<Setting fused rings>
\set@fusionadd@sixv     \set@fusion@sixv
\set@fusionadd@sixvi    \set@fusion@sixvi
\set@fusionadd@sixh     \set@fusion@sixh
\set@fusionadd@sixhi    \set@fusion@sixhi
\set@fusion@decav

\set@fusion@decavb
\set@fusion@decavt
\set@fusion@decah
\set@fusion@hanthrav
\set@fusion@hphenanv
\set@fusionadd@fivev     \set@fusion@fivev
\set@fusionadd@fivevi    \set@fusion@fivevi
\set@fusionadd@fiveh     \set@fusion@fiveh
\set@fusionadd@fivehi    \set@fusion@fivehi
\set@fusion@nonav        \set@fusion@nonavi
\set@fusion@nonah        \set@fusion@nonahi

<For PostScript output>
\let\Put@Direct=\put
\let\Multiput@Direct=\multiput
\Put@@@Line
\Put@@@sCircle
\Put@@@oCircle
<ShiftPicEnv environments>
ShiftPicEnv
ShiftPicEnvB
\let\sfpicture=\picture
\let\endsfpicture=\endpicture
<Wave bonds for stereochemistry>
\ifwavebond, \WaveBonds

3 Initialization and conventions

3.1 Logos

The logo of XΥMTEX is defined in two ways. The first definition uses the \fam command, which sometimes shows unusual behavior. The second definition is adopted in the present version of XΥMTEX, since this aims at the compatibility to L^{A}TEX 2ε.

\XyMTeX
12 % ***************
13 % * XyMTeX Logo *
14 % ***************
15 % %%XyMTeX Logo: Definition 1%%%
16 % \newcount\TestCount
17 % \def\XyM{\ifnum\fam=-1\relax\fam=0\relax\fi\TestCount=\fam%
18 % X\kern-.30em\smash{\raise.50ex\hbox{$\fam\TestCount\Upsilon$}}%

19 % \kern-.30em{M}}
20 % \def\XyMTeX{\XyM\kern-.1em\TeX}
21 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
22 % %%XyMTeX Logo: Definition 2%%%
23 % \def\UPSILON{\char'7}
24 % \def\XyM{X\kern-.30em\smash{\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
25 % \def\XyMTeX{\XyM\kern-.1em\TeX}
26 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
27 % %%XyMTeX Logo: Definition 3%%%2009/07/07
28 % \edef\test@it{\itdefault}
29 % \edef\test@sf{\sfdefault}
30 % \edef\test@tt{\ttdefault}
31 % \edef\test@sl{\sldefault}
32 % \edef\test@bx{\bfdefault}
33 % \def\XyM{X\kern-.30em\smash{%
34 % \raise.50ex\hbox to0.8em{\hss%
35 % \ifx\f@series \test@bx\relax
36 % $\mathbf{\Upsilon}$%
37 % \else\ifx\f@shape \test@it\relax
38 % $\mathit{\Upsilon}$%
39 % \else\ifx\f@family \test@sf\relax
40 % $\mathsf{\Upsilon}$%
41 % \else\ifx\f@family \test@tt\relax
42 % $\mathtt{\Upsilon}$%
43 % \else\ifx\f@shape \test@sl\relax
44 % $\mathit{\Upsilon}$%
45 % \else
46 % $\Upsilon$\fi\fi\fi\fi\fi%
47 % \hss}}\kern-.30em{M}}
48 % \def\XyMTeX{\XyM\kern-.1em\TeX}
49 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

50 %

51 % %%XyMTeX Logo: Definition 4%%%2009/10/25
52 \def\select@@Upsionfont{%
53 \edef\test@rm{\rmdefault}%
54 \edef\test@sf{\sfdefault}%
55 \edef\test@tt{\ttdefault}%
56 \ifx\f@family \test@rm\relax
57 {\expandafter\csname OT1/cmr/\f@series/\f@shape/\f@size%
58 \endcsname\char'7}%
59 \else\ifx\f@family \test@sf\relax
60 {\expandafter\csname OT1/cmss/\f@series/\f@shape/\f@size%
61 \endcsname\char'7}%
62 \else\ifx\f@family \test@tt\relax
63 {\expandafter\csname OT1/cmtt/\f@series/\f@shape/\f@size%
64 \endcsname\char'7}%
65 \else{\expandafter\csname OT1/cmr/\f@series/\f@shape/\f@size%
66 \endcsname
67 \char'7}\fi\fi\fi%

68 }

69 \def\XyM{X\kern-.30em\smash{%
70 \raise.50ex\hbox to0.8em{\hss\select@@Upsionfont%
71 \hss}}\kern-.30em{M}}

72 \def\XyMTeX{\XyM\kern-.1em\TeX}

3.2 Wavy Bonds

Wavy bonds that represent unspecified stereochemistry are supported by using PostScript technique. To assure compatibility, the non-PostScript mode is revised to support wavy bonds.

The following counter registers are used to draw wavy bonds by Bezier technique.

\@tempcntXa
73 \newcount\@tempcntXa \newcount\@tempcntYa \newcount\@tempcntz
74 \newcount\@tempcntXb \newcount\@tempcntYb \newcount\@tempcntzz
75 \newcount\@tempcntXc \newcount\@tempcntYc \newcount\@tempcntzzz
76 \newcount\@tempcntXd \newcount\@tempcntYd \newcount\@tempcntzzzz
\waveunitA
77 \def\waveunitA(#1,#2)#3{%
78 \@tempcntz=#1\relax
79 \@tempcntzz=#2\relax
80 %%%%%%%%%%%%%%%%%%%%%%%%%
81 %middle point parameters%
82 %%%%%%%%%%%%%%%%%%%%%%%%%
83 \ifnum\@tempcntz=3\relax%
84 \ifnum\@tempcntzz=5\relax%
85 \@tempcntXa=-16 \@tempcntYa=10\relax%
86 \@tempcntXd=16 \@tempcntYd=-10\relax
87 \else\ifnum\@tempcntzz=-5\relax%
88 \@tempcntXa=-16 \@tempcntYa=-10\relax
89 \@tempcntXd=16 \@tempcntYd=10\relax
90 \fi\fi
91 \else\ifnum\@tempcntz=-3\relax%
92 \ifnum\@tempcntzz=5\relax%
93 \@tempcntXa=-16 \@tempcntYa=-10\relax%
94 \@tempcntXd=16 \@tempcntYd=10\relax
95 \else\ifnum\@tempcntzz=-5\relax%
96 \@tempcntXa=-16 \@tempcntYa=10\relax
97 \@tempcntXd=16 \@tempcntYd=-10\relax
98 \fi\fi
99 \else\ifnum\@tempcntz=5\relax
100 \ifnum\@tempcntzz=3\relax
101 \@tempcntXa=-10 \@tempcntYa=16\relax
102 \@tempcntXd=10 \@tempcntYd=-16\relax
103 \else\ifnum\@tempcntzz=-3\relax
104 \@tempcntXa=-10 \@tempcntYa=-16\relax
105 \@tempcntXd=10 \@tempcntYd=16\relax
106 \fi\fi
107 \else\ifnum\@tempcntz=-5\relax
108 \ifnum\@tempcntzz=3\relax
109 \@tempcntXa=10 \@tempcntYa=16\relax
110 \@tempcntXd=10 \@tempcntYd=-16\relax
111 \else\ifnum\@tempcntzz=-3\relax
112 \@tempcntXa=10 \@tempcntYa=-16\relax

113 \@tempcntXd=-10 \@tempcntYd=16\relax
114 \fi\fi
115 \else\ifnum\@tempcntz=1\relax
116 \ifnum\@tempcntzz=0\relax
117 \@tempcntXa=0 \@tempcntYa=20\relax
118 \@tempcntXd=0 \@tempcntYd=-20\relax
119 \fi
120 \else\ifnum\@tempcntz=-1\relax
121 \ifnum\@tempcntzz=0\relax
122 \@tempcntXa=0 \@tempcntYa=-20\relax
123 \@tempcntXd=0 \@tempcntYd=20\relax
124 \fi
125 \else\ifnum\@tempcntz=0\relax
126 \ifnum\@tempcntzz=1\relax
127 \@tempcntXa=-20 \@tempcntYa=0\relax
128 \@tempcntXd=20 \@tempcntYd=0\relax
129 \fi
130 \fi\fi\fi\fi\fi\fi\fi
131 %%%%%%%%%%%%%%%%%%%%
132 % start and ending %
133 %%%%%%%%%%%%%%%%%%%%
134 \ifnum\@tempcntzz=0\relax%(1,0) (-1,0)
135 \ifnum\@tempcntz>0\relax
136 \@tempcntXb=#3\relax
137 \else
138 \@tempcntXb=-#3\relax
139 \fi
140 \@tempcntYb=0
141 \ifnum\@tempcntz>0\relax
142 \@tempcntXa=#3\relax
143 \else
144 \@tempcntXa=-#3\relax
145 \fi
146 \divide\@tempcntXa by2\relax
147 \@tempcntXd=\@tempcntXa
148 \else\ifnum\@tempcntz=0\relax%(0,1) (0,-1)
149 \@tempcntXb=0\relax
150 \ifnum\@tempcntzz>0\relax
151 \@tempcntYb=#3\relax
152 \@tempcntYa=#3\relax
153 \else
154 \@tempcntYb=-#3\relax
155 \@tempcntYa=-#3\relax
156 \fi
157 \divide\@tempcntYa by2\relax
158 \@tempcntYd=\@tempcntYa
159 \else
160 \ifnum\@tempcntz>0\relax
161 \@tempcntXb=#3\relax
162 \else
163 \@tempcntXb=-#3\relax
164 \fi
165 \ifnum\@tempcntzz>0\relax
166 \@tempcntYb=#3\relax

167 \else
168 \@tempcntYb=-#3\relax
169 \fi
170 \ifnum\@tempcntzz>0\relax
171 \@tempcntzzzz=#2\relax
172 \else
173 \@tempcntzzzz=-#2\relax
174 \fi
175 \multiply\@tempcntYb by10\relax
176 \multiply\@tempcntYb by\@tempcntzzzz\relax
177 \ifnum\@tempcntz>0\relax
178 \@tempcntzzzz=#1\relax
179 \else
180 \@tempcntzzzz=-#1\relax
181 \fi
182 \divide\@tempcntYb by\@tempcntzzzz\relax
183 \divide\@tempcntYb by10\relax
184 \@tempcntzzzz=\@tempcntXb
185 \divide\@tempcntzzzz by2\relax
186 \advance\@tempcntXa by\@tempcntzzzz
187 \advance\@tempcntXd by\@tempcntzzzz
188 \@tempcntzzzz=\@tempcntYb
189 \divide\@tempcntzzzz by2\relax
190 \advance\@tempcntYa by\@tempcntzzzz
191 \advance\@tempcntYd by\@tempcntzzzz
192 \fi\fi
193 %%%%%%%%%%%%%%%%%
194 % Bezier curves %
195 %%%%%%%%%%%%%%%%%
196 \@tempcntXc=\@tempcntXb
197 \multiply\@tempcntXc by2\relax
198 \@tempcntYc=\@tempcntYb
199 \multiply\@tempcntYc by2\relax
200 \begin{picture}(0,0)(0,0)%
201 \multiput(0,0)(\@tempcntXc,\@tempcntYc){3}{%
202 \qbezier(0,0)(\@tempcntXa,\@tempcntYa)(\@tempcntXb,\@tempcntYb)}%
203 \multiput(\@tempcntXb,\@tempcntYb)(\@tempcntXc,\@tempcntYc){2}{%
204 \qbezier(0,0)(\@tempcntXd,\@tempcntYd)(\@tempcntXb,\@tempcntYb)}%
205 \end{picture}%
206 }%end of \waveunitA

A new switch for wave bonds for stereochemistry is added: \ifwavebond.

\ifwavebond
\WaveBonds
\NormalBonds

207 \newif\ifwavebond \wavebondfalse
208 \def\WaveBonds{\wavebondtrue}
209 \def\NormalBonds{\wavebondfalse}
\Put@@Line
210 \def\Put@@Line(#1,#2)(#3,#4)#5{\Put@Direct(#1,#2){%
211 \ifwavebond \@tempcnta=#5\relax
212 \divide\@tempcnta by5\relax
213 \waveunitA(#3,#4){\@tempcnta}\else
214 \line(#3,#4){#5}\fi}}

3.3 Conventions for PostScript

The picture environment is switched to be acceptable to another system such as PostScript.

\Put@@Line
\Put@@sCircle
\Put@@oCircle

215 \global\let\@ldline=\line%store the oridinal line command of picture enviroment
216 \global\let\@ldthicklines=\thicklines
217 \global\let\@ldthinlines=\thinlines
218 %%\def\Put@@Line(#1,#2)(#3,#4)#5{\Put@Direct(#1,#2){\line(#3,#4){#5}}}
219 \def\Put@@sCircle(#1,#2)#3{\Put@Direct(#1,#2){\circle*{#3}}}
220 \def\Put@@oCircle(#1,#2)#3{\Put@Direct(#1,#2){\circle{#3}}}

The initial setting is the original LaTeX picture environment. To switch the size-reduction meachism and the pstricks mechanism, we can use a switching com-

 mand such as \originalpicture.
\originalpicture
\sfpicture
\Put@Direct

221 \newif\ifxymtexpssw\xymtexpsswfalse
222 \def\originalpicture{%
223 \let\sfpicture=\picture
224 \let\endsfpicture=\endpicture
225 \let\Put@Direct=\put
226 \let\Multiput@Direct=\multiput
227 \let\line=\@ldline
228 \let\dotorline=\d@t@rline
229 \let\thicklines=\@ldthicklines
230 \let\thinlines=\@ldthinlines
231 \thinlines
232 \let\Put@Line=\Put@@Line
233 \let\Put@sCircle=\Put@@sCircle
234 \let\Put@oCircle=\Put@@oCircle
235 \xymtexpsswfalse
236 \@ifundefined{@changeunitlength}{}{%
237 \let\changeunitlength=\@changeunitlength}%
238 \unitlength=0.1pt}

To switch from XyMTeX to XyMTeX with pstricks, we use the following command:

\changexymtextops
239 \def\changexymtextops{\xymtexpsswtrue}

3.4 Macros for treating argumets

For separating each argument (BONDLIST, SUBSLIST or ATOMLIST) into components (descriptors), we define several useful macros.

\@forsemicol \@forl@@p \@iforl@@p The macro \@forsemicol resembles the \@for macro that is the L^{A}TEX original

macro; however a semicolon is used as a separating key in place of a comma.

240 % ****************************************************
241 % * For separating an augument list to each argument *
242 % ****************************************************

244 \def\@forsemicol#1:=#2\do#3{%
245 %  \edef\@fortmp{#2}%1996/07/06 by S. Fujita
246 \expandafter\def\expandafter\@fortmp\expandafter{#2}%
247  \ifx\@fortmp\@empty \else%
248  \expandafter\@forl@@p#2;\@nil;\@nil\@@#1{#3}\fi}
249 \long\def\@forl@@p#1;#2;#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else%
250  #5\def#4{#2}\ifx #4\@nnil \else#5\@iforl@@p #3\@@#4{#5}\fi\fi}
251 \long\def\@iforl@@p#1;#2\@@#3#4{\def#3{#1}\ifx #3\@nnil%
252  \expandafter\@fornoop \else
253  #4\relax\expandafter\@iforl@@p\fi#2\@@#3{#4}}
254 %\def\@iforl@@p#1;#2\@@#3#4{\def#3{#1}\ifx #3\@nnil%
255 %       \let\@nextwhile=\@fornoop \else%
256 %      #4\relax\let\@nextwhile=\@iforl@@p\fi\@nextwhile#2\@@#3{#4}}

The macro \@m@mb@r separates a character string into to portions by using a double equality symbol (==) and a semicolon as delimiters. The first potion consists of a locant number and a bond modifier (stored in \@membera), which are further separated by the macro \twoch@r, \twoch@@r or \threech@r. The second potion shows a substituent (stored in \@memberb), which is printed by means of an appropiate command.

\@m@mb@r \twoch@r \twoch@@r \threech@r
257 %\def\@m@mb@r#1==#2;{\gdef\@membera{#1}\gdef\@memberb{#2}}
258 \def\@m@mb@r#1==#2;{\def\@membera{#1}\def\@memberb{#2}}
259 \def\twoch@r#1#2{\gdef\@tmpa{#1}\gdef\@tmpb{#2}}
260 \def\twoch@@r#1#2{\gdef\@@tmpa{#1}\gdef\@@tmpb{#2}}
261 %\def\threech@r#1#2#3{\gdef\@tmpa{#1}\gdef\@tmpb{#2}\gdef\@tmpc{#3}}%redefined

The command \threech@r is redefined by using \@get@first@char in order to give a warning of a two-digit number.

\@get@first@char
262 \newif\ifdrawsamesubst\drawsamesubstfalse
263 \def\@get@first@char#1{\if\noexpand#1\relax\else
264 \@cnttempa=`#1\relax
265 \ifnum\@cnttempa>47\relax
266 \ifnum\@cnttempa<58\relax
267 \XyMTeXWarning{The second number (\@tmpb) of a two-digit number (\@tmpa\@tmpb)
268 is missed. ^^J\space This should be written in braces,
269 ^^J\space e.g. `{\@tmpa\@tmpb}D==substituent' and `{{\@tmpa\@tmpb}}==substituent'.}
270 \fi\fi\fi}
\threech@r
271 \def\threech@r#1#2#3{\gdef\@tmpa{#1}\gdef\@tmpb{#2}\gdef\@tmpc{#3}%
272 \begingroup
273 \ifdrawsamesubst\ifx\@tmpa\empty\relax\else\ifx\@tmpb\empty\relax\else
274 \setbox0=\hbox{\@get@first@char#2\relax}\fi\fi\fi
275 \endgroup}

The following two commands are added to treat spiro fusion. To avoid the bugs in drawing multi-nested fused compounds, \gdef is changed to \def in the

 definitions of \twoCH@@R and \twoCH@R.

\twoCH@R \twoCH@@R
276 %\def\twoCH@@R#1#2//{\gdef\@@tmpa{#1}\gdef\@@tmpb{#2}}
277 \def\twoCH@@R#1#2//{\def\@@tmpa{#1}\def\@@tmpb{#2}}
278 %\def\twoCH@R#1#2//{\gdef\@tmpa{#1}\gdef\@tmpb{#2}}
279 \def\twoCH@R#1#2//{\def\@tmpa{#1}\def\@tmpb{#2}}

3.5 Conventions

Switches for characterizing substitution sites as left, right or left-right boxes become effective in the commands \putlatom, \putratom and \putlratom. They are used for warning wrong or unnecessary usages of \lmoiety or \rmoiety.

\if@leftput
\if@rightput
\if@leftrightput
\resetlrput

280 \newif\if@rightput \@rightputfalse
281 \newif\if@leftput \@leftputfalse
282 \newif\if@leftrightput \@leftrightputfalse
283 \def\resetlrput{\@rightputfalse\@leftputfalse
284 \@leftrightputfalse}

We can use the macro \rmoiety for drawing a right-hand substituent and the macro \lmoiety for drawing a left-hand substituent.

When you use a \rmoiety command in a left box produced by a \putlatom command, the warning “Wrong \rmoiety” is reported. When you use a \lmoiety command in a right box produced by a \putratom command, the warning “Wrong \lmoiety” is reported. If the “draft” option is effective, these cases are designated by solid squares at the corresponding positions on pages.

\rmoiety \lmoiety
285 % **************
286 % * Convention *
287 % **************
288 % %\def\rmoiety#1{#1 \hss}
289 % %\def\lmoiety#1{\hss #1}
290 \def\rmoiety#1{\if@leftput
291 \XyMTeXWarning{Wrong \string\rmoiety\space used in a left box}%
292 \hbox to0pt{%
293 \hbox to0pt{\hss\vrule width\overfullrule height\overfullrule}#1\hss}%
294 \else\if@rightput\XyMTeXWarning{Unnecessary \string\rmoiety\space
295 used in a right box}\hbox to0pt{#1\hss}%
296 \else\if@leftrightput\hbox to0pt{#1\hss}%
297 \fi\fi\fi\resetlrput}
298 \def\lmoiety#1{\if@rightput
299 \XyMTeXWarning{Wrong \string\lmoiety\space used in a right box}%
300 \hbox to0pt{\hss#1\kern-.72em%
301 \hbox to0pt{\vrule width\overfullrule height\overfullrule\hss}}\else
302 \if@leftput\XyMTeXWarning{Unnecessary \string\lmoiety\space
303 used in a left box}\hbox to0pt{\hss#1}%
304 \else\if@leftrightput\hbox to0pt{\hss#1\kern-.72em}%
305 \else\hbox to0pt{\hss#1\kern-.72em}\fi\fi\fi\resetlrput}

Warnings from XΥMTEX are concerned with commands \rmoiety and \lmoiety.

\XyMTeXWarning
306 \def\XyMTeXWarning#1{%
307 \begingroup
308 \let\protect\string
309 \immediate\write\@unused{^^IXyMTeX Warning: #1\space
310 on input line \the\inputlineno^^I}%
311 \endgroup}

Warnings concerned with ring fusion are based on the command \FuseWarning of XΥMTEX.

\@cnttempa
\@cnttempb
\FuseWarning

312 \newcount\@cnttempa
313 \newcount\@cnttempb
314 \def\FuseWarning#1#2#3#4#5#6#7{%
315 \@tempcnta=#1 \@tempcntb=#2
316 \@cnttempa=#3 \advance\@cnttempa-#5
317 \@cnttempb=#4 \advance\@cnttempb-#6
318 \ifnum\@tempcnta=\@cnttempa
319 \ifnum\@tempcntb=\@cnttempb\else
320 \XyMTeXWarning{Mismatched fusion at bond `#7'}%
321 \fi
322 \else
323 \XyMTeXWarning{Mismatched fusion at bond `#7'}%
324 \fi}

The font of a substituent and its size are designated explicitly.

\substfont
\substfontsize
325 \let\substfont=\normalfont
326 \let\substfontsize=\normalsize

The original L^{A}TEX command \put is changed into macros suitable to more specific uses as follows.

\putlatom
327 \def\putlatom#1#2#3{\begingroup\resetlrput
328 \Put@Direct(#1,#2){\@leftputtrue\substfont\substfontsize
329 \hbox to0pt{\hss #3}\@leftputfalse}\endgroup}
\putratom
330 %\def\putratom#1#2#3{\Put@Direct(#1,#2){\hbox to0pt{#3 \hss}}}
331 \def\putratom#1#2#3{\begingroup\resetlrput
332 \Put@Direct(#1,#2){\@rightputtrue\substfont\substfontsize
333 \hbox to0pt{#3 \hss}\@rightputfalse}\endgroup}
\@getcharwidthput
334 \newif\ifspecial@ylcs \special@ylcsfalse
335 \newdimen\@dimtempa
336 \def\@getcharwidthput#1#2\owari{%
337 \global\special@ylcsfalse
338 \if\noexpand#1\relax \global\special@ylcstrue \else%\if the category #1 is 'command'
339 \ifcat#1$\relax \global\special@ylcstrue\else%if the category of #1 is 'special letter'

340 \ifcat#1a\relax%if the category of #1 is 'letter'
341 \setbox0=\hbox{#1}%
342 \global\@dimtempa=0.7em
343 \global\advance\@dimtempa by-\wd0\relax
344 \global\divide\@dimtempa by2\relax
345 \else\global\@dimtempa=0em\relax\fi\fi\fi}
\putlratom
346 \def\putlratom#1#2#3{\begingroup\resetlrput
347 \Put@Direct(#1,#2){\@leftrightputtrue\substfont\substfontsize
348 \setbox1=\hbox{%
349 \expandafter\@getcharwidthput#3\relax\owari}%the centering mechanism
350 \@tempdima=\@dimtempa%global to local
351 \ifspecial@ylcs\hbox to.72em{#3\hss}\else
352 \hbox to0.72em{\kern\@tempdima #3\hss}\kern-\@tempdima
353 \fi}%
354 \@leftrightputfalse\endgroup}
  % old definitions
  %    \begin{macrocode}
  % changed to avoid Overfull warnings 1993/11/11/S.Fujita
  % \newif\if@moiety \@moietyfalse
  % \def\putlratom#1#2#3{%
  % \def\lmoiety##1{\global\@moietytrue}%
  % \setbox0=\hbox{#3}%deleted by S. Fujita
  % \if@moiety\def\lmoiety##1{\hss ##1}%
  % \Put@Direct(#1,#2){\hbox to.72em{#3}}\global\@moietyfalse
  % \else\Put@Direct(#1,#2){\hbox to.6em{#3\hss}}\fi}%
  % \def\putlratom#1#2#3{\Put@Direct(#1,#2){\hbox to.6em{#3}}}
  %    \end{macrocode}

\Putlratom
355 \def\Putlratom#1#2#3{\Put@Direct(#1,#2){\substfont\substfontsize
356 \hbox to.8em{#3}}}
\dotorline
357 \def\d@t@rline(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
358 \@ifundefined{dottedline}{%
359 \XyMTeXWarning{A dottedline is replaced by a solid line.}%
360  \Put@Line(#1,#2)(#3,#4){#5}%
361  }{{\thicklines%
362  \ifdim\unitlength>0.08pt
363  \dottedline{20}(#6,#7)(#8,#9)%
364  \else
365  \dottedline{30}(#6,#7)(#8,#9)\fi}}}
366 \let\dotorline=\d@t@rline

3.6 Parameters

The original point for drawing a structural formula is shifted to an appropriate position, which is designated by the following parmeters (counters) for coordinates.

\noshift \shifti \shiftii \shiftiii
367 % *******************************
368 % * Parameters for Coordinates  *
369 % *******************************
370 \newcount\noshift \noshift=0\relax%
371 \newcount\shifti \shifti=240\relax%
372 \newcount\shiftii \shiftii=400\relax%
373 \newcount\shiftiii \shiftiii=800\relax%

The unit length for XΥMTEX is selected to be 0.1pt. This value should not be maintained as possible as you can. A smaller value may disapper a sloped line of short length.

374 \unitlength.1pt%

Parameters for ring fusion are used in fusering.sty.

\fuseAx \fuseBx \fuseAy \fuseBy
375 \def\fuseAx{0}
376 \def\fuseBx{0}
377 \def\fuseAy{0}
378 \def\fuseBy{0}

3.7 Various switchs

These macros are used for clipping spaces at substitution positions. Note that

 \if@clip is used in place of \if@dclip.
\if@clip
\if@aclip
\if@bclip
\if@cclip
\if@eclip
\if@fclip
\iforigpt
\@tmpaa
\oriptoutput
\OriptOutput
\OriptOutputA

379 % ***************************************
380 % * various flags (switches)            *
381 % * treatment of substitution positions *
382 % ***************************************

383 %

384 % for 6- or lower-membered cycles

385 %

386 \newif\if@clip \@clipfalse%   % switch for clipping at 4
387 \newif\if@aclip \@aclipfalse% % switch for clipping at 1
388 \newif\if@bclip \@bclipfalse% % switch for clipping at 2
389 \newif\if@cclip \@cclipfalse% % switch for clipping at 3
390 \newif\if@eclip \@eclipfalse% % switch for clipping at 5
391 \newif\if@fclip \@fclipfalse% % switch for clipping at 6
392 \newif\iforigpt \origptfalse% % switch for showing the original point
393 \newcount\@tmpaa%to use as a local counter
394 \def\@rigpt@utput#1{\iforigpt
395 \Put@sCircle(-\shiftii,-\shifti){50}%
396 \Put@oCircle(-\noshift,-\noshift){50}%
397 \typeout{command `#1' origin: %
398 (\the\noshift,\the\noshift) ---> (\the\shiftii,\the\shifti)}\fi}
399 \def\OrigptOutput(#1,#2)#3{\iforigpt
400 \Put@sCircle(-#1,-#2){50}\Put@oCircle(0,0){50}%
401 \typeout{command `#3' origin: (0,0) ---> (#1,#2)}\fi}
402 \def\OrigptOutputA(#1,#2)(#3,#4)#5{\iforigpt
403 \Put@sCircle(-#1,-#2){50}\Put@oCircle(-#3,-#4){50}%
404 \typeout{command `#5' origin: (#3,#4) ---> (#1,#2)}\fi}

405 \def\origptoutput{\@ifnextchar({\@origptoutput}{\@origptoutput(,)}}
406 \def\@origptoutput(#1){%
407 \@ifnextchar({\@@origptoutput(#1)}{\@@origptoutput(#1)(,)}}
408 \def\@@origptoutput(#1,#2)(#3,#4)#5{%
409 \def\TEMParga{#1}\def\TEMPargb{#3}%
410 \ifx\TEMParga\empty\relax
411 \@rigpt@utput{#5}\else\ifx\TEMPargb\empty\relax
412 \OrigptOutput(#1,#2){#5}\else
413 \OrigptOutputA(#1,#2)(#3,#4){#5}\fi\fi}
\if@gclip \if@hclip \if@iclip \if@jclip

414 %

415 % for further-membered cycles

416 %

417 \newif\if@gclip \@gclipfalse%
418 \newif\if@hclip \@hclipfalse%
419 \newif\if@iclip \@iclipfalse%
420 \newif\if@jclip \@jclipfalse%

The yl-function provides some difficulties in carrying out an \if@aclip switch etc. if \@acliptrue etc. are declared globally. In Version 2.01, \@acliptrue etc. are declared locally by the grouping mechanism of TEX. In order to communicate information on \@acliptrue etc. outside the grouping, the command \clipinfo (globally declared) stores tentatively information on @acliptrue etc. in the form of a,b,c,. . .. Out side the grouping, the command \developclipinfo is declared

 to reset \@acliptrue etc.
\clipinfo
\storeclipinfo
421 \def\clipinfo{}
422 \def\storeclipinfo{%
423 \if@aclip \xdef\clipinfo{\clipinfo a,}\fi
424 \if@bclip \xdef\clipinfo{\clipinfo b,}\fi
425 \if@cclip \xdef\clipinfo{\clipinfo c,}\fi
426 \if@clip \xdef\clipinfo{\clipinfo d,}\fi
427 \if@eclip \xdef\clipinfo{\clipinfo e,}\fi
428 \if@fclip \xdef\clipinfo{\clipinfo f,}\fi
429 \if@gclip \xdef\clipinfo{\clipinfo g,}\fi
430 \if@hclip \xdef\clipinfo{\clipinfo h,}\fi
431 \if@iclip \xdef\clipinfo{\clipinfo i,}\fi
432 \if@jclip \xdef\clipinfo{\clipinfo j,}\fi

433 }%

locally declared

\developclipinfo
434 \def\developclipinfo{%
435 \expandafter\@tfor\expandafter\MEMBER\expandafter:%
436 \expandafter=\clipinfo\do{%
437 \if\MEMBER a\relax \@acliptrue\fi
438 \if\MEMBER b\relax \@bcliptrue\fi
439 \if\MEMBER c\relax \@ccliptrue\fi
440 \if\MEMBER d\relax \@cliptrue\fi
441 \if\MEMBER e\relax \@ecliptrue\fi

442 \if\MEMBER f\relax \@fcliptrue\fi
443 \if\MEMBER g\relax \@gcliptrue\fi
444 \if\MEMBER h\relax \@hcliptrue\fi
445 \if\MEMBER i\relax \@icliptrue\fi
446 \if\MEMBER j\relax \@jcliptrue\fi}%
447 \gdef\clipinfo{}}

3.8 Various commands and switchs for using substituents

For drawing a structure as a substituent, the argument (yl) can be used. The following commands and counters are used for shifting the substituent.

\@yl
\yl@xdiff
\yl@ydiff
\yl@shiftii
\yl@shifti
\@ylii
\@yli
\@@ylii
\@@yli

448 \def\@yl{(yl)}
449 \newcount\yl@xdiff
450 \newcount\yl@ydiff
451 \newcount\yl@shiftii
452 \newcount\yl@shifti
453 \def\@ylii{0}\def\@yli{0}
454 \def\@@ylii{}\def\@@yli{}
455 \def\reset@@yl{\gdef\@@ylii{}\gdef\@@yli{}}
456 \def\reset@yl@xydiff{\yl@xdiff=0 \yl@ydiff=0\relax}

The following switches are used for shifting the substituent. The locant flags such as \@ylatrue have been stoped to use.

Old definition:

457 % %%%%% \newif\if@yla \@ylafalse
458 % %%%%% \newif\if@ylb \@ylbfalse
459 % %%%%% \newif\if@ylc \@ylcfalse
460 % %%%%% \newif\if@yld \@yldfalse
461 % %%%%% \newif\if@yle \@ylefalse
462 % %%%%% \newif\if@ylf \@ylffalse
\if@ylsw \if@@ylsw
463 \newif\if@ylsw \@ylswfalse
464 \newif\if@@ylsw \@@ylswfalse
  Old definition:
  %    \begin{macrocode}
  %%%%% \def\@reset@ylsw{\@ylafalse\@ylbfalse\@ylcfalse
  %%%%% \@yldfalse\@ylefalse\@ylffalse\@ylswfalse}
  %    \end{macrocode}

\@reset@ylsw
465 \def\@reset@ylsw{\@ylswfalse\@@ylswfalse}

3.9 ShiftPicEnv and ShiftPicEnvB

For supporting the yl-function of the XyM notation system, the mechanism for sifting the original point of each picture enviroment is encapsulated so as to create the ShiftPicEnv and the ShiftPicEnvB environments.

The original point and the size of a picture environment is shifted due to whether a yl-function is declared or not. The first set of coordinates is usually set as (0,0), which means that the subsituent produced by a yl-funtions has no dimensions.

Old definition for fused rings:

  \if@sixfuseposv
   \yl@shiftii=-\fuseAx
   \yl@shifti=-\fuseAy
   \advance\yl@shiftii\yl@xdiff
   \advance\yl@shifti\yl@ydiff
   \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)
   \reset@yl@xydiff%1999/1/6 by S. Fujita
  \else
   \begin{sfpicture}(800,880)(-\shiftii,-\shifti)%
    \origptoutput{sixfusev}%
  \fi

For monocyclic compounds:

  \ShiftPicEnv[1]%%[0] not for a fusion unit, [1] for a fusion usit
    (0,0)(xshift,yshift)/%%picture after the action of yl function
                         %%no dimension
    (x_size,y_size)(xshift,yshift)%%orginal picture
    {name}%%name of control sequence
    (xx_size,yy_size)(xxshift,yyshift)%%option to typeout abnormal shifts

\ShiftPicEnv
466 \newif\ifshiftpicsw\shiftpicswfalse
467 \newif\if@sixfuseposv\@sixfuseposvfalse
468 \def\ShiftPicEnv{%
469 \@ifnextchar[{\ShiftPicEnv@}{\ShiftPicEnv@[0]}}
470 \def\ShiftPicEnv@[#1](#2)(#3)/(#4)(#5)#6{%
471 \@ifnextchar({\@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}}%
472 {\@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}(,)}}
473 \def\@ShiftPicEnv[#1](#2)(#3)/(#4)(#5)#6(#7){%
474 \@ifnextchar({\@@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}(#7)}%
475 {\@@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}(#7)(,)}}
476 \def\@@ShiftPicEnv[#1](#2)(#3)/(#4)(#5)#6(#7)(#8){%
477 \shiftpicswfalse%initialize
478 \ifcase#1\relax%%%non-fused ring
479 \if@ylsw \shiftpicswtrue
480 \yl@shiftii=\@ylii
481 \yl@shifti=\@yli
482 \fi
483 \or%%%fused ring
484 \if@sixfuseposv \shiftpicswtrue
485 \yl@shiftii=-\fuseAx
486 \yl@shifti=-\fuseAy
487 \fi
488 \fi
489 \ifshiftpicsw
490 \advance\yl@shiftii\yl@xdiff

491 \advance\yl@shifti\yl@ydiff
492 \begin{sfpicture}(#2)(#3)%
493 \reset@yl@xydiff%1999/1/6 by S. Fujita
494 \else
495 \begin{sfpicture}(#4)(#5)%
496 \origptoutput(#7)(#8){#6}%
497 \fi}
498 \def\endShiftPicEnv{\end{sfpicture}}

Old definition for bicyclic rings:

  \if@ylsw
   \yl@shiftii=\@ylii
   \yl@shifti=\@yli
   \advance\yl@shiftii\@@ylii
   \advance\yl@shifti\@@yli
   \advance\yl@shiftii\yl@xdiff
   \advance\yl@shifti\yl@ydiff
   \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)
   \reset@yl@xydiff%1999/1/6 by S. Fujita
  \else
   \begin{sfpicture}(1200,880)(-\shiftii,-\shifti)%
    \origptoutput{nonaheterov}%
  \fi

For bicyclic compounds or others:

  \ShiftPicEnvB(0,0)(xshift,yshift)/%%picture after the action of yl function
    (x_size,y_size)(xshift,yshift)%%orginal picture
    {name}%%name of control sequence
    (xx_size,yy_size)(xxshift,yyshift)%%option to typeout abnormal shifts

\ShiftPicEnvB
499 \def\ShiftPicEnvB(#1)(#2)/(#3)(#4)#5{%
500 \@ifnextchar({\@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}}%
501 {\@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}(,)}}
502 \def\@ShiftPicEnvB(#1)(#2)/(#3)(#4)#5(#6){%
503 \@ifnextchar({\@@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}(#6)}%
504 {\@@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}(#6)(,)}}
505 \def\@@ShiftPicEnvB(#1)(#2)/(#3)(#4)#5(#6)(#7){%
506 \if@ylsw
507 \yl@shiftii=\@ylii
508 \yl@shifti=\@yli
509 \advance\yl@shiftii\@@ylii
510 \advance\yl@shifti\@@yli
511 \advance\yl@shiftii\yl@xdiff
512 \advance\yl@shifti\yl@ydiff
513 \begin{sfpicture}(#1)(#2)%
514 \reset@yl@xydiff%1999/1/6 by S. Fujita
515 \else
516 \begin{sfpicture}(#3)(#4)%
517 \origptoutput(#6)(#7){#5}%
518 \fi}
519 \def\endShiftPicEnvB{\end{sfpicture}}

The further fusion of a three- or four-membered ring at a center bond of a sixsix or six-five ring is permitted, while that of a five- or more-membered ring is not permitted. The macro \@smallringsw is used for such switching (fusering.sty).

\if@smallringsw
520 \newif\if@smallringsw \@smallringswfalse

3.10 Initialization

The \iniflag command initializes all of the clipping flags. The \iniatom command initializes all of the strings of temporary use such as \aaa and \bbb, which are associated with respective atom positions. The \resetbdsw command resets all of the strings of temporary use such as \@aaa and \@bbb, which are associated with respective bond positions.

\iniflag \iniatom \resetbdsw
521 % %\def\iniflag{%
522 % %\global\@aclipfalse\global\@bclipfalse%
523 % %\global\@cclipfalse\global\@clipfalse\global\@eclipfalse%
524 % %\global\@fclipfalse\global\@gclipfalse\global\@hclipfalse%
525 % %\global\@iclipfalse\global\@jclipfalse%
526 % %\global\@clipfusefalse}%
527 % %\def\iniatom{%
528 % %\gdef\aaa{}\gdef\bbb{}\gdef\ccc{}\gdef\ddd{}%
529 % %\gdef\eee{}\gdef\fff{}%
530 % %\gdef\gggA{}\gdef\hhh{}\gdef\iii{}\gdef\jjj{}%
531 % %\gdef\@aaa{}\gdef\@bbb{}\gdef\@ccc{}\gdef\@ddd{}%
532 % %\gdef\@eee{}\gdef\@fff{}%
533 % %}%
534 % %\def\resetbdsw{\gdef\@aaa{a}\gdef\@bbb{b}\gdef\@ccc{c}%
535 % %\gdef\@ddd{d}\gdef\@eee{e}\gdef\@fff{f}}%
536 \def\iniflag{%
537 \@aclipfalse\@bclipfalse\@cclipfalse\@clipfalse\@eclipfalse%
538 \@fclipfalse\@gclipfalse\@hclipfalse%
539 \@iclipfalse\@jclipfalse\@clipfusefalse%
540 \global\@smallringswfalse%

541 }%

542 \def\iniatom{%
543 \def\aaa{}\def\bbb{}\def\ccc{}\gdef\ddd{}%
544 \def\eee{}\def\fff{}%
545 \def\gggA{}\def\hhh{}\def\iii{}\gdef\jjj{}%
546 \def\@aaa{}\def\@bbb{}\def\@ccc{}\def\@ddd{}%
547 \def\@eee{}\def\@fff{}%
548 \def\@ggg{}\def\@hhh{}\def\@iii{}%
549 \def\@jjj{}\def\@kkk{}%

550 }%

551 \def\resetbdsw{\def\@aaa{a}\def\@bbb{b}\def\@ccc{c}%
552 \def\@ddd{d}\def\@eee{e}\def\@fff{f}%
553 \def\@ggg{g}\def\@hhh{h}\def\@iii{i}%
554 \def\@jjj{j}\def\@kkk{k}%

555 }%

At the beginning of XΥMTEX processing, we initialize atom information by the

 command \iniatom.
556 \iniatom

4 Macros for Vertical Formulas

4.1 Placing substituents for vertical formulas

Such a drawing command as \setsixringv uses several inner macros for placing substituents with bonds. The first set of inner macros are shown as follows.

The command \ylposition is to obtain the shift values \@ylii and \@yli which are used for shifting the standard point of a substituent. The locant flags such as \@ylatrue have been stoped to use.

\ylposition
557 \def\ylposition#1#2#3#4#5{%
558 \@@ylswfalse%%%\@reset@ylsw
559 \@forsemicol\member:=#1\do{%
560 \if@@ylsw\else%
561 \ifx\member\empty\else%
562 \expandafter\@m@mb@r\member;\relax%
563 \expandafter\threech@r\@membera{}{}\relax%
564 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
565 \if@@ylsw
566 \ifnum#5<0\relax%
567 \@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
568 \else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
569 \ifnum\@tmpaa>#3\relax%
570 \ifnum\@tmpaa<#4\relax%
571 \ifcase\@tmpaa%0 omit

The flags \@lyatrue etc are not used in a revised edition.

572 \or\ifx\aaa\empty
573  \gdef\@ylii{0}\gdef\@yli{-406}\global\@ylswtrue%\@ylatrue% subst. on 1
574  \else
575  \gdef\@ylii{0}\gdef\@yli{-442}\global\@ylswtrue%\@ylatrue% subst. on 1
576  \fi
577 \or\ifx\bbb\empty
578  \gdef\@ylii{-171}\gdef\@yli{-303}\global\@ylswtrue%\@ylbtrue% subst. on 2
579  \else
580  \gdef\@ylii{-213}\gdef\@yli{-327}\global\@ylswtrue%\@ylbtrue% subst. on 2
581  \fi
582 \or\ifx\ccc\empty
583  \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue%\@ylctrue% subst. on 3
584  \else
585  \gdef\@ylii{-213}\gdef\@yli{-79}\global\@ylswtrue%\@ylctrue% subst. on 3
586  \fi
587 \or\ifx\ddd\empty
588  \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
589  \else
590  \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
591  \fi

592 \or\ifx\eee\empty
593  \gdef\@ylii{171}\gdef\@yli{-103}\global\@ylswtrue%\@yletrue% subst. on 5
594  \else
595  \gdef\@ylii{213}\gdef\@yli{-79}\global\@ylswtrue%\@yletrue% subst. on 5
596  \fi
597 \or\ifx\fff\empty
598  \gdef\@ylii{171}\gdef\@yli{-303}\global\@ylswtrue%\@ylftrue% subst. on 6
599  \else
600  \gdef\@ylii{213}\gdef\@yli{-327}\global\@ylswtrue%\@ylftrue% subst. on 6
601  \fi%
602 \fi%end of ifcase
603 \fi\fi\fi\fi\fi}}%

The \@substa command is used for placing a substituent (\@memberb) at the 1-position (top) of a vertical six-membered ring. The bond linking between the substituent and the 1-position is drawn in the light of the corresponding bond modifier (\@tmpc = Sa, Sb, SA, SB etc.).

\@substa
604 % %%%%%%%%%%%%%%%
605 % % subst. on 1 %
606 % %%%%%%%%%%%%%%%
607 \def\@substa{%
608 \if@aclip% %clipping
609 \if\@tmpb S%single bond
610  \ifx\@tmpc\empty%
611  \yl@xdiff=31\relax
612  \yl@ydiff=-17\relax
613  \Put@Line(0,436)(0,1){110}%      % single bond at 1
614  \putlratom{-31}{563}{\@memberb}%   % left or right type
615  \else\if\@tmpc B%(B) beta
616  \yl@xdiff=-36\relax
617  \yl@ydiff=-27\relax
618  \putlatom{-42}{563}{\@memberb}%    % left type

619 {%

620  \thicklines%
621  \Put@Line(-18,436)(-3,5){60}%    % single bond at 1

622 }%

623  \else\if\@tmpc A%(A) alpha
624  \yl@xdiff=37\relax
625  \yl@ydiff=-27\relax
626  \putratom{41}{563}{\@memberb}%     % right type
627  \dotorline(18,436)(3,5){60}/(18,436)(72,526)%
628  \else\if\@tmpc u%(u) up --- (B) beta
629  \yl@xdiff=36\relax
630  \yl@ydiff=-27\relax
631  \putratom{41}{563}{\@memberb}%     % right type

632 {%

633  \thicklines%
634  \Put@Line(18,436)(3,5){60}%    % single bond at 1

635 }%

636  \else\if\@tmpc d%(d) down --- (A) alpha
637  \yl@xdiff=-37\relax
638  \yl@ydiff=-27\relax

639  \putlatom{-42}{563}{\@memberb}%    % left type
640  \dotorline(-18,436)(-3,5){60}/(-18,436)(-72,526)%
641  \else\if\@tmpc b%(b) beta
642  \yl@xdiff=-36\relax
643  \yl@ydiff=-27\relax
644  \putlatom{-42}{563}{\@memberb}%    % left type
645  \Put@Line(-18,436)(-3,5){60}%    % single bond at 1
646  \else\if\@tmpc a%(a) alpha
647  \yl@xdiff=37\relax
648  \yl@ydiff=-27\relax
649  \putratom{41}{563}{\@memberb}%     % right type
650  \Put@Line(18,436)(3,5){60}%      % single bond at 1
651  \else\if\@tmpc V%(V) beta undefined
652  \yl@xdiff=-36\relax
653  \yl@ydiff=-27\relax
654  \putlatom{-42}{563}{\@memberb}%    % left type

655 {%

656  \WaveBonds%
657  \Put@Line(-18,436)(-3,5){60}%    % single bond at 1

658 }%

659  \else\if\@tmpc U%(U) alpha undefined
660  \yl@xdiff=37\relax
661  \yl@ydiff=-27\relax
662  \putratom{41}{563}{\@memberb}%     % right type

663 {%

664  \WaveBonds%
665  \Put@Line(18,436)(3,5){60}%      % single bond at 1

666 }%

667  \fi\fi\fi\fi\fi%
668  \fi\fi\fi\fi
669 \else\if\@tmpb D%double bond
670  \yl@xdiff=31\relax
671  \yl@ydiff=-17\relax
672  \putlratom{-31}{563}{\@memberb}%   % left or right type
673  \Put@Line(-12,436)(0,1){110}%    % double bond at 1
674  \Put@Line(12,436)(0,1){110}%     % double bond at 1
675 \else\if\@tmpb B%beta single bond
676  \yl@xdiff=31\relax
677  \yl@ydiff=-17\relax
678  \putlratom{-31}{563}{\@memberb}%   % left or right type

679 {%

680  \thicklines%
681  \Put@Line(0,436)(0,1){110}%      % single bond at 1

682 }%

683 \else\if\@tmpb A%alpha single bond
684  \yl@xdiff=31\relax
685  \yl@ydiff=-17\relax
686  \putlratom{-31}{563}{\@memberb}%   % left or right type
687  \dotorline(0,436)(0,1){110}/(0,436)(0,546)%
688 \else\if\@tmpb U%undefined single bond
689  \yl@xdiff=31\relax
690  \yl@ydiff=-17\relax
691  \putlratom{-31}{563}{\@memberb}%   % left or right type

692 {%

693  \WaveBonds%
694  \Put@Line(0,436)(0,1){110}%      % single wave bond at 1

695 }%

696 \else\if\@tmpb F%fused bond
697  {\let\@tmpb=\@tmpc\@clipfusetrue
698  \Put@Direct(0,406){\setatombondd}%

699 }%

700 \else\if\@tmpb G%fused bond
701  {\let\@tmpb=\@tmpc\@clipfusetrue
702  \Put@Direct(0,406){\setatombondf}%

703 }%

704 \else%
705  \yl@xdiff=31\relax
706  \yl@ydiff=-17\relax
707  \putlratom{-31}{563}{\@memberb}%   % left or right type
708  \Put@Line(0,436)(0,1){110}%      % single bond at 1
709 \fi\fi\fi\fi%
710 \fi\fi\fi%
711 \else% % no clipping
712 \if\@tmpb S%single bond
713  \ifx\@tmpc\empty%
714  \yl@xdiff=31\relax
715  \yl@ydiff=-17\relax
716  \Put@Line(0,406)(0,1){140}%      % single bond at 1
717  \putlratom{-31}{563}{\@memberb}%   % left or right type
718  \else\if\@tmpc B%(B) beta
719  \yl@xdiff=-30\relax
720  \yl@ydiff=-37\relax
721  \putlatom{-42}{563}{\@memberb}%    % left type

722 {%

723  \thicklines%
724  \Put@Line(0,406)(-3,5){72}%      % single bond at 1

725 }%

726  \else\if\@tmpc A%(A) alpha
727  \yl@xdiff=31\relax
728  \yl@ydiff=-37\relax
729  \putratom{41}{563}{\@memberb}%     % right type
730  \dotorline(0,406)(3,5){72}/(0,406)(72,526)%
731  \else\if\@tmpc u%(u) upper --- (B) beta
732  \yl@xdiff=30\relax
733  \yl@ydiff=-37\relax
734  \putratom{41}{563}{\@memberb}%     % right type

735 {%

736  \thicklines%
737  \Put@Line(0,406)(3,5){72}%      % single bond at 1

738 }%

739  \else\if\@tmpc d%(d) down --- (A) alpha
740  \yl@xdiff=-31\relax
741  \yl@ydiff=-37\relax
742  \putlatom{-42}{563}{\@memberb}%    % left type
743  \dotorline(0,406)(-3,5){72}/(0,406)(-72,526)%
744  \else\if\@tmpc b%(b) beta
745  \yl@xdiff=-30\relax
746  \yl@ydiff=-37\relax

747  \putlatom{-42}{563}{\@memberb}%    % left type
748  \Put@Line(0,406)(-3,5){72}%      % single bond at 1
749  \else\if\@tmpc a%(a) alpha
750  \yl@xdiff=31\relax
751  \yl@ydiff=-37\relax
752  \putratom{41}{563}{\@memberb}%     % right type
753  \Put@Line(0,406)(3,5){72}%       % single bond at 1
754  \else\if\@tmpc V%(V) beta undefined
755  \yl@xdiff=-30\relax
756  \yl@ydiff=-37\relax
757  \putlatom{-42}{563}{\@memberb}%    % left type

758 {%

759  \WaveBonds%
760  \Put@Line(0,406)(-3,5){72}%      % single bond at 1

761 }%

762  \else\if\@tmpc U%(U) alpha undefined
763  \yl@xdiff=31\relax
764  \yl@ydiff=-37\relax
765  \putratom{41}{563}{\@memberb}%     % right type

766 {%

767  \WaveBonds%
768  \Put@Line(0,406)(3,5){72}%       % single bond at 1

769 }%

770  \fi\fi\fi\fi\fi%
771  \fi\fi\fi\fi%
772 \else\if\@tmpb D%double bond
773  \yl@xdiff=31\relax
774  \yl@ydiff=-17\relax
775  \putlratom{-31}{563}{\@memberb}%   % left or right type
776  \Put@Line(-12,406)(0,1){140}%    % double bond at 1
777  \Put@Line(12,406)(0,1){140}%     % double bond at 1
778 \else\if\@tmpb B%beta single bond
779  \yl@xdiff=31\relax
780  \yl@ydiff=-17\relax
781  \putlratom{-31}{563}{\@memberb}%   % left or right type

782 {%

783  \thicklines%
784  \Put@Line(0,406)(0,1){140}%      % single bond at 1

785 }%

786 \else\if\@tmpb A%alpha single bond
787  \yl@xdiff=31\relax
788  \yl@ydiff=-17\relax
789  \putlratom{-31}{563}{\@memberb}%   % left or right type
790  \dotorline(0,406)(0,1){140}/(0,406)(0,546)%
791 \else\if\@tmpb U%undefined single bond
792  \yl@xdiff=31\relax
793  \yl@ydiff=-17\relax
794  \putlratom{-31}{563}{\@memberb}%   % left or right type

795 {%

796  \WaveBonds%
797  \Put@Line(0,406)(0,1){140}%      % single wave bond at 1

798 }%

799 \else\if\@tmpb F%fused bond
800  {\let\@tmpb=\@tmpc\@clipfusefalse

801  \Put@Direct(0,406){\setatombondd}%

802 }%

803 \else\if\@tmpb G%fused bond
804  {\let\@tmpb=\@tmpc\@clipfusefalse
805  \Put@Direct(0,406){\setatombondf}%

806 }%

807 \else%
808  \yl@xdiff=31\relax
809  \yl@ydiff=-17\relax
810  \putlratom{-31}{563}{\@memberb}%   % left or right type
811  \Put@Line(0,406)(0,1){140}%      % single bond at 1
812 \fi\fi\fi\fi%
813 \fi\fi\fi
814 \fi}% end of \@substa

The \@substb command is used for placing a substituent (\@memberb) at the 2-position (upper-right) of a vertical six-membered ring.

\@substb
815 % %%%%%%%%%%%%%%%
816 % % subst. on 2 %
817 % %%%%%%%%%%%%%%%
818 \def\@substb{%
819 \if@bclip %clipping
820 \if\@tmpb S%single bond
821  \ifx\@tmpc\empty%
822  \yl@xdiff=-10\relax
823  \yl@ydiff=24\relax
824  \putratom{311}{363}{\@memberb}%    % right type
825  \Put@Line(201,327)(5,3){100}%    % single bond at 2
826  \else\if\@tmpc B%(B) beta
827  \yl@xdiff=-7\relax
828  \yl@ydiff=38\relax
829  \putratom{268}{420}{\@memberb}%    % right type

830 {%

831  \thicklines%
832  \Put@Line(201,358)(3,5){60}%     % single bond at 2

833 }%

834  \else\if\@tmpc A%(A) alpha
835  \yl@xdiff=-17\relax
836  \yl@ydiff=23\relax
837  \putratom{318}{280}{\@memberb}%    % right type
838  \dotorline(201,303)(1,0){100}/(201,303)(301,303)%
839  \else\if\@tmpc u%(u) up --- (B) beta
840  \yl@xdiff=-17\relax
841  \yl@ydiff=23\relax
842  \putratom{318}{280}{\@memberb}%    % right type

843 {%

844  \thicklines%
845  \Put@Line(201,303)(1,0){100}%    % single bond at 2

846 }%

847  \else\if\@tmpc d%(d) down --- (A) alpha
848  \yl@xdiff=-7\relax
849  \yl@ydiff=38\relax

850  \putratom{268}{420}{\@memberb}%    % right type
851  \dotorline(201,358)(3,5){60}/(201,358)(261,458)%
852  \else\if\@tmpc b%(b) beta
853  \yl@xdiff=-7\relax
854  \yl@ydiff=38\relax
855  \putratom{268}{420}{\@memberb}%    % right type
856  \Put@Line(201,358)(3,5){60}%     % single bond at 2
857  \else\if\@tmpc a%(a) alpha%
858  \yl@xdiff=-17\relax
859  \yl@ydiff=23\relax
860  \putratom{318}{280}{\@memberb}%    % right type
861  \Put@Line(201,303)(1,0){100}%    % single bond at 2
862  \else\if\@tmpc V%(V) beta undefined
863  \yl@xdiff=-7\relax
864  \yl@ydiff=38\relax
865  \putratom{268}{420}{\@memberb}%    % right type

866 {%

867  \WaveBonds%
868  \Put@Line(201,358)(3,5){60}%     % single bond at 2

869 }%

870  \else\if\@tmpc U%(U) alphau undefined
871  \yl@xdiff=-17\relax
872  \yl@ydiff=23\relax
873  \putratom{318}{280}{\@memberb}%    % right type

874 {%

875  \WaveBonds%
876  \Put@Line(201,303)(1,0){100}%    % single bond at 2

877 }%

878  \fi\fi\fi\fi\fi%
879  \fi\fi\fi\fi%
880 \else\if\@tmpb D%double bond
881  \yl@xdiff=-10\relax
882  \yl@ydiff=18\relax
883  \putratom{311}{363}{\@memberb}%    % right type
884  \Put@Line(194,331)(5,3){100}%    % double bond at 2
885  \Put@Line(200,305)(5,3){100}%    % double bond at 2
886 \else\if\@tmpb B%beta single bond
887  \yl@xdiff=-10\relax
888  \yl@ydiff=24\relax
889  \putratom{311}{363}{\@memberb}%    % right type

890 {%

891  \thicklines%
892  \Put@Line(201,327)(5,3){100}%    % single bond at 2

893 }%

894 \else\if\@tmpb A%alpha single bond
895  \yl@xdiff=-10\relax
896  \yl@ydiff=24\relax
897  \putratom{311}{363}{\@memberb}%    % right type
898  \dotorline(201,327)(5,3){100}/(201,327)(301,387)%
899 \else\if\@tmpb U%undefined single bond
900  \yl@xdiff=-10\relax
901  \yl@ydiff=24\relax
902  \putratom{311}{363}{\@memberb}%    % right type

903 {%

904  \WaveBonds%
905  \Put@Line(210,327)(5,3){100}%      % single wave bond at 2

906 }%

907 \else\if\@tmpb F%fused bond
908  {\let\@tmpb=\@tmpc\@clipfusetrue
909  \Put@Direct(171,303){\setatombonda}%

910 }%

911 \else\if\@tmpb G%fused bond
912  {\let\@tmpb=\@tmpc\@clipfusetrue
913  \Put@Direct(171,303){\setatombonde}%

914 }%

915 \else%
916  \yl@xdiff=-10\relax
917  \yl@ydiff=24\relax
918  \putratom{311}{363}{\@memberb}%    % right type
919  \Put@Line(201,327)(5,3){100}%    % single bond at 2
920 \fi\fi\fi\fi%
921 \fi\fi\fi%
922 \else% %no clipping
923 \if\@tmpb S%single bond
924  \ifx\@tmpc\empty%
925  \yl@xdiff=-10\relax
926  \yl@ydiff=12\relax
927  \putratom{301}{363}{\@memberb}%    % right type
928  \Put@Line(171,303)(5,3){120}%    % single bond at 2
929  \else\if\@tmpc B%(B) beta
930  \yl@xdiff=-15\relax
931  \yl@ydiff=13\relax
932  \putratom{258}{410}{\@memberb}%    % right type

933 {%

934  \thicklines%
935  \Put@Line(171,303)(3,5){72}%     % single bond at 2

936 }%

937  \else\if\@tmpc A%(A) alpha
938  \yl@xdiff=-7\relax
939  \yl@ydiff=23\relax
940  \putratom{318}{280}{\@memberb}%    % right type
941  \dotorline(171,303)(1,0){140}/(171,303)(311,303)%
942  \else\if\@tmpc u%(u) up --- (B) beta
943  \yl@xdiff=-7\relax
944  \yl@ydiff=23\relax
945  \putratom{318}{280}{\@memberb}%    % right type

946 {%

947  \thicklines%
948  \Put@Line(171,303)(1,0){140}%     % single bond at 2

949 }%

950  \else\if\@tmpc d%(d) down --- (A) alpha
951  \yl@xdiff=-15\relax
952  \yl@ydiff=13\relax
953  \putratom{258}{410}{\@memberb}%    % right type
954  \dotorline(171,303)(3,5){72}/(171,303)(243,423)%
955  \else\if\@tmpc b%(b) beta
956  \yl@xdiff=-15\relax
957  \yl@ydiff=13\relax

958  \putratom{258}{410}{\@memberb}%    % right type
959  \Put@Line(171,303)(3,5){72}%     % single bond at 2
960  \else\if\@tmpc a%(a) alpha
961  \yl@xdiff=-7\relax
962  \yl@ydiff=23\relax
963  \putratom{318}{280}{\@memberb}%    % right type
964  \Put@Line(171,303)(1,0){140}%    % single bond at 2
965  \else\if\@tmpc V%(V) beta undefined
966  \yl@xdiff=-15\relax
967  \yl@ydiff=13\relax
968  \putratom{258}{410}{\@memberb}%    % right type

969 {%

970  \WaveBonds%
971  \Put@Line(171,303)(3,5){72}%     % single bond at 2

972 }%

973  \else\if\@tmpc U%(U) alpha undefined
974  \yl@xdiff=-7\relax
975  \yl@ydiff=23\relax
976  \putratom{318}{280}{\@memberb}%    % right type

977 {%

978  \WaveBonds%
979  \Put@Line(171,303)(1,0){140}%    % single bond at 2

980 }%

981  \fi\fi\fi\fi\fi%
982  \fi\fi\fi\fi%
983 \else\if\@tmpb D%double bond
984  \yl@xdiff=-10\relax
985  \yl@ydiff=6\relax
986  \putratom{301}{363}{\@memberb}%    % right type
987  \Put@Line(168,310)(5,3){120}%    % double bond at 2
988  \Put@Line(174,284)(5,3){120}%    % double bond at 2
989 \else\if\@tmpb B%beta single bond
990  \yl@xdiff=-10\relax
991  \yl@ydiff=12\relax
992  \putratom{301}{363}{\@memberb}%    % right type

993 {%

994  \thicklines%
995  \Put@Line(171,303)(5,3){120}%    % single bond at 2

996 }%

997 \else\if\@tmpb A%alpha single bond
998  \yl@xdiff=-10\relax
999  \yl@ydiff=12\relax
1000  \putratom{301}{363}{\@memberb}%    % right type
1001  \dotorline(171,303)(5,3){120}/(171,303)(291,375)%
1002 \else\if\@tmpb U%undefined single bond
1003  \yl@xdiff=-10\relax
1004  \yl@ydiff=12\relax
1005  \putratom{301}{363}{\@memberb}%    % right type

1006 {%

1007  \WaveBonds%
1008  \Put@Line(171,303)(5,3){120}%      % single wave bond at 2

1009 }%

1010 \else\if\@tmpb F%fused bond
1011  {\let\@tmpb=\@tmpc\@clipfusefalse

1012  \Put@Direct(171,303){\setatombonda}%

1013 }%

1014 \else\if\@tmpb G%fused bond
1015  {\let\@tmpb=\@tmpc\@clipfusefalse
1016  \Put@Direct(171,303){\setatombonde}%

1017 }%

1018 \else%
1019  \yl@xdiff=-10\relax
1020  \yl@ydiff=12\relax
1021  \putratom{301}{363}{\@memberb}%    % right type
1022  \Put@Line(171,303)(5,3){120}%    % single bond at 2
1023 \fi\fi\fi\fi%
1024 \fi\fi\fi
1025 \fi}% end of \@substb

The \@substc command is used for placing a substituent (\@memberb) at the 3-position (lower-right) of a vertical six-membered ring.

\@substc
1026 % %%%%%%%%%%%%%%%
1027 % % subst. on 3 %
1028 % %%%%%%%%%%%%%%%
1029 \def\@substc{%
1030 \if@cclip %clipping
1031 \if\@tmpb S%single bond
1032  \ifx\@tmpc\empty%
1033  \yl@xdiff=-10\relax
1034  \yl@ydiff=46\relax
1035  \putratom{311}{-27}{\@memberb}%    % right type
1036  \Put@Line(201,79)(5,-3){110}%    % single bond at 3
1037  \else\if\@tmpc B%(B) beta
1038  \yl@xdiff=-7\relax
1039  \yl@ydiff=28\relax
1040  \putratom{268}{-80}{\@memberb}%    % right type

1041 {%

1042  \thicklines%
1043  \Put@Line(201,48)(3,-5){60}%     % single bond at 3

1044 }%

1045  \else\if\@tmpc A%(A) alpha
1046  \yl@xdiff=-17\relax
1047  \yl@ydiff=29\relax
1048  \putratom{318}{74}{\@memberb}%     % right type
1049  \dotorline(201,103)(1,0){100}/(201,103)(301,103)%
1050  \else\if\@tmpc u%(u) up --- (B) beta
1051  \yl@xdiff=-17\relax
1052  \yl@ydiff=29\relax
1053  \putratom{318}{74}{\@memberb}%     % right type

1054 {%

1055  \thicklines%
1056  \Put@Line(201,103)(1,0){100}%    % single bond at 3

1057 }%

1058  \else\if\@tmpc d%(d) down --- (A) alpha
1059  \yl@xdiff=-7\relax
1060  \yl@ydiff=28\relax

1061  \putratom{268}{-80}{\@memberb}%    % right type
1062  \dotorline(201,48)(3,-5){60}/(201,48)(261,-52)%
1063  \else\if\@tmpc b%(b) beta
1064  \yl@xdiff=-7\relax
1065  \yl@ydiff=28\relax
1066  \putratom{268}{-80}{\@memberb}%    % right type
1067  \Put@Line(201,48)(3,-5){60}%     % single bond at 3
1068  \else\if\@tmpc a%(a) alpha
1069  \yl@xdiff=-17\relax
1070  \yl@ydiff=29\relax
1071  \putratom{318}{74}{\@memberb}%     % right type
1072  \Put@Line(201,103)(1,0){100}%    % single bond at 3
1073  \else\if\@tmpc V%(V) beta undefined
1074  \yl@xdiff=-7\relax
1075  \yl@ydiff=28\relax
1076  \putratom{268}{-80}{\@memberb}%    % right type

1077 {%

1078  \WaveBonds%
1079  \Put@Line(201,48)(3,-5){60}%     % single bond at 3

1080 }%

1081  \else\if\@tmpc U%(U) alpha undefined
1082  \yl@xdiff=-17\relax
1083  \yl@ydiff=29\relax
1084  \putratom{318}{74}{\@memberb}%     % right type

1085 {%

1086  \WaveBonds%
1087  \Put@Line(201,103)(1,0){100}%    % single bond at 3

1088 }%

1089  \fi\fi\fi\fi\fi%
1090  \fi\fi\fi\fi
1091 \else\if\@tmpb D%double bond
1092  \yl@xdiff=-10\relax
1093  \yl@ydiff=52\relax
1094  \putratom{311}{-27}{\@memberb}%    % right type
1095  \Put@Line(194,76)(5,-3){100}%    % double bond at 3
1096  \Put@Line(200,101)(5,-3){100}%   % double bond at 3
1097 \else\if\@tmpb B%beta single bond
1098  \yl@xdiff=-10\relax
1099  \yl@ydiff=46\relax
1100  \putratom{311}{-27}{\@memberb}%    % right type

1101 {%

1102  \thicklines%
1103  \Put@Line(201,79)(5,-3){100}%    % single bond at 3

1104 }%

1105 \else\if\@tmpb A%alpha single bond
1106  \yl@xdiff=-10\relax
1107  \yl@ydiff=46\relax
1108  \putratom{311}{-27}{\@memberb}%    % right type
1109  \dotorline(201,79)(5,-3){100}/(201,79)(301,19)%
1110 \else\if\@tmpb U%undefined single bond
1111  \yl@xdiff=-10\relax
1112  \yl@ydiff=46\relax
1113  \putratom{311}{-27}{\@memberb}%    % right type

1114 {%

1115  \WaveBonds%
1116  \Put@Line(210,79)(5,-3){100}%      % single wave bond at 3

1117 }%

1118 \else\if\@tmpb F%fused bond
1119  {\let\@tmpb=\@tmpc\@clipfusetrue
1120  \Put@Direct(171,103){\setatombondf}%

1121 }%

1122 \else\if\@tmpb G%fused bond
1123  {\let\@tmpb=\@tmpc\@clipfusetrue
1124  \Put@Direct(171,103){\setatombondc}%

1125 }%

1126 \else%
1127  \yl@xdiff=-10\relax
1128  \yl@ydiff=46\relax
1129  \putratom{311}{-27}{\@memberb}%    % right type
1130  \Put@Line(201,79)(5,-3){100}%    % single bond at 3
1131 \fi\fi\fi\fi%
1132 \fi\fi\fi%
1133 \else%no clipping
1134 \if\@tmpb S%single bond
1135  \ifx\@tmpc\empty%
1136  \yl@xdiff=-10\relax
1137  \yl@ydiff=58\relax
1138  \putratom{301}{-27}{\@memberb}%    % right type
1139  \Put@Line(171,103)(5,-3){120}%   % single bond at 3
1140  \else\if\@tmpc B%(B) beta
1141  \yl@xdiff=-10\relax
1142  \yl@ydiff=48\relax
1143  \putratom{258}{-70}{\@memberb}%    % right type

1144 {%

1145  \thicklines%
1146  \Put@Line(171,103)(3,-5){72}%    % single bond at 3

1147 }%

1148  \else\if\@tmpc A%(A) alpha
1149  \yl@xdiff=-10\relax
1150  \yl@ydiff=30\relax
1151  \putratom{318}{74}{\@memberb}%     % right type
1152  \dotorline(171,103)(1,0){140}/(171,103)(311,103)%
1153  \else\if\@tmpc u%(u) up --- (B) beta
1154  \yl@xdiff=-10\relax
1155  \yl@ydiff=30\relax
1156  \putratom{318}{74}{\@memberb}%     % right type

1157 {%

1158  \thicklines%
1159  \Put@Line(171,103)(1,0){140}%    % single bond at 3

1160 }%

1161  \else\if\@tmpc d%(d) down --- (A) alpha
1162  \yl@xdiff=-10\relax
1163  \yl@ydiff=48\relax
1164  \putratom{258}{-70}{\@memberb}%    % right type
1165  \dotorline(171,103)(3,-5){72}/(171,103)(243,-17)%
1166  \else\if\@tmpc b%(b) beta
1167  \yl@xdiff=-10\relax
1168  \yl@ydiff=48\relax

1169  \putratom{258}{-70}{\@memberb}%    % right type
1170  \Put@Line(171,103)(3,-5){72}%    % single bond at 3
1171  \else\if\@tmpc a%(a) alpha
1172  \yl@xdiff=-10\relax
1173  \yl@ydiff=30\relax
1174  \putratom{318}{74}{\@memberb}%     % right type
1175  \Put@Line(171,103)(1,0){140}%    % single bond at 3
1176  \else\if\@tmpc V%(V) beta undefined
1177  \yl@xdiff=-10\relax
1178  \yl@ydiff=48\relax
1179  \putratom{258}{-70}{\@memberb}%    % right type

1180 {%

1181  \WaveBonds%
1182  \Put@Line(171,103)(3,-5){72}%    % single bond at 3

1183 }%

1184  \else\if\@tmpc U%(U) alpha undefined
1185  \yl@xdiff=-10\relax
1186  \yl@ydiff=30\relax
1187  \putratom{318}{74}{\@memberb}%     % right type

1188 {%

1189  \WaveBonds%
1190  \Put@Line(171,103)(1,0){140}%    % single bond at 3

1191 }%

1192  \fi\fi\fi\fi\fi%
1193  \fi\fi\fi\fi
1194 \else\if\@tmpb D%double bond
1195  \yl@xdiff=-10\relax
1196  \yl@ydiff=65\relax
1197  \putratom{301}{-27}{\@memberb}%    % right type
1198  \Put@Line(168,96)(5,-3){120}%    % double bond at 3
1199  \Put@Line(174,121)(5,-3){120}%   % double bond at 3
1200 \else\if\@tmpb B%beta single bond
1201  \yl@xdiff=-10\relax
1202  \yl@ydiff=58\relax
1203  \putratom{301}{-27}{\@memberb}%    % right type

1204 {%

1205  \thicklines%
1206  \Put@Line(171,103)(5,-3){120}%   % single bond at 3

1207 }%

1208 \else\if\@tmpb A%alpha single bond
1209  \yl@xdiff=-10\relax
1210  \yl@ydiff=58\relax
1211  \putratom{301}{-27}{\@memberb}%    % right type
1212  \dotorline(171,103)(5,-3){120}/(171,103)(291,31)%
1213 \else\if\@tmpb U%undefined single bond
1214  \yl@xdiff=-10\relax
1215  \yl@ydiff=58\relax
1216  \putratom{301}{-27}{\@memberb}%    % right type

1217 {%

1218  \WaveBonds%
1219  \Put@Line(171,103)(5,-3){120}%      % single wave bond at 3

1220 }%

1221 \else\if\@tmpb F%fused bond
1222  {\let\@tmpb=\@tmpc\@clipfusefalse

1223  \Put@Direct(171,103){\setatombondf}%

1224 }%

1225 \else\if\@tmpb G%fused bond
1226  {\let\@tmpb=\@tmpc\@clipfusefalse
1227  \Put@Direct(171,103){\setatombondc}%

1228 }%

1229 \else%
1230  \yl@xdiff=-10\relax
1231  \yl@ydiff=58\relax
1232  \putratom{301}{-27}{\@memberb}%    % right type
1233  \Put@Line(171,103)(5,-3){120}%   % single bond at 3
1234 \fi\fi\fi\fi%
1235 \fi\fi\fi

1236 \fi

1237 }% end of \@substc

The \@substd command is used for placing a substituent (\@memberb) at the 4-position (bottom) of a vertical six-membered ring.

\@substd
1238 % %%%%%%%%%%%%%%%
1239 % % subst. on 4 %
1240 % %%%%%%%%%%%%%%%
1241 \def\@substd{%
1242 \if@clip %clipping
1243  \if\@tmpb S%single bond
1244  \ifx\@tmpc\empty%
1245  \yl@xdiff=31\relax
1246  \yl@ydiff=90\relax
1247  \putlratom{-31}{-230}{\@memberb}%  % left or right type
1248  \Put@Line(0,-30)(0,-1){110}%    % single bond at 4
1249  \else\if\@tmpc B%(B) beta
1250  \yl@xdiff=-36\relax
1251  \yl@ydiff=100\relax
1252  \putlatom{-42}{-230}{\@memberb}%   % left type

1253 {%

1254  \thicklines%
1255  \Put@Line(-18,-30)(-3,-5){60}%   % single bond at 4

1256 }%

1257  \else\if\@tmpc A%(A) alpha
1258  \yl@xdiff=37\relax
1259  \yl@ydiff=100\relax
1260  \putratom{41}{-230}{\@memberb}%    % right type
1261  \dotorline(18,-30)(3,-5){60}/(18,-30)(72,-120)%
1262  \else\if\@tmpc u%(u) up --- (B) beta
1263  \yl@xdiff=37\relax
1264  \yl@ydiff=100\relax
1265  \putratom{41}{-230}{\@memberb}%    % right type

1266 {%

1267  \thicklines%
1268  \Put@Line(18,-30)(3,-5){60}%     % single bond at 4

1269 }%

1270  \else\if\@tmpc d%(d) down --- (A) alpha
1271  \yl@xdiff=-36\relax

1272  \yl@ydiff=100\relax
1273  \putlatom{-42}{-230}{\@memberb}%   % left type
1274  \dotorline(-18,-30)(-3,-5){60}/(-18,-30)(-78,-130)%
1275  \else\if\@tmpc b%(b) beta
1276  \yl@xdiff=-36\relax
1277  \yl@ydiff=100\relax
1278  \putlatom{-42}{-230}{\@memberb}%   % left type
1279  \Put@Line(-18,-30)(-3,-5){60}%   % single bond at 4
1280  \else\if\@tmpc a%(a) alpha
1281  \yl@xdiff=37\relax
1282  \yl@ydiff=100\relax
1283  \putratom{41}{-230}{\@memberb}%    % right type
1284  \Put@Line(18,-30)(3,-5){60}%     % single bond at 4
1285  \else\if\@tmpc V%(V) beta undefined
1286  \yl@xdiff=-36\relax
1287  \yl@ydiff=100\relax
1288  \putlatom{-42}{-230}{\@memberb}%   % left type

1289 {%

1290  \WaveBonds%
1291  \Put@Line(-18,-30)(-3,-5){60}%   % single bond at 4

1292 }%

1293  \else\if\@tmpc U%(U) alpha undefined
1294  \yl@xdiff=37\relax
1295  \yl@ydiff=100\relax
1296  \putratom{41}{-230}{\@memberb}%    % right type

1297 {%

1298  \WaveBonds%
1299  \Put@Line(18,-30)(3,-5){60}%     % single bond at 4

1300 }%

1301  \fi\fi\fi\fi\fi%
1302  \fi\fi\fi\fi
1303 \else\if\@tmpb D%double bond
1304  \yl@xdiff=31\relax
1305  \yl@ydiff=90\relax
1306  \putlratom{-31}{-230}{\@memberb}%  % left or right type
1307  \Put@Line(-12,-30)(0,-1){110}%   % double bond at 4
1308  \Put@Line(12,-30)(0,-1){110}%    % double bond at 4
1309 \else\if\@tmpb B%beta single bond
1310  \yl@xdiff=31\relax
1311  \yl@ydiff=90\relax
1312  \putlratom{-31}{-230}{\@memberb}%  % left or right type

1313 {%

1314  \thicklines%
1315  \Put@Line(0,-30)(0,-1){110}%    % single bond at 4

1316 }%

1317 \else\if\@tmpb A%alpha single bond
1318  \yl@xdiff=31\relax
1319  \yl@ydiff=90\relax
1320  \putlratom{-31}{-230}{\@memberb}%  % left or right type
1321  \dotorline(0,-30)(0,-1){110}/(0,-30)(0,-140)%
1322 \else\if\@tmpb U%undefined single bond
1323  \yl@xdiff=31\relax
1324  \yl@ydiff=90\relax
1325  \putlratom{-31}{-230}{\@memberb}%    % right type

1326 {%

1327  \WaveBonds%
1328  \Put@Line(0,-30)(0,-1){110}%      % single wave bond at 4

1329 }%

1330 \else\if\@tmpb F%fused bond
1331  {\let\@tmpb=\@tmpc\@clipfusetrue
1332  \Put@Direct(0,0){\setatombonde}%

1333 }%

1334 \else\if\@tmpb G%fused bond
1335  {\let\@tmpb=\@tmpc\@clipfusetrue
1336  \Put@Direct(0,0){\setatombondg}%

1337 }%

1338 \else%
1339  \yl@xdiff=31\relax
1340  \yl@ydiff=90\relax
1341  \putlratom{-31}{-230}{\@memberb}%  % left or right type
1342  \Put@Line(0,-30)(0,-1){110}%     % single bond at 4
1343 \fi\fi\fi\fi%
1344 \fi\fi\fi%
1345 \else%no clipping
1346 \if\@tmpb S%single bond
1347  \ifx\@tmpc\empty%
1348  \yl@xdiff=31\relax
1349  \yl@ydiff=90\relax
1350  \putlratom{-31}{-230}{\@memberb}%  % left or right type
1351  \Put@Line(0,0)(0,-1){140}%      % single bond at 4
1352  \else\if\@tmpc B%(B) beta
1353  \yl@xdiff=-30\relax
1354  \yl@ydiff=110\relax
1355  \putlatom{-42}{-230}{\@memberb}%   % left type

1356 {%

1357  \thicklines%
1358  \Put@Line(0,0)(-3,-5){72}%       % single bond at 4

1359 }%

1360  \else\if\@tmpc A%(A) alpha
1361  \yl@xdiff=31\relax
1362  \yl@ydiff=110\relax
1363  \putratom{41}{-230}{\@memberb}%    % right type
1364  \dotorline(0,0)(3,-5){72}/(0,0)(72,-120)%
1365  \else\if\@tmpc u%(u) up --- (B) beta
1366  \yl@xdiff=31\relax
1367  \yl@ydiff=110\relax
1368  \putratom{41}{-230}{\@memberb}%    % right type

1369 {%

1370  \thicklines%
1371  \Put@Line(0,0)(3,-5){72}%        % single bond at 4

1372 }%

1373  \else\if\@tmpc d%(d) down --- (A) alpha
1374  \yl@xdiff=-30\relax
1375  \yl@ydiff=110\relax
1376  \putlatom{-42}{-230}{\@memberb}%   % left type
1377  \dotorline(0,0)(-3,-5){72}/(0,0)(-72,-120)%
1378  \else\if\@tmpc b%(b) beta
1379  \yl@xdiff=-30\relax

1380  \yl@ydiff=110\relax
1381  \putlatom{-42}{-230}{\@memberb}%   % left type
1382  \Put@Line(0,0)(-3,-5){72}%       % single bond at 4
1383  \else\if\@tmpc a%(a) alpha
1384  \yl@xdiff=31\relax
1385  \yl@ydiff=110\relax
1386  \putratom{41}{-230}{\@memberb}%    % right type
1387  \Put@Line(0,0)(3,-5){72}%        % single bond at 4
1388  \else\if\@tmpc V%(V) beta undefined
1389  \yl@xdiff=-30\relax
1390  \yl@ydiff=110\relax
1391  \putlatom{-42}{-230}{\@memberb}%   % left type

1392 {%

1393  \WaveBonds%
1394  \Put@Line(0,0)(-3,-5){72}%       % single bond at 4

1395 }%

1396  \else\if\@tmpc U%(U) alpha undefined
1397  \yl@xdiff=31\relax
1398  \yl@ydiff=110\relax
1399  \putratom{41}{-230}{\@memberb}%    % right type

1400 {%

1401  \WaveBonds%
1402  \Put@Line(0,0)(3,-5){72}%        % single bond at 4

1403 }%

1404  \fi\fi\fi\fi\fi%
1405  \fi\fi\fi\fi%
1406 \else\if\@tmpb D%double bond
1407  \yl@xdiff=31\relax
1408  \yl@ydiff=90\relax
1409  \putlratom{-31}{-230}{\@memberb}%  % left or right type
1410  \Put@Line(-12,0)(0,-1){140}%     % double bond at 4
1411  \Put@Line(12,0)(0,-1){140}%      % double bond at 4
1412 \else\if\@tmpb B%beta single bond
1413  \yl@xdiff=31\relax
1414  \yl@ydiff=90\relax
1415  \putlratom{-31}{-230}{\@memberb}%  % left or right type

1416 {%

1417  \thicklines%
1418  \Put@Line(0,0)(0,-1){140}%       % single bond at 4

1419 }%

1420 \else\if\@tmpb A%alpha single bond
1421  \yl@xdiff=31\relax
1422  \yl@ydiff=90\relax
1423  \putlratom{-31}{-230}{\@memberb}%  % left or right type
1424  \dotorline(0,0)(0,-1){140}/(0,0)(0,-140)%
1425 \else\if\@tmpb U%undefined single bond
1426  \yl@xdiff=31\relax
1427  \yl@ydiff=90\relax
1428  \putlratom{-31}{-230}{\@memberb}%    % right type

1429 {%

1430  \WaveBonds%
1431  \Put@Line(0,0)(0,-1){140}%      % single wave bond at 4

1432 }%

1433 \else\if\@tmpb F%fused bond

1434  {\let\@tmpb=\@tmpc\@clipfusefalse
1435  \Put@Direct(0,0){\setatombonde}%

1436 }%

1437 \else\if\@tmpb G%fused bond
1438  {\let\@tmpb=\@tmpc\@clipfusefalse
1439  \Put@Direct(0,0){\setatombondg}%

1440 }%

1441 \else%
1442  \yl@xdiff=31\relax
1443  \yl@ydiff=90\relax
1444  \putlratom{-31}{-230}{\@memberb}%  % left or right type
1445  \Put@Line(0,0)(0,-1){140}%       % single bond at 4
1446 \fi\fi\fi\fi%
1447 \fi\fi\fi%
1448 \fi}%end of \@substd

The \@subste command is used for placing a substituent (\@memberb) at the 5-position (lower-left) of a vertical six-membered ring.

\@subste
1449 % %%%%%%%%%%%%%%%
1450 % % subst. on 5 %
1451 % %%%%%%%%%%%%%%%
1452 \def\@subste{%
1453 \if@eclip%clipping
1454 \if\@tmpb S%single bond
1455  \ifx\@tmpc\empty%
1456  \yl@xdiff=10\relax
1457  \yl@ydiff=46\relax
1458  \putlatom{-311}{-27}{\@memberb}%   % left type
1459  \Put@Line(-201,79)(-5,-3){110}%  % single bond at 5
1460  \else\if\@tmpc B%(B) beta
1461  \yl@xdiff=7\relax
1462  \yl@ydiff=38\relax
1463  \putlatom{-268}{-80}{\@memberb}%   % left type

1464 {%

1465  \thicklines%
1466  \Put@Line(-201,48)(-3,-5){60}%   % single bond at 5

1467 }%

1468  \else\if\@tmpc A%(A) alpha
1469  \yl@xdiff=17\relax
1470  \yl@ydiff=29\relax
1471  \putlatom{-318}{74}{\@memberb}%    % left type
1472  \dotorline(-201,103)(-1,0){100}/(-201,103)(-301,103)%
1473  \else\if\@tmpc u% (u) up --- (B) beta
1474  \yl@xdiff=17\relax
1475  \yl@ydiff=29\relax
1476  \putlatom{-318}{74}{\@memberb}%    % left type

1477 {%

1478  \thicklines%
1479  \Put@Line(-201,103)(-1,0){100}%  % single bond at 5

1480 }%

1481  \else\if\@tmpc d% (d) down --- (A) alpha
1482  \yl@xdiff=7\relax

1483  \yl@ydiff=38\relax
1484  \putlatom{-268}{-80}{\@memberb}%   % left type
1485  \dotorline(-201,48)(-3,-5){60}/(-201,48)(-261,-52)%
1486  \else\if\@tmpc b%(b) beta
1487  \yl@xdiff=7\relax
1488  \yl@ydiff=38\relax
1489  \putlatom{-268}{-80}{\@memberb}%   % left type
1490  \Put@Line(-201,48)(-3,-5){60}%   % single bond at 5
1491  \else\if\@tmpc a%(a) alpha
1492  \yl@xdiff=17\relax
1493  \yl@ydiff=29\relax
1494  \putlatom{-318}{74}{\@memberb}%    % left type
1495  \Put@Line(-201,103)(-1,0){100}%  % single bond at 5
1496  \else\if\@tmpc V%(V) beta undefined
1497  \yl@xdiff=7\relax
1498  \yl@ydiff=38\relax
1499  \putlatom{-268}{-80}{\@memberb}%   % left type

1500 {%

1501  \WaveBonds%
1502  \Put@Line(-201,48)(-3,-5){60}%   % single bond at 5

1503 }%

1504  \else\if\@tmpc U%(U) alpha undefined
1505  \yl@xdiff=17\relax
1506  \yl@ydiff=29\relax
1507  \putlatom{-318}{74}{\@memberb}%    % left type

1508 {%

1509  \WaveBonds%
1510  \Put@Line(-201,103)(-1,0){100}%  % single bond at 5

1511 }%

1512  \fi\fi\fi\fi\fi%
1513  \fi\fi\fi\fi%
1514 \else\if\@tmpb D%double bond
1515  \yl@xdiff=10\relax
1516  \yl@ydiff=62\relax
1517  \putlatom{-311}{-27}{\@memberb}%   % left type
1518  \Put@Line(-194,76)(-5,-3){100}%  % double bond at 5
1519  \Put@Line(-200,101)(-5,-3){100}% % double bond at 5
1520 \else\if\@tmpb B%beta single bond
1521  \yl@xdiff=10\relax
1522  \yl@ydiff=46\relax
1523  \putlatom{-311}{-27}{\@memberb}%   % left type

1524 {%

1525  \thicklines%
1526  \Put@Line(-201,79)(-5,-3){100}%  % single bond at 5

1527 }%

1528 \else\if\@tmpb A%alpha single bond
1529  \yl@xdiff=10\relax
1530  \yl@ydiff=46\relax
1531  \putlatom{-311}{-27}{\@memberb}%   % left type
1532  \dotorline(-201,79)(-5,-3){100}/(-201,79)(-301,21)%
1533 \else\if\@tmpb U%undefined single bond
1534  \yl@xdiff=10\relax
1535  \yl@ydiff=46\relax
1536  \putlatom{-311}{-27}{\@memberb}%    % right type

1537 {%

1538  \WaveBonds%
1539  \Put@Line(-220,79)(-5,-3){100}%      % single wave bond at 5

1540 }%

1541 \else\if\@tmpb F%fused bond
1542  {\let\@tmpb=\@tmpc\@clipfusetrue
1543  \Put@Direct(-171,103){\setatombondc}%

1544 }%

1545 \else\if\@tmpb G%fused bond
1546  {\let\@tmpb=\@tmpc\@clipfusetrue
1547  \Put@Direct(-171,103){\setatombondd}%

1548 }%

1549 \else%
1550  \yl@xdiff=10\relax
1551  \yl@ydiff=46\relax
1552  \putlatom{-311}{-27}{\@memberb}%   % left type
1553  \Put@Line(-201,79)(-5,-3){100}%  % single bond at 5
1554 \fi\fi\fi\fi%
1555 \fi\fi\fi%
1556 \else%no clipping
1557 \if\@tmpb S%single bond
1558  \ifx\@tmpc\empty%
1559  \yl@xdiff=10\relax
1560  \yl@ydiff=56\relax
1561  \putlatom{-301}{-27}{\@memberb}%   % left type
1562  \Put@Line(-171,103)(-5,-3){120}% % single bond at 5
1563  \else\if\@tmpc B%(B) beta
1564  \yl@xdiff=15\relax
1565  \yl@ydiff=63\relax
1566  \putlatom{-258}{-70}{\@memberb}%   % left type

1567 {%

1568  \thicklines%
1569  \Put@Line(-171,103)(-3,-5){72}%  % single bond at 5

1570 }%

1571  \else\if\@tmpc A%(A) alpha
1572  \yl@xdiff=15\relax
1573  \yl@ydiff=29\relax
1574  \putlatom{-326}{74}{\@memberb}%    % left type
1575  \dotorline(-171,103)(-1,0){140}/(-171,103)(-311,103)%
1576  \else\if\@tmpc u%(u) up --- (B) beta
1577  \yl@xdiff=15\relax
1578  \yl@ydiff=29\relax
1579  \putlatom{-326}{74}{\@memberb}%    % left type

1580 {%

1581  \thicklines%
1582  \Put@Line(-171,103)(-1,0){140}%  % single bond at 5

1583 }%

1584  \else\if\@tmpc d%(d) down --- (A) alpha
1585  \yl@xdiff=15\relax
1586  \yl@ydiff=63\relax
1587  \putlatom{-258}{-70}{\@memberb}%   % left type
1588  \dotorline(-171,103)(-3,-5){72}/(-171,103)(-243,-17)%
1589  \else\if\@tmpc b%(b) beta
1590  \yl@xdiff=15\relax

1591  \yl@ydiff=63\relax
1592  \putlatom{-258}{-70}{\@memberb}%   % left type
1593  \Put@Line(-171,103)(-3,-5){72}%  % single bond at 5
1594  \else\if\@tmpc a%(a) alpha
1595  \yl@xdiff=15\relax
1596  \yl@ydiff=29\relax
1597  \putlatom{-326}{74}{\@memberb}%    % left type
1598  \Put@Line(-171,103)(-1,0){140}%  % single bond at 5
1599  \else\if\@tmpc V%(V) beta undefined
1600  \yl@xdiff=15\relax
1601  \yl@ydiff=63\relax
1602  \putlatom{-258}{-70}{\@memberb}%   % left type

1603 {%

1604  \WaveBonds%
1605  \Put@Line(-171,103)(-3,-5){72}%  % single bond at 5

1606 }%

1607  \else\if\@tmpc U%(U) alpha undefined
1608  \yl@xdiff=15\relax
1609  \yl@ydiff=29\relax
1610  \putlatom{-326}{74}{\@memberb}%    % left type

1611 {%

1612  \WaveBonds%
1613  \Put@Line(-171,103)(-1,0){140}%  % single bond at 5

1614 }%

1615  \fi\fi\fi\fi\fi%
1616  \fi\fi\fi\fi
1617 \else\if\@tmpb D%double bond
1618  \yl@xdiff=10\relax
1619  \yl@ydiff=62\relax
1620  \putlatom{-301}{-27}{\@memberb}%   % left type
1621  \Put@Line(-168,96)(-5,-3){120}%  % double bond at 5
1622  \Put@Line(-174,121)(-5,-3){120}% % double bond at 5
1623 \else\if\@tmpb B%beta single bond
1624  \yl@xdiff=10\relax
1625  \yl@ydiff=56\relax
1626  \putlatom{-301}{-27}{\@memberb}%  % left type

1627 {%

1628  \thicklines%
1629  \Put@Line(-171,103)(-5,-3){120}% % single bond at 5

1630 }%

1631 \else\if\@tmpb A%alpha single bond
1632  \yl@xdiff=-10\relax
1633  \yl@ydiff=56\relax
1634  \putlatom{-301}{-27}{\@memberb}%  % left type
1635  \dotorline(-171,103)(-5,-3){120}/(-171,103)(-311,31)%
1636 \else\if\@tmpb U%undefined single bond
1637  \yl@xdiff=-10\relax
1638  \yl@ydiff=56\relax
1639  \putlatom{-301}{-27}{\@memberb}%    % right type

1640 {%

1641  \WaveBonds%
1642  \Put@Line(-171,103)(-5,-3){120}%      % single wave bond at 5

1643 }%

1644 \else\if\@tmpb F%fused bond

1645  {\let\@tmpb=\@tmpc\@clipfusefalse
1646  \Put@Direct(-171,103){\setatombondc}%

1647 }%

1648 \else\if\@tmpb G%fused bond
1649  {\let\@tmpb=\@tmpc\@clipfusefalse
1650  \Put@Direct(-171,103){\setatombondd}%

1651 }%

1652 \else%
1653  \yl@xdiff=10\relax
1654  \yl@ydiff=56\relax
1655  \putlatom{-301}{-27}{\@memberb}%  % left type
1656  \Put@Line(-171,103)(-5,-3){120}%% single bond at 5
1657 \fi\fi\fi\fi%
1658 \fi\fi\fi%
1659 \fi}% end of \@subste

The \@substf command is used for placing a substituent (\@memberb) at the 6-position (upper-left) of a vertical six-membered ring.

\@substf
1660 % %%%%%%%%%%%%%%%
1661 % % subst. on 6 %
1662 % %%%%%%%%%%%%%%%
1663 \def\@substf{%
1664 \if@fclip %clipping
1665 \if\@tmpb S%single bond
1666  \ifx\@tmpc\empty%
1667  \yl@xdiff=10\relax
1668  \yl@ydiff=24\relax
1669  \putlatom{-311}{363}{\@memberb}%   % left type
1670  \Put@Line(-201,327)(-5,3){100}%  % single bond at 6
1671  \else\if\@tmpc B%(B) beta
1672  \yl@xdiff=8\relax
1673  \yl@ydiff=38\relax
1674  \putlatom{-268}{420}{\@memberb}%   % left type

1675 {%

1676  \thicklines%
1677  \Put@Line(-201,358)(-3,5){60}%   % single bond at 6

1678 }%

1679  \else\if\@tmpc A%(A) alpha
1680  \yl@xdiff=17\relax
1681  \yl@ydiff=23\relax
1682  \putlatom{-318}{280}{\@memberb}%   % left type
1683  \dotorline(-201,303)(-1,0){100}/(-201,303)(-301,303)%
1684  \else\if\@tmpc u%(u) up --- (B) beta
1685  \yl@xdiff=17\relax
1686  \yl@ydiff=23\relax
1687  \putlatom{-318}{280}{\@memberb}%   % left type

1688 {%

1689  \thicklines%
1690  \Put@Line(-201,303)(-1,0){100}%  % single bond at 6

1691 }%

1692  \else\if\@tmpc d%(d) down --- (A) alpha
1693  \yl@xdiff=8\relax

1694  \yl@ydiff=38\relax
1695  \putlatom{-268}{420}{\@memberb}%   % left type
1696  \dotorline(-201,358)(-3,5){60}/(-201,358)(-261,458)%
1697  \else\if\@tmpc b%(b) beta
1698  \yl@xdiff=8\relax
1699  \yl@ydiff=38\relax
1700  \putlatom{-268}{420}{\@memberb}%   % left type
1701  \Put@Line(-201,358)(-3,5){60}%   % single bond at 6
1702  \else\if\@tmpc a%(a) alpha
1703  \yl@xdiff=17\relax
1704  \yl@ydiff=23\relax
1705  \putlatom{-318}{280}{\@memberb}%   % left type
1706  \Put@Line(-201,303)(-1,0){100}%  % single bond at 6
1707  \else\if\@tmpc V%(V) beta undefined
1708  \yl@xdiff=8\relax
1709  \yl@ydiff=38\relax
1710  \putlatom{-268}{420}{\@memberb}%   % left type

1711 {%

1712  \WaveBonds%
1713  \Put@Line(-201,358)(-3,5){60}%   % single bond at 6

1714 }%

1715  \else\if\@tmpc U%(U) alpha undefined
1716  \yl@xdiff=17\relax
1717  \yl@ydiff=23\relax
1718  \putlatom{-318}{280}{\@memberb}%   % left type

1719 {%

1720  \WaveBonds%
1721  \Put@Line(-201,303)(-1,0){100}%  % single bond at 6

1722 }%

1723  \fi\fi\fi\fi\fi%
1724  \fi\fi\fi\fi
1725 \else\if\@tmpb D%double bond
1726  \yl@xdiff=10\relax
1727  \yl@ydiff=6\relax
1728  \putlatom{-311}{363}{\@memberb}%   % left type
1729  \Put@Line(-194,331)(-5,3){100}%  % double bond at 6
1730  \Put@Line(-200,305)(-5,3){100}%  % double bond at 6
1731 \else\if\@tmpb B%beta single bond
1732  \yl@xdiff=10\relax
1733  \yl@ydiff=24\relax
1734  \putlatom{-311}{363}{\@memberb}%   % left type

1735 {%

1736  \thicklines%
1737  \Put@Line(-201,327)(-5,3){100}%  % single bond at 6

1738 }%

1739 \else\if\@tmpb A%alpha single bond
1740  \yl@xdiff=10\relax
1741  \yl@ydiff=24\relax
1742  \putlatom{-311}{363}{\@memberb}%   % left type
1743  \dotorline(-201,327)(-5,3){100}/(-201,327)(-301,387)%
1744 \else\if\@tmpb U%undefined single bond
1745  \yl@xdiff=10\relax
1746  \yl@ydiff=24\relax
1747  \putlatom{-311}{363}{\@memberb}%    % right type

1748 {%

1749  \WaveBonds%
1750  \Put@Line(-211,327)(-5,3){100}%      % single wave bond at 6

1751 }%

1752 \else\if\@tmpb F%fused bond
1753  {\let\@tmpb=\@tmpc\@clipfusetrue
1754  \Put@Direct(-171,303){\setatombondg}%

1755 }%

1756 \else\if\@tmpb G%fused bond
1757  {\let\@tmpb=\@tmpc\@clipfusetrue
1758  \Put@Direct(-171,303){\setatombonda}%

1759 }%

1760 \else%
1761  \yl@xdiff=10\relax
1762  \yl@ydiff=24\relax
1763  \putlatom{-311}{363}{\@memberb}%   % left type
1764  \Put@Line(-201,327)(-5,3){100}%  % single bond at 6
1765 \fi\fi\fi\fi%
1766 \fi\fi\fi
1767 \else%no clipping
1768 \if\@tmpb S%single bond
1769  \ifx\@tmpc\empty%
1770  \yl@xdiff=10\relax
1771  \yl@ydiff=12\relax
1772  \putlatom{-301}{363}{\@memberb}%   % left type
1773  \Put@Line(-171,303)(-5,3){120}%  % single bond at 6
1774  \else\if\@tmpc B%(B) beta
1775  \yl@xdiff=15\relax
1776  \yl@ydiff=13\relax
1777  \putlatom{-258}{410}{\@memberb}%   % left type

1778 {%

1779  \thicklines%
1780  \Put@Line(-171,303)(-3,5){72}%   % single bond at 6

1781 }%

1782  \else\if\@tmpc A%(A) alpha
1783  \yl@xdiff=15\relax
1784  \yl@ydiff=23\relax
1785  \putlatom{-326}{280}{\@memberb}%   % left type
1786  \dotorline(-171,303)(-1,0){140}/(-171,303)(-311,303)%
1787  \else\if\@tmpc u%(u) up --- (B) beta
1788  \yl@xdiff=15\relax
1789  \yl@ydiff=23\relax
1790  \putlatom{-326}{280}{\@memberb}%   % left type

1791 {%

1792  \thicklines%
1793  \Put@Line(-171,303)(-1,0){140}%  % single bond at 6

1794 }%

1795  \else\if\@tmpc d%(d) down --- (A) alpha
1796  \yl@xdiff=15\relax
1797  \yl@ydiff=13\relax
1798  \putlatom{-258}{410}{\@memberb}%   % left type
1799  \dotorline(-171,303)(-3,5){72}/(-171,303)(-243,423)%
1800  \else\if\@tmpc b%(b) beta
1801  \yl@xdiff=15\relax

1802  \yl@ydiff=13\relax
1803  \putlatom{-258}{410}{\@memberb}%   % left type
1804  \Put@Line(-171,303)(-3,5){72}%   % single bond at 6
1805  \else\if\@tmpc a%(a) alpha
1806  \yl@xdiff=15\relax
1807  \yl@ydiff=23\relax
1808  \putlatom{-326}{280}{\@memberb}%   % left type
1809  \Put@Line(-171,303)(-1,0){140}%  % single bond at 6
1810  \else\if\@tmpc V%(V) beta undefined
1811  \yl@xdiff=15\relax
1812  \yl@ydiff=13\relax
1813  \putlatom{-258}{410}{\@memberb}%   % left type

1814 {%

1815  \WaveBonds%
1816  \Put@Line(-171,303)(-3,5){72}%   % single bond at 6

1817 }%

1818  \else\if\@tmpc U%(U) alpha undefined
1819  \yl@xdiff=15\relax
1820  \yl@ydiff=23\relax
1821  \putlatom{-326}{280}{\@memberb}%   % left type

1822 {%

1823  \WaveBonds%
1824  \Put@Line(-171,303)(-1,0){140}%  % single bond at 6

1825 }%

1826  \fi\fi\fi\fi\fi%
1827  \fi\fi\fi\fi%
1828 \else\if\@tmpb D%double bond
1829  \yl@xdiff=10\relax
1830  \yl@ydiff=6\relax
1831  \putlatom{-301}{363}{\@memberb}%   % left type
1832  \Put@Line(-168,310)(-5,3){120}%  % double bond at 6
1833  \Put@Line(-174,284)(-5,3){120}%  % double bond at 6
1834 \else\if\@tmpb B%beta single bond
1835  \yl@xdiff=10\relax
1836  \yl@ydiff=12\relax
1837  \putlatom{-301}{363}{\@memberb}%   % left type

1838 {%

1839  \thicklines%
1840  \Put@Line(-171,303)(-5,3){120}%  % single bond at 6

1841 }%

1842 \else\if\@tmpb A%alpha single bond
1843  \yl@xdiff=-10\relax
1844  \yl@ydiff=12\relax
1845  \putlatom{-301}{363}{\@memberb}%   % left type
1846  \dotorline(-171,303)(-5,3){120}/(-171,303)(-311,375)%
1847 \else\if\@tmpb U%undefined single bond
1848  \yl@xdiff=-10\relax
1849  \yl@ydiff=12\relax
1850  \putlatom{-301}{363}{\@memberb}%    % right type

1851 {%

1852  \WaveBonds%
1853  \Put@Line(-171,303)(-5,3){120}%      % single wave bond at 6

1854 }%

1855 \else\if\@tmpb F%fused bond

1856  {\let\@tmpb=\@tmpc\@clipfusefalse
1857  \Put@Direct(-171,303){\setatombondg}%

1858 }%

1859 \else\if\@tmpb G%fused bond
1860  {\let\@tmpb=\@tmpc\@clipfusefalse
1861  \Put@Direct(-171,303){\setatombonda}%

1862 }%

1863 \else%
1864  \yl@xdiff=10\relax
1865  \yl@ydiff=12\relax
1866  \putlatom{-301}{363}{\@memberb}%   % left type
1867  \Put@Line(-171,303)(-5,3){120}%  % single bond at 6
1868 \fi\fi\fi\fi%
1869 \fi\fi\fi
1870 \fi}% end of \@substf

4.2 Setting-up substituents and bonds on a six-membered ring

The \setsixringv takes 5 arguments.

   **************************************************************
   * setting of atoms and bonds on a vertical six-membered ring *
   **************************************************************
      \setsixringv{SUBSLIST}{AD}{LOWER}{UPPER}{ORDER}

The first argument SUBSLIST is a list of substituents, which is represented in the standard format of XΥMTEX.

       SUBSLIST: list of substituents (max 6 substitution positions)
         for n = 1 to 6
             nD         :  exocyclic double bond at n-atom
             n or nS    :  exocyclic single bond at n-atom
             nA         :  alpha single bond at n-atom
             nB         :  beta single bond at n-atom
             nSA        :  alpha single bond at n-atom (boldface)
             nSB        :  beta single bond at n-atom (dotted line)
             nSa        :  alpha (not specified) single bond at n-atom
             nSb        :  beta (not specified) single bond at n-atom
             nSd        :  alpha single bond at n-atom (dotted line)
                             with an alternative direction to nSA
             nSu        :  beta single bond at n-atom (boldface)
                             with an alternative direction to nSB
             nFA        :  alpha single bond at n-atom (dotted line)
                             for ring fusion
             nFB        :  beta single bond at n-atom (boldface)
                             for ring fusion
             nGA        :  alpha single bond at n-atom (dotted line)
                             for the other ring fusion

             nGB        :  beta single bond at n-atom (boldface)
                             for the other ring fusion

The second argument AD is an adjustment value, which adjusts the original set of locant numbers into the standard one between 1 to 6 for drawing a six-membered ring. The effective range of the standared set of locant numbers is restricted by the auguments LOWER and UPPER. A minus value of the last argument shows the anti-clockwise numbering, while zero or a plus value represents the clockwise numbering.

      AD       : adjustment      e.g. 0 for six-membered rings
      LOWER    : lower limit     LOWER < effective range < UPPER
      UPPER    : upper limit
      ORDER     : >= 0 clockwise, <0 anti-clockwise

\setsixringv
1871 \def\setsixringv#1#2#3#4#5{%
1872 \@forsemicol\member:=#1\do{%
1873 \ifx\member\empty\else%
1874 \expandafter\@m@mb@r\member;\relax%
1875 \expandafter\threech@r\@membera{}{}%
1876 \ifx\@memberb\@yl\else
1877 \ifnum#5 < 0\relax%
1878 \@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
1879 \else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
1880 \ifnum\@tmpaa >#3\relax%
1881 \ifnum\@tmpaa <#4\relax%
1882 \ifcase\@tmpaa%0 omit

The following commands are not used in a revised version because of the direct

  use of \ifx\@memberb\@yl\else...\fi.
1883 % %\or \if@yla\else\@substa\fi% subst. on 1
1884 % %\or \if@ylb\else\@substb\fi% subst. on 2
1885 % %\or \if@ylc\else\@substc\fi% subst. on 3
1886 % %\or \if@yld\else\@substd\fi% subst. on 4
1887 % %\or \if@yle\else\@subste\fi% subst. on 5
1888 % %\or \if@ylf\else\@substf\fi% subst. on 6
1889 \or\@substa% subst. on 1
1890 \or\@substb% subst. on 2
1891 \or\@substc% subst. on 3
1892 \or\@substd% subst. on 4
1893 \or\@subste% subst. on 5
1894 \or\@substf% subst. on 6
1895 \fi%end of ifcase
1896 \fi%
1897 \fi\fi\fi}}%

4.3 Setting-up substituents and bonds on a decaline ring

The command \setdecaringv has been stopped to use and replaced by \setsixringv (version 1.02).

Definition of \setdecaringv has been deleted (version 2.01).

4.4 Setting-up substituents and bonds at fused positions

The command \ylfusedposition is to obtain the shift values \@ylii and \@yli which are used for shifting the standard point of a substituent. The locant flags such as \@ylatrue have been stopped to use.

\ylfusedposition
1898 \def\ylfusedposition#1#2#3#4#5{%
1899 \@@ylswfalse%\@reset@ylsw
1900 \@forsemicol\member:=#1\do{%
1901 \if@@ylsw\else%
1902 \ifx\member\empty\else%
1903 \expandafter\@m@mb@r\member;\relax%
1904 \expandafter\threech@r\@membera{}{}%
1905 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
1906 \if@@ylsw
1907 \ifnum#5<0\relax%
1908 \@tmpaa=-\@tmpa\relax\advance\@tmpaa by #2\relax%
1909 \@fused@linktrue
1910 \else\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
1911 \@fused@linkfalse\fi%
1912 \ifnum\@tmpaa >#3\relax%
1913 \ifnum\@tmpaa <#4\relax%
1914 \ifcase\@tmpaa%
1915 % %%%%%%%%%%%%%%%%%%
1916 % 0 fused positions   % F == (171,303)  G == (171,103)
1917 % %%%%%%%%%%%%%%%%%%
1918 \if\@tmpb F%single bond at F (fused position)
1919  \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 0
1920 \else\if\@tmpb G%single bond at G (fused position)
1921  \def\@ylii{-171}\def\@yli{-103}\@ylswtrue%\@ylatrue% subst. on 0
1922 \fi\fi%
1923 % %%%%%%%%%%%%%%%%
1924 \or% subst. on 1  F == (0,406), G == (171,303) for \@fused@linkfalse
1925 % subst. on 1  G == (0,406), F == (171,303) for \@fused@linktrue
1926 % %%%%%%%%%%%%%%%%
1927 \if@fused@link
1928 \if\@tmpb G%single bond at F (5,-3) fusion
1929  \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 1
1930 \else\if\@tmpb F%single bond at G
1931  \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 1
1932 \fi\fi%
1933 \else
1934 \if\@tmpb F%single bond at F (5,-3) fusion
1935  \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 1
1936 \else\if\@tmpb G%single bond at G
1937  \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 1
1938 \fi\fi%

1939 \fi

1940 % %%%%%%%%%%%%%%%%
1941 \or% subst. on 2  F == (0,406), G == (-171,303) for \@fused@linkfalse
1942 % subst. on 2  G == (0,406), F == (-171,303) for \@fused@linktrue
1943 % %%%%%%%%%%%%%%%%
1944 \if@fused@link

1945 \if\@tmpb G%single bond at (-5,-3) fusion
1946  \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 2
1947 \else\if\@tmpb F%single bond at G
1948  \def\@ylii{171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 2
1949 \fi\fi%
1950 \else
1951 \if\@tmpb F%single bond at (-5,-3) fusion
1952  \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 2
1953 \else\if\@tmpb G%single bond at G
1954  \def\@ylii{171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 2
1955 \fi\fi%

1956 \fi

1957 % %%%%%%%%%%%%%%%%%%
1958 \or %3 fused positions   % G == (303,171)  F == (103,171)
1959 % %%%%%%%%%%%%%%%%%%
1960 \if\@tmpb G%single bond at G (fused position)
1961  \def\@ylii{-303}\def\@yli{-171}\@ylswtrue%\@ylatrue% subst. on 3
1962 \else\if\@tmpb F%single bond at F (fused position)
1963  \def\@ylii{-103}\def\@yli{-171}\@ylswtrue%\@ylatrue% subst. on 3
1964 \fi\fi%
1965 \fi%end of ifcase
1966 \fi\fi\fi\fi\fi}}% end of \ylfusedposition
    The bond-setting commands \GFbonda, \GFbondb, \GFbondc and \GFbondd,

which are separated from the old \setfusedbond command, are used to place a bond and a substituent at a fulsed position of such a compound as a decaline.

\GFbonda \GFbonda@a \GFbonda@b
1967 \def\GFbonda{%
1968 % %%%%%%%%%%%%%%%%%%
1969 % 0 fused positions   % F == (171,303)  G == (171,103)
1970 % %%%%%%%%%%%%%%%%%%
1971 \if\@tmpb F%single bond at F (fused position)
1972 \GFbonda@a
1973 \else\if\@tmpb G%single bond at G (fused position)
1974 \GFbonda@b
1975 \fi\fi%
1976 }%end of GFbonda
1977 \def\GFbonda@a{%
1978 \if\@tmpc B%beta single bond
1979  \yl@xdiff=31\relax%171-140
1980  \yl@ydiff=-17\relax%460-(303+140)
1981  \putlratom{140}{460}{\@memberb}%   % left or right type

1982 {%

1983  \thicklines%
1984  \Put@Line(171,303)(0,1){140}%    % single bond at F

1985 }%

1986 \else\if\@tmpc A%alpha single bond
1987  \yl@xdiff=31\relax%171-140
1988  \yl@ydiff=-17\relax%460-(303+140)
1989  \putlratom{140}{460}{\@memberb}%   % left or right type
1990  \dotorline(171,303)(0,1){140}/(171,303)(171,443)%
1991 \else\if\@tmpc U% unspecified single bond
1992  \yl@xdiff=31\relax%171-140

1993  \yl@ydiff=-17\relax%460-(303+140)
1994  \putlratom{140}{460}{\@memberb}%   % left or right type
1995 %           \Put@Direct(168,303){$\wr$}% unspecified single bond at F
1996 %           \Put@Direct(168,353){$\wr$}%
1997 %           \Put@Direct(168,403){$\wr$}%

1998 {%

1999  \WaveBonds%
2000  \Put@Line(171,303)(0,1){140}%      % single wave bond at 1

2001 }%

2002 \else\if\@tmpc S%beta single bond
2003  \yl@xdiff=31\relax%171-140
2004  \yl@ydiff=-17\relax%460-(303+140)
2005  \putlratom{140}{460}{\@memberb}%   % left or right type
2006  \Put@Line(171,303)(0,1){140}%  % single bond at F
2007 \else\ifx\@tmpc\empty%beta single bond
2008  \yl@xdiff=31\relax%171-140
2009  \yl@ydiff=-17\relax%460-(303+140)
2010  \putlratom{140}{460}{\@memberb}%   % left or right type
2011  \Put@Line(171,303)(0,1){140}%  % single bond at F
2012 \fi\fi\fi\fi\fi%

2013 }%

2014 \def\GFbonda@b{%
2015 \if\@tmpc B%beta single bond
2016  \yl@xdiff=31\relax%171-140
2017  \yl@ydiff=90\relax%127-(140-103)
2018  \putlratom{140}{-127}{\@memberb}%  % left or right type

2019 {%

2020  \thicklines%
2021  \Put@Line(171,103)(0,-1){140}%   % single bond at G

2022 }%

2023 \else\if\@tmpc A%alpha single bond
2024  \yl@xdiff=31\relax%171-140
2025  \yl@ydiff=90\relax%127-(140-103)
2026  \putlratom{140}{-127}{\@memberb}%  % left or right type
2027  \dotorline(171,103)(0,-1){140}/(171,103)(171,-37)%
2028 \else\if\@tmpc U%beta single bond
2029  \yl@xdiff=31\relax%171-140
2030  \yl@ydiff=90\relax%127-(140-103)
2031  \putlratom{140}{-127}{\@memberb}%  % left or right type
2032 %           \Put@Direct(168,43){$\wr$}% unspecified single bond at G
2033 %           \Put@Direct(168,-8){$\wr$}%
2034 %           \Put@Direct(168,-57){$\wr$}%

2035 {%

2036  \WaveBonds%
2037  \Put@Line(171,103)(0,-1){140}%      % single wave bond at 1

2038 }%

2039 \else\if\@tmpc S%alpha single bond
2040  \yl@xdiff=31\relax%171-140
2041  \yl@ydiff=90\relax%127-(140-103)
2042  \putlratom{140}{-127}{\@memberb}%  % left or right type
2043  \Put@Line(171,103)(0,-1){140}%   % single bond at G
2044 \else\ifx\@tmpc\empty%alpha single bond
2045  \yl@xdiff=31\relax%171-140
2046  \yl@ydiff=90\relax%127-(140-103)

2047  \putlratom{140}{-127}{\@memberb}%  % left or right type
2048  \Put@Line(171,103)(0,-1){140}%   % single bond at G
2049 \fi\fi\fi\fi\fi%

2050 }%

\GFbondb \GFbondb@a \GFbondb@b
2051 \def\GFbondb{%
2052 % %%%%%%%%%%%%%%%%
2053 % subst. on 1  F == (0,406), G == (171,303) for \@fused@linkfalse
2054 % subst. on 1  G == (0,406), F == (171,303) for \@fused@linktrue
2055 % %%%%%%%%%%%%%%%%
2056 \if@fused@link
2057 \if\@tmpb G%single bond at G (5,-3) fusion
2058  \GFbondb@a
2059 \else\if\@tmpb F%single bond at F
2060  \GFbondb@b
2061 \fi\fi%
2062 \else
2063 \if\@tmpb F%single bond at F (5,-3) fusion
2064  \GFbondb@a
2065 \else\if\@tmpb G%single bond at G
2066  \GFbondb@b
2067 \fi\fi%

2068 \fi

2069 }% end of \GFbondb
2070 \def\GFbondb@a{%
2071 \if\@tmpc B%beta single bond
2072  \yl@xdiff=10\relax%
2073  \yl@ydiff=22\relax%
2074  \putlatom{-130}{466}{\@memberb}%   % left type

2075 {%

2076  \thicklines%
2077  \Put@Line(0,406)(-5,3){120}%     % single bond at F

2078 }%

2079 \else\if\@tmpc A%alpha single bond
2080  \yl@xdiff=10\relax%
2081  \yl@ydiff=22\relax%
2082  \putlatom{-130}{466}{\@memberb}%   % left type
2083  \dotorline(0,406)(-5,3){120}/(0,406)(-120,478)%
2084 \else\if\@tmpc U%unspecified single bond
2085  \yl@xdiff=10\relax%
2086  \yl@ydiff=22\relax%
2087  \putlatom{-130}{466}{\@memberb}%   % left type

2088 {%

2089  \WaveBonds%
2090  \Put@Line(0,406)(-5,3){120}%     % single bond at F

2091 }%

2092 \else\if\@tmpc S%beta single bond
2093  \yl@xdiff=10\relax%
2094  \yl@ydiff=22\relax%
2095  \putlatom{-130}{466}{\@memberb}%   % left type
2096  \Put@Line(0,406)(-5,3){120}%     % single bond at F
2097 \else\ifx\@tmpc\empty%beta single bond
2098  \yl@xdiff=10\relax%

2099  \yl@ydiff=22\relax%
2100  \putlatom{-130}{466}{\@memberb}%   % left type
2101  \Put@Line(0,406)(-5,3){120}%     % single bond at F
2102 \else\if\@tmpc D%beta single bond (downward)
2103  \yl@xdiff=31\relax%
2104  \yl@ydiff=90\relax%
2105  \putlratom{-31}{176}{\@memberb}%   % left or right type

2106 {%

2107  \thicklines%
2108  \Put@Line(0,406)(0,-1){140}%     % single bond at F

2109 }%

2110 \else\if\@tmpc C%alpha single bond (downward)
2111  \yl@xdiff=31\relax%
2112  \yl@ydiff=90\relax%
2113  \putlratom{-31}{176}{\@memberb}%   % left or right type
2114  \dotorline(0,406)(0,-1){140}/(0,406)(0,266)%
2115 \fi\fi\fi\fi\fi\fi\fi%
2116 }% end of \GFbondb@a
2117 \def\GFbondb@b{%
2118 \if\@tmpc B%beta single bond
2119  \yl@xdiff=-10\relax%
2120  \yl@ydiff=58\relax%
2121  \putratom{301}{173}{\@memberb}%    % right type

2122 {%

2123  \thicklines%
2124  \Put@Line(171,303)(5,-3){120}%   % single bond at G

2125 }%

2126 \else\if\@tmpc A%alpha single bond
2127  \yl@xdiff=-10\relax%
2128  \yl@ydiff=58\relax%
2129  \putratom{301}{173}{\@memberb}%    % right type
2130  \dotorline(171,303)(5,-3){120}/(171,303)(291,231)%
2131 \else\if\@tmpc U%unspecified single bond
2132  \yl@xdiff=-10\relax%
2133  \yl@ydiff=58\relax%
2134  \putratom{301}{173}{\@memberb}%    % right type

2135 {%

2136  \WaveBonds%
2137  \Put@Line(171,303)(5,-3){120}%   % single bond at G

2138 }%

2139 \else\if\@tmpc S%alpha single bond
2140  \yl@xdiff=-10\relax%
2141  \yl@ydiff=58\relax%
2142  \putratom{301}{173}{\@memberb}%    % right type
2143  \Put@Line(171,303)(5,-3){120}%   % single bond at G
2144 \else\ifx\@tmpc\empty%alpha single bond
2145  \yl@xdiff=-10\relax%
2146  \yl@ydiff=58\relax%
2147  \putratom{301}{173}{\@memberb}%    % right type
2148  \Put@Line(171,303)(5,-3){120}%   % single bond at G
2149 \else\if\@tmpc D%beta single bond (upward)
2150  \yl@xdiff=31\relax%
2151  \yl@ydiff=-17\relax%
2152  \putlratom{140}{460}{\@memberb}%   % left or right type

2153 {%

2154  \thicklines%
2155  \Put@Line(171,303)(0,1){140}%    % single bond at G

2156 }%

2157 \else\if\@tmpc C%alpha single bond (upward)
2158  \yl@xdiff=31\relax%
2159  \yl@ydiff=-17\relax%
2160  \putlratom{140}{460}{\@memberb}%   % left or right type
2161  \dotorline(171,303)(0,1){140}/(171,303)(171,443)%
2162 \fi\fi\fi\fi\fi\fi\fi%
2163 }% end of \GFbondb@b
\GFbondc \GFbondc@a \GFbondc@b
2164 \def\GFbondc{%
2165 % %%%%%%%%%%%%%%%%
2166 % subst. on 2  F == (0,406), G == (-171,303) for \@fused@linkfalse
2167 % subst. on 2  G == (0,406), F == (-171,303) for \@fused@linktrue
2168 % %%%%%%%%%%%%%%%%
2169 \if@fused@link
2170 \if\@tmpb G%single bond at (-5,-3) fusion
2171  \GFbondc@a
2172 \else\if\@tmpb F%single bond at F
2173  \GFbondc@b
2174 \fi\fi%
2175 \else
2176 \if\@tmpb F%single bond at (-5,-3) fusion
2177  \GFbondc@a
2178 \else\if\@tmpb G%single bond at G
2179  \GFbondc@b
2180 \fi\fi%

2181 \fi

2182 }% end of \GFbondc
2183 \def\GFbondc@a{%
2184 \if\@tmpc B%beta single bond
2185  \yl@xdiff=-10\relax%
2186  \yl@ydiff=12\relax%
2187  \putratom{130}{466}{\@memberb}%    % right type

2188 {%

2189  \thicklines%
2190  \Put@Line(0,406)(5,3){120}%      % single bond at F

2191 }%

2192 \else\if\@tmpc A%alpha single bond
2193  \yl@xdiff=-10\relax%
2194  \yl@ydiff=12\relax%
2195  \putratom{130}{466}{\@memberb}%    % right type
2196  \dotorline(0,406)(5,3){120}/(0,406)(120,478)%
2197 \else\if\@tmpc U%unspecified single bond
2198  \yl@xdiff=-10\relax%
2199  \yl@ydiff=12\relax%
2200  \putratom{130}{466}{\@memberb}%    % right type

2201 {%

2202  \WaveBonds%
2203  \Put@Line(0,406)(5,3){120}%      % single bond at F

2204 }%

2205 \else\if\@tmpc S%beta single bond
2206  \yl@xdiff=-10\relax%
2207  \yl@ydiff=12\relax%
2208  \putratom{130}{466}{\@memberb}%    % right type
2209  \Put@Line(0,406)(5,3){120}%      % single bond at F
2210 \else\ifx\@tmpc\empty%beta single bond
2211  \yl@xdiff=-10\relax%
2212  \yl@ydiff=12\relax%
2213  \putratom{130}{466}{\@memberb}%    % right type
2214  \Put@Line(0,406)(5,3){120}%      % single bond at F
2215 \else\if\@tmpc D%beta single bond (downward)
2216  \yl@xdiff=31\relax%
2217  \yl@ydiff=90\relax%
2218  \putlratom{-31}{176}{\@memberb}%   % left or right type

2219 {%

2220  \thicklines%
2221  \Put@Line(0,406)(0,-1){140}%     % single bond at F

2222 }%

2223 \else\if\@tmpc C%alpha single bond (downward)
2224  \yl@xdiff=31\relax%
2225  \yl@ydiff=90\relax%
2226  \putlratom{-31}{176}{\@memberb}%   % left or right type
2227  \dotorline(0,406)(0,-1){140}/(0,406)(0,266)%
2228 \fi\fi\fi\fi\fi\fi\fi%
2229 }% end of \GFbondc@a
2230 \def\GFbondc@b{%
2231 \if\@tmpc B%beta single bond
2232  \yl@xdiff=10\relax%
2233  \yl@ydiff=59\relax%
2234  \putlatom{-301}{173}{\@memberb}%  % left type

2235 {%

2236  \thicklines%
2237  \Put@Line(-171,303)(-5,-3){120}% % single bond at G

2238 }%

2239 \else\if\@tmpc A%alpha single bond
2240  \yl@xdiff=10\relax%
2241  \yl@ydiff=59\relax%
2242  \putlatom{-301}{173}{\@memberb}%  % left type
2243  \dotorline(-171,303)(-5,-3){120}/(-171,303)(-291,231)%
2244 \else\if\@tmpc U%unspecified single bond
2245  \yl@xdiff=10\relax%
2246  \yl@ydiff=59\relax%
2247  \putlatom{-301}{173}{\@memberb}%  % left type

2248 {%

2249  \WaveBonds%
2250  \Put@Line(-171,303)(-5,-3){120}%  single bond at G

2251 }%

2252 \else\if\@tmpc S%alpha single bond
2253  \yl@xdiff=10\relax%
2254  \yl@ydiff=59\relax%
2255  \putlatom{-301}{173}{\@memberb}%  % left type
2256  \Put@Line(-171,303)(-5,-3){120}%  single bond at G
2257 \else\ifx\@tmpc\empty%alpha single bond
2258  \yl@xdiff=10\relax%

2259  \yl@ydiff=59\relax%
2260  \putlatom{-301}{173}{\@memberb}%  % left type
2261  \Put@Line(-171,303)(-5,-3){120}%  single bond at G
2262 \else\if\@tmpc D%beta single bond (upward)
2263  \yl@xdiff=-30\relax%
2264  \yl@ydiff=-17\relax%
2265  \putlratom{201}{460}{\@memberb}%   % left or right type

2266 {%

2267  \thicklines%
2268  \Put@Line(-171,303)(0,1){140}%   % single bond at G

2269 }%

2270 \else\if\@tmpc C%alpha single bond (upward)
2271  \yl@xdiff=-30\relax%
2272  \yl@ydiff=-17\relax%
2273  \putlratom{201}{460}{\@memberb}%   % left or right type
2274  \dotorline(-171,303)(0,1){140}/(-171,303)(-171,443)%
2275 \fi\fi\fi\fi\fi\fi\fi%
2276 }% end of \GFbondc@b
\GFbondd
2277 \def\GFbondd{%
2278 % %%%%%%%%%%%%%%%%%%
2279 % 3 fused positions   % G == (303,171)  F == (103,171)
2280 % %%%%%%%%%%%%%%%%%%
2281 \if\@tmpb G%single bond at G (fused position)
2282 \if\@tmpc B%beta single bond
2283  \yl@xdiff=-17\relax%
2284  \yl@ydiff=31\relax%
2285  \putlratom{460}{140}{\@memberb}%   % left or right type

2286 {%

2287  \thicklines%
2288  \Put@Line(303,171)(1,0){140}%    % single bond at G

2289 }%

2290 \else\if\@tmpc A%alpha single bond
2291  \yl@xdiff=-17\relax%
2292  \yl@ydiff=31\relax%
2293  \putlratom{460}{140}{\@memberb}%   % left or right type
2294  \dotorline(303,171)(1,0){140}/(303,171)(443,171)%
2295 \else\if\@tmpc U% unspecified single bond
2296  \yl@xdiff=-17\relax%
2297  \yl@ydiff=31\relax%
2298  \putlratom{460}{140}{\@memberb}%   % left or right type
2299 %           \Put@Direct(303,148){$\sim$}% unspecified single bond at G
2300 %           \Put@Direct(353,148){$\sim$}%
2301 %           \Put@Direct(403,148){$\sim$}%

2302 {%

2303  \WaveBonds%
2304  \Put@Line(303,171)(1,0){140}%  single bond at G

2305 }%

2306 \else\if\@tmpc S%beta single bond
2307  \yl@xdiff=-17\relax%
2308  \yl@ydiff=31\relax%
2309  \putlratom{460}{140}{\@memberb}%   % left or right type
2310  \Put@Line(303,171)(1,0){140}%    % single bond at G

2311 \else\ifx\@tmpc\empty%beta single bond
2312  \yl@xdiff=-17\relax%
2313  \yl@ydiff=31\relax%
2314  \putlratom{460}{140}{\@memberb}%   % left or right type
2315  \Put@Line(303,171)(1,0){140}%    % single bond at G
2316 \fi\fi\fi\fi\fi%
2317 \else\if\@tmpb F%single bond at F (fused position)
2318 \if\@tmpc B%beta single bond
2319  \yl@xdiff=20\relax%
2320  \yl@ydiff=31\relax%
2321 %           \putlratom{-127}{140}{\@memberb}%  % left or right type
2322  \putlatom{-57}{140}{\@memberb}%  % left type

2323 {%

2324  \thicklines%
2325  \Put@Line(103,171)(-1,0){140}%   % single bond at F

2326 }%

2327 \else\if\@tmpc A%alpha single bond
2328  \yl@xdiff=20\relax%
2329  \yl@ydiff=31\relax%
2330  \putlatom{-57}{140}{\@memberb}%  % left type
2331  \dotorline(103,171)(-1,0){140}/(103,171)(-37,171)%
2332 \else\if\@tmpc U%beta single bond
2333  \yl@xdiff=20\relax%
2334  \yl@ydiff=31\relax%
2335  \putlatom{-57}{140}{\@memberb}%  % left type
2336 %           \Put@Direct(40,148){$\sim$}% unspecified single bond at F
2337 %           \Put@Direct(-13,148){$\sim$}%
2338 %           \Put@Direct(-62,148){$\sim$}%

2339 {%

2340  \WaveBonds%
2341  \Put@Line(103,171)(-1,0){140}%  single bond at F

2342 }%

2343 \else\if\@tmpc S%alpha single bond
2344  \yl@xdiff=20\relax%
2345  \yl@ydiff=31\relax%
2346  \putlatom{-57}{140}{\@memberb}%  % left type
2347  \Put@Line(103,171)(-1,0){140}%   % single bond at F
2348 \else\ifx\@tmpc\empty%alpha single bond
2349  \yl@xdiff=20\relax%
2350  \yl@ydiff=31\relax%
2351  \putlatom{-57}{140}{\@memberb}%  % left type
2352  \Put@Line(103,171)(-1,0){140}%   % single bond at F
2353 \fi\fi\fi\fi\fi%
2354 \fi\fi%
2355 }% end of \GFbondd

The \setfusedbond takes 5 arguments.

   ******************************************************
   * setting of atoms and bonds at fused bond positions *
   ******************************************************
     \setfusedbond{SUBSLIST}{AD}{LOWER}{UPPER}{ORDER}

The first argument SUBSLIST is a list of substituents, which is represented in the standard format of XΥMTEX. Substituents at the fused positions (vertical bonds) are designated by the number 0 and the following bond modifiers. They are placed by means of the \GFbonda command.

SUBSLIST: list of substituents (max 3 substitution positions)
for 0 (vertical (0,1) fused positions)
     F == (171,303)  G == (171,103)
0FA        :  alpha single bond at F
0FB        :  beta single bond at F
0FU        :  unspecified single bond at F
0GA        :  alpha single bond at G
0GB        :  beta single bond at G
0GU        :  unspecified single bond at G

Substituents at the fused positions (diagonal bonds) are designated by the number 1 and the following bond modifiers. They are placed by means of the

\GFbondb command.
for 1 (diagonal (5,-3) fused positions)
     F == (0,406), G == (171,303)
1FA        :  alpha single bond at F
1FB        :  beta single bond at F
1FC        :  alpha single bond (downward) at F
1FD        :  beta single bond (downward) at F
1FU        :  unspecified single bond at F
1GA        :  alpha single bond at G
1GB        :  beta single bond at G
1GC        :  alpha single bond (upward) at G
1GD        :  beta single bond (upward) at G
1GU        :  unspecified single bond at G

Substituents at the fused positions (other diagonal bonds) are designated by the number 2 and the following bond modifiers. They are placed by means of the

\GFbondc command.
for 2 (diagonal (-5,-3) fused positions)
     F == (0,406), G == (-171,303)
2FA        :  alpha single bond at F
2FB        :  beta single bond at F
2FC        :  alpha single bond (upward) at F
2FD        :  beta single bond (upward) at F
2FU        :  unspecified single bond at F
2GA        :  alpha single bond at G
2GB        :  beta single bond at G
2GC        :  alpha single bond (downward) at G
2GD        :  beta single bond (downward) at G

             2GU        :  unspecified single bond at G

Substituents at the fused positions (horizontal bonds) are designated by the number 3 and the following bond modifiers. They are placed by means of the

  \GFbondd command.
          for 3 (horizontal (1,0) fused positions)
                  G == (303,171)  F == (103,171)
   %%%%                F == (303,171)  G == (103,171)
             3FA        :  alpha single bond at F
             3FB        :  beta single bond at F
             3FU        :  unspecified single bond at F
             3GA        :  alpha single bond at G
             3GB        :  beta single bond at G
             3GU        :  unspecified single bond at G

The second argument AD is an adjustment value, which adjusts the original set of locant numbers into the standard one between 0 to 3 for drawing substituents on fused positions. The effective range of the standared set of locant numbers is restricted by the auguments LOWER and UPPER. A minus value of the last argument shows the anti-clockwise numbering, while zero or a plus value represents the clockwise numbering.

      AD       : adjustment      e.g. 0 for six-membered rings
      LOWER    : lower limit     LOWER < effective range < UPPER
      UPPER    : upper limit
      ORDER    : >= 0 clockwise, <0 anti-clockwise

\setfusedbond
2356 \newif\if@fused@link \@fused@linkfalse
2357 \def\setfusedbond#1#2#3#4#5{%
2358 \@forsemicol\member:=#1\do{%
2359 \ifx\member\empty\else%
2360 \expandafter\@m@mb@r\member;\relax%
2361 \expandafter\threech@r\@membera{}{}%
2362 \ifx\@memberb\@yl\else
2363 \ifnum#5<0\relax%
2364 \@tmpaa=-\@tmpa\relax\advance\@tmpaa by #2\relax\@fused@linktrue
2365 \else\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
2366 \@fused@linkfalse\fi%
2367 \ifnum\@tmpaa >#3\relax%
2368 \ifnum\@tmpaa <#4\relax%
2369 \ifcase\@tmpaa%
2370 % %%%%%%%%%%%%%%%%%%
2371 % 0 fused positions   % F == (171,303)  G == (171,103)
2372 % %%%%%%%%%%%%%%%%%%
2373 \GFbonda

2374 % %%%%%%%%%%%%%%%%
2375 \or% subst. on 1  F == (0,406), G == (171,303)
2376 % %%%%%%%%%%%%%%%%
2377 \GFbondb
2378 % %%%%%%%%%%%%%%%%
2379 \or% subst. on 2  F == (0,406), G == (-171,303) for \@fused@linkfalse
2380 % subst. on 2  G == (0,406), F == (-171,303) for \@fused@linktrue
2381 % %%%%%%%%%%%%%%%%
2382 \GFbondc
2383 % %%%%%%%%%%%%%%%%%%
2384 \or %3 fused positions   % G == (303,171)  F == (103,171)
2385 % %%%%%%%%%%%%%%%%%%
2386 \GFbondd
2387 \fi%end of ifcase
2388 \fi\fi\fi\fi}}%

4.5 Setting-up substituents and bonds at a given postion

The \setatombond takes 3 arguments.

   ********************************************************
   * setting of atoms and bonds at an appropiate position *
   ********************************************************
     \setatombond{SUBSLIST}{AD}{SLOPE}

The first argument SUBSLIST is a list of substituents, which is represented in the standard format of XΥMTEX. Substituents at the fused positions (vertical bonds) are designated by the number 0 and the following bond modifiers.

       SUBSLIST: list of substituents (max 3 substitution positions)

The second argument AD is an adjustment value, which adjusts the original locant number into 1.

       AD       : adjustment,
           Set AD as being 1  = position number - AD

The argument SLOPE has the following meanings.

       SLOPE
         1      : (0,1)              7     : (0,-1)
         2      : (3,5)              8     : (-3,-5)
         3      : (5,3)              9     : (-5,-3)
         4      : (1,0)             10     : (-1,0)
         5      : (5,-3)            11     : (-5,3)
         6      : (3,-5)            12     : (-3,5)

\setatombond
2389 \newif\if@clipfuse \@clipfusefalse
2390 \def\setatombond#1#2#3{%
2391 \@forsemicol\member:=#1\do{%
2392 \ifx\member\empty\else%
2393 \expandafter\@m@mb@r\member;\relax%
2394 \expandafter\threech@r\@membera{}{}%
2395 \@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
2396 \ifx\@memberb\@yl\else
2397 \ifnum\@tmpaa >0\relax%
2398 \ifnum\@tmpaa <2\relax%
2399 \ifcase\@tmpaa%
2400 % %%%%%%%%%%%%%%%%
2401 \or% subst. on 1
2402 % %%%%%%%%%%%%%%%%

2403 %

2404 % (0,1)

2405 %

2406 \ifnum#3=1\relax%(upward)
2407 \setatombonda

2408 %

2409 % (1,0)

2410 %

2411 \else\ifnum#3=4\relax%(right)
2412 \setatombondb

2413 %

2414 % (0,-1)

2415 %

2416 \else\ifnum#3=7\relax%(downward)
2417 \setatombondc

2418 %

2419 % (-5,3)

2420 %

2421 \else\ifnum#3=11\relax%
2422 \setatombondd

2423 %

2424 % (5,-3)

2425 %

2426 \else\ifnum#3=5\relax%
2427 \setatombonde

2428 %

2429 % (5,3)

2430 %

2431 \else\ifnum#3=3\relax%
2432 \setatombondf

2433 %

2434 % (-5,-3)

2435 %

2436 \else\ifnum#3=9\relax%
2437 \setatombondg

2438 %

2439 % (-1,0)

2440 %

2441 \else\ifnum#3=10\relax%(left)

2442 \setatombondh
2443 \fi\fi\fi\fi\fi\fi\fi\fi%
2444 \fi%end of ifcase
2445 \fi\fi\fi\fi}}%

The command \setatombond uses the following bond-setting commands.

\setatombonda
\setatombondb
\setatombondc
\setatombondd
\setatombonde
\setatombondf
\setatombondg
\setatombondh

2446 \def\setatombonda{%upward (0,1)
2447 \if@clipfuse%
2448 \if\@tmpb B%beta single bond
2449  \yl@xdiff=31\relax
2450  \yl@ydiff=-17\relax

2451 {%

2452  \thicklines%
2453  \Put@Line(0,40)(0,1){100}%  % single bond at 1

2454 }%

2455 \else\if\@tmpb A%alpha single bond
2456  \yl@xdiff=31\relax
2457  \yl@ydiff=-17\relax
2458  \dotorline(0,40)(0,1){100}/(0,40)(0,140)%
2459 \else\if\@tmpb U% unspecified single bond
2460  \yl@xdiff=31\relax
2461  \yl@ydiff=-17\relax
2462 %           \Put@Direct(-3,30){$\wr$}% unspecified single bond at 1
2463 %           \Put@Direct(-3,80){$\wr$}%

2464 {%

2465  \WaveBonds%
2466  \Put@Line(0,40)(0,1){100}%  single bond at F

2467 }%

2468 \else\if\@tmpb S%beta single bond
2469  \yl@xdiff=31\relax
2470  \yl@ydiff=-17\relax
2471  \Put@Line(0,40)(0,1){100}%  % single bond at 1
2472 \else\if\@tmpb D%double bond
2473  \yl@xdiff=31\relax
2474  \yl@ydiff=-17\relax
2475  \Put@Line(-10,40)(0,1){100}%  % single bond at 1
2476  \Put@Line(10,40)(0,1){100}%  % single bond at 1
2477 \else\if\@tmpb T%double bond
2478  \yl@xdiff=31\relax
2479  \yl@ydiff=-17\relax
2480  \Put@Line(-15,40)(0,1){100}%  % single bond at 1
2481  \Put@Line(0,40)(0,1){100}%  % single bond at 1
2482  \Put@Line(15,40)(0,1){100}%  % single bond at 1
2483 \else\ifx\@tmpb\empty%beta single bond
2484  \yl@xdiff=31\relax
2485  \yl@ydiff=-17\relax
2486  \Put@Line(0,40)(0,1){100}%  % single bond at 1
2487 \fi\fi\fi\fi\fi\fi\fi%
2488  \putlratom{-31}{157}{\@memberb}%   % left or right type
2489 \else%no clip
2490 \if\@tmpb B%beta single bond
2491  \yl@xdiff=31\relax

2492  \yl@ydiff=-17\relax

2493 {%

2494  \thicklines%
2495  \Put@Line(0,0)(0,1){140}%  % single bond at 1

2496 }%

2497 \else\if\@tmpb A%alpha single bond
2498  \yl@xdiff=31\relax
2499  \yl@ydiff=-17\relax
2500  \dotorline(0,0)(0,1){140}/(0,0)(0,140)%
2501 \else\if\@tmpb U% unspecified single bond
2502  \yl@xdiff=31\relax
2503  \yl@ydiff=-17\relax
2504 %           \Put@Direct(-3,0){$\wr$}% unspecified single bond at 1
2505 %           \Put@Direct(-3,50){$\wr$}%
2506 %           \Put@Direct(-3,100){$\wr$}%

2507 {%

2508  \WaveBonds%
2509  \Put@Line(0,0)(0,1){140}%  single bond at F

2510 }%

2511 \else\if\@tmpb S%beta single bond
2512  \yl@xdiff=31\relax
2513  \yl@ydiff=-17\relax
2514  \Put@Line(0,0)(0,1){140}%  % single bond at 1
2515 \else\if\@tmpb D%beta single bond
2516  \yl@xdiff=31\relax
2517  \yl@ydiff=-17\relax
2518  \Put@Line(-10,0)(0,1){140}%  % single bond at 1
2519  \Put@Line(10,0)(0,1){140}%  % single bond at 1
2520 \else\if\@tmpb T%beta single bond
2521  \yl@xdiff=31\relax
2522  \yl@ydiff=-17\relax
2523  \Put@Line(-15,0)(0,1){140}%  % single bond at 1
2524  \Put@Line(0,0)(0,1){140}%  % single bond at 1
2525  \Put@Line(15,0)(0,1){140}%  % single bond at 1
2526 \else\ifx\@tmpb\empty%beta single bond
2527  \yl@xdiff=31\relax
2528  \yl@ydiff=-17\relax
2529  \Put@Line(0,0)(0,1){140}%  % single bond at 1
2530 \fi\fi\fi\fi\fi\fi\fi%
2531  \putlratom{-31}{157}{\@memberb}%   % left or right type
2532 \fi%
2533 }% end of \setatombonda
2534 \def\setatombondb{%(right) (1,0)
2535 \if@clipfuse%
2536 \if\@tmpb B%beta single bond
2537  \yl@xdiff=-17\relax
2538  \yl@ydiff=31\relax

2539 {%

2540  \thicklines%
2541  \Put@Line(30,0)(1,0){110}%       % single bond at 1

2542 }%

2543 \else\if\@tmpb A%alpha single bond
2544  \yl@xdiff=-17\relax
2545  \yl@ydiff=31\relax

2546  \dotorline(30,0)(1,0){110}/(30,0)(140,0)%
2547 \else\if\@tmpb U%beta single bond
2548  \yl@xdiff=-17\relax
2549  \yl@ydiff=31\relax

2550 {%

2551  \WaveBonds%
2552  \Put@Line(30,0)(1,0){110}%       % single bond at 1

2553 }%

2554 \else\if\@tmpb S%alpha single bond
2555  \yl@xdiff=-17\relax
2556  \yl@ydiff=31\relax
2557  \Put@Line(40,0)(1,0){100}%       % single bond at 1
2558 \else\if\@tmpb D%alpha single bond
2559  \yl@xdiff=-17\relax
2560  \yl@ydiff=31\relax
2561  \Put@Line(40,10)(1,0){100}%       % single bond at 1
2562  \Put@Line(40,-10)(1,0){100}%       % single bond at 1
2563 \else\if\@tmpb T%alpha single bond
2564  \yl@xdiff=-17\relax
2565  \yl@ydiff=31\relax
2566  \Put@Line(40,15)(1,0){100}%       % single bond at 1
2567  \Put@Line(40,0)(1,0){100}%       % single bond at 1
2568  \Put@Line(40,-15)(1,0){100}%       % single bond at 1
2569 \else\ifx\@tmpb\empty%alpha single bond
2570  \yl@xdiff=-17\relax
2571  \yl@ydiff=31\relax
2572  \Put@Line(40,0)(1,0){100}%       % single bond at 1
2573 \fi\fi\fi\fi\fi\fi\fi%
2574  \putratom{157}{-31}{\@memberb}%   % right type only
2575 \else%
2576 \if\@tmpb B%beta single bond
2577  \yl@xdiff=-17\relax
2578  \yl@ydiff=31\relax

2579 {%

2580  \thicklines%
2581  \Put@Line(0,0)(1,0){140}%       % single bond at 1

2582 }%

2583 \else\if\@tmpb A%alpha single bond
2584  \yl@xdiff=-17\relax
2585  \yl@ydiff=31\relax
2586  \dotorline(0,0)(1,0){140}/(0,0)(140,0)%
2587 \else\if\@tmpb U%beta single bond
2588  \yl@xdiff=-17\relax
2589  \yl@ydiff=31\relax

2590 {%

2591  \WaveBonds%
2592  \Put@Line(0,0)(1,0){140}%       % single bond at 1

2593 }%

2594 \else\if\@tmpb S%alpha single bond
2595  \yl@xdiff=-17\relax
2596  \yl@ydiff=31\relax
2597  \Put@Line(0,0)(1,0){140}%       % single bond at 1
2598 \else\if\@tmpb D%alpha single bond
2599  \yl@xdiff=-17\relax

2600  \yl@ydiff=31\relax
2601  \Put@Line(0,10)(1,0){140}%       % single bond at 1
2602  \Put@Line(0,-10)(1,0){140}%       % single bond at 1
2603 \else\if\@tmpb T%alpha single bond
2604  \yl@xdiff=-17\relax
2605  \yl@ydiff=31\relax
2606  \Put@Line(0,-15)(1,0){140}%       % single bond at 1
2607  \Put@Line(0,0)(1,0){140}%       % single bond at 1
2608  \Put@Line(0,15)(1,0){140}%       % single bond at 1
2609 \else\ifx\@tmpb\empty%alpha single bond
2610  \yl@xdiff=-17\relax
2611  \yl@ydiff=31\relax
2612  \Put@Line(0,0)(1,0){140}%       % single bond at 1
2613 \fi\fi\fi\fi\fi\fi\fi%
2614  \putratom{157}{-31}{\@memberb}%   % right type only
2615 \fi%
2616 }% end of \setatombondb
2617 \def\setatombondc{%(downward) (0,-1)
2618 \if@clipfuse%
2619 \if\@tmpb B%beta single bond
2620  \yl@xdiff=31\relax
2621  \yl@ydiff=90\relax

2622 {%

2623  \thicklines%
2624  \Put@Line(0,-40)(0,-1){100}%    % single bond at 1

2625 }%

2626 \else\if\@tmpb A%alpha single bond
2627  \yl@xdiff=31\relax
2628  \yl@ydiff=90\relax
2629  \dotorline(0,-40)(0,-1){100}/(0,-40)(0,-140)%
2630 \else\if\@tmpb U%beta single bond
2631  \yl@xdiff=31\relax
2632  \yl@ydiff=90\relax
2633 %           \Put@Direct(-3,-90){$\wr$}% unspecified single bond at 1
2634 %           \Put@Direct(-3,-140){$\wr$}%

2635 {%

2636  \WaveBonds%
2637  \Put@Line(0,-40)(0,-1){100}%       % single bond at 1

2638 }%

2639 \else\if\@tmpb S%alpha single bond
2640  \yl@xdiff=31\relax
2641  \yl@ydiff=90\relax
2642  \Put@Line(0,-40)(0,-1){100}%    % single bond at 1
2643 \else\if\@tmpb D%alpha single bond
2644  \yl@xdiff=31\relax
2645  \yl@ydiff=90\relax
2646  \Put@Line(10,-40)(0,-1){100}%    % single bond at 1
2647  \Put@Line(-10,-40)(0,-1){100}%    % single bond at 1
2648 \else\if\@tmpb T%alpha single bond
2649  \yl@xdiff=31\relax
2650  \yl@ydiff=90\relax
2651  \Put@Line(15,-40)(0,-1){100}%    % single bond at 1
2652  \Put@Line(0,-40)(0,-1){100}%    % single bond at 1
2653  \Put@Line(-15,-40)(0,-1){100}%    % single bond at 1

2654 \else\ifx\@tmpb\empty%alpha single bond
2655  \yl@xdiff=31\relax
2656  \yl@ydiff=90\relax
2657  \Put@Line(0,-40)(0,-1){100}%    % single bond at 1
2658 \fi\fi\fi\fi\fi\fi\fi%
2659  \putlratom{-31}{-230}{\@memberb}% % left or right type
2660 \else%no clipping
2661 \if\@tmpb B%beta single bond
2662  \yl@xdiff=31\relax
2663  \yl@ydiff=90\relax

2664 {%

2665  \thicklines%
2666  \Put@Line(0,0)(0,-1){140}%      % single bond at 1

2667 }%

2668 \else\if\@tmpb A%alpha single bond
2669  \yl@xdiff=31\relax
2670  \yl@ydiff=90\relax
2671  \dotorline(0,0)(0,-1){140}/(0,0)(0,-140)%
2672 \else\if\@tmpb U%beta single bond
2673  \yl@xdiff=31\relax
2674  \yl@ydiff=90\relax
2675 %           \Put@Direct(-3,-60){$\wr$}% unspecified single bond at 1
2676 %           \Put@Direct(-3,-110){$\wr$}%
2677 %           \Put@Direct(-3,-160){$\wr$}%

2678 {%

2679  \WaveBonds%
2680  \Put@Line(0,0)(0,-1){140}%       % single bond at 1

2681 }%

2682 \else\if\@tmpb S%alpha single bond
2683  \yl@xdiff=31\relax
2684  \yl@ydiff=90\relax
2685  \Put@Line(0,0)(0,-1){140}%      % single bond at 1
2686 \else\if\@tmpb D%alpha single bond
2687  \yl@xdiff=31\relax
2688  \yl@ydiff=90\relax
2689  \Put@Line(10,0)(0,-1){140}%      % single bond at 1
2690  \Put@Line(-10,0)(0,-1){140}%      % single bond at 1
2691 \else\if\@tmpb T%alpha single bond
2692  \yl@xdiff=31\relax
2693  \yl@ydiff=90\relax
2694  \Put@Line(15,0)(0,-1){140}%      % single bond at 1
2695  \Put@Line(0,0)(0,-1){140}%      % single bond at 1
2696  \Put@Line(-15,0)(0,-1){140}%      % single bond at 1
2697 \else\ifx\@tmpb\empty%alpha single bond
2698  \yl@xdiff=31\relax
2699  \yl@ydiff=90\relax
2700  \Put@Line(0,0)(0,-1){140}%      % single bond at 1
2701 \fi\fi\fi\fi\fi\fi\fi%
2702  \putlratom{-31}{-230}{\@memberb}% % left or right type
2703 \fi%
2704 }% end of \setatombondc
2705 \def\setatombondd{% (-5,3)
2706 \if@clipfuse%
2707  \yl@xdiff=20\relax

2708  \yl@ydiff=18\relax
2709 \if\@tmpb B%beta single bond

2710 {%

2711  \thicklines%
2712  \Put@Line(-30,18)(-5,3){100}%       % single bond at 1

2713 }%

2714 \else\if\@tmpb A%alpha single bond
2715  \dotorline(-30,18)(-5,3){100}/(-30,18)(-130,78)%
2716 \else\if\@tmpb U%unspecified single bond

2717 {%

2718  \WaveBonds%
2719  \Put@Line(-30,18)(-5,3){100}%       % single bond at 1

2720 }%

2721 \else\if\@tmpb S%beta single bond
2722  \Put@Line(-30,18)(-5,3){100}%       % single bond at 1
2723 \else\if\@tmpb D%beta single bond
2724  \Put@Line(-36,8)(-5,3){100}%       % single bond at 1
2725  \Put@Line(-24,24)(-5,3){100}%       % single bond at 1
2726 \else\if\@tmpb T%beta single bond
2727  \Put@Line(-39,3)(-5,3){100}%       % single bond at 1
2728  \Put@Line(-30,18)(-5,3){100}%       % single bond at 1
2729  \Put@Line(-21,33)(-5,3){100}%       % single bond at 1
2730 \else\ifx\@tmpb\empty%beta single bond
2731  \Put@Line(-30,18)(-5,3){100}%       % single bond at 1
2732 \fi\fi\fi\fi\fi\fi\fi%
2733  \putlatom{-150}{60}{\@memberb}%   % left type
2734 \else%no clipping
2735  \yl@xdiff=20\relax
2736  \yl@ydiff=18\relax
2737 \if\@tmpb B%beta single bond

2738 {%

2739  \thicklines%
2740  \Put@Line(0,0)(-5,3){130}%       % single bond at 1

2741 }%

2742 \else\if\@tmpb A%alpha single bond
2743  \dotorline(0,0)(-5,3){130}/(0,0)(-130,78)%
2744 \else\if\@tmpb U%unspecified single bond

2745 {%

2746  \WaveBonds%
2747  \Put@Line(0,0)(-5,3){130}%       % single bond at 1

2748 }%

2749 \else\if\@tmpb S%beta single bond
2750  \Put@Line(0,0)(-5,3){130}%       % single bond at 1
2751 \else\if\@tmpb D%beta single bond
2752  \Put@Line(6,10)(-5,3){130}%       % single bond at 1
2753  \Put@Line(-6,-10)(-5,3){130}%       % single bond at 1
2754 \else\if\@tmpb T%beta single bond
2755  \Put@Line(9,15)(-5,3){130}%       % single bond at 1
2756  \Put@Line(0,0)(-5,3){130}%       % single bond at 1
2757  \Put@Line(-9,-15)(-5,3){130}%       % single bond at 1
2758 \else\ifx\@tmpb\empty%beta single bond
2759  \Put@Line(0,0)(-5,3){130}%       % single bond at 1
2760 \fi\fi\fi\fi\fi\fi\fi%
2761  \putlatom{-150}{60}{\@memberb}%   % left type

2762 \fi%
2763 }% end of \setatombondd
2764 \def\setatombonde{%(5,-3)
2765 \if@clipfuse%
2766  \yl@xdiff=-10\relax
2767  \yl@ydiff=52\relax
2768 \if\@tmpb B%beta single bond

2769 {%

2770  \thicklines%
2771  \Put@Line(30,-18)(5,-3){100}%      % single bond at 1

2772 }%

2773 \else\if\@tmpb A%alpha single bond
2774  \dotorline(30,-18)(5,-3){100}/(30,-18)(130,-78)%
2775 \else\if\@tmpb U%unspecified single bond

2776 {%

2777  \WaveBonds%
2778  \Put@Line(30,-18)(5,-3){100}%      % single bond at 1

2779 }%

2780 \else\if\@tmpb S%alpha single bond
2781  \Put@Line(30,-18)(5,-3){100}%      % single bond at 1
2782 \else\if\@tmpb D%alpha single bond
2783  \Put@Line(36,-12)(5,-3){100}%      % single bond at 1
2784  \Put@Line(24,-28)(5,-3){100}%      % single bond at 1
2785 \else\if\@tmpb T%alpha single bond
2786  \Put@Line(39,-3)(5,-3){100}%      % single bond at 1
2787  \Put@Line(30,-18)(5,-3){100}%      % single bond at 1
2788  \Put@Line(21,-33)(5,-3){100}%      % single bond at 1
2789 \else\ifx\@tmpb\empty%alpha single bond
2790  \Put@Line(30,-18)(5,-3){100}%      % single bond at 1
2791 \fi\fi\fi\fi\fi\fi\fi%
2792  \putratom{140}{-130}{\@memberb}%  % right type
2793 \else%no clipping
2794  \yl@xdiff=-10\relax
2795  \yl@ydiff=52\relax
2796 \if\@tmpb B%beta single bond

2797 {%

2798  \thicklines%
2799  \Put@Line(0,0)(5,-3){130}%      % single bond at 1

2800 }%

2801 \else\if\@tmpb A%alpha single bond
2802  \dotorline(0,0)(5,-3){130}/(0,0)(130,-78)%
2803 \else\if\@tmpb U%unspecified single bond

2804 {%

2805  \WaveBonds%
2806  \Put@Line(0,0)(5,-3){130}%      % single bond at 1

2807 }%

2808 \else\if\@tmpb S%alpha single bond
2809  \Put@Line(0,0)(5,-3){130}%      % single bond at 1
2810 \else\if\@tmpb D%alpha single bond
2811  \Put@Line(6,10)(5,-3){130}%      % single bond at 1
2812  \Put@Line(-6,-10)(5,-3){130}%      % single bond at 1
2813 \else\if\@tmpb T%alpha single bond
2814  \Put@Line(9,15)(5,-3){130}%      % single bond at 1
2815  \Put@Line(0,0)(5,-3){130}%      % single bond at 1

2816  \Put@Line(-9,-15)(5,-3){130}%      % single bond at 1
2817 \else\ifx\@tmpb\empty%alpha single bond
2818  \Put@Line(0,0)(5,-3){130}%      % single bond at 1
2819 \fi\fi\fi\fi\fi\fi\fi%
2820  \putratom{140}{-130}{\@memberb}%  % right type
2821 \fi%
2822 }% end of \setatombonde
2823 \def\setatombondf{%% (5,3)
2824 \if@clipfuse%
2825  \yl@xdiff=-30\relax
2826  \yl@ydiff=18\relax
2827 \if\@tmpb B%beta single bond

2828 {%

2829  \thicklines%
2830  \Put@Line(30,18)(5,3){100}%       % single bond at 1

2831 }%

2832 \else\if\@tmpb A%alpha single bond
2833  \dotorline(30,18)(5,3){100}/(30,18)(130,78)%
2834 \else\if\@tmpb U%unspecified single bond

2835 {%

2836  \WaveBonds%
2837  \Put@Line(30,18)(5,3){100}%       % single bond at 1

2838 }%

2839 \else\if\@tmpb S%beta single bond
2840  \Put@Line(30,18)(5,3){100}%       % single bond at 1
2841 \else\if\@tmpb D%beta single bond
2842  \Put@Line(36,8)(5,3){100}%       % single bond at 1
2843  \Put@Line(24,24)(5,3){100}%       % single bond at 1
2844 \else\if\@tmpb T%beta single bond
2845  \Put@Line(39,3)(5,3){100}%       % single bond at 1
2846  \Put@Line(30,18)(5,3){100}%       % single bond at 1
2847  \Put@Line(21,33)(5,3){100}%       % single bond at 1
2848 \else\ifx\@tmpb\empty%beta single bond
2849  \Put@Line(30,18)(5,3){100}%       % single bond at 1
2850 \fi\fi\fi\fi\fi\fi\fi%
2851  \putratom{160}{60}{\@memberb}%    % right type
2852 \else%no clipping
2853  \yl@xdiff=-30\relax
2854  \yl@ydiff=18\relax
2855 \if\@tmpb B%beta single bond

2856 {%

2857  \thicklines%
2858  \Put@Line(0,0)(5,3){130}%       % single bond at 1

2859 }%

2860 \else\if\@tmpb A%alpha single bond
2861  \dotorline(0,0)(5,3){120}/(0,0)(130,78)%
2862 \else\if\@tmpb U%unspecified single bond

2863 {%

2864  \WaveBonds%
2865  \Put@Line(0,0)(5,3){130}%       % single bond at 1

2866 }%

2867 \else\if\@tmpb S%beta single bond
2868  \Put@Line(0,0)(5,3){130}%       % single bond at 1
2869 \else\if\@tmpb D%beta single bond

2870  \Put@Line(6,-10)(5,3){130}%       % single bond at 1
2871  \Put@Line(-6,10)(5,3){130}%       % single bond at 1
2872 \else\if\@tmpb T%beta single bond
2873  \Put@Line(9,-15)(5,3){130}%       % single bond at 1
2874  \Put@Line(0,0)(5,3){130}%       % single bond at 1
2875  \Put@Line(-9,15)(5,3){130}%       % single bond at 1
2876 \else\ifx\@tmpb\empty%beta single bond
2877  \Put@Line(0,0)(5,3){130}%       % single bond at 1
2878 \fi\fi\fi\fi\fi\fi\fi%
2879  \putratom{160}{60}{\@memberb}%    % right type
2880 \fi%
2881 }% end of \setatombondf
2882 \def\setatombondg{%% (-5,-3)
2883 \if@clipfuse%
2884  \yl@xdiff=0\relax
2885  \yl@ydiff=52\relax%1999/1/6 by Shinsaku Fujita
2886 \if\@tmpb B%beta single bond

2887 {%

2888  \thicklines%
2889  \Put@Line(-30,-18)(-5,-3){100}%      % single bond at 1

2890 }%

2891 \else\if\@tmpb A%alpha single bond
2892 %           \dotorline(-30,-18)(-5,-3){100}/(-20,-12)(-120,-72)%
2893  \dotorline(-35,-21)(-5,-3){100}/(-35,-21)(-120,-72)%
2894 \else\if\@tmpc U%unspecified single bond

2895 {%

2896  \WaveBonds%
2897  \Put@Line(-35,-21)(-5,-3){100}%      % single bond at 1

2898 }%

2899 \else\if\@tmpc S%alpha single bond
2900 %           \Put@Line(-30,-18)(-5,-3){100}%      % single bond at 1
2901  \Put@Line(-35,-21)(-5,-3){100}%      % single bond at 1
2902 \else\if\@tmpb D%double bond
2903  \Put@Line(-36,-12)(-5,-3){100}%      % single bond at 1
2904  \Put@Line(-24,-28)(-5,-3){100}%      % single bond at 1
2905 \else\if\@tmpb T%triple bond
2906  \Put@Line(-39,-3)(-5,-3){100}%      % single bond at 1
2907  \Put@Line(-30,-18)(-5,-3){100}%      % single bond at 1
2908  \Put@Line(-21,-33)(-5,-3){100}%      % single bond at 1
2909 \else\ifx\@tmpc\empty%alpha single bond
2910 %           \Put@Line(-30,-18)(-5,-3){100}%      % single bond at 1
2911  \Put@Line(-35,-21)(-5,-3){100}%      % single bond at 1
2912 \fi\fi\fi\fi\fi\fi\fi%
2913  \putlatom{-130}{-130}{\@memberb}% % left type
2914 \else%
2915  \yl@xdiff=0\relax
2916 %      \yl@ydiff=62\relax
2917  \yl@ydiff=52\relax%1999/1/6 by Shinsaku Fujita
2918 \if\@tmpb B%beta single bond

2919 {%

2920  \thicklines%
2921  \Put@Line(0,0)(-5,-3){130}%      % single bond at 1

2922 }%

2923 \else\if\@tmpb A%alpha single bond

2924  \dotorline(0,0)(-5,-3){130}/(0,0)(-130,-78)%
2925 \else\if\@tmpc U%unspecified single bond

2926 {%

2927  \WaveBonds%
2928  \Put@Line(0,0)(-5,-3){130}%      % single bond at 1

2929 }%

2930 \else\if\@tmpc S%alpha single bond
2931  \Put@Line(0,0)(-5,-3){130}%      % single bond at 1
2932 \else\if\@tmpb D%alpha single bond
2933  \Put@Line(-6,10)(-5,-3){130}%      % single bond at 1
2934  \Put@Line(6,-10)(-5,-3){130}%      % single bond at 1
2935 \else\if\@tmpb T%alpha single bond
2936  \Put@Line(-9,15)(-5,-3){130}%      % single bond at 1
2937  \Put@Line(0,0)(-5,-3){130}%      % single bond at 1
2938  \Put@Line(9,-15)(-5,-3){130}%      % single bond at 1
2939 \else\ifx\@tmpc\empty%alpha single bond
2940  \Put@Line(0,0)(-5,-3){130}%      % single bond at 1
2941 \fi\fi\fi\fi\fi\fi\fi%
2942  \putlatom{-130}{-130}{\@memberb}% % left type
2943 \fi%
2944 }% end of \setatombondg
2945 \def\setatombondh{% (-1,0)
2946  \yl@xdiff=17\relax
2947  \yl@ydiff=31\relax
2948 \if@clipfuse%
2949 \if\@tmpb B%beta single bond

2950 {%

2951  \thicklines%
2952  \Put@Line(-30,0)(-1,0){110}%       % single bond at 1

2953 }%

2954 \else\if\@tmpb A%alpha single bond
2955  \dotorline(-30,0)(-1,0){110}/(-30,0)(-140,0)%
2956 \else\if\@tmpb U%beta single bond

2957 {%

2958  \WaveBonds%
2959  \Put@Line(-30,0)(-1,0){110}%       % single bond at 1

2960 }%

2961 \else\if\@tmpb S%alpha single bond
2962  \Put@Line(-40,0)(-1,0){100}%       % single bond at 1
2963 \else\if\@tmpb D%alpha single bond
2964  \Put@Line(-40,10)(-1,0){100}%       % single bond at 1
2965  \Put@Line(-40,-10)(-1,0){100}%       % single bond at 1
2966 \else\if\@tmpb T%alpha single bond
2967  \Put@Line(-40,15)(-1,0){100}%       % single bond at 1
2968  \Put@Line(-40,0)(-1,0){100}%       % single bond at 1
2969  \Put@Line(-40,-15)(-1,0){100}%       % single bond at 1
2970 \else\ifx\@tmpb\empty%alpha single bond
2971  \Put@Line(-40,0)(-1,0){100}%       % single bond at 1
2972 \fi\fi\fi\fi\fi\fi\fi%
2973  \putlatom{-157}{-31}{\@memberb}%   % left type only
2974 \else%
2975 \if\@tmpb B%beta single bond

2976 {%

2977  \thicklines%

2978  \Put@Line(0,0)(-1,0){140}%       % single bond at 1

2979 }%

2980 \else\if\@tmpb A%alpha single bond
2981  \dotorline(0,0)(-1,0){140}/(0,0)(-140,0)%
2982 \else\if\@tmpb U%beta single bond

2983 {%

2984  \WaveBonds%
2985  \Put@Line(0,0)(-1,0){140}%       % single bond at 1

2986 }%

2987 \else\if\@tmpb S%alpha single bond
2988  \Put@Line(0,0)(-1,0){140}%       % single bond at 1
2989 \else\if\@tmpb D%alpha single bond
2990  \Put@Line(0,10)(-1,0){140}%       % single bond at 1
2991  \Put@Line(0,-10)(-1,0){140}%       % single bond at 1
2992 \else\if\@tmpb T%alpha single bond
2993  \Put@Line(0,-15)(-1,0){140}%       % single bond at 1
2994  \Put@Line(0,0)(-1,0){140}%       % single bond at 1
2995  \Put@Line(0,15)(-1,0){140}%       % single bond at 1
2996 \else\ifx\@tmpb\empty%alpha single bond
2997  \Put@Line(0,0)(-1,0){140}%       % single bond at 1
2998 \fi\fi\fi\fi\fi\fi\fi%
2999  \putlatom{-157}{-31}{\@memberb}%   % left type only
3000 \fi%
3001 }% end of \setatombondh

The macro \ylatombondposition is used to calculate the shift values (\@ylii and \@yli) for applying the \setatombond command.

\ylatombondposition
3002 \def\ylatombondposition#1#2#3{%
3003 \@@ylswfalse%%%\@reset@ylsw
3004 \@forsemicol\member:=#1\do{%
3005 \if@@ylsw\else%
3006 \ifx\member\empty\else%
3007 \expandafter\@m@mb@r\member;\relax%
3008 \expandafter\threech@r\@membera{}{}%
3009 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
3010 \if@@ylsw
3011 \@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
3012 \ifnum\@tmpaa >0\relax%
3013 \ifnum\@tmpaa <2\relax%
3014 \ifcase\@tmpaa%
3015 % %%%%%%%%%%%%%%%%
3016 \or% subst. on 1
3017 % %%%%%%%%%%%%%%%%

3018 %

3019 % (0,1)

3020 %

3021 \ifnum#3=1\relax%upward
3022 \if@clipfuse%
3023 \gdef\@ylii{0}\gdef\@yli{-48}\global\@ylswtrue%
3024 \else
3025 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%

3026 \fi

3027 %   \setatombonda

3028 %

3029 % (1,0)

3030 %

3031 \else\ifnum#3=4\relax%(right)
3032 \if@clipfuse%
3033 \gdef\@ylii{-40}\gdef\@yli{0}\global\@ylswtrue%
3034 \else
3035 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%

3036 \fi

3037 %   \setatombondb

3038 %

3039 % (0,-1)

3040 %

3041 \else\ifnum#3=7\relax%(downward)
3042 \if@clipfuse%
3043 \gdef\@ylii{0}\gdef\@yli{48}\global\@ylswtrue%
3044 \else
3045 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%

3046 \fi

3047 %   \setatombondc

3048 %

3049 % (-5,3)

3050 %

3051 \else\ifnum#3=11\relax%
3052 \if@clipfuse%
3053 \gdef\@ylii{50}\gdef\@yli{-30}\global\@ylswtrue%
3054 \else
3055 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%

3056 \fi

3057 %   \setatombondd

3058 %

3059 % (5,-3)

3060 %

3061 \else\ifnum#3=5\relax%
3062 \if@clipfuse%
3063 \gdef\@ylii{-50}\gdef\@yli{30}\global\@ylswtrue%
3064 \else
3065 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%

3066 \fi

3067 %   \setatombonde

3068 %

3069 % (5,3)

3070 %

3071 \else\ifnum#3=3\relax%
3072 \if@clipfuse%
3073 \gdef\@ylii{-50}\gdef\@yli{-30}\global\@ylswtrue%
3074 \else
3075 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%

3076 \fi

3077 %   \setatombondf

3078 %

3079 % (-5,-3)

3080 %

3081 \else\ifnum#3=9\relax%
3082 \if@clipfuse%
3083 \gdef\@ylii{50}\gdef\@yli{30}\global\@ylswtrue%
3084 \else
3085 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%

3086 \fi

3087 %   \setatombondg

3088 %

3089 % (-1,0)

3090 %

3091 \else\ifnum#3=10\relax%(left)
3092 \if@clipfuse%
3093 \gdef\@ylii{40}\gdef\@yli{0}\global\@ylswtrue%
3094 \else
3095 \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%

3096 \fi

3097 %   \setatombondh
3098 \fi\fi\fi\fi\fi\fi\fi\fi%
3099 \fi%end of ifcase
3100 \fi\fi\fi\fi%
3101 \fi}}% end of \ylatombondposition

5 Macros for horizontal formulas

5.1 Placing substituents for horizontal formulas

Such a drawing command as \setsixringh uses several inner macros for placing substituents with bonds. The first set of inner macros are shown as follows.

The command \ylpositionh is to obtain the shift values \@ylii and \@yli which are used for shifting the standard point of a substituent. The locant flags such as \@ylatrue have been stopped to use.

\ylpositionh
3102 \def\ylpositionh#1#2#3#4#5{%
3103 \@@ylswfalse%%%\@reset@ylsw
3104 \@forsemicol\member:=#1\do{%
3105 \if@@ylsw\else%
3106 \ifx\member\empty\else%
3107 \expandafter\@m@mb@r\member;\relax%
3108 \expandafter\threech@r\@membera{}{}\relax%
3109 \ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
3110 \if@@ylsw
3111 \ifnum#5<0\relax%
3112 \@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
3113 \else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
3114 \ifnum\@tmpaa>#3\relax%
3115 \ifnum\@tmpaa<#4\relax%
3116 \ifcase\@tmpaa%0 omit
3117 \or\ifx\aaa\empty
3118  \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@ylatrue% subst. on 1
3119  \else
3120  \gdef\@ylii{30}\gdef\@yli{0}\global\@ylswtrue%\@ylatrue% subst. on 1

3121 \fi

3122 \or\ifx\bbb\empty
3123  \gdef\@ylii{-103}\gdef\@yli{-171}\global\@ylswtrue%\@ylbtrue% subst. on 2
3124  \else
3125  \gdef\@ylii{-73}\gdef\@yli{-223}\global\@ylswtrue%\@ylbtrue% subst. on 2

3126 \fi

3127 \or \ifx\ccc\empty
3128  \gdef\@ylii{-303}\gdef\@yli{-171}\global\@ylswtrue%\@ylctrue% subst. on 3
3129  \else
3130  \gdef\@ylii{-333}\gdef\@yli{-223}\global\@ylswtrue%\@ylctrue% subst. on 3

3131 \fi

3132 \or\ifx\ddd\empty
3133  \gdef\@ylii{-406}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
3134  \else
3135  \gdef\@ylii{-436}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4

3136 \fi

3137 \or\ifx\eee\empty
3138  \gdef\@ylii{-303}\gdef\@yli{171}\global\@ylswtrue%\@yletrue% subst. on 5
3139  \else
3140  \gdef\@ylii{-333}\gdef\@yli{223}\global\@ylswtrue%\@yletrue% subst. on 5

3141 \fi

3142 \or \ifx\fff\empty
3143  \gdef\@ylii{-103}\gdef\@yli{171}\global\@ylswtrue%\@ylftrue% subst. on 6
3144  \else
3145  \gdef\@ylii{-73}\gdef\@yli{223}\global\@ylswtrue%\@ylftrue% subst. on 6

3146 \fi

3147 \fi%end of ifcase
3148 \fi\fi\fi\fi\fi}}%

The \@hsubsta command is used for placing a substituent (\@memberb) at the

1-position (top) of a vertical six-membered ring. The bond linking between the

substituent and the 1-position is drawn in the light of the corresponding bond

modifier (\@tmpc = Sa, Sb, SA, SB etc.).

\@hsubsta ************************************************************* * treatment of substitution positions for a horizontal type * *************************************************************

3149 % %%%%%%%%%%%%%%%
3150 % % subst. on 1 %
3151 % %%%%%%%%%%%%%%%
3152 \def\@hsubsta{%
3153 \if@aclip %clipping
3154 \if\@tmpb S%single bond
3155  \ifx\@tmpc\empty%
3156  \yl@xdiff=17\relax
3157  \yl@ydiff=31\relax
3158  \putlatom{-157}{-31}{\@memberb}%    % left type only
3159  \Put@Line(-30,0)(-1,0){110}%      % single bond at 1
3160  \else\if\@tmpc B%(B) beta
3161  \yl@xdiff=27\relax
3162  \yl@ydiff=36\relax
3163  \putlatom{-157}{42}{\@memberb}%     % left type

3164 {%

3165  \thicklines%
3166  \Put@Line(-30,18)(-5,3){100}%     % single bond at 1

3167 }%

3168  \else\if\@tmpc A%(A) alpha
3169  \yl@xdiff=37\relax
3170  \yl@ydiff=28\relax
3171  \putlatom{-157}{-100}{\@memberb}%   % left type
3172  \dotorline(-30,-18)(-5,-3){100}/(-30,-18)(-120,-72)%
3173  \else\if\@tmpc u%(u) up --- (B) beta
3174  \yl@xdiff=37\relax
3175  \yl@ydiff=28\relax
3176  \putlatom{-157}{-100}{\@memberb}%   % left type

3177 {%

3178  \thicklines%
3179  \Put@Line(-30,-18)(-5,-3){100}%    % single bond at 1

3180 }%

3181  \else\if\@tmpc d%(d) down --- (A) alpha
3182  \yl@xdiff=27\relax
3183  \yl@ydiff=36\relax
3184  \putlatom{-157}{42}{\@memberb}%     % left type
3185  \dotorline(-30,18)(-5,3){100}/(-30,18)(-130,78)%
3186  \else\if\@tmpc b%(b) beta
3187  \yl@xdiff=27\relax
3188  \yl@ydiff=36\relax
3189  \putlatom{-157}{42}{\@memberb}%    % left type
3190  \Put@Line(-30,18)(-5,3){100}%     % single bond at 1
3191  \else\if\@tmpc a%(a) alpha
3192  \yl@xdiff=27\relax
3193  \yl@ydiff=28\relax
3194  \putlatom{-157}{-100}{\@memberb}%   % left type
3195  \Put@Line(-30,-18)(-5,-3){100}%   % single bond at 1
3196  \else\if\@tmpc V%(V) beta undefined
3197  \yl@xdiff=27\relax
3198  \yl@ydiff=36\relax
3199  \putlatom{-157}{42}{\@memberb}%    % left type

3200 {%

3201  \WaveBonds%
3202  \Put@Line(-30,18)(-5,3){100}%     % single bond at 1

3203 }%

3204  \else\if\@tmpc U%(U) alpha undefined
3205  \yl@xdiff=27\relax
3206  \yl@ydiff=28\relax
3207  \putlatom{-157}{-100}{\@memberb}%   % left type

3208 {%

3209  \WaveBonds%
3210  \Put@Line(-30,-18)(-5,-3){100}%   % single bond at 1

3211 }%

3212  \fi\fi\fi\fi\fi
3213  \fi\fi\fi\fi
3214 \else\if\@tmpb D%double bond
3215  \yl@xdiff=17\relax
3216  \yl@ydiff=31\relax
3217  \putlatom{-157}{-31}{\@memberb}%    % left type only
3218  \Put@Line(-30,-12)(-1,0){110}%    % double bond at 1
3219  \Put@Line(-30,12)(-1,0){110}%     % double bond at 1
3220 \else\if\@tmpb B%beta single bond
3221  \yl@xdiff=17\relax

3222  \yl@ydiff=31\relax
3223  \putlatom{-157}{-31}{\@memberb}%    % left type only

3224 {%

3225  \thicklines%
3226  \Put@Line(-30,0)(-1,0){110}%      % single bond at 1

3227 }%

3228 \else\if\@tmpb A%alpha single bond
3229  \yl@xdiff=17\relax
3230  \yl@ydiff=31\relax
3231  \putlatom{-157}{-31}{\@memberb}%    % left type only
3232  \dotorline(-30,0)(-1,0){110}/(-30,0)(-140,0)%
3233 \else\if\@tmpb U%undefined single bond
3234  \yl@xdiff=17\relax
3235  \yl@ydiff=31\relax
3236  \putlatom{-157}{-31}{\@memberb}%    % left type only

3237 {%

3238  \WaveBonds%
3239  \Put@Line(-30,0)(-1,0){110}%      % single wave bond at 1

3240 }%

3241 \else\if\@tmpb F%fused bond
3242  {\let\@tmpb=\@tmpc\@clipfusetrue
3243  \Put@Direct(0,0){\setatombondG}%

3244 }%

3245 \else\if\@tmpb G%fused bond
3246  {\let\@tmpb=\@tmpc\@clipfusetrue
3247  \Put@Direct(0,0){\setatombondD}%

3248 }%

3249 \else%
3250  \yl@xdiff=17\relax
3251  \yl@ydiff=31\relax
3252  \putlatom{-157}{-31}{\@memberb}%    % left type only
3253  \Put@Line(-40,0)(-1,0){100}%      % single bond at 1
3254 \fi\fi\fi\fi
3255 \fi\fi\fi%
3256 \else%% no clipping
3257 \if\@tmpb S%single bond
3258  \ifx\@tmpc\empty%
3259  \yl@xdiff=17\relax
3260  \yl@ydiff=31\relax
3261  \putlatom{-157}{-31}{\@memberb}%    % left type only
3262  \Put@Line(0,0)(-1,0){140}%        % single bond at 1
3263  \else\if\@tmpc B%(B) beta
3264  \yl@xdiff=37\relax
3265  \yl@ydiff=30\relax
3266  \putlatom{-157}{42}{\@memberb}%     % left type

3267 {%

3268  \thicklines%
3269  \Put@Line(0,0)(-5,3){120}%        % single bond at 1

3270 }%

3271  \else\if\@tmpc A%(A) alpha
3272  \yl@xdiff=37\relax
3273  \yl@ydiff=28\relax
3274  \putlatom{-157}{-100}{\@memberb}%   % left type
3275  \dotorline(0,0)(-5,-3){120}/(0,0)(-120,-72)%

3276  \else\if\@tmpc u%(u) up --- (B) beta
3277  \yl@xdiff=37\relax
3278  \yl@ydiff=28\relax
3279  \putlatom{-157}{-100}{\@memberb}%   % left type

3280 {%

3281  \thicklines%
3282  \Put@Line(0,0)(-5,-3){120}%       % single bond at 1

3283 }%

3284  \else\if\@tmpc d%(d) down --- (A) alpha
3285  \yl@xdiff=37\relax
3286  \yl@ydiff=30\relax
3287  \putlatom{-157}{42}{\@memberb}%     % left type
3288  \dotorline(0,0)(-5,3){120}/(0,0)(-120,72)%
3289  \else\if\@tmpc b%(b) beta
3290  \yl@xdiff=37\relax
3291  \yl@ydiff=30\relax
3292  \putlatom{-157}{42}{\@memberb}%    % left type
3293  \Put@Line(0,0)(-5,3){120}%        % single bond at 1
3294  \else\if\@tmpc a%(a) alpha
3295  \yl@xdiff=37\relax
3296  \yl@ydiff=28\relax
3297  \putlatom{-157}{-100}{\@memberb}%   % left type
3298  \Put@Line(0,0)(-5,-3){120}%       % single bond at 1
3299  \else\if\@tmpc V%(V) beta undefined
3300  \yl@xdiff=37\relax
3301  \yl@ydiff=30\relax
3302  \putlatom{-157}{42}{\@memberb}%    % left type

3303 {%

3304  \WaveBonds%
3305  \Put@Line(0,0)(-5,3){120}%        % single bond at 1

3306 }%

3307  \else\if\@tmpc U%(U) alpha undefined
3308  \yl@xdiff=37\relax
3309  \yl@ydiff=28\relax
3310  \putlatom{-157}{-100}{\@memberb}%   % left type

3311 {%

3312  \WaveBonds%
3313  \Put@Line(0,0)(-5,-3){120}%       % single bond at 1

3314 }%

3315  \fi\fi\fi\fi\fi
3316  \fi\fi\fi\fi
3317 \else\if\@tmpb D%double bond
3318  \yl@xdiff=17\relax
3319  \yl@ydiff=31\relax
3320  \putlatom{-157}{-31}{\@memberb}%   % left type only
3321  \Put@Line(0,-12)(-1,0){140}%     % double bond at 1
3322  \Put@Line(0,12)(-1,0){140}%      % double bond at 1
3323 \else\if\@tmpb B%beta single bond
3324  \yl@xdiff=17\relax
3325  \yl@ydiff=31\relax
3326  \putlatom{-157}{-31}{\@memberb}%   % left type only

3327 {%

3328  \thicklines%
3329  \Put@Line(0,0)(-1,0){140}%       % single bond at 1

3330 }%

3331 \else\if\@tmpb A%alpha single bond
3332  \yl@xdiff=17\relax
3333  \yl@ydiff=31\relax
3334  \putlatom{-157}{-31}{\@memberb}%   % left type only
3335  \dotorline(0,0)(-1,0){140}/(0,0)(-140,0)%
3336 \else\if\@tmpb U%undefined single bond
3337  \yl@xdiff=17\relax
3338  \yl@ydiff=31\relax
3339  \putlatom{-157}{-31}{\@memberb}%    % left type only

3340 {%

3341  \WaveBonds%
3342  \Put@Line(0,0)(-1,0){140}%      % single wave bond at 1

3343 }%

3344 \else\if\@tmpb F%fused bond
3345  {\let\@tmpb=\@tmpc\@clipfusefalse
3346  \Put@Direct(0,0){\setatombondG}%

3347 }%

3348 \else\if\@tmpb G%fused bond
3349  {\let\@tmpb=\@tmpc\@clipfusefalse
3350  \Put@Direct(0,0){\setatombondD}%

3351 }%

3352 \else%
3353  \yl@xdiff=17\relax
3354  \yl@ydiff=31\relax
3355  \putlatom{-157}{-31}{\@memberb}%   % left type only
3356  \Put@Line(0,0)(-1,0){140}%       % single bond at 1
3357 \fi\fi\fi\fi%
3358 \fi\fi\fi
3359 \fi}%end of \@hsubsta

The \@hsubstb command is used for placing a substituent (\@memberb) at the 2-position (upper-left) of a vertical six-membered ring.

\@hsubstb
3360 % %%%%%%%%%%%%%%%
3361 % % subst. on 2 %
3362 % %%%%%%%%%%%%%%%
3363 \def\@hsubstb{%
3364 \if@bclip %clipping
3365 \if\@tmpb S%single bond
3366  \ifx\@tmpc\empty%
3367  \yl@xdiff=53\relax
3368  \yl@ydiff=5\relax
3369  \putlratom{-37}{331}{\@memberb}%
3370  \Put@Line(79,221)(-3,5){63}% % single bond at 2 (62=>63)
3371  \else\if\@tmpc B%(B) beta
3372  \yl@xdiff=0\relax
3373  \yl@ydiff=21\relax
3374  \putlatom{-41}{240}{\@memberb}%     % left type

3375 {%

3376  \thicklines%
3377  \Put@Line(59,201)(-5,3){100}%     % single bond at 2

3378 }%

3379  \else\if\@tmpc A%(A) alpha
3380  \yl@xdiff=30\relax
3381  \yl@ydiff=-10\relax
3382  \putratom{73}{331}{\@memberb}%      % right type
3383  \dotorline(103,221)(0,1){100}/(103,221)(103,321)%
3384  \else\if\@tmpc u%(u) up --- (B) beta
3385  \yl@xdiff=30\relax
3386  \yl@ydiff=-10\relax
3387  \putlratom{73}{331}{\@memberb}%      % left-right type

3388 {%

3389  \thicklines%
3390  \Put@Line(103,221)(0,1){100}%     % single bond at 2

3391 }%

3392  \else\if\@tmpc d%(d) down --- (A) alpha
3393  \yl@xdiff=0\relax
3394  \yl@ydiff=21\relax
3395  \putlatom{-41}{240}{\@memberb}%     % left type
3396  \dotorline(59,201)(-5,3){100}/(59,201)(-41,261)%
3397  \else\if\@tmpc b%(b) beta
3398  \yl@xdiff=0\relax
3399  \yl@ydiff=21\relax
3400  \putlatom{-41}{240}{\@memberb}%     % left type
3401  \Put@Line(59,201)(-5,3){100}%     % single bond at 2
3402  \else\if\@tmpc a%(a) alpha
3403  \yl@xdiff=30\relax
3404  \yl@ydiff=-10\relax
3405  \putlratom{73}{331}{\@memberb}%      % left-right type
3406  \Put@Line(103,221)(0,1){100}%     % single bond at 2
3407  \else\if\@tmpc V%(V) beta undefined
3408  \yl@xdiff=0\relax
3409  \yl@ydiff=21\relax
3410  \putlatom{-41}{240}{\@memberb}%     % left type

3411 {%

3412  \WaveBonds%
3413  \Put@Line(59,201)(-5,3){100}%     % single bond at 2

3414 }%

3415  \else\if\@tmpc U%(U) alpha undefined
3416  \yl@xdiff=30\relax
3417  \yl@ydiff=-10\relax
3418  \putlratom{73}{331}{\@memberb}%      % left-right type

3419 {%

3420  \WaveBonds%
3421  \Put@Line(103,221)(0,1){100}%     % single bond at 2

3422 }%

3423  \fi\fi\fi\fi\fi%
3424  \fi\fi\fi\fi
3425 \else\if\@tmpb D%double bond
3426  \yl@xdiff=59\relax
3427  \yl@ydiff=-13\relax
3428  \putlratom{-37}{331}{\@memberb}%
3429  \Put@Line(78,208)(-3,5){63}% % double bond at 2(62->63)
3430  \Put@Line(100,219)(-3,5){63}% % double bond at 2(62->63)
3431 \else\if\@tmpb B%beta single bond
3432  \yl@xdiff=53\relax

3433  \yl@ydiff=5\relax
3434  \putlratom{-37}{331}{\@memberb}%

3435 {%

3436  \thicklines%
3437  \Put@Line(79,221)(-3,5){63}% % single bond at 2 (62->63)

3438 }%

3439 \else\if\@tmpb A%alpha single bond
3440  \yl@xdiff=53\relax
3441  \yl@ydiff=5\relax
3442  \putlratom{-37}{331}{\@memberb}%
3443  \dotorline(79,221)(-3,5){63}/(79,221)(16,326)%
3444 \else\if\@tmpb U%undefined single bond
3445  \yl@xdiff=53\relax
3446  \yl@ydiff=5\relax
3447  \putlratom{-37}{331}{\@memberb}%

3448 {%

3449  \WaveBonds%
3450  \Put@Line(79,221)(-3,5){63}%      % single wave bond at 1

3451 }%

3452 \else\if\@tmpb F%fused bond
3453  {\let\@tmpb=\@tmpc\@clipfusetrue
3454  \Put@Direct(103,171){\setatombondh}%

3455 }%

3456 \else\if\@tmpb G%fused bond
3457  {\let\@tmpb=\@tmpc\@clipfusetrue
3458  \Put@Direct(103,171){\setatombondF}%

3459 }%

3460 \else%
3461  \yl@xdiff=53\relax
3462  \yl@ydiff=5\relax
3463  \putlratom{-37}{331}{\@memberb}%
3464  \Put@Line(79,221)(-3,5){63}% % single bond at 2 (62->63)
3465 \fi\fi\fi\fi%
3466 \fi\fi\fi
3467 \else%%no clipping
3468 \if\@tmpb S%single bond
3469  \ifx\@tmpc\empty%
3470  \yl@xdiff=58\relax
3471  \yl@ydiff=-21\relax
3472  \putlratom{-27}{311}{\@memberb}%
3473  \Put@Line(103,171)(-3,5){72}%     % single bond at 2
3474  \else\if\@tmpc B%(B) beta
3475  \yl@xdiff=14\relax
3476  \yl@ydiff=-3\relax
3477  \putlatom{-31}{240}{\@memberb}%     % left type

3478 {%

3479  \thicklines%
3480  \Put@Line(103,171)(-5,3){120}%    % single bond at 2

3481 }%

3482  \else\if\@tmpc A%(A) alpha
3483  \yl@xdiff=30\relax
3484  \yl@ydiff=-20\relax
3485  \putlratom{73}{331}{\@memberb}%      % left-right type
3486  \dotorline(103,171)(0,1){140}/(103,171)(103,311)%

3487  \else\if\@tmpc u%(u) up --- (B) beta
3488  \yl@xdiff=30\relax
3489  \yl@ydiff=-20\relax
3490  \putlratom{73}{331}{\@memberb}%      % left-right type

3491 {%

3492  \thicklines%
3493  \Put@Line(103,171)(0,1){140}%     % single bond at 2

3494 }%

3495  \else\if\@tmpc d%(d) down --- (A) alpha
3496  \yl@xdiff=14\relax
3497  \yl@ydiff=-3\relax
3498  \putlatom{-31}{240}{\@memberb}%     % left type
3499  \dotorline(103,171)(-5,3){120}/(103,171)(-7,243)%
3500  \else\if\@tmpc b%(b) beta
3501  \yl@xdiff=14\relax
3502  \yl@ydiff=-3\relax
3503  \putlatom{-31}{240}{\@memberb}%     % left type
3504  \Put@Line(103,171)(-5,3){120}%    % single bond at 2
3505  \else\if\@tmpc a%(a) alpha
3506  \yl@xdiff=30\relax
3507  \yl@ydiff=-20\relax
3508  \putlratom{73}{331}{\@memberb}%      % left-right type
3509  \Put@Line(103,171)(0,1){140}%     % single bond at 2
3510  \else\if\@tmpc V%(V) beta undefined
3511  \yl@xdiff=14\relax
3512  \yl@ydiff=-3\relax
3513  \putlatom{-31}{240}{\@memberb}%     % left type

3514 {%

3515  \WaveBonds%
3516  \Put@Line(103,171)(-5,3){120}%    % single bond at 2

3517 }%

3518  \else\if\@tmpc U%(U) alpha undefined
3519  \yl@xdiff=30\relax
3520  \yl@ydiff=-20\relax
3521  \putlratom{73}{331}{\@memberb}%      % left-right type

3522 {%

3523  \WaveBonds%
3524  \Put@Line(103,171)(0,1){140}%     % single bond at 2

3525 }%

3526  \fi\fi\fi\fi\fi%
3527  \fi\fi\fi\fi
3528 \else\if\@tmpb D%double bond
3529  \yl@xdiff=64\relax
3530  \yl@ydiff=-21\relax
3531  \putlratom{-27}{311}{\@memberb}%
3532  \Put@Line(96,168)(-3,5){72}%      % double bond at 2
3533  \Put@Line(121,174)(-3,5){72}%     % double bond at 2
3534 \else\if\@tmpb B%beta single bond
3535  \yl@xdiff=58\relax
3536  \yl@ydiff=-21\relax
3537  \putlratom{-27}{311}{\@memberb}%

3538 {%

3539  \thicklines%
3540  \Put@Line(103,171)(-3,5){72}%     % single bond at 2

3541 }%

3542 \else\if\@tmpb A%alpha single bond
3543  \yl@xdiff=58\relax
3544  \yl@ydiff=-21\relax
3545  \putlratom{-27}{311}{\@memberb}%
3546  \dotorline(103,171)(-3,5){72}/(103,171)(31,291)%
3547 \else\if\@tmpb U%undefined single bond
3548  \yl@xdiff=58\relax
3549  \yl@ydiff=-21\relax
3550  \putlratom{-27}{311}{\@memberb}%

3551 {%

3552  \WaveBonds%
3553  \Put@Line(103,171)(-3,5){72}%      % single wave bond at 1

3554 }%

3555 \else\if\@tmpb F%fused bond
3556  {\let\@tmpb=\@tmpc\@clipfusefalse
3557  \Put@Direct(103,171){\setatombondh}%

3558 }%

3559 \else\if\@tmpb G%fused bond
3560  {\let\@tmpb=\@tmpc\@clipfusefalse
3561  \Put@Direct(103,171){\setatombondF}%

3562 }%

3563 \else%
3564  \yl@xdiff=58\relax
3565  \yl@ydiff=-21\relax
3566  \putlratom{-27}{311}{\@memberb}%
3567  \Put@Line(103,171)(-3,5){72}%     % single bond at 2
3568 \fi\fi\fi\fi%
3569 \fi\fi\fi
3570 \fi}% end of \@hsubstb

The \@hsubstc command is used for placing a substituent (\@memberb) at the 3-position (upper-right) of a vertical six-membered ring.

\@hsubstc
3571 % %%%%%%%%%%%%%%%
3572 % % subst. on 3 %
3573 % %%%%%%%%%%%%%%%
3574 \def\@hsubstc{%
3575 \if@cclip %clipping
3576 \if\@tmpb S%single bond
3577  \ifx\@tmpc\empty%
3578  \yl@xdiff=33\relax
3579  \yl@ydiff=5\relax
3580  \putratom{373}{331}{\@memberb}%
3581  \Put@Line(343,221)(3,5){63}% % single bond at 3 (62->63)
3582  \else\if\@tmpc B%(B) beta
3583  \yl@xdiff=0\relax
3584  \yl@ydiff=21\relax
3585  \putratom{443}{240}{\@memberb}%     % right type

3586 {%

3587  \thicklines%
3588  \Put@Line(343,201)(5,3){100}%     % single bond at 3

3589 }%

3590  \else\if\@tmpc A%(A) alpha
3591  \yl@xdiff=30\relax
3592  \yl@ydiff=0\relax
3593  \putlratom{273}{331}{\@memberb}%     % left-right type
3594  \dotorline(303,221)(0,1){110}/(303,221)(303,321)%
3595  \else\if\@tmpc u%(u) up --- (B) beta
3596  \yl@xdiff=30\relax
3597  \yl@ydiff=0\relax
3598  \putlratom{273}{331}{\@memberb}%     % left-right type

3599 {%

3600  \thicklines%
3601  \Put@Line(303,221)(0,1){100}%     % single bond at 3

3602 }%

3603  \else\if\@tmpc d%(d) down --- (A) alpha
3604  \yl@xdiff=0\relax
3605  \yl@ydiff=21\relax
3606  \putratom{443}{240}{\@memberb}%     % right type
3607  \dotorline(343,201)(5,3){100}/(343,201)(443,261)%
3608  \else\if\@tmpc b%(b) beta
3609  \yl@xdiff=0\relax
3610  \yl@ydiff=21\relax
3611  \putratom{443}{240}{\@memberb}%     % right type
3612  \Put@Line(343,201)(5,3){100}%     % single bond at 3
3613  \else\if\@tmpc a%(a) alpha
3614  \yl@xdiff=30\relax
3615  \yl@ydiff=0\relax
3616  \putlratom{273}{331}{\@memberb}%     % left-right type
3617  \Put@Line(303,221)(0,1){100}%     % single bond at 3
3618  \else\if\@tmpc V%(V) beta undefined
3619  \yl@xdiff=0\relax
3620  \yl@ydiff=21\relax
3621  \putratom{443}{240}{\@memberb}%     % right type

3622 {%

3623  \WaveBonds%
3624  \Put@Line(343,201)(5,3){100}%     % single bond at 3

3625 }%

3626  \else\if\@tmpc U%(U) alpha undefined
3627  \yl@xdiff=30\relax
3628  \yl@ydiff=0\relax
3629  \putlratom{273}{331}{\@memberb}%     % left-right type

3630 {%

3631  \WaveBonds%
3632  \Put@Line(303,221)(0,1){100}%     % single bond at 3

3633 }%

3634  \fi\fi\fi\fi\fi%
3635  \fi\fi\fi\fi
3636 \else\if\@tmpb D%double bond
3637  \yl@xdiff=12\relax
3638  \yl@ydiff=-18\relax
3639  \putratom{373}{331}{\@memberb}%
3640  \Put@Line(328,208)(3,5){63}%  % double bond at 3
3641  \Put@Line(303,214)(3,5){63}%  % double bond at 3
3642 \else\if\@tmpb B%beta single bond
3643  \yl@xdiff=33\relax

3644  \yl@ydiff=5\relax
3645  \putratom{373}{331}{\@memberb}%

3646 {%

3647  \thicklines%
3648  \Put@Line(343,221)(3,5){63}%  % single bond at 3

3649 }%

3650 \else\if\@tmpb A%alpha single bond
3651  \yl@xdiff=33\relax
3652  \yl@ydiff=5\relax
3653  \putratom{373}{331}{\@memberb}%
3654  \dotorline(343,221)(3,5){63}/(343,221)(406,326)%
3655 \else\if\@tmpb U%undefined single bond
3656  \yl@xdiff=33\relax
3657  \yl@ydiff=5\relax
3658  \putratom{373}{331}{\@memberb}%

3659 {%

3660  \WaveBonds%
3661  \Put@Line(343,221)(3,5){63}%      % single wave bond at 3

3662 }%

3663 \else\if\@tmpb F%fused bond
3664  {\let\@tmpb=\@tmpc\@clipfusetrue
3665  \Put@Direct(303,171){\setatombondD}%

3666 }%

3667 \else\if\@tmpb G%fused bond
3668  {\let\@tmpb=\@tmpc\@clipfusetrue
3669  \Put@Direct(303,171){\setatombondb}%

3670 }%

3671 \else%
3672  \yl@xdiff=33\relax
3673  \yl@ydiff=5\relax
3674  \putratom{373}{331}{\@memberb}%
3675  \Put@Line(343,221)(3,5){63}%  % single bond at 3 (62->63)
3676 \fi\fi\fi\fi%
3677 \fi\fi\fi
3678 \else%no clipping
3679 \if\@tmpb S%single bond
3680  \ifx\@tmpc\empty%
3681  \yl@xdiff=12\relax
3682  \yl@ydiff=-20\relax
3683  \putratom{363}{311}{\@memberb}%
3684  \Put@Line(303,171)(3,5){72}%      % single bond at 3
3685  \else\if\@tmpc B%(B) beta
3686  \yl@xdiff=-20\relax
3687  \yl@ydiff=3\relax
3688  \putratom{443}{240}{\@memberb}%     % right type

3689 {%

3690  \thicklines%
3691  \Put@Line(303,171)(5,3){120}%     % single bond at 3

3692 }%

3693  \else\if\@tmpc A%(A) alpha
3694  \yl@xdiff=30\relax
3695  \yl@ydiff=-20\relax
3696  \putratom{273}{331}{\@memberb}%     % right type
3697  \dotorline(303,171)(0,1){140}/(303,171)(303,311)%

3698  \else\if\@tmpc u%(u) up  --- (B) beta
3699  \yl@xdiff=30\relax
3700  \yl@ydiff=-20\relax
3701  \putratom{273}{331}{\@memberb}%     % right type

3702 {%

3703  \thicklines%
3704  \Put@Line(303,171)(0,1){140}%     % single bond at 3

3705 }%

3706  \else\if\@tmpc d%(d) down --- (A) alpha
3707  \yl@xdiff=-20\relax
3708  \yl@ydiff=3\relax
3709  \putratom{443}{240}{\@memberb}%     % right type
3710  \dotorline(303,171)(5,3){120}/(303,171)(423,243)%
3711  \else\if\@tmpc b%(b) beta
3712  \yl@xdiff=-20\relax
3713  \yl@ydiff=3\relax
3714  \putratom{443}{240}{\@memberb}%     % right type
3715  \Put@Line(303,171)(5,3){120}%     % single bond at 3
3716  \else\if\@tmpc a%(a) alpha
3717  \yl@xdiff=30\relax
3718  \yl@ydiff=-20\relax
3719  \putratom{273}{331}{\@memberb}%     % right type
3720  \Put@Line(303,171)(0,1){140}%     % single bond at 3
3721  \else\if\@tmpc V%(V) beta undefined
3722  \yl@xdiff=-20\relax
3723  \yl@ydiff=3\relax
3724  \putratom{443}{240}{\@memberb}%     % right type

3725 {%

3726  \WaveBonds%
3727  \Put@Line(303,171)(5,3){120}%     % single bond at 3

3728 }%

3729  \else\if\@tmpc U%(U) alpha undefined
3730  \yl@xdiff=30\relax
3731  \yl@ydiff=-20\relax
3732  \putratom{273}{331}{\@memberb}%     % right type

3733 {%

3734  \WaveBonds%
3735  \Put@Line(303,171)(0,1){140}%     % single bond at 3

3736 }%

3737  \fi\fi\fi\fi\fi%
3738  \fi\fi\fi\fi%
3739 \else\if\@tmpb D%double bond
3740  \yl@xdiff=6\relax
3741  \yl@ydiff=-20\relax
3742  \putratom{363}{311}{\@memberb}%
3743  \Put@Line(310,168)(3,5){72}%      % double bond at 3
3744  \Put@Line(284,174)(3,5){72}%      % double bond at 3
3745 \else\if\@tmpb B%beta single bond
3746  \yl@xdiff=12\relax
3747  \yl@ydiff=-20\relax
3748  \putratom{363}{311}{\@memberb}%

3749 {%

3750  \thicklines%
3751  \Put@Line(303,171)(3,5){72}%      % single bond at 3

3752 }%

3753 \else\if\@tmpb A%alpha single bond
3754  \yl@xdiff=12\relax
3755  \yl@ydiff=-20\relax
3756  \putratom{363}{311}{\@memberb}%
3757  \dotorline(303,171)(3,5){72}/(303,171)(375,291)%
3758 \else\if\@tmpb U%undefined single bond
3759  \yl@xdiff=12\relax
3760  \yl@ydiff=-20\relax
3761  \putratom{363}{311}{\@memberb}%

3762 {%

3763  \WaveBonds%
3764  \Put@Line(303,171)(3,5){72}%      % single wave bond at 3

3765 }%

3766 \else\if\@tmpb F%fused bond
3767  {\let\@tmpb=\@tmpc\@clipfusefalse
3768  \Put@Direct(303,171){\setatombondD}%

3769 }%

3770 \else\if\@tmpb G%fused bond
3771  {\let\@tmpb=\@tmpc\@clipfusefalse
3772  \Put@Direct(303,171){\setatombondb}%

3773 }%

3774 \else%
3775  \yl@xdiff=12\relax
3776  \yl@ydiff=-20\relax
3777  \putratom{363}{311}{\@memberb}%
3778  \Put@Line(303,171)(3,5){72}%      % single bond at 3
3779 \fi\fi\fi\fi%
3780 \fi\fi\fi
3781 \fi}% end of \@hsubstc

The \@hsubstd command is used for placing a substituent (\@memberb) at the 4-position (right-hand) of a vertical six-membered ring.

\@substd
3782 % %%%%%%%%%%%%%%%
3783 % % subst. on 4 %
3784 % %%%%%%%%%%%%%%%
3785 \def\@hsubstd{%
3786 \if@clip %clipping
3787 \if\@tmpb S%single bond
3788  \ifx\@tmpc\empty%
3789  \yl@xdiff=-17\relax
3790  \yl@ydiff=31\relax
3791  \putratom{563}{-31}{\@memberb}%    % right type only
3792  \Put@Line(436,0)(1,0){110}%     % single bond at 4
3793  \else\if\@tmpc B%(B) beta
3794  \yl@xdiff=-27\relax
3795  \yl@ydiff=36\relax
3796  \putratom{563}{42}{\@memberb}%     % right type only

3797 {%

3798  \thicklines%
3799  \Put@Line(436,18)(5,3){100}%     % single bond at 4

3800 }%

3801  \else\if\@tmpc A%(A) alpha
3802  \yl@xdiff=-27\relax
3803  \yl@ydiff=22\relax
3804  \putratom{563}{-100}{\@memberb}%   % right type only
3805  \dotorline(436,-18)(5,-3){100}/(436,-18)(526,-72)%
3806  \else\if\@tmpc u%(u) up --- (B) beta
3807  \yl@xdiff=-27\relax
3808  \yl@ydiff=22\relax
3809  \putratom{563}{-100}{\@memberb}%   % right type only

3810 {%

3811  \thicklines%
3812  \Put@Line(436,-18)(5,-3){100}%   % single bond at 4

3813 }%

3814  \else\if\@tmpc d%(d) down --- (A) alpha
3815  \yl@xdiff=-27\relax
3816  \yl@ydiff=36\relax
3817  \putratom{563}{42}{\@memberb}%     % right type only
3818  \dotorline(436,18)(5,3){100}/(436,18)(536,78)%
3819  \else\if\@tmpc b%(b) beta
3820  \yl@xdiff=-27\relax
3821  \yl@ydiff=36\relax
3822  \putratom{563}{42}{\@memberb}%     % right type only
3823  \Put@Line(436,18)(5,3){100}%     % single bond at 4
3824  \else\if\@tmpc a%(a) alpha
3825  \yl@xdiff=-27\relax
3826  \yl@ydiff=22\relax
3827  \putratom{563}{-100}{\@memberb}%   % right type only
3828  \Put@Line(436,-18)(5,-3){100}%   % single bond at 4
3829  \else\if\@tmpc V%(V) beta undefined
3830  \yl@xdiff=-27\relax
3831  \yl@ydiff=36\relax
3832  \putratom{563}{42}{\@memberb}%     % right type only

3833 {%

3834  \WaveBonds%
3835  \Put@Line(436,18)(5,3){100}%     % single bond at 4

3836 }%

3837  \else\if\@tmpc U%(U) alpha undefined
3838  \yl@xdiff=-27\relax
3839  \yl@ydiff=22\relax
3840  \putratom{563}{-100}{\@memberb}%   % right type only

3841 {%

3842  \WaveBonds%
3843  \Put@Line(436,-18)(5,-3){100}%   % single bond at 4

3844 }%

3845  \fi\fi\fi\fi\fi%
3846  \fi\fi\fi\fi
3847 \else\if\@tmpb D%double bond
3848  \yl@xdiff=-17\relax
3849  \yl@ydiff=31\relax
3850  \putratom{563}{-31}{\@memberb}%    % right type only
3851  \Put@Line(436,-12)(1,0){110}%    % double bond at 4
3852  \Put@Line(436,12)(1,0){110}%     % double bond at 4
3853 \else\if\@tmpb B%beta single bond
3854  \yl@xdiff=-17\relax

3855  \yl@ydiff=31\relax
3856  \putratom{563}{-31}{\@memberb}%    % right type only

3857 {%

3858  \thicklines%
3859  \Put@Line(436,0)(1,0){110}%     % single bond at 4

3860 }%

3861 \else\if\@tmpb A%alpha single bond
3862  \yl@xdiff=-17\relax
3863  \yl@ydiff=31\relax
3864  \putratom{563}{-31}{\@memberb}%    % right type only
3865  \dotorline(436,0)(1,0){110}/(436,0)(546,0)%
3866 \else\if\@tmpb U%undefined single bond
3867  \yl@xdiff=-17\relax
3868  \yl@ydiff=31\relax
3869  \putratom{563}{-31}{\@memberb}%    % right type only

3870 {%

3871  \WaveBonds%
3872  \Put@Line(436,0)(1,0){110}%      % single wave bond at 3

3873 }%

3874 \else\if\@tmpb F%fused bond
3875  {\let\@tmpb=\@tmpc\@clipfusetrue
3876  \Put@Direct(406,0){\setatombondF}%

3877 }%

3878 \else\if\@tmpb G%fused bond
3879  {\let\@tmpb=\@tmpc\@clipfusetrue
3880  \Put@Direct(406,0){\setatombondE}%

3881 }%

3882 \else%
3883  \yl@xdiff=-17\relax
3884  \yl@ydiff=31\relax
3885  \putratom{563}{-31}{\@memberb}%    % right type only
3886  \Put@Line(436,0)(1,0){110}%     % single bond at 4
3887 \fi\fi\fi\fi%
3888 \fi\fi\fi
3889 \else%% no clipping
3890 \if\@tmpb S%single bond
3891  \ifx\@tmpc\empty%
3892  \yl@xdiff=-17\relax
3893  \yl@ydiff=31\relax
3894  \putratom{563}{-31}{\@memberb}%    % right type only
3895  \Put@Line(406,0)(1,0){140}%     % single bond at 4
3896  \else\if\@tmpc B%(B) beta
3897  \yl@xdiff=-37\relax
3898  \yl@ydiff=30\relax
3899  \putratom{563}{42}{\@memberb}%     % right type only

3900 {%

3901  \thicklines%
3902  \Put@Line(406,0)(5,3){120}%      % single bond at 4

3903 }%

3904  \else\if\@tmpc A%(A) alpha
3905  \yl@xdiff=-37\relax
3906  \yl@ydiff=28\relax
3907  \putratom{563}{-100}{\@memberb}%   % right type only
3908  \dotorline(406,0)(5,-3){120}/(406,0)(526,-72)%

3909 \else\if\@tmpc u%(u) up --- (B) beta
3910  \yl@xdiff=-37\relax
3911  \yl@ydiff=28\relax
3912  \putratom{563}{-100}{\@memberb}%   % right type only

3913 {%

3914  \thicklines%
3915  \Put@Line(406,0)(5,-3){120}%     % single bond at 4

3916 }%

3917  \else\if\@tmpc d%(d) down --- (A) alpha
3918  \yl@xdiff=-37\relax
3919  \yl@ydiff=30\relax
3920  \putratom{563}{42}{\@memberb}%     % right type only
3921  \dotorline(406,0)(5,3){120}/(406,0)(526,72)%
3922  \else\if\@tmpc b%(b) beta
3923  \yl@xdiff=-37\relax
3924  \yl@ydiff=30\relax
3925  \putratom{563}{42}{\@memberb}%     % right type only
3926  \Put@Line(406,0)(5,3){120}%      % single bond at 4
3927  \else\if\@tmpc a%(a) alpha
3928  \yl@xdiff=-37\relax
3929  \yl@ydiff=28\relax
3930  \putratom{563}{-100}{\@memberb}%   % right type only
3931  \Put@Line(406,0)(5,-3){120}%     % single bond at 4
3932  \else\if\@tmpc V%(V) beta undefined
3933  \yl@xdiff=-37\relax
3934  \yl@ydiff=30\relax
3935  \putratom{563}{42}{\@memberb}%     % right type only

3936 {%

3937  \WaveBonds%
3938  \Put@Line(406,0)(5,3){120}%      % single bond at 4

3939 }%

3940  \else\if\@tmpc U%(U) alpha undefined
3941  \yl@xdiff=-37\relax
3942  \yl@ydiff=28\relax
3943  \putratom{563}{-100}{\@memberb}%   % right type only

3944 {%

3945  \WaveBonds%
3946  \Put@Line(406,0)(5,-3){120}%     % single bond at 4

3947 }%

3948  \fi\fi\fi\fi\fi%
3949  \fi\fi\fi\fi
3950 \else\if\@tmpb D%double bond
3951  \yl@xdiff=-17\relax
3952  \yl@ydiff=31\relax
3953  \putratom{563}{-31}{\@memberb}%    % right type only
3954  \Put@Line(406,-12)(1,0){140}%    % double bond at 4
3955  \Put@Line(406,12)(1,0){140}%     % double bond at 4
3956 \else\if\@tmpb B%beta single bond
3957  \yl@xdiff=-17\relax
3958  \yl@ydiff=31\relax
3959  \putratom{563}{-31}{\@memberb}%    % right type only

3960 {%

3961  \thicklines%
3962  \Put@Line(406,0)(1,0){140}%     % single bond at 4

3963 }%

3964 \else\if\@tmpb A%alpha single bond
3965  \yl@xdiff=-17\relax
3966  \yl@ydiff=31\relax
3967  \putratom{563}{-31}{\@memberb}%    % right type only
3968  \dotorline(406,0)(1,0){140}/(406,0)(546,0)%
3969 \else\if\@tmpb U%undefined single bond
3970  \yl@xdiff=-17\relax
3971  \yl@ydiff=31\relax
3972  \putratom{563}{-31}{\@memberb}%    % right type only

3973 {%

3974  \WaveBonds%
3975  \Put@Line(406,0)(1,0){140}%      % single wave bond at 4

3976 }%

3977 \else\if\@tmpb F%fused bond
3978  {\let\@tmpb=\@tmpc\@clipfusefalse
3979  \Put@Direct(406,0){\setatombondF}%

3980 }%

3981 \else\if\@tmpb G%fused bond
3982  {\let\@tmpb=\@tmpc\@clipfusefalse
3983  \Put@Direct(406,0){\setatombondE}%

3984 }%

3985 \else%
3986  \yl@xdiff=-17\relax
3987  \yl@ydiff=31\relax
3988  \putratom{563}{-31}{\@memberb}%    % right type only
3989  \Put@Line(406,0)(1,0){140}%     % single bond at 4
3990 \fi\fi\fi\fi%
3991 \fi\fi\fi
3992 \fi}% end of \@hsubstd

The \@hsubste command is used for placing a substituent (\@memberb) at the 5-position (lower-right) of a vertical six-membered ring.

\@hsubste
3993 % %%%%%%%%%%%%%%%
3994 % % subst. on 5 %
3995 % %%%%%%%%%%%%%%%
3996 \def\@hsubste{%
3997 \if@eclip %clipping
3998 \if\@tmpb S%single bond
3999  \ifx\@tmpc\empty%
4000 %      \yl@xdiff=43\relax
4001  \yl@xdiff=33\relax
4002  \yl@ydiff=76\relax
4003 %           \putratom{363}{-402}{\@memberb}%
4004  \putratom{373}{-402}{\@memberb}%
4005  \Put@Line(343,-221)(3,-5){63}%% single bond at 5 (62=>63)
4006  \else\if\@tmpc B%(B) beta
4007  \yl@xdiff=0\relax
4008  \yl@ydiff=41\relax
4009  \putratom{443}{-301}{\@memberb}%    % right type

4010 {%

4011  \thicklines%

4012  \Put@Line(343,-201)(5,-3){100}%   % single bond at 5

4013 }%

4014  \else\if\@tmpc A%(A) alpha
4015 %      \yl@xdiff=20\relax
4016  \yl@xdiff=30\relax
4017  \yl@ydiff=71\relax
4018 %           \putratom{283}{-402}{\@memberb}%    % right type
4019  \putlratom{273}{-402}{\@memberb}%    % left-right type
4020 %           \dotorline(303,-221)(0,-1){110}/(303,-221)(303,-321)%
4021  \dotorline(303,-221)(0,-1){110}/(303,-221)(303,-311)%
4022  \else\if\@tmpc u%(u) up --- (B) beta
4023 %      \yl@xdiff=20\relax
4024  \yl@xdiff=30\relax
4025  \yl@ydiff=71\relax
4026 %           \putratom{283}{-402}{\@memberb}%    % right type
4027  \putlratom{273}{-402}{\@memberb}%    % left-right type

4028 {%

4029  \thicklines%
4030  \Put@Line(303,-221)(0,-1){100}%   % single bond at 5

4031 }%

4032  \else\if\@tmpc d%(d) down --- (A) alpha
4033  \yl@xdiff=0\relax
4034  \yl@ydiff=41\relax
4035  \putratom{443}{-301}{\@memberb}%    % right type
4036  \dotorline(343,-201)(5,-3){100}/(343,-201)(443,-260)%
4037  \else\if\@tmpc b%(b) beta
4038  \yl@xdiff=0\relax
4039  \yl@ydiff=41\relax
4040  \putratom{443}{-301}{\@memberb}%    % right type
4041  \Put@Line(343,-201)(5,-3){100}%   % single bond at 5
4042  \else\if\@tmpc a%(a) alpha
4043 %      \yl@xdiff=20\relax
4044  \yl@xdiff=30\relax
4045  \yl@ydiff=71\relax
4046 %           \putratom{283}{-402}{\@memberb}%    % right type
4047  \putratom{273}{-402}{\@memberb}%    % left-right type
4048  \Put@Line(303,-221)(0,-1){100}%   % single bond at 5
4049  \else\if\@tmpc V%(V) beta undefined
4050  \yl@xdiff=0\relax
4051  \yl@ydiff=41\relax
4052  \putratom{443}{-301}{\@memberb}%    % right type

4053 {%

4054  \WaveBonds%
4055  \Put@Line(343,-201)(5,-3){100}%   % single bond at 5

4056 }%

4057  \else\if\@tmpc U%(U) alpha undefined
4058  \yl@xdiff=30\relax
4059  \yl@ydiff=71\relax
4060  \putratom{273}{-402}{\@memberb}%    % left-right type

4061 {%

4062  \WaveBonds%
4063  \Put@Line(303,-221)(0,-1){100}%   % single bond at 5

4064 }%

4065  \fi\fi\fi\fi\fi%

4066  \fi\fi\fi\fi
4067 \else\if\@tmpb D%double bond
4068 %      \yl@xdiff=22\relax
4069  \yl@xdiff=12\relax
4070  \yl@ydiff=82\relax
4071 %           \putratom{363}{-402}{\@memberb}%
4072  \putratom{373}{-402}{\@memberb}%
4073  \Put@Line(328,-208)(3,-5){63}% % double bond at 5 (62->63)
4074  \Put@Line(306,-224)(3,-5){63}% % double bond at 5 (62->63)
4075 \else\if\@tmpb B%beta single bond
4076 %      \yl@xdiff=43\relax
4077  \yl@xdiff=33\relax
4078  \yl@ydiff=76\relax
4079 %           \putratom{363}{-402}{\@memberb}%
4080  \putratom{373}{-402}{\@memberb}%

4081 {%

4082  \thicklines%
4083  \Put@Line(343,-221)(3,-5){63}%% single bond at 5(62->63)

4084 }%

4085 \else\if\@tmpb A%alpha single bond
4086  \yl@xdiff=33\relax
4087  \yl@ydiff=76\relax
4088  \putratom{373}{-402}{\@memberb}%
4089  \dotorline(343,-221)(3,-5){63}/(343,-221)(406,-326)%
4090 \else\if\@tmpb U%undefined single bond
4091  \yl@xdiff=33\relax
4092  \yl@ydiff=76\relax
4093  \putratom{373}{-402}{\@memberb}%

4094 {%

4095  \WaveBonds%
4096  \Put@Line(343,-221)(3,-5){63}%      % single wave bond at 5

4097 }%

4098 \else\if\@tmpb F%fused bond
4099  {\let\@tmpb=\@tmpc\@clipfusetrue
4100  \Put@Direct(303,-171){\setatombondb}%

4101 }%

4102 \else\if\@tmpb G%fused bond
4103  {\let\@tmpb=\@tmpc\@clipfusetrue
4104  \Put@Direct(303,-171){\setatombondG}%

4105 }%

4106 \else%
4107 %      \yl@xdiff=43\relax
4108  \yl@xdiff=33\relax
4109  \yl@ydiff=76\relax
4110 %         \putratom{363}{-402}{\@memberb}%
4111  \putratom{373}{-402}{\@memberb}%
4112  \Put@Line(343,-221)(3,-5){63}% % single bond at 5(62->63)
4113 \fi\fi\fi\fi%
4114 \fi\fi\fi
4115 \else%no clipping
4116 \if\@tmpb S%single bond
4117  \ifx\@tmpc\empty%
4118  \yl@xdiff=9\relax
4119 %      \yl@ydiff=111\relax

4120  \yl@ydiff=91\relax
4121 %           \putratom{363}{-402}{\@memberb}%
4122  \putratom{363}{-382}{\@memberb}%
4123  \Put@Line(303,-171)(3,-5){72}%    % single bond at 5
4124  \else\if\@tmpc B%(B) beta
4125  \yl@xdiff=-20\relax
4126  \yl@ydiff=58\relax
4127  \putratom{443}{-301}{\@memberb}%    % right type

4128 {%

4129  \thicklines%
4130  \Put@Line(303,-171)(5,-3){120}%   % single bond at 5

4131 }%

4132  \else\if\@tmpc A%(A) alpha
4133 %      \yl@xdiff=20\relax
4134  \yl@xdiff=30\relax
4135  \yl@ydiff=81\relax
4136 %           \putratom{283}{-402}{\@memberb}%    % right type
4137  \putratom{273}{-402}{\@memberb}%    % right type
4138 %           \dotorline(303,-171)(0,-1){140}/(303,-171)(303,-321)%
4139  \dotorline(303,-171)(0,-1){140}/(303,-171)(303,-311)%2002/5/30
4140  \else\if\@tmpc u%(u) up --- (B) beta
4141 %      \yl@xdiff=20\relax
4142  \yl@xdiff=30\relax
4143  \yl@ydiff=81\relax
4144 %           \putratom{283}{-402}{\@memberb}%    % right type
4145  \putratom{273}{-402}{\@memberb}%    % right type

4146 {%

4147  \thicklines%
4148  \Put@Line(303,-171)(0,-1){140}%   % single bond at 5

4149 }%

4150  \else\if\@tmpc d%(d) down --- (A) alpha
4151  \yl@xdiff=-20\relax
4152  \yl@ydiff=58\relax
4153  \putratom{443}{-301}{\@memberb}%    % right type
4154  \dotorline(303,-171)(5,-3){120}/(303,-171)(423,-243)%
4155  \else\if\@tmpc b%(b) beta
4156  \yl@xdiff=-20\relax
4157  \yl@ydiff=58\relax
4158  \putratom{443}{-301}{\@memberb}%    % right type
4159  \Put@Line(303,-171)(5,-3){120}%   % single bond at 5
4160  \else\if\@tmpc a%(a) alpha
4161 %      \yl@xdiff=20\relax
4162  \yl@xdiff=30\relax
4163  \yl@ydiff=81\relax
4164 %           \putratom{283}{-402}{\@memberb}%    % right type
4165  \putratom{273}{-402}{\@memberb}%    % right type
4166  \Put@Line(303,-171)(0,-1){140}%   % single bond at 5
4167  \else\if\@tmpc V%(V) beta undefined
4168  \yl@xdiff=-20\relax
4169  \yl@ydiff=58\relax
4170  \putratom{443}{-301}{\@memberb}%    % right type

4171 {%

4172  \WaveBonds%
4173  \Put@Line(303,-171)(5,-3){120}%   % single bond at 5

4174 }%

4175  \else\if\@tmpc U%(U) alpha undefined
4176  \yl@xdiff=30\relax
4177  \yl@ydiff=81\relax
4178  \putratom{273}{-402}{\@memberb}%    % right type

4179 {%

4180  \WaveBonds%
4181  \Put@Line(303,-171)(0,-1){140}%   % single bond at 5

4182 }%

4183  \fi\fi\fi\fi\fi%
4184  \fi\fi\fi\fi
4185 \else\if\@tmpb D%double bond
4186  \yl@xdiff=3\relax
4187 %      \yl@ydiff=111\relax
4188  \yl@ydiff=91\relax
4189  \putratom{363}{-382}{\@memberb}%
4190 %           \putratom{363}{-402}{\@memberb}%
4191  \Put@Line(310,-168)(3,-5){72}%   % double bond at 5
4192  \Put@Line(284,-174)(3,-5){72}%   % double bond at 5
4193 \else\if\@tmpb B%beta single bond
4194  \yl@xdiff=9\relax
4195 %      \yl@ydiff=111\relax
4196  \yl@ydiff=91\relax
4197  \putratom{363}{-382}{\@memberb}%
4198 %           \putratom{363}{-402}{\@memberb}%

4199 {%

4200  \thicklines%
4201  \Put@Line(303,-171)(3,-5){72}%    % single bond at 5

4202 }%

4203 \else\if\@tmpb A%alpha single bond
4204  \yl@xdiff=9\relax
4205  \yl@ydiff=91\relax
4206  \putratom{363}{-382}{\@memberb}%
4207  \dotorline(303,-171)(3,-5){72}/(303,-171)(375,-291)%
4208 \else\if\@tmpb U%undefined single bond
4209  \yl@xdiff=9\relax
4210  \yl@ydiff=91\relax
4211  \putratom{363}{-382}{\@memberb}%

4212 {%

4213  \WaveBonds%
4214  \Put@Line(303,-171)(3,-5){72}%      % single wave bond at 5

4215 }%

4216 \else\if\@tmpb F%fused bond
4217  {\let\@tmpb=\@tmpc\@clipfusefalse
4218  \Put@Direct(303,-171){\setatombondb}%

4219 }%

4220 \else\if\@tmpb G%fused bond
4221  {\let\@tmpb=\@tmpc\@clipfusefalse
4222  \Put@Direct(303,-171){\setatombondG}%

4223 }%

4224 \else%
4225  \yl@xdiff=9\relax
4226 %      \yl@ydiff=111\relax
4227  \yl@ydiff=91\relax

4228 %           \putratom{363}{-402}{\@memberb}%
4229  \putratom{363}{-382}{\@memberb}%
4230  \Put@Line(303,-171)(3,-5){72}%    % single bond at 5
4231 \fi\fi\fi\fi%
4232 \fi\fi\fi
4233 \fi}% end of \@hsubste

The \@hsubstf command is used for placing a substituent (\@memberb) at the 6-position (lower-left) of a vertical six-membered ring.

\@hsubstf
4234 % %%%%%%%%%%%%%%%
4235 % % subst. on 6 %
4236 % %%%%%%%%%%%%%%%
4237 \def\@hsubstf{%
4238 \if@fclip %clipping
4239 \if\@tmpb S%single bond
4240  \ifx\@tmpc\empty%
4241 %      \yl@xdiff=43\relax
4242  \yl@xdiff=53\relax
4243  \yl@ydiff=76\relax
4244 %          \putlratom{-27}{-402}{\@memberb}%
4245  \putlratom{-37}{-402}{\@memberb}%
4246  \Put@Line(79,-221)(-3,-5){63}% % single bond at 6 (62=>63)
4247  \else\if\@tmpc B%(B) beta
4248  \yl@xdiff=-10\relax
4249  \yl@ydiff=40\relax
4250  \putlatom{-31}{-301}{\@memberb}%    % right type

4251 {%

4252  \thicklines%
4253  \Put@Line(59,-201)(-5,-3){100}%   % single bond at 6

4254 }%

4255  \else\if\@tmpc A%(A) alpha
4256 %      \yl@xdiff=20\relax
4257  \yl@xdiff=30\relax
4258  \yl@ydiff=81\relax
4259 %           \putratom{83}{-402}{\@memberb}%     % right type
4260  \putlratom{73}{-402}{\@memberb}%     % left-right type
4261  \dotorline(103,-221)(0,-1){100}/(103,-221)(103,-321)%
4262  \else\if\@tmpc u%(u) up --- (B) beta
4263 %      \yl@xdiff=20\relax
4264  \yl@xdiff=30\relax
4265  \yl@ydiff=81\relax
4266 %           \putratom{83}{-402}{\@memberb}%     % right type
4267  \putlratom{73}{-402}{\@memberb}%     % left-right type

4268 {%

4269  \thicklines%
4270  \Put@Line(103,-221)(0,-1){100}%   % single bond at 6

4271 }%

4272  \else\if\@tmpc d%(d) down --- (A) alpha
4273  \yl@xdiff=-10\relax
4274  \yl@ydiff=40\relax
4275  \putlatom{-31}{-301}{\@memberb}%    % right type
4276  \dotorline(59,-201)(-5,-3){100}/(59,-201)(-41,-261)%

4277  \else\if\@tmpc b%(b) beta
4278  \yl@xdiff=-10\relax
4279  \yl@ydiff=40\relax
4280  \putlatom{-31}{-301}{\@memberb}%    % right type
4281  \Put@Line(59,-201)(-5,-3){100}%   % single bond at 6
4282  \else\if\@tmpc a%(a) alpha
4283 %      \yl@xdiff=20\relax
4284  \yl@xdiff=30\relax
4285  \yl@ydiff=81\relax
4286 %           \putratom{83}{-402}{\@memberb}%     % right type
4287  \putratom{73}{-402}{\@memberb}%     % right type
4288  \Put@Line(103,-221)(0,-1){100}%   % single bond at 6
4289  \else\if\@tmpc V%(V) beta undefined
4290  \yl@xdiff=-10\relax
4291  \yl@ydiff=40\relax
4292  \putlatom{-31}{-301}{\@memberb}%    % right type

4293 {%

4294  \WaveBonds%
4295  \Put@Line(59,-201)(-5,-3){100}%   % single bond at 6

4296 }%

4297  \else\if\@tmpc U%(U) alpha undefined
4298  \yl@xdiff=30\relax
4299  \yl@ydiff=81\relax
4300  \putratom{73}{-402}{\@memberb}%     % right type

4301 {%

4302  \WaveBonds%
4303  \Put@Line(103,-221)(0,-1){100}%   % single bond at 6

4304 }%

4305  \fi\fi\fi\fi\fi
4306  \fi\fi\fi\fi
4307 \else\if\@tmpb D%double bond
4308 %      \yl@xdiff=49\relax
4309  \yl@xdiff=59\relax
4310  \yl@ydiff=82\relax
4311 %            \putlratom{-27}{-402}{\@memberb}%
4312  \putlratom{-37}{-402}{\@memberb}%
4313  \Put@Line(78,-208)(-3,-5){63}% % double bond at 6 (62->63)
4314  \Put@Line(106,-219)(-3,-5){63}% % double bond at 6 (62->63)
4315 \else\if\@tmpb B%beta single bond
4316 %      \yl@xdiff=43\relax
4317  \yl@xdiff=53\relax
4318  \yl@ydiff=76\relax
4319 %            \putlratom{-27}{-402}{\@memberb}%
4320  \putlratom{-37}{-402}{\@memberb}%

4321 {%

4322  \thicklines%
4323  \Put@Line(79,-221)(-3,-5){63}% % single bond at 6 (62=>63)

4324 }%

4325 \else\if\@tmpb A%alpha single bond
4326  \yl@xdiff=53\relax
4327  \yl@ydiff=76\relax
4328  \putlratom{-37}{-402}{\@memberb}%
4329  \dotorline(79,-221)(-3,-5){63}/(79,-221)(16,-326)%
4330 \else\if\@tmpb U%undefined single bond

4331  \yl@xdiff=53\relax
4332  \yl@ydiff=76\relax
4333  \putlratom{-37}{-402}{\@memberb}%

4334 {%

4335  \WaveBonds%
4336  \Put@Line(79,-221)(-3,-5){63}%      % single wave bond at 6

4337 }%

4338 \else\if\@tmpb F%fused bond
4339  {\let\@tmpb=\@tmpc\@clipfusetrue
4340  \Put@Direct(103,-171){\setatombondE}%

4341 }%

4342 \else\if\@tmpb G%fused bond
4343  {\let\@tmpb=\@tmpc\@clipfusetrue
4344  \Put@Direct(103,-171){\setatombondh}%

4345 }%

4346 \else%
4347 %      \yl@xdiff=43\relax
4348  \yl@xdiff=53\relax
4349  \yl@ydiff=76\relax
4350 %           \putlratom{-27}{-402}{\@memberb}%
4351  \putlratom{-37}{-402}{\@memberb}%
4352  \Put@Line(79,-221)(-3,-5){63}% % single bond at 6(62->63)
4353 \fi\fi\fi\fi%
4354 \fi\fi\fi
4355 \else%%no clipping
4356 \if\@tmpb S%single bond
4357  \ifx\@tmpc\empty%
4358 %      \yl@xdiff=59\relax
4359  \yl@xdiff=63\relax
4360 %      \yl@ydiff=111\relax
4361  \yl@ydiff=91\relax
4362 %            \putlratom{-27}{-402}{\@memberb}%
4363  \putlratom{-27}{-382}{\@memberb}%
4364  \Put@Line(108,-171)(-3,-5){72}%  % single bond at 6
4365 %   \else\if\@tmpb B%beta single bond
4366 \else\if\@tmpc B%beta single bond%1998/10/11 by S. Fujita
4367  \yl@xdiff=8\relax
4368  \yl@ydiff=58\relax
4369  \putlatom{-31}{-301}{\@memberb}%    % right type

4370 {%

4371  \thicklines%
4372  \Put@Line(103,-171)(-5,-3){120}%  % single bond at 6

4373 }%

4374  \else\if\@tmpc A%(A) alpha
4375 %      \yl@xdiff=20\relax
4376  \yl@xdiff=30\relax
4377  \yl@ydiff=91\relax
4378 %           \putratom{83}{-402}{\@memberb}%     % right type
4379  \putlratom{73}{-402}{\@memberb}%     % left-right type
4380  \dotorline(103,-171)(0,-1){140}/(103,-171)(103,-311)%
4381 \else\if\@tmpc u%(u) up --- (B) beta
4382 %      \yl@xdiff=20\relax
4383  \yl@xdiff=30\relax
4384  \yl@ydiff=91\relax

4385 %           \putratom{83}{-402}{\@memberb}%     % right type
4386  \putlratom{73}{-402}{\@memberb}%     % left-right type

4387 {%

4388  \thicklines%
4389  \Put@Line(103,-171)(0,-1){140}%   % single bond at 6

4390 }%

4391  \else\if\@tmpc d%(d) down --- (A) alpha
4392  \yl@xdiff=8\relax
4393  \yl@ydiff=58\relax
4394  \putlatom{-31}{-301}{\@memberb}%    % right type
4395  \dotorline(103,-171)(-5,-3){120}/(103,-171)(-17,-243)%
4396  \else\if\@tmpc b%(b) beta
4397  \yl@xdiff=8\relax
4398  \yl@ydiff=58\relax
4399  \putlatom{-31}{-301}{\@memberb}%    % right type
4400  \Put@Line(103,-171)(-5,-3){120}%  % single bond at 6
4401  \else\if\@tmpc a%(a) alpha
4402 %      \yl@xdiff=20\relax
4403  \yl@xdiff=30\relax
4404  \yl@ydiff=91\relax
4405 %           \putratom{83}{-402}{\@memberb}%     % right type
4406  \putlratom{73}{-402}{\@memberb}%     % right-left type
4407  \Put@Line(103,-171)(0,-1){140}%   % single bond at 6
4408  \else\if\@tmpc V%(V) beta undefined
4409  \yl@xdiff=8\relax
4410  \yl@ydiff=58\relax
4411  \putlatom{-31}{-301}{\@memberb}%    % right type

4412 {%

4413  \WaveBonds%
4414  \Put@Line(103,-171)(-5,-3){120}%  % single bond at 6

4415 }%

4416  \else\if\@tmpc U%(U) alpha undefined
4417  \yl@xdiff=30\relax
4418  \yl@ydiff=91\relax
4419  \putlratom{73}{-402}{\@memberb}%     % right-left type

4420 {%

4421  \WaveBonds%
4422  \Put@Line(103,-171)(0,-1){140}%   % single bond at 6

4423 }%

4424  \fi\fi\fi\fi\fi%
4425  \fi\fi\fi\fi
4426 \else\if\@tmpb D%double bond
4427  \yl@xdiff=65\relax
4428 %      \yl@ydiff=111\relax
4429  \yl@ydiff=91\relax
4430 %            \putlratom{-27}{-402}{\@memberb}%
4431  \putlratom{-27}{-382}{\@memberb}%
4432  \Put@Line(96,-168)(-3,-5){72}%   % double bond at 6
4433  \Put@Line(121,-174)(-3,-5){72}%  % double bond at 6
4434 \else\if\@tmpb B%beta single bond
4435  \yl@xdiff=59\relax
4436 %      \yl@ydiff=111\relax
4437  \yl@ydiff=91\relax
4438 %            \putlratom{-27}{-402}{\@memberb}%

4439  \putlratom{-27}{-382}{\@memberb}%
4440  \Put@Line(108,-171)(-3,-5){72}%  % single bond at 6

4441 {%

4442  \thicklines%
4443  \Put@Line(108,-171)(-3,-5){72}%  % single bond at 6

4444 }%

4445 \else\if\@tmpb A%alpha single bond
4446  \yl@xdiff=59\relax
4447  \yl@ydiff=91\relax
4448  \putlratom{-27}{-382}{\@memberb}%
4449  \dotorline(108,-171)(-3,-5){72}/(103,-171)(31,-291)%
4450 \else\if\@tmpb U%undefined single bond
4451  \yl@xdiff=59\relax
4452  \yl@ydiff=91\relax
4453  \putlratom{-27}{-382}{\@memberb}%

4454 {%

4455  \WaveBonds%
4456  \Put@Line(108,-171)(-3,-5){72}%      % single wave bond at 6

4457 }%

4458 \else\if\@tmpb F%fused bond
4459  {\let\@tmpb=\@tmpc\@clipfusefalse
4460  \Put@Direct(103,-171){\setatombondE}%

4461 }%

4462 \else\if\@tmpb G%fused bond
4463  {\let\@tmpb=\@tmpc\@clipfusefalse
4464  \Put@Direct(103,-171){\setatombondh}%

4465 }%

4466 \else%
4467  \yl@xdiff=59\relax
4468 %      \yl@ydiff=111\relax
4469  \yl@ydiff=91\relax
4470 %            \putlratom{-27}{-402}{\@memberb}%
4471  \putlratom{-27}{-382}{\@memberb}%
4472  \Put@Line(108,-171)(-3,-5){72}%  % single bond at 6
4473 \fi\fi\fi\fi%
4474 \fi\fi\fi
4475 \fi}% end of \@hsubstf

5.2 Setting-up substituents and bonds on a six-membered ring

The \setsixringh macro takes 5 arguments, which have the same meanings as described in the definition of the \setsixringv macro.

   ****************************************************************
   * setting of atoms and bonds on a horizontal six-membered ring *
   ****************************************************************
      \setsixringh{SUBSLIST}{AD}{LOWER}{UPPER}{ORDER}

The first argument SUBSLIST is a list of substituents, which is represented in the standard format of XΥMTEX.

SUBSLIST: list of substituents (max 6 substitution positions)
for n = 1 to 6
nD         :  exocyclic double bond at n-atom
n or nS    :  exocyclic single bond at n-atom
nA         :  alpha single bond at n-atom
nB         :  beta single bond at n-atom
nSA        :  alpha single bond at n-atom (boldface)
nSB        :  beta single bond at n-atom (dotted line)
nSa        :  alpha (not specified) single bond at n-atom
nSb        :  beta (not specified) single bond at n-atom
nSd        :  alpha single bond at n-atom (dotted line)
                with an alternative direction to nSA
nSu        :  beta single bond at n-atom (boldface)
                with an alternative direction to nSB
nFA        :  alpha single bond at n-atom (dotted line)
                for ring fusion
nFB        :  beta single bond at n-atom (boldface)
                for ring fusion
nGA        :  alpha single bond at n-atom (dotted line)
                for the other ring fusion
nGB        :  beta single bond at n-atom (boldface)
                for the other ring fusion

The second argument AD is an adjustment value, which adjusts the original set of locant numbers into the standard one between 1 to 6 for drawing a six-membered ring. The effective range of the standared set of locant numbers is restricted by the auguments LOWER and UPPER. A minus value of the last argument shows the anti-clockwise numbering, while zero or a plus value represents the clockwise numbering.

AD       : adjustment      e.g. 0 for six-membered rings
LOWER    : lower limit     LOWER < effective range < UPPER
UPPER    : upper limit
ORDER     : >= 0 clockwise, <0 anti-clockwise

\setsixringh
4476 \def\setsixringh#1#2#3#4#5{%
4477 \@forsemicol\member:=#1\do{%
4478 \ifx\member\empty\else%
4479 \expandafter\@m@mb@r\member;\relax%
4480 \expandafter\threech@r\@membera{}{}%
4481 \ifx\@memberb\@yl\else
4482 \ifnum#5 < 0\relax%
4483 \@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
4484 \else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
4485 \ifnum\@tmpaa >#3\relax%
4486 \ifnum\@tmpaa <#4\relax%

4487 \ifcase\@tmpaa%0 omit

The following commands are not used in a revised version because of the direct

  use of \ifx\@memberb\@yl\else...\fi.
4488 % %\or \if@yla\else\@hsubsta\fi% subst. on 1
4489 % %\or \if@ylb\else\@hsubstb\fi% subst. on 2
4490 % %\or \if@ylc\else\@hsubstc\fi% subst. on 3
4491 % %\or \if@yld\else\@hsubstd\fi% subst. on 4
4492 % %\or \if@yle\else\@hsubste\fi% subst. on 5
4493 % %\or \if@ylf\else\@hsubstf\fi% subst. on 6
4494 \or\@hsubsta% subst. on 1
4495 \or\@hsubstb% subst. on 2
4496 \or\@hsubstc% subst. on 3
4497 \or\@hsubstd% subst. on 4
4498 \or\@hsubste% subst. on 5
4499 \or\@hsubstf% subst. on 6
4500 \fi%end of ifcase
4501 \fi\fi\fi\fi}}% %end of setsixringh

6 Mocros linking Substituents

6.1 Right-handed linking unit

A structure-drawing command can be used to typeset a substituent by using a (yl)-argument. Moreover, the macro \ryl permits us to draw an intermediate linking unit.

{\ryl \atop \@ryl}

4502 \newcount\x@ryl
4503 \newcount\y@ryl
4504 \def\ryl{\@ifnextchar({\@ryl}{\@ryl()}}
4505 \def\@ryl(#1)#2{%
4506 \iniatom\iniflag%initialize
4507 \@reset@ylsw%
4508 \def\centeraaa{}%
4509 \x@ryl=0\y@ryl=0
4510 \@forsemicol\member:=#1\do{%
4511 \if@ylsw%
4512 \XyMTeXWarning{Duplicated items in the first augument of \string\ryl}%
4513 \else%
4514 \ifx\member\empty\else%
4515 \expandafter\@m@mb@r\member;\relax%
4516 \expandafter\twoch@r\@membera{}%
4517 \settowidth{\dimen0}{\@memberb}%
4518 \x@ryl=\dimen0%%%dimension => counter
4519 \divide\x@ryl\unitlength
4520 \advance\x@ryl by-70
4521 \y@ryl=0
4522 \ifcase\@tmpa%
4523 \def\centeraaa{\@memberb}\@ylswtrue
4524 \advance\y@ryl by50
4525 \or%1
4526 \def\centeraaa{\@memberb}\@ylswtrue

4527 \advance\x@ryl by30
4528 \advance\y@ryl by50
4529 \or%2
4530 \def\centeraaa{\@memberb}\@ylswtrue
4531 \advance\x@ryl by40
4532 \advance\y@ryl by40
4533 \or%3
4534 \def\centeraaa{\@memberb}\@ylswtrue
4535 \advance\x@ryl by50
4536 \advance\y@ryl by30
4537 \or%4
4538 \def\centeraaa{\@memberb}\@ylswtrue
4539 \advance\x@ryl by50
4540 \advance\y@ryl by0
4541 \or%5
4542 \def\centeraaa{\@memberb}\@ylswtrue
4543 \advance\x@ryl by50
4544 \advance\y@ryl by-30
4545 \or%6
4546 \def\centeraaa{\@memberb}\@ylswtrue
4547 \advance\x@ryl by50
4548 \advance\y@ryl by-50
4549 \or%7
4550 \def\centeraaa{\@memberb}\@ylswtrue
4551 \advance\x@ryl by30
4552 \advance\y@ryl by-50
4553 \or%8
4554 \def\centeraaa{\@memberb}\@ylswtrue
4555 \advance\y@ryl by-50

4556 \fi

4557 \fi\fi}%
4558 \yl@shiftii=\x@ryl
4559 \yl@shifti=-\y@ryl
4560 \advance\yl@shiftii\yl@xdiff
4561 \advance\yl@shifti\yl@ydiff
4562 \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
4563 % %%%%%%%%%%%%%%%%%%%%%%%%
4564 % % setting hetero atoms %
4565 % %%%%%%%%%%%%%%%%%%%%%%%%
4566 \ifx\centeraaa\empty\else%
4567 \@clipfusetrue
4568 \putlatom{40}{-30}{\centeraaa}%  % left type
4569 \fi%
4570 % %%%%%%%%%%%%%%%%%%%%%%%%
4571 % % setting substituents %
4572 % %%%%%%%%%%%%%%%%%%%%%%%%
4573 \@forsemicol\member:=#2\do{%
4574 \ifx\member\empty\else%
4575 \expandafter\@m@mb@r\member;\relax%
4576 \expandafter\threech@r\@membera{}{}%
4577 \let\local@tmpa=\@tmpa%global to local 2002/5/30 by SF
4578 \ifcase\local@tmpa%
4579 \setatombonda% 0 (upward) (0,1)
4580 \or\setatombondF%1 (3,5)

4581 \or\setatombondA%2 (1,1)
4582 \or\setatombondf%3 (5,3)
4583 \or\setatombondb%4 (1,0)
4584 \or\setatombonde%5 (5,-3)
4585 \or\setatombondB%6 (1,-1)
4586 \or\setatombondE%7 (3,-5)
4587 \or\setatombondc%8 (0,-1)
4588 \fi%end of ifcase

4589 \fi

4590 }\end{sfpicture}}%               %end of \ryl macro

The substituent-setting commands \setatombondF etc. are used in the macro

  \ryl.
\setatombondF
4591 \def\setatombondF{%% (3,5)
4592 \if@clipfuse%
4593 \if\@tmpb B%beta single bond
4594  \yl@xdiff=10\relax
4595  \yl@ydiff=-10\relax

4596 {%

4597  \thicklines%
4598  \Put@Line(30,50)(3,5){60}%       % single bond at 1

4599 }%

4600 \else\if\@tmpb A%alpha single bond
4601  \yl@xdiff=10\relax
4602  \yl@ydiff=-10\relax
4603  \dotorline(30,50)(3,5){60}/(30,50)(90,150)%
4604 \else\if\@tmpb U%unspecified single bond
4605  \yl@xdiff=10\relax
4606  \yl@ydiff=-10\relax

4607 {%

4608  \WaveBonds%
4609  \Put@Line(30,50)(3,5){60}%       % single bond at 1

4610 }%

4611 \else\if\@tmpb S%beta single bond
4612  \yl@xdiff=10\relax
4613  \yl@ydiff=-10\relax
4614  \Put@Line(30,50)(3,5){60}%       % single bond at 1
4615 \else\if\@tmpb D%double bond
4616  \yl@xdiff=10\relax
4617  \yl@ydiff=-10\relax
4618  \Put@Line(40,44)(3,5){60}%       % single bond at 1
4619  \Put@Line(20,56)(3,5){60}%       % single bond at 1
4620 \else\if\@tmpb T%triple bond
4621  \yl@xdiff=10\relax
4622  \yl@ydiff=-10\relax
4623  \Put@Line(45,41)(3,5){60}%       % single bond at 1
4624  \Put@Line(30,50)(3,5){60}%       % single bond at 1
4625  \Put@Line(15,59)(3,5){60}%       % single bond at 1
4626 \else\ifx\@tmpb\empty%beta single bond
4627  \yl@xdiff=10\relax
4628  \yl@ydiff=-10\relax
4629  \Put@Line(30,50)(3,5){60}%       % single bond at 1

4630 \fi\fi\fi\fi\fi\fi\fi%
4631  \putratom{80}{160}{\@memberb}%    % right type
4632 \else%no clipping
4633 \if\@tmpb B%beta single bond
4634  \yl@xdiff=10\relax
4635  \yl@ydiff=-10\relax

4636 {%

4637  \thicklines%
4638  \Put@Line(0,0)(3,5){90}%       % single bond at 1

4639 }%

4640 \else\if\@tmpb A%alpha single bond
4641  \yl@xdiff=10\relax
4642  \yl@ydiff=-10\relax
4643  \dotorline(0,0)(3,5){90}/(0,0)(90,150)%
4644 \else\if\@tmpb U%unspecified single bond
4645  \yl@xdiff=10\relax
4646  \yl@ydiff=-10\relax

4647 {%

4648  \WaveBonds%
4649  \Put@Line(0,0)(3,5){90}%       % single bond at 1

4650 }%

4651 \else\if\@tmpb S%beta single bond
4652  \yl@xdiff=10\relax
4653  \yl@ydiff=-10\relax
4654  \Put@Line(0,0)(3,5){90}%       % single bond at 1
4655 \else\if\@tmpb D%beta single bond
4656  \yl@xdiff=10\relax
4657  \yl@ydiff=-10\relax
4658  \Put@Line(10,-6)(3,5){90}%       % single bond at 1
4659  \Put@Line(-10,6)(3,5){90}%       % single bond at 1
4660 \else\if\@tmpb T%beta single bond
4661  \yl@xdiff=10\relax
4662  \yl@ydiff=-10\relax
4663  \Put@Line(15,-9)(3,5){90}%       % single bond at 1
4664  \Put@Line(0,0)(3,5){90}%       % single bond at 1
4665  \Put@Line(-15,9)(3,5){90}%       % single bond at 1
4666 \else\ifx\@tmpb\empty%beta single bond
4667  \yl@xdiff=10\relax
4668  \yl@ydiff=-10\relax
4669  \Put@Line(0,0)(3,5){90}%       % single bond at 1
4670 \fi\fi\fi\fi\fi\fi\fi%
4671  \putratom{80}{160}{\@memberb}%    % right type
4672 \fi%
4673 }% end of \setatombondF
\setatombondE
4674 \def\setatombondE{%% (3,-5)
4675 \if@clipfuse%
4676  \yl@xdiff=10\relax
4677 %      \yl@ydiff=70\relax
4678  \yl@ydiff=90\relax
4679 \if\@tmpb B%beta single bond

4680 {%

4681  \thicklines%

4682  \Put@Line(30,-50)(3,-5){60}%       % single bond at 1

4683 }%

4684 \else\if\@tmpb A%alpha single bond
4685  \dotorline(30,-50)(3,-5){60}/(30,-50)(90,-150)%
4686 \else\if\@tmpb U%unspecified single bond

4687 {%

4688  \WaveBonds%
4689  \Put@Line(30,-50)(3,-5){60}%       % single bond at 1

4690 }%

4691 \else\if\@tmpb S%beta single bond
4692  \Put@Line(30,-50)(3,-5){60}%       % single bond at 1
4693 \else\if\@tmpb D%double bond
4694  \Put@Line(40,-44)(3,-5){60}%       % single bond at 1
4695  \Put@Line(20,-56)(3,-5){60}%       % single bond at 1
4696 \else\if\@tmpb T%triple bond
4697  \Put@Line(45,-41)(3,-5){60}%       % single bond at 1
4698  \Put@Line(30,-50)(3,-5){60}%       % single bond at 1
4699  \Put@Line(15,-59)(3,-5){60}%       % single bond at 1
4700 \else\ifx\@tmpb\empty%beta single bond
4701  \Put@Line(30,-50)(3,-5){60}%       % single bond at 1
4702 \fi\fi\fi\fi\fi\fi\fi%
4703 %           \putratom{80}{-220}{\@memberb}%    % right type
4704  \putratom{80}{-240}{\@memberb}%    % right type
4705 \else%no clipping
4706  \yl@xdiff=10\relax
4707 %      \yl@ydiff=70\relax
4708  \yl@ydiff=90\relax
4709 \if\@tmpb B%beta single bond

4710 {%

4711  \thicklines%
4712  \Put@Line(0,0)(3,-5){90}%       % single bond at 1

4713 }%

4714 \else\if\@tmpb A%alpha single bond
4715  \dotorline(0,0)(3,-5){90}/(0,0)(90,-150)%
4716 \else\if\@tmpb U%unspecified single bond

4717 {%

4718  \WaveBonds%
4719  \Put@Line(0,0)(3,-5){90}%       % single bond at 1

4720 }%

4721 \else\if\@tmpb S%beta single bond
4722  \Put@Line(0,0)(3,-5){90}%       % single bond at 1
4723 \else\if\@tmpb D%beta single bond
4724  \Put@Line(10,6)(3,-5){90}%       % single bond at 1
4725  \Put@Line(-10,-6)(3,-5){90}%       % single bond at 1
4726 \else\if\@tmpb T%beta single bond
4727  \Put@Line(15,9)(3,-5){90}%       % single bond at 1
4728  \Put@Line(0,0)(3,-5){90}%       % single bond at 1
4729  \Put@Line(-15,-9)(3,-5){90}%       % single bond at 1
4730 \else\ifx\@tmpb\empty%beta single bond
4731  \Put@Line(0,0)(3,-5){90}%       % single bond at 1
4732 \fi\fi\fi\fi\fi\fi\fi%
4733 %           \putratom{80}{-220}{\@memberb}%    % right type
4734  \putratom{80}{-240}{\@memberb}%    % right type
4735 \fi%

4736 }% end of \setatombondE
\setatombondA
4737 \def\setatombondA{%% (1,1)
4738  \yl@xdiff=0\relax
4739  \yl@ydiff=0\relax
4740 \if@clipfuse%
4741 \if\@tmpb B%beta single bond

4742 {%

4743  \thicklines%
4744  \Put@Line(40,40)(1,1){100}%       % single bond at 1

4745 }%

4746 \else\if\@tmpb A%alpha single bond
4747  \dotorline(40,40)(1,1){100}/(40,40)(140,140)%
4748 \else\if\@tmpb U%unspecified single bond

4749 {%

4750  \WaveBonds%
4751  \Put@Line(40,40)(1,1){100}%       % single bond at 1

4752 }%

4753 \else\if\@tmpb S%beta single bond
4754  \Put@Line(40,40)(1,1){100}%       % single bond at 1
4755 \else\if\@tmpb D%double bond
4756  \Put@Line(46,36)(1,1){100}%       % single bond at 1
4757  \Put@Line(36,46)(1,1){100}%       % single bond at 1
4758 \else\if\@tmpb T%triple bond
4759  \Put@Line(50,30)(1,1){100}%       % single bond at 1
4760  \Put@Line(40,40)(1,1){100}%       % single bond at 1
4761  \Put@Line(30,50)(1,1){100}%       % single bond at 1
4762 \else\ifx\@tmpb\empty%beta single bond
4763  \Put@Line(40,40)(1,1){100}%       % single bond at 1
4764 \fi\fi\fi\fi\fi\fi\fi%
4765  \putratom{140}{140}{\@memberb}%    % right type
4766 \else%no clipping
4767 \if\@tmpb B%beta single bond

4768 {%

4769  \thicklines%
4770  \Put@Line(0,0)(1,1){120}%       % single bond at 1

4771 }%

4772 \else\if\@tmpb A%alpha single bond
4773  \dotorline(0,0)(1,1){120}/(0,0)(120,120)%
4774 \else\if\@tmpb U%unspecified single bond

4775 {%

4776  \WaveBonds%
4777  \Put@Line(0,0)(1,1){120}%       % single bond at 1

4778 }%

4779 \else\if\@tmpb S%beta single bond
4780  \Put@Line(0,0)(1,1){120}%       % single bond at 1
4781 \else\if\@tmpb D%beta single bond
4782  \Put@Line(6,-6)(1,1){120}%       % single bond at 1
4783  \Put@Line(-6,6)(1,1){120}%       % single bond at 1
4784 \else\if\@tmpb T%beta single bond
4785  \Put@Line(10,-10)(1,1){120}%       % single bond at 1
4786  \Put@Line(0,0)(1,1){120}%       % single bond at 1
4787  \Put@Line(-10,10)(1,1){120}%       % single bond at 1

4788 \else\ifx\@tmpb\empty%beta single bond
4789  \Put@Line(0,0)(1,1){120}%       % single bond at 1
4790 \fi\fi\fi\fi\fi\fi\fi%
4791  \putratom{120}{120}{\@memberb}%    % right type
4792 \fi%
4793 }% end of \setatombondA
\setatombondB
4794 \def\setatombondB{%% (1,-1)
4795 \if@clipfuse%
4796  \yl@xdiff=0\relax
4797  \yl@ydiff=60\relax
4798 \if\@tmpb B%beta single bond

4799 {%

4800  \thicklines%
4801  \Put@Line(40,-40)(1,-1){100}%       % single bond at 1

4802 }%

4803 \else\if\@tmpb A%alpha single bond
4804  \dotorline(40,-40)(1,-1){100}/(40,-40)(140,-140)%
4805 \else\if\@tmpb U%unspecified single bond

4806 {%

4807  \WaveBonds%
4808  \Put@Line(40,-40)(1,-1){100}%       % single bond at 1

4809 }%

4810 \else\if\@tmpb S%beta single bond
4811  \Put@Line(40,-40)(1,-1){100}%       % single bond at 1
4812 \else\if\@tmpb D%double bond
4813  \Put@Line(46,-36)(1,-1){100}%       % single bond at 1
4814  \Put@Line(36,-46)(1,-1){100}%       % single bond at 1
4815 \else\if\@tmpb T%triple bond
4816  \Put@Line(50,-30)(1,-1){100}%       % single bond at 1
4817  \Put@Line(40,-40)(1,-1){100}%       % single bond at 1
4818  \Put@Line(30,-50)(1,-1){100}%       % single bond at 1
4819 \else\ifx\@tmpb\empty%beta single bond
4820  \Put@Line(40,-40)(1,-1){100}%       % single bond at 1
4821 \fi\fi\fi\fi\fi\fi\fi%
4822  \putratom{140}{-200}{\@memberb}%    % right type
4823 \else%no clipping
4824  \yl@xdiff=0\relax
4825  \yl@ydiff=60\relax
4826 \if\@tmpb B%beta single bond

4827 {%

4828  \thicklines%
4829  \Put@Line(0,0)(1,-1){120}%       % single bond at 1

4830 }%

4831 \else\if\@tmpb A%alpha single bond
4832  \dotorline(0,0)(1,-1){120}/(0,0)(120,-120)%
4833 \else\if\@tmpb U%unspecified single bond

4834 {%

4835  \WaveBonds%
4836  \Put@Line(0,0)(1,-1){120}%       % single bond at 1

4837 }%

4838 \else\if\@tmpb S%beta single bond
4839  \Put@Line(0,0)(1,-1){120}%       % single bond at 1

4840 \else\if\@tmpb D%beta single bond
4841  \Put@Line(6,6)(1,-1){120}%       % single bond at 1
4842  \Put@Line(-6,-6)(1,-1){120}%       % single bond at 1
4843 \else\if\@tmpb T%beta single bond
4844  \Put@Line(10,10)(1,-1){120}%       % single bond at 1
4845  \Put@Line(0,0)(1,-1){120}%       % single bond at 1
4846  \Put@Line(-10,-10)(1,-1){120}%       % single bond at 1
4847 \else\ifx\@tmpb\empty%beta single bond
4848  \Put@Line(0,0)(1,-1){120}%       % single bond at 1
4849 \fi\fi\fi\fi\fi\fi\fi%
4850  \putratom{120}{-180}{\@memberb}%    % right type
4851 \fi%
4852 }% end of \setatombondB

6.2 Left-handed linking unit

A structure-drawing command can be used to typeset a substituent by using a (yl)-argument. Moreover, the macro \lyl permits us to draw an intermediate linking unit.

\lyl
4853 \def\lyl{\@ifnextchar({\@lyl}{\@lyl()}}
4854 \def\@lyl(#1)#2{%
4855 \iniatom\iniflag%initialize
4856 \@reset@ylsw%
4857 \def\centeraaa{}%
4858 \x@ryl=0\y@ryl=0
4859 \@forsemicol\member:=#1\do{%
4860 \if@ylsw%
4861 \XyMTeXWarning{Duplicated items in the first augument of \string\ryl}%
4862 \else%
4863 \ifx\member\empty\else%
4864 \expandafter\@m@mb@r\member;\relax%
4865 \expandafter\twoch@r\@membera{}%
4866 \settowidth{\dimen0}{\@memberb}%
4867 \x@ryl=\dimen0%%%dimension => counter
4868 \divide\x@ryl\unitlength
4869 \advance\x@ryl by-80
4870 \y@ryl=0
4871 \ifcase\@tmpa%
4872 \def\centeraaa{\@memberb}\@ylswtrue
4873 %\advance\x@ryl by0
4874 \advance\y@ryl by50
4875 \or%1
4876 \def\centeraaa{\@memberb}\@ylswtrue
4877 \advance\x@ryl by30
4878 \advance\y@ryl by50
4879 \or%2
4880 \def\centeraaa{\@memberb}\@ylswtrue
4881 \advance\x@ryl by40
4882 \advance\y@ryl by40
4883 \or%3
4884 \def\centeraaa{\@memberb}\@ylswtrue
4885 \advance\x@ryl by50

4886 \advance\y@ryl by30
4887 \or%4
4888 \def\centeraaa{\@memberb}\@ylswtrue
4889 \advance\x@ryl by50
4890 \advance\y@ryl by0
4891 \or%5
4892 \def\centeraaa{\@memberb}\@ylswtrue
4893 \advance\x@ryl by50
4894 \advance\y@ryl by-30
4895 \or%6
4896 \def\centeraaa{\@memberb}\@ylswtrue
4897 \advance\x@ryl by50
4898 \advance\y@ryl by-50
4899 \or%7
4900 \def\centeraaa{\@memberb}\@ylswtrue
4901 \advance\x@ryl by30
4902 \advance\y@ryl by-50
4903 \or%8
4904 \def\centeraaa{\@memberb}\@ylswtrue
4905 %\advance\x@ryl by0
4906 \advance\y@ryl by-50

4907 \fi

4908 \fi\fi}%
4909 \yl@shiftii=-\x@ryl
4910 \yl@shifti=-\y@ryl
4911 \advance\yl@shiftii\yl@xdiff
4912 \advance\yl@shifti\yl@ydiff
4913 \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
4914 % %%%%%%%%%%%%%%%%%%%%%%%%
4915 % % setting hetero atoms %
4916 % %%%%%%%%%%%%%%%%%%%%%%%%
4917 \ifx\centeraaa\empty\else%
4918 \@clipfusetrue
4919 \putratom{-40}{-30}{\centeraaa}%  % right type
4920 \fi%
4921 % %%%%%%%%%%%%%%%%%%%%%%%%
4922 % % setting substituents %
4923 % %%%%%%%%%%%%%%%%%%%%%%%%
4924 \@forsemicol\member:=#2\do{%
4925 \ifx\member\empty\else%
4926 \expandafter\@m@mb@r\member;\relax%
4927 \expandafter\threech@r\@membera{}{}%
4928 \let\local@tmpa=\@tmpa%global to local 2002/5/30 by SF
4929 \ifcase\local@tmpa%
4930 \setatombonda% 0 (upward) (0,1)
4931 \or\setatombondD%1 (-3,5)
4932 \or\setatombondH%2 (-1,1)
4933 \or\setatombondd%3 (-5,3)
4934 \or\setatombondh%4 (-1,0)
4935 \or\setatombondg%5 (-5,-3)
4936 \or\setatombondC%6 (-1,-1)
4937 \or\setatombondG%7 (-3,-5)
4938 \or\setatombondc%8 (0,-1)
4939 \fi%end of ifcase

4940 \fi

4941 }\end{sfpicture}}%               %end of \lyl macro

The substituent-setting commands \setatombondD etc. are used in the macro

  \ryl.
\setatombondD
4942 \def\setatombondD{%% (-3,5)
4943 \if@clipfuse%
4944 \if\@tmpb B%beta single bond
4945 %      \yl@xdiff=-10\relax
4946  \yl@xdiff=10\relax
4947  \yl@ydiff=-10\relax

4948 {%

4949  \thicklines%
4950  \Put@Line(-30,50)(-3,5){60}%       % single bond at 1

4951 }%

4952 \else\if\@tmpb A%alpha single bond
4953 %      \yl@xdiff=-10\relax
4954  \yl@xdiff=10\relax
4955  \yl@ydiff=-10\relax
4956  \dotorline(-30,50)(-3,5){60}/(-30,50)(-90,150)%
4957 \else\if\@tmpb U%unspecified single bond
4958 %      \yl@xdiff=-10\relax
4959  \yl@xdiff=10\relax
4960  \yl@ydiff=-10\relax

4961 {%

4962  \WaveBonds%
4963  \Put@Line(-30,50)(-3,5){60}%       % single bond at 1

4964 }%

4965 \else\if\@tmpb S%beta single bond
4966 %      \yl@xdiff=-10\relax
4967  \yl@xdiff=10\relax
4968  \yl@ydiff=-10\relax
4969  \Put@Line(-30,50)(-3,5){60}%       % single bond at 1
4970 \else\if\@tmpb D%double bond
4971 %      \yl@xdiff=-10\relax
4972  \yl@xdiff=10\relax
4973  \yl@ydiff=-10\relax
4974  \Put@Line(-40,44)(-3,5){60}%       % single bond at 1
4975  \Put@Line(-20,56)(-3,5){60}%       % single bond at 1
4976 \else\if\@tmpb T%triple bond
4977 %      \yl@xdiff=-10\relax
4978  \yl@xdiff=10\relax
4979  \yl@ydiff=-10\relax
4980  \Put@Line(-45,41)(-3,5){60}%       % single bond at 1
4981  \Put@Line(-30,50)(-3,5){60}%       % single bond at 1
4982  \Put@Line(-15,59)(-3,5){60}%       % single bond at 1
4983 \else\ifx\@tmpb\empty%beta single bond
4984 %      \yl@xdiff=-10\relax
4985  \yl@xdiff=10\relax
4986  \yl@ydiff=-10\relax
4987  \Put@Line(-30,50)(-3,5){60}%       % single bond at 1
4988 \fi\fi\fi\fi\fi\fi\fi%

4989 %           \putlatom{-80}{160}{\@memberb}%    % left type
4990  \putlatom{-100}{160}{\@memberb}%    % left type
4991 \else%no clipping
4992 \if\@tmpb B%beta single bond
4993 %      \yl@xdiff=-10\relax
4994  \yl@xdiff=10\relax
4995  \yl@ydiff=-10\relax

4996 {%

4997  \thicklines%
4998  \Put@Line(0,0)(-3,5){90}%       % single bond at 1

4999 }%

5000 \else\if\@tmpb A%alpha single bond
5001 %      \yl@xdiff=-10\relax
5002  \yl@xdiff=10\relax
5003  \yl@ydiff=-10\relax
5004  \dotorline(0,0)(-3,5){90}/(0,0)(-90,150)%
5005 \else\if\@tmpb U%unspecified single bond
5006 %      \yl@xdiff=-10\relax
5007  \yl@xdiff=10\relax
5008  \yl@ydiff=-10\relax

5009 {%

5010  \WaveBonds%
5011  \Put@Line(0,0)(-3,5){90}%       % single bond at 1

5012 }%

5013 \else\if\@tmpb S%beta single bond
5014 %      \yl@xdiff=-10\relax
5015  \yl@xdiff=10\relax
5016  \yl@ydiff=-10\relax
5017  \Put@Line(0,0)(-3,5){90}%       % single bond at 1
5018 \else\if\@tmpb D%beta single bond
5019 %      \yl@xdiff=-10\relax
5020  \yl@xdiff=10\relax
5021  \yl@ydiff=-10\relax
5022  \Put@Line(-10,-6)(-3,5){90}%       % single bond at 1
5023  \Put@Line(10,6)(-3,5){90}%       % single bond at 1
5024 \else\if\@tmpb T%beta single bond
5025 %      \yl@xdiff=-10\relax
5026  \yl@xdiff=10\relax
5027  \yl@ydiff=-10\relax
5028  \Put@Line(-15,-9)(-3,5){90}%       % single bond at 1
5029  \Put@Line(0,0)(-3,5){90}%       % single bond at 1
5030  \Put@Line(15,9)(-3,5){90}%       % single bond at 1
5031 \else\ifx\@tmpb\empty%beta single bond
5032 %      \yl@xdiff=-10\relax
5033  \yl@xdiff=10\relax
5034  \yl@ydiff=-10\relax
5035  \Put@Line(0,0)(-3,5){90}%       % single bond at 1
5036 \fi\fi\fi\fi\fi\fi\fi%
5037 %           \putlatom{-80}{160}{\@memberb}%    % left type
5038  \putlatom{-100}{160}{\@memberb}%    % left type
5039 \fi%
5040 }% end of \setatombondD
\setatombondG

5041 \def\setatombondG{%% (-3,-5)
5042 \if@clipfuse%
5043  \yl@xdiff=-10\relax
5044 %      \yl@ydiff=70\relax
5045  \yl@ydiff=90\relax
5046 \if\@tmpb B%beta single bond

5047 {%

5048  \thicklines%
5049  \Put@Line(-30,-50)(-3,-5){60}%       % single bond at 1

5050 }%

5051 \else\if\@tmpb A%alpha single bond
5052  \dotorline(-30,-50)(-3,-5){60}/(-30,-50)(-90,-150)%
5053 %           \dotorline(-33,-55)(-3,-5){60}/(-30,-50)(-90,-150)%
5054 \else\if\@tmpb U%unspecified single bond

5055 {%

5056  \WaveBonds%
5057  \Put@Line(-30,-50)(-3,-5){60}%       % single bond at 1

5058 }%

5059 \else\if\@tmpb S%beta single bond
5060  \Put@Line(-30,-50)(-3,-5){60}%       % single bond at 1
5061 \else\if\@tmpb D%double bond
5062  \Put@Line(-40,-44)(-3,-5){60}%       % single bond at 1
5063  \Put@Line(-20,-56)(-3,-5){60}%       % single bond at 1
5064 \else\if\@tmpb T%triple bond
5065  \Put@Line(-45,-41)(-3,-5){60}%       % single bond at 1
5066  \Put@Line(-30,-50)(-3,-5){60}%       % single bond at 1
5067  \Put@Line(-15,-59)(-3,-5){60}%       % single bond at 1
5068 \else\ifx\@tmpb\empty%beta single bond
5069  \Put@Line(-30,-50)(-3,-5){60}%       % single bond at 1
5070 \fi\fi\fi\fi\fi\fi\fi%
5071 %           \putlatom{-80}{-220}{\@memberb}%    % left type
5072  \putlatom{-80}{-240}{\@memberb}%    % left type
5073 \else%no clipping
5074  \yl@xdiff=-10\relax
5075 %      \yl@ydiff=70\relax
5076  \yl@ydiff=90\relax
5077 \if\@tmpb B%beta single bond

5078 {%

5079  \thicklines%
5080  \Put@Line(0,0)(-3,-5){90}%       % single bond at 1

5081 }%

5082 \else\if\@tmpb A%alpha single bond
5083  \dotorline(0,0)(-3,-5){90}/(0,0)(-90,-150)%
5084 \else\if\@tmpb U%unspecified single bond

5085 {%

5086  \WaveBonds%
5087  \Put@Line(0,0)(-3,-5){90}%       % single bond at 1

5088 }%

5089 \else\if\@tmpb S%beta single bond
5090  \Put@Line(0,0)(-3,-5){90}%       % single bond at 1
5091 \else\if\@tmpb D%beta single bond
5092  \Put@Line(-10,6)(-3,-5){90}%       % single bond at 1
5093  \Put@Line(10,-6)(-3,-5){90}%       % single bond at 1
5094 \else\if\@tmpb T%beta single bond

5095  \Put@Line(-15,9)(-3,-5){90}%       % single bond at 1
5096  \Put@Line(0,0)(-3,-5){90}%       % single bond at 1
5097  \Put@Line(15,-9)(-3,-5){90}%       % single bond at 1
5098 \else\ifx\@tmpb\empty%beta single bond
5099  \Put@Line(0,0)(-3,-5){90}%       % single bond at 1
5100 \fi\fi\fi\fi\fi\fi\fi%
5101 %           \putlatom{-80}{-220}{\@memberb}%    % left type
5102  \putlatom{-80}{-240}{\@memberb}%    % left type
5103 \fi%
5104 }% end of \setatombondG
\setatombondH
5105 \def\setatombondH{%% (-1,1)
5106  \yl@xdiff=0\relax
5107  \yl@ydiff=0\relax
5108 \if@clipfuse%
5109 \if\@tmpb B%beta single bond

5110 {%

5111  \thicklines%
5112  \Put@Line(-40,40)(-1,1){100}%       % single bond at 1

5113 }%

5114 \else\if\@tmpb A%alpha single bond
5115  \dotorline(-40,40)(-1,1){100}/(-40,40)(-140,140)%
5116 \else\if\@tmpb U%unspecified single bond

5117 {%

5118  \WaveBonds%
5119  \Put@Line(-40,40)(-1,1){100}%       % single bond at 1

5120 }%

5121 \else\if\@tmpb S%beta single bond
5122  \Put@Line(-40,40)(-1,1){100}%       % single bond at 1
5123 \else\if\@tmpb D%double bond
5124  \Put@Line(-46,36)(-1,1){100}%       % single bond at 1
5125  \Put@Line(-36,46)(-1,1){100}%       % single bond at 1
5126 \else\if\@tmpb T%triple bond
5127  \Put@Line(-50,30)(-1,1){100}%       % single bond at 1
5128  \Put@Line(-40,40)(-1,1){100}%       % single bond at 1
5129  \Put@Line(-30,50)(-1,1){100}%       % single bond at 1
5130 \else\ifx\@tmpb\empty%beta single bond
5131  \Put@Line(-40,40)(-1,1){100}%       % single bond at 1
5132 \fi\fi\fi\fi\fi\fi\fi%
5133  \putlatom{-140}{140}{\@memberb}%    % left type
5134 \else%no clipping
5135 \if\@tmpb B%beta single bond

5136 {%

5137  \thicklines%
5138  \Put@Line(0,0)(-1,1){120}%       % single bond at 1

5139 }%

5140 \else\if\@tmpb A%alpha single bond
5141  \dotorline(0,0)(-1,1){120}/(0,0)(-120,120)%
5142 \else\if\@tmpb U%unspecified single bond

5143 {%

5144  \WaveBonds%
5145  \Put@Line(0,0)(-1,1){120}%       % single bond at 1

5146 }%

5147 \else\if\@tmpb S%beta single bond
5148  \Put@Line(0,0)(-1,1){120}%       % single bond at 1
5149 \else\if\@tmpb D%beta single bond
5150  \Put@Line(-6,-6)(-1,1){120}%       % single bond at 1
5151  \Put@Line(6,6)(-1,1){120}%       % single bond at 1
5152 \else\if\@tmpb T%beta single bond
5153  \Put@Line(-10,-10)(-1,1){120}%       % single bond at 1
5154  \Put@Line(0,0)(-1,1){120}%       % single bond at 1
5155  \Put@Line(10,10)(-1,1){120}%       % single bond at 1
5156 \else\ifx\@tmpb\empty%beta single bond
5157  \Put@Line(0,0)(-1,1){120}%       % single bond at 1
5158 \fi\fi\fi\fi\fi\fi\fi%
5159  \putlatom{-120}{120}{\@memberb}%    % left type
5160 \fi%
5161 }% end of \setatombondH
\setatombondC
5162 \def\setatombondC{%% (-1,-1)
5163 \if@clipfuse%
5164  \yl@xdiff=0\relax
5165  \yl@ydiff=60\relax
5166 \if\@tmpb B%beta single bond

5167 {%

5168  \thicklines%
5169  \Put@Line(-40,-40)(-1,-1){100}%       % single bond at 1

5170 }%

5171 \else\if\@tmpb A%alpha single bond
5172  \dotorline(-40,-40)(-1,-1){100}/(-40,-40)(-140,-140)%
5173 \else\if\@tmpb U%unspecified single bond

5174 {%

5175  \WaveBonds%
5176  \Put@Line(-40,-40)(-1,-1){100}%       % single bond at 1

5177 }%

5178 \else\if\@tmpb S%beta single bond
5179  \Put@Line(-40,-40)(-1,-1){100}%       % single bond at 1
5180 \else\if\@tmpb D%double bond
5181  \Put@Line(-46,-36)(-1,-1){100}%       % single bond at 1
5182  \Put@Line(-36,-46)(-1,-1){100}%       % single bond at 1
5183 \else\if\@tmpb T%triple bond
5184  \Put@Line(-50,-30)(-1,-1){100}%       % single bond at 1
5185  \Put@Line(-40,-40)(-1,-1){100}%       % single bond at 1
5186  \Put@Line(-30,-50)(-1,-1){100}%       % single bond at 1
5187 \else\ifx\@tmpb\empty%beta single bond
5188  \Put@Line(-40,-40)(-1,-1){100}%       % single bond at 1
5189 \fi\fi\fi\fi\fi\fi\fi%
5190  \putlatom{-140}{-200}{\@memberb}%    % left type
5191 \else%no clipping
5192  \yl@xdiff=0\relax
5193  \yl@ydiff=60\relax
5194 \if\@tmpb B%beta single bond

5195 {%

5196  \thicklines%
5197  \Put@Line(0,0)(-1,-1){120}%       % single bond at 1

5198 }%

5199 \else\if\@tmpb A%alpha single bond
5200  \dotorline(0,0)(-1,-1){120}/(0,0)(-120,-120)%
5201 \else\if\@tmpb U%unspecified single bond

5202 {%

5203  \WaveBonds%
5204  \Put@Line(0,0)(-1,-1){120}%       % single bond at 1

5205 }%

5206 \else\if\@tmpb S%beta single bond
5207  \Put@Line(0,0)(-1,-1){120}%       % single bond at 1
5208 \else\if\@tmpb D%beta single bond
5209  \Put@Line(-6,6)(-1,-1){120}%       % single bond at 1
5210  \Put@Line(6,-6)(-1,-1){120}%       % single bond at 1
5211 \else\if\@tmpb T%beta single bond
5212  \Put@Line(-10,10)(-1,-1){120}%       % single bond at 1
5213  \Put@Line(0,0)(-1,-1){120}%       % single bond at 1
5214  \Put@Line(10,-10)(-1,-1){120}%       % single bond at 1
5215 \else\ifx\@tmpb\empty%beta single bond
5216  \Put@Line(0,0)(-1,-1){120}%       % single bond at 1
5217 \fi\fi\fi\fi\fi\fi\fi%
5218  \putlatom{-120}{-180}{\@memberb}%    % left type
5219 \fi%
5220 }% end of \setatombondC

7 Minor Linking Units

\ayl
5221 \def\ayl{\@ifnextchar({\@ayl@}{\@ayl@(10,40)}}
5222 \def\@ayl@(#1,#2)#3{\begingroup\yl@xdiff=0 \yl@ydiff=0%
5223 \kern#1\unitlength\raise#2\unitlength\hbox to0pt{#3\hss}%
5224 \endgroup}
\upnobond \downnobond
5225 \def\upnobond#1#2{%
5226 \hbox{\hbox to0.72em{\hss#1\hss}\kern-0.72em\raise2.2ex\hbox{#2}}}
5227 \def\downnobond#1#2{%
5228 \hbox{\hbox to0.72em{\hss#1\hss}\kern-0.72em\lower2.2ex\hbox{#2}}}

8 Spriro-Ring Commands

8.1 Basic Commands for Six-Membered Rings

For treating spiro-ring fusion, the following basic commands (\test@vertix and \test@vertix@sixv) are added at the time of releasing Version 2.00. These commands are generally used for detecting hetero atoms at respective vertices of a heterocyclic ring.

    The command \test@vertix is used in \test@vertix@sixv. which is de-

signed to test the existence of a hetero atom (or an equivalent) at each vertix of a six-membered ring.

\test@vertix
\test@vertix@sixv
5229 \def\test@vertix#1{%

5230 \def\tempG{#1}\relax%%%added 2006/9/6
5231 \if\tempG g\relax
5232 \expandafter\def\csname #1#1#1A\endcsname{@}%
5233 \if\@tmpb h\relax
5234  \expandafter\def\csname #1#1#1A\endcsname{@}%
5235 \else\if\@tmpb s\relax
5236 \expandafter\def\csname #1#1#1A\endcsname{}%
5237 \fi\fi
5238 \else
5239 \expandafter\def\csname #1#1#1\endcsname{@}%
5240 \if\@tmpb h\relax
5241  \expandafter\def\csname #1#1#1\endcsname{@}%
5242 \else\if\@tmpb s\relax
5243 \expandafter\def\csname #1#1#1\endcsname{}%
5244 \fi\fi

5245 \fi 5246 }

The command \test@vertix@sixv is designed to test the existence of a hetero atom (or an equivalent) at each vertix of a six-membered ring.

5247 \def\test@vertix@sixv#1#2#3#4#5#6#7{%
5248 \@forsemicol\member:=#1\do{%
5249 \ifx\member\empty \relax\else%
5250 \expandafter\@m@mb@r\member;\relax%
5251 \expandafter\twoCH@R\@membera//%
5252 \ifcase\@tmpa%
5253 % \changes{v2.00}{1996/11/14}{@ in place of a net value}
5254 \or \test@vertix{#2}%
5255 \or \test@vertix{#3}%
5256 \or \test@vertix{#4}%

5257 \or

5258 \if\@tmpb a\relax%
5259  \def\iii{@}%
5260 \else
5261  \test@vertix{#5}%

5262 \fi

5263 \or \test@vertix{#6}%
5264 \or \test@vertix{#7}%
5265 \fi\fi}}% end of \test@vertix@sixv
5266 %\def\test@vertix@sixv#1#2#3#4#5#6#7{%
5267 %\@forsemicol\member:=#1\do{%
5268 %\expandafter\@m@mb@r\member;\relax%
5269 %\expandafter\twoch@r\@membera{}%
5270 %\ifcase\@tmpa%
5271 %% \changes{v2.00}{1996/11/14}{@ in place of a net value}
5272 % \or \test@vertix{#2}%
5273 % \or \test@vertix{#3}%
5274 % \or \test@vertix{#4}%
5275 % \or \test@vertix{#5}%
5276 % \or \test@vertix{#6}%
5277 % \or \test@vertix{#7}%
5278 %\fi}}

The command \set@hetatom@sixv is to set a spiro group (stored as \@memberb) at a vertix designated by \@tmpaa (or originally by \@tmpa). The atom modifier ‘s’ designates that the spiro group contains a carbon atom (a vertix) at a spiro position, while ‘h’ represents the presence of a hetero atom at a spiro position. The absence of such atom modifiers shows the substitution of a usual hetero atom. The command \set@hetatom@sixv is used in such commands as \sixheterov and \sixheterovi for treating thier ATOMLISTs, e.g.

  1==N;1s==\sixheterov{}{1==(yl)}.
\set@hetatom@sixv
5279 \def\set@hetatom@sixv#1#2#3#4#5{%
5280 \@forsemicol\member:=#1\do{%
5281 \ifx\member\empty \relax\else%
5282 \expandafter\@m@mb@r\member;\relax%
5283 \expandafter\twoch@r\@membera{}\relax%
5284 \ifnum#5 < 0\relax%
5285 \@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
5286 \else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
5287 \ifnum\@tmpaa >#3\relax%
5288 \ifnum\@tmpaa <#4\relax%
5289 \ifcase\@tmpaa \relax%
5290 \or%position 1
5291 \if\@tmpb h\relax
5292  \@acliptrue%
5293  \putratom{0}{356}{\@memberb}%  % right type
5294 \else\if\@tmpb s\relax
5295  \@aclipfalse%
5296  \putratom{0}{406}{\@memberb}%  % right type
5297 \else\if\@tmpb a\relax%omit fused position
5298 \else\relax
5299  \@acliptrue%
5300  \putratom{-31}{356}{\@memberb}%  % right type
5301 \fi\fi\fi
5302 \or%position 2
5303 \if\@tmpb h\relax
5304  \@bcliptrue%
5305  \putratom{135}{280}{\@memberb}%  % right type
5306 \else\if\@tmpb s\relax
5307  \@bclipfalse%
5308  \putratom{175}{303}{\@memberb}%  % right type
5309 \else\if\@tmpb a\relax%omit fused position
5310 \else\relax
5311  \@bcliptrue%
5312  \putratom{135}{280}{\@memberb}%  % right type
5313 \fi\fi\fi
5314 \or%position 3
5315 \if\@tmpb h\relax
5316  \@ccliptrue%
5317  \putratom{135}{95}{\@memberb}%  % right type
5318 \else\if\@tmpb s\relax
5319  \@cclipfalse%
5320  \putratom{175}{103}{\@memberb}%  % right type
5321 \else\if\@tmpb a\relax%omit fused position
5322 \else\relax
5323  \@ccliptrue%
5324  \putratom{135}{65}{\@memberb}%   % right type

5325 \fi\fi\fi
5326 \or%position 4
5327 \if\@tmpb h\relax
5328  \@cliptrue%
5329  \putratom{0}{50}{\@memberb}%  % right type
5330 \else\if\@tmpb s\relax
5331  \@clipfalse%
5332  \putratom{0}{0}{\@memberb}%  % right type
5333 \else\if\@tmpb a\relax%omit fused position
5334 \else\relax
5335  \@cliptrue%
5336  \putratom{-31}{-10}{\@memberb}%  % right type
5337 \fi\fi\fi
5338 \or%position 5
5339 \if\@tmpb h\relax
5340  \@ecliptrue%
5341  \putlatom{-135}{95}{\@memberb}%  % right type
5342 \else\if\@tmpb s\relax
5343  \@eclipfalse%
5344  \putlatom{-175}{103}{\@memberb}%  % right type
5345 \else\if\@tmpb a\relax%omit fused position
5346 \else\relax
5347  \@ecliptrue%
5348  \putlatom{-135}{65}{\@memberb}%  % left type
5349 \fi\fi\fi
5350 \or%position 6
5351 \if\@tmpb h\relax
5352  \@fcliptrue%
5353  \putlatom{-135}{280}{\@memberb}%  % right type
5354 \else\if\@tmpb s\relax
5355  \@fclipfalse%
5356  \putlatom{-175}{303}{\@memberb}%  % right type
5357 \else\if\@tmpb a\relax%omit fused position
5358 \else\relax
5359  \@fcliptrue%
5360  \putlatom{-135}{280}{\@memberb}% % left type
5361 \fi\fi\fi
5362 \fi% end of ifcase
5363 \fi\fi\fi}}% end of the macro \set@hetatom@sixv

The command \set@hetatom@sixh is to set a spiro group (stored as \@memberb) at a vertix designated by \@tmpaa (or originally by \@tmpa). The atom modifier ‘s’ designates that the spiro group contains a carbon atom (a vertix) at a spiro position, while ‘h’ represents the presence of a hetero atom at a spiro position. The absence of such atom modifiers shows the substitution of a usual hetero atom. The command \set@hetatom@sixh is used in such commands as \sixheteroh and \sixheterohi for treating thier ATOMLISTs, e.g.

  1==N;1s==\sixheteroh{}{1==(yl)}.
\set@hetatom@sixh
5364 \def\set@hetatom@sixh#1#2#3#4#5{%
5365 \@forsemicol\member:=#1\do{%
5366 \ifx\member\empty\else%
5367 \expandafter\@m@mb@r\member;\relax%

5368 %\expandafter\twoch@r\@membera{}%
5369 \expandafter\twoCH@R\@membera//%
5370 \ifnum#5 < 0\relax%
5371 \@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
5372 \else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
5373 \ifnum\@tmpaa >#3\relax%
5374 \ifnum\@tmpaa <#4\relax%
5375 \ifcase\@tmpaa%
5376 \or%position 1
5377 \if\@tmpb h\relax
5378  \@acliptrue%
5379  \putlatom{60}{0}{\@memberb}%  % left type
5380 \else\if\@tmpb s\relax
5381  \@aclipfalse%
5382  \putlatom{0}{0}{\@memberb}%              % left type
5383 \else\if\@tmpb a\relax%omit fused position
5384 \else
5385  \@acliptrue%
5386  \putlatom{60}{-36}{\@memberb}%              % left type
5387 \fi\fi\fi
5388 \or%position 2
5389 \if\@tmpb h\relax
5390  \@bcliptrue%
5391  \putlatom{135}{141}{\@memberb}%   % left type
5392 \else\if\@tmpb s\relax
5393  \@bclipfalse%
5394  \putlatom{103}{171}{\@memberb}%   % left type
5395 \else\if\@tmpb a\relax%omit fused position
5396 \else
5397  \@bcliptrue%
5398  \putlatom{135}{141}{\@memberb}%   % left type
5399 \fi\fi\fi
5400 \or%position 3
5401 \if\@tmpb h\relax
5402  \@ccliptrue%
5403  \putratom{273}{141}{\@memberb}%  % right type
5404 \else\if\@tmpb s\relax
5405  \@cclipfalse%
5406  \putratom{303}{171}{\@memberb}%  % right type
5407 \else\if\@tmpb a\relax%omit fused position
5408 \else
5409  \@ccliptrue%
5410  \putratom{273}{141}{\@memberb}%  % right type
5411 \fi\fi\fi
5412 \or%position 4
5413 \if\@tmpb h\relax
5414  \@cliptrue%
5415 \putratom{346}{0}{\@memberb}%  % right type
5416 \else\if\@tmpb s\relax
5417  \@clipfalse%
5418 \putratom{406}{0}{\@memberb}%  % right type
5419 \else\if\@tmpb a\relax%omit fused position
5420 \else
5421  \@cliptrue%

5422 \putratom{346}{-36}{\@memberb}%  % right type
5423 \fi\fi\fi
5424 \or%position 5
5425 \if\@tmpb h\relax
5426  \@ecliptrue%
5427  \putratom{283}{-131}{\@memberb}%  % right type
5428 \else\if\@tmpb s\relax
5429  \@eclipfalse%
5430  \putratom{303}{-171}{\@memberb}%  % right type
5431 \else\if\@tmpb a\relax%omit fused position
5432 \else
5433  \@ecliptrue%
5434  \putratom{273}{-211}{\@memberb}%  % right type
5435 \fi\fi\fi
5436 \or%position 6
5437 \if\@tmpb h\relax
5438  \@fcliptrue%
5439  \putlatom{125}{-131}{\@memberb}%  % left type
5440 \else\if\@tmpb s\relax
5441  \@fclipfalse%
5442  \putlatom{103}{-171}{\@memberb}%  % left type
5443 \else\if\@tmpb a\relax%omit fused position
5444 \else
5445  \@fcliptrue%
5446  \putlatom{135}{-211}{\@memberb}%  % left type
5447 \fi\fi\fi
5448 \fi% end of ifcase
5449 \fi\fi\fi}}% end of the macro \set@hetatom@sixh

8.2 Basic Commands for Six-Six Rings

The command \test@vertix@decav is designed to test the existence of a hetero atom (or an equivalent) at each vertix of a six-six fused ring.

\test@vertix@decav
5450 \def\test@vertix@decav#1#2#3#4#5#6#7{%
5451 \@forsemicol\member:=#1\do{%
5452 \ifx\member\empty\relax\else%
5453 \expandafter\@m@mb@r\member;\relax%
5454 \expandafter\twoch@r\@membera{}%
5455 \ifcase\@tmpa \relax%
5456 \or\or\or\or\or\or
5457 \or \test@vertix{#2}%

5458 \or

5459 \if\@tmpb a\relax%
5460  \def\jjj{@}%
5461 \else
5462  \test@vertix{#3}%

5463 \fi

5464 \or \test@vertix{#4}%
5465 \or \test@vertix{#5}%
5466 % \or \test@vertix{#6}%
5467 % \or \test@vertix{#7}%
5468 \fi\fi}}

The command \set@vrtx@fuse is to set an atom (stored as \@memberb) at one (stored as \@tmpa) of the fused vertices of a six-six ring. These vertices are incapable of accomodating a spiro group. On the other hand, the other positions can take spiro groups (stored as \@memberb), which are treated by means of the

  command \set@hetatom@sixv. The command \set@vrtx@fuse is used in such

commands as \decaheterov for treating thier ATOMLISTs,

\set@vrtx@fuse
5469 \def\set@vrtx@fuse#1{%
5470 \@forsemicol\member:=#1\do{%
5471 \ifx\member\empty\else%
5472 \expandafter\@m@mb@r\member;\relax%
5473 \expandafter\twoch@r\@membera{}%
5474 \ifcase\@tmpa%

5475 \or 5476 \or 5477 \or

5478 \or%%%%4
5479 \if\@tmpb a\relax%
5480 %     \global\@icliptrue%
5481  \@icliptrue%2001/06/20 by S. Fujita
5482  \putlatom{207}{65}{\@memberb}%  % left type
5483 \else\relax

5484 \fi

5485 \or%5
5486 \or%6
5487 \or%7
5488 \or%
5489 \if\@tmpb a\relax%
5490 %     \global\@jcliptrue%
5491  \@jcliptrue%2001/06/20 by S. Fujita
5492  \putlatom{207}{280}{\@memberb}% % left type
5493 \else\relax

5494 \fi

5495 \or%9 (= 4a)
5496 %     \global\@icliptrue%
5497  \@icliptrue%2001/06/20 by S. Fujita
5498  \putlatom{207}{65}{\@memberb}%  % left type
5499 \or%10 (= 8a)
5500 %     \global\@jcliptrue%
5501  \@jcliptrue%2001/06/20 by S. Fujita
5502  \putlatom{207}{280}{\@memberb}% % left type
5503 \fi\fi}%
5504 }% end of the macro \set@vrtx@fuse

The command \set@vrtx@fuseh is to set an atom (stored as \@memberb) at one (stored as \@tmpa) of the fused vertices of a six-six ring. These vertices are incapable of accomodating a spiro group. On the other hand, the other positions can take spiro groups (stored as \@memberb), which are treated by means of the

  command \set@hetatom@sixh. The command \set@vrtx@fuseh is used in such

commands as \decaheteroh for treating thier ATOMLISTs,

\set@vrtx@fuseh

5505 \def\set@vrtx@fuseh#1{%
5506 \@forsemicol\member:=#1\do{%
5507 \ifx\member\empty\else%
5508 \expandafter\@m@mb@r\member;\relax%
5509 \expandafter\twoCH@R\@membera//%
5510 \ifcase\@tmpa%

5511 \or 5512 \or 5513 \or

5514 \or%%%%4
5515 \if\@tmpb a\relax%
5516 %     \global\@icliptrue%
5517  \@icliptrue%%2001/06/20 by S. Fujita
5518  \putratom{273}{-211}{\@memberb}%            % right type
5519 \else\relax

5520 \fi

5521 \or%5
5522 \or%6
5523 \or%7
5524 \or%
5525 \if\@tmpb a\relax%
5526 %     \global\@jcliptrue%
5527  \@jcliptrue%2001/06/20 by S. Fujita%
5528  \putlatom{135}{-211}{\@memberb}%            % left type
5529 \else\relax

5530 \fi

5531 \or%9 (= 4a)
5532 \ifx\@tmpb\empty\relax
5533 %     \global\@icliptrue%
5534  \@icliptrue%%2001/06/20 by S. Fujita
5535  \putratom{273}{-211}{\@memberb}%            % right type
5536 \else
5537  \XyMTeXWarning{Forbidden spiro ring for the 4a position}%

5538 \fi

5539 \or%10 (= 8a)
5540 \ifx\@tmpb\empty\relax
5541 %     \global\@jcliptrue%
5542  \@jcliptrue%%2001/06/20 by S. Fujita
5543  \putlatom{135}{-211}{\@memberb}%            % left type
5544 \else
5545  \XyMTeXWarning{Forbidden spiro ring for the 8a position}%

5546 \fi

5547 \fi\fi}%
5548 }% end of the macro \set@vrtx@fuseh

9 Ring-fusion Commands for Six-Membered Rings

9.1 Normal Vertical Type

The macro \set@fusionadd@sixv is an inner command contained in the definition of \sixheterov etc., where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by the inner

  command \set@fusion@sixv.

\set@fusionadd@sixv
5549 \def\set@fusionadd@sixv{%
5550  \if\@@tmpa 1\relax%
5551  \putratom{-38}{282}{\@@tmpb}%      % right type
5552  \else\if\@@tmpa 2\relax%
5553  \putratom{60}{253}{\@@tmpb}%       % right type
5554  \else\if\@@tmpa 3\relax%
5555  \putratom{60}{120}{\@@tmpb}%       % right type
5556  \else\if\@@tmpa 4\relax%
5557  \putratom{-38}{88}{\@@tmpb}%       % right type
5558  \else\if\@@tmpa 6\relax%
5559  \putratom{-90}{253}{\@@tmpb}%      % right type
5560  \else\if\@@tmpa 5\relax%
5561  \putratom{-90}{120}{\@@tmpb}%      % right type
5562  \else
5563 % %%%%%%%%%%%%%%%%%%%%%
5564 % % inner bond fusion %
5565 % %%%%%%%%%%%%%%%%%%%%%
5566  \set@fusion@sixv
5567  \fi\fi\fi\fi\fi\fi%

5568 }%

The inner command \set@fusion@sixv is used for typesetting a fused ring at each bond represented by \@@tmpa. Warnings concerning mismatched ring-fusions are based on the command \FuseWarning.

\set@fusion@sixv
5569 \def\set@fusion@sixv{%
5570 % %%%%%%%%%%%%%%%%%%%%%
5571 % % inner bond fusion %
5572 % %%%%%%%%%%%%%%%%%%%%%
5573 \if\@@tmpa d\relax%
5574  \putlratom{0}{0}{\@@tmpb}%         % bond fused
5575  \FuseWarning{171}{-103}%
5576  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, h, or other}%
5577  \else\if\@@tmpa D\relax%
5578  \putlratom{-171}{103}{\@@tmpb}%     % bond fused
5579  \FuseWarning{-171}{103}%
5580  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, H, or other}%
5581  \else\if\@@tmpa e\relax%
5582  \putlratom{-171}{103}{\@@tmpb}%     % bond fused
5583  \FuseWarning{0}{-200}%
5584  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, k, or other}%
5585  \else\if\@@tmpa E\relax%
5586  \putlratom{-171}{303}{\@@tmpb}%     % bond fused
5587  \FuseWarning{0}{200}%
5588  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, K, or other}%
5589  \else\if\@@tmpa f\relax%
5590  \putlratom{-171}{303}{\@@tmpb}%     % bond fused
5591  \FuseWarning{-171}{-103}%
5592  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f, j, or other}%
5593  \else\if\@@tmpa F\relax%
5594  \putlratom{0}{406}{\@@tmpb}%       % bond fused
5595  \FuseWarning{171}{103}%

5596  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F, J, or other}%
5597  \else\if\@@tmpa a\relax%
5598  \putlratom{0}{406}{\@@tmpb}%       % bond fused
5599  \FuseWarning{-171}{103}%
5600  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
5601  \else\if\@@tmpa A\relax%
5602  \putlratom{171}{303}{\@@tmpb}%    % bond fused
5603  \FuseWarning{171}{-103}%
5604  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
5605  \else\if\@@tmpa b\relax%
5606  \putlratom{171}{303}{\@@tmpb}%    % bond fused
5607  \FuseWarning{0}{200}%
5608  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
5609  \else\if\@@tmpa B\relax%
5610  \putlratom{171}{103}{\@@tmpb}%    % bond fused
5611  \FuseWarning{0}{-200}%
5612  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
5613  \else\if\@@tmpa c\relax%
5614  \putlratom{171}{103}{\@@tmpb}%    % bond fused
5615  \FuseWarning{171}{103}%
5616  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c, e, or other}%
5617  \else\if\@@tmpa C\relax%
5618  \putlratom{0}{0}{\@@tmpb}%      % bond fused
5619  \FuseWarning{-171}{-103}%
5620  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C, E, or other}%
5621  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
5622 }% end of the macro \set@fusion@sixv

9.2 Inverse Vertical Type

The macro \set@fusionadd@sixvi is an inner command contained in the definition of \sixheterovi etc., where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by the

  inner command \set@fusion@sixvi.
\set@fusionadd@sixvi
5623 \def\set@fusionadd@sixvi{%
5624  \if\@@tmpa 4\relax%
5625  \putratom{-38}{282}{\@@tmpb}%      % right type
5626  \else\if\@@tmpa 3\relax%
5627  \putratom{60}{253}{\@@tmpb}%       % right type
5628  \else\if\@@tmpa 2\relax%
5629  \putratom{60}{120}{\@@tmpb}%       % right type
5630  \else\if\@@tmpa 1\relax%
5631  \putratom{-38}{88}{\@@tmpb}%       % right type
5632  \else\if\@@tmpa 5\relax%
5633  \putratom{-90}{253}{\@@tmpb}%      % right type
5634  \else\if\@@tmpa 6\relax%
5635  \putratom{-90}{120}{\@@tmpb}%      % right type
5636  \else
5637 % %%%%%%%%%%%%%%%%%%%%%
5638 % % inner bond fusion %
5639 % %%%%%%%%%%%%%%%%%%%%%
5640  \set@fusion@sixvi

5641  \fi\fi\fi\fi\fi\fi%
5642 }% end of the macro \set@fusionadd@sixvi

The inner command \set@fusion@sixvi is used for typesetting a fused ring at each bond represented by \@@tmpa. Warnings concerning mismatched ring-fusions are based on the command \FuseWarning.

\set@fusion@sixvi
5643 \def\set@fusion@sixvi{%
5644 % %%%%%%%%%%%%%%%%%%%%%
5645 % % inner bond fusion %
5646 % %%%%%%%%%%%%%%%%%%%%%
5647 \if\@@tmpa a\relax%
5648  \putlratom{0}{0}{\@@tmpb}%      % right type
5649  \FuseWarning{-171}{-103}%
5650  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a or other}%
5651  \else\if\@@tmpa A\relax%
5652  \putlratom{171}{103}{\@@tmpb}%      % right type
5653  \FuseWarning{171}{103}%
5654  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A or other}%
5655  \else\if\@@tmpa b\relax%
5656  \putlratom{171}{103}{\@@tmpb}%      % right type
5657  \FuseWarning{0}{-200}%
5658  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b or other}%
5659  \else\if\@@tmpa B\relax%
5660  \putlratom{171}{303}{\@@tmpb}%      % right type
5661  \FuseWarning{0}{200}%
5662  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B or other}%
5663  \else\if\@@tmpa c\relax%
5664  \putlratom{171}{303}{\@@tmpb}%      % right type
5665  \FuseWarning{171}{-103}%
5666  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c or other}%
5667  \else\if\@@tmpa C\relax%
5668  \putlratom{0}{406}{\@@tmpb}%      % right type
5669  \FuseWarning{-171}{103}%
5670  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C or other}%
5671  \else\if\@@tmpa d\relax%
5672  \putlratom{0}{406}{\@@tmpb}%      % right type
5673  \FuseWarning{171}{103}%
5674  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d or other}%
5675  \else\if\@@tmpa D\relax%
5676  \putlratom{-171}{303}{\@@tmpb}%      % right type
5677  \FuseWarning{-171}{-103}%
5678  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D or other}%
5679  \else\if\@@tmpa e\relax%
5680  \putlratom{-171}{303}{\@@tmpb}%      % right type
5681  \FuseWarning{0}{200}%
5682  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e or other}%
5683  \else\if\@@tmpa E\relax%
5684  \putlratom{-171}{103}{\@@tmpb}%      % right type
5685  \FuseWarning{0}{-200}%
5686  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E or other}%
5687  \else\if\@@tmpa f\relax%
5688  \putlratom{-171}{103}{\@@tmpb}%      % right type

5689  \FuseWarning{171}{-103}%
5690  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f or other}%
5691  \else\if\@@tmpa F\relax%
5692  \putlratom{0}{0}{\@@tmpb}%      % right type
5693  \FuseWarning{-171}{103}%
5694  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F or other}%
5695  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
5696 }% end of the marcro \set@fusion@sixvi

9.3 Normal Horizontal Type

The macro \set@fusionadd@sixh is an inner command contained in the definition of \sixheteroh etc., where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by the inner

  command \set@fusion@sixh.
\set@fusionadd@sixh
5697 \def\set@fusionadd@sixh{%
5698  \if\@@tmpa 4\relax%
5699  \putratom{272}{-18}{\@@tmpb}%      % right type
5700  \else\if\@@tmpa 1\relax%
5701  \putratom{68}{-18}{\@@tmpb}%       % right type
5702  \else\if\@@tmpa 3\relax%
5703  \putratom{233}{60}{\@@tmpb}%       % right type
5704  \else\if\@@tmpa 2\relax%
5705  \putratom{120}{60}{\@@tmpb}%       % right type
5706  \else\if\@@tmpa 5\relax%
5707  \putratom{233}{-110}{\@@tmpb}%     % right type
5708  \else\if\@@tmpa 6\relax%
5709  \putratom{120}{-110}{\@@tmpb}%     % right type
5710  \else
5711 % %%%%%%%%%%%%%%%%%%%%%
5712 % % inner bond fusion %
5713 % %%%%%%%%%%%%%%%%%%%%%
5714  \set@fusion@sixh
5715  \fi\fi\fi\fi\fi\fi%

5716 }%

The inner command \set@fusion@sixh is used for typesetting a fused ring at each bond represented by \@@tmpa. Warnings concerning mismatched ring-fusions are based on the command \FuseWarning.

\set@fusion@sixh
5717 \def\set@fusion@sixh{%
5718 % %%%%%%%%%%%%%%%%%%%%%
5719 % % inner bond fusion %
5720 % %%%%%%%%%%%%%%%%%%%%%
5721 \if\@@tmpa d\relax%
5722  \putlratom{406}{0}{\@@tmpb}%         % bond fused
5723  \FuseWarning{103}{171}%
5724  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, h, or other}%
5725  \else\if\@@tmpa D\relax%
5726  \putlratom{303}{-171}{\@@tmpb}%     % bond fused

5727  \FuseWarning{-103}{-171}%
5728  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, H, or other}%
5729  \else\if\@@tmpa e\relax%
5730  \putlratom{303}{-171}{\@@tmpb}%     % bond fused
5731  \FuseWarning{200}{0}%
5732  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, k, or other}%
5733  \else\if\@@tmpa E\relax%
5734  \putlratom{103}{-171}{\@@tmpb}%     % bond fused
5735  \FuseWarning{-200}{0}%
5736  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, K, or other}%
5737  \else\if\@@tmpa f\relax%
5738  \putlratom{103}{-171}{\@@tmpb}%     % bond fused
5739  \FuseWarning{103}{-171}%
5740  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f, j, or other}%
5741  \else\if\@@tmpa F\relax%
5742  \putlratom{0}{0}{\@@tmpb}%       % bond fused
5743  \FuseWarning{-103}{171}%
5744  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F, J, or other}%
5745  \else\if\@@tmpa a\relax%
5746  \putlratom{0}{0}{\@@tmpb}%       % bond fused
5747  \FuseWarning{-103}{-171}%
5748  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
5749  \else\if\@@tmpa A\relax%
5750  \putlratom{103}{171}{\@@tmpb}%    % bond fused
5751  \FuseWarning{103}{171}%
5752  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
5753  \else\if\@@tmpa b\relax%
5754  \putlratom{103}{171}{\@@tmpb}%    % bond fused
5755  \FuseWarning{-200}{0}%
5756  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
5757  \else\if\@@tmpa B\relax%
5758  \putlratom{303}{171}{\@@tmpb}%    % bond fused
5759  \FuseWarning{200}{0}%
5760  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
5761  \else\if\@@tmpa c\relax%
5762  \putlratom{303}{171}{\@@tmpb}%    % bond fused
5763  \FuseWarning{-103}{171}%
5764  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c, e, or other}%
5765  \else\if\@@tmpa C\relax%
5766  \putlratom{406}{0}{\@@tmpb}%      % bond fused
5767 %        \FuseWarning{103}{171}%
5768  \FuseWarning{103}{-171}%
5769  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C, E, or other}%
5770  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
5771 }% end of the macro \set@fusion@sixh

9.4 Inverse Horizontal Type

The macro \set@fusionadd@sixhi is an inner command contained in the definition of \sixheterohi etc., where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by the

  inner command \set@fusion@sixhi.

\set@fusionadd@sixhi
5772 \def\set@fusionadd@sixhi{%
5773  \if\@@tmpa 1\relax%
5774  \putratom{272}{-18}{\@@tmpb}%      % right type
5775  \else\if\@@tmpa 4\relax%
5776  \putratom{68}{-18}{\@@tmpb}%       % right type
5777  \else\if\@@tmpa 2\relax%
5778  \putratom{233}{60}{\@@tmpb}%       % right type
5779  \else\if\@@tmpa 3\relax%
5780  \putratom{120}{60}{\@@tmpb}%       % right type
5781  \else\if\@@tmpa 6\relax%
5782  \putratom{233}{-110}{\@@tmpb}%      % right type
5783  \else\if\@@tmpa 5\relax%
5784  \putratom{120}{-110}{\@@tmpb}%      % right type
5785  \else
5786 % %%%%%%%%%%%%%%%%%%%%%
5787 % % inner bond fusion %
5788 % %%%%%%%%%%%%%%%%%%%%%
5789  \set@fusion@sixhi
5790  \fi\fi\fi\fi\fi\fi%

5791 }%

The inner command \set@fusion@sixhi is used for typesetting a fused ring at each bond represented by \@@tmpa. Warnings concerning mismatched ring-fusions are based on the command \FuseWarning.

\set@fusion@sixhi
5792 \def\set@fusion@sixhi{%
5793 % %%%%%%%%%%%%%%%%%%%%%
5794 % % inner bond fusion %
5795 % %%%%%%%%%%%%%%%%%%%%%
5796 \if\@@tmpa F\relax%
5797  \putlratom{406}{0}{\@@tmpb}%         % bond fused
5798  \FuseWarning{103}{171}%
5799  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F, J, or other}%
5800  \else\if\@@tmpa f\relax%
5801  \putlratom{303}{-171}{\@@tmpb}%     % bond fused
5802  \FuseWarning{-103}{-171}%
5803  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f, j, or other}%
5804  \else\if\@@tmpa E\relax%
5805  \putlratom{303}{-171}{\@@tmpb}%     % bond fused
5806  \FuseWarning{200}{0}%
5807  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, K, or other}%
5808  \else\if\@@tmpa e\relax%
5809  \putlratom{103}{-171}{\@@tmpb}%     % bond fused
5810  \FuseWarning{-200}{0}%
5811  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, k, or other}%
5812  \else\if\@@tmpa D\relax%
5813  \putlratom{103}{-171}{\@@tmpb}%     % bond fused
5814  \FuseWarning{103}{-171}%
5815  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, H, or other}%
5816  \else\if\@@tmpa d\relax%
5817  \putlratom{0}{0}{\@@tmpb}%       % bond fused
5818  \FuseWarning{-103}{171}%

5819  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, h, or other}%
5820  \else\if\@@tmpa C\relax%
5821  \putlratom{0}{0}{\@@tmpb}%       % bond fused
5822  \FuseWarning{-103}{-171}%
5823  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C, E, or other}%
5824  \else\if\@@tmpa c\relax%
5825  \putlratom{103}{171}{\@@tmpb}%    % bond fused
5826  \FuseWarning{103}{171}%
5827  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c, e, or other}%
5828  \else\if\@@tmpa B\relax%
5829  \putlratom{103}{171}{\@@tmpb}%    % bond fused
5830  \FuseWarning{-200}{0}%
5831  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
5832  \else\if\@@tmpa b\relax%
5833  \putlratom{303}{171}{\@@tmpb}%    % bond fused
5834  \FuseWarning{200}{0}%
5835  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
5836  \else\if\@@tmpa A\relax%
5837  \putlratom{303}{171}{\@@tmpb}%    % bond fused
5838  \FuseWarning{-103}{171}%
5839  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
5840  \else\if\@@tmpa a\relax%
5841  \putlratom{406}{0}{\@@tmpb}%      % bond fused
5842  \FuseWarning{103}{-171}%
5843  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
5844  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
5845 }% end of the macro \set@fusion@sixhi

10 Ring-fusion Commands for Six-Six Fused Rings

10.1 Conventions for Warning

\UnfavorableFusion
5846 \def\UnfavorableFusion#1{\if@smallringsw\else
5847 \XyMTeXWarning{Unfavorable Fusion for bond `#1'}\fi}
\ForbiddenFusion
5848 \def\ForbiddenFusion#1{\if@smallringsw\else
5849 \XyMTeXWarning{Forbidden Fusion for bond `#1'}\fi}

10.2 Normal Vertical Type

The macro \set@fusion@decav is an inner command contained in the definition of \decalinev and \decaheterov, where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset

  by the inner command \set@fusionadd@sixv.
\set@fusion@decav
5850 \def\set@fusion@decav{%
5851 \let\@@tmpa=\@tmpa
5852 \let\@@tmpb=\@tmpb
5853 \if\@tmpa a%

5854  \let\@@tmpa=\@tmpa
5855  \Put@Direct(342,0){\set@fusionadd@sixv}%
5856 \else\if\@tmpa A%
5857  \let\@@tmpa=\@tmpa
5858  \Put@Direct(342,0){\set@fusionadd@sixv}%
5859 \else\if\@tmpa b%
5860  \let\@@tmpa=\@tmpa
5861  \Put@Direct(342,0){\set@fusionadd@sixv}%
5862 \else\if\@tmpa B%
5863  \let\@@tmpa=\@tmpa
5864  \Put@Direct(342,0){\set@fusionadd@sixv}%
5865 \else\if\@tmpa c%
5866  \let\@@tmpa=\@tmpa
5867  \Put@Direct(342,0){\set@fusionadd@sixv}%
5868 \else\if\@tmpa C%
5869  \let\@@tmpa=\@tmpa
5870  \Put@Direct(342,0){\set@fusionadd@sixv}%
5871 \else\if\@tmpa d%
5872  \let\@@tmpa=\@tmpa
5873  \Put@Direct(342,0){\set@fusionadd@sixv}%
5874  \UnfavorableFusion{d}%
5875 \else\if\@tmpa D%
5876  \let\@@tmpa=\@tmpa
5877  \Put@Direct(342,0){\set@fusionadd@sixv}%
5878  \UnfavorableFusion{D}%
5879 \else\if\@tmpa e%
5880  \edef\@@tmpa{c}%
5881  \Put@Direct(0,0){\set@fusionadd@sixv}%
5882  \UnfavorableFusion{e}%
5883 \else\if\@tmpa E%
5884  \edef\@@tmpa{C}%
5885  \Put@Direct(0,0){\set@fusionadd@sixv}%
5886  \UnfavorableFusion{E}%
5887 \else\if\@tmpa f%
5888  \edef\@@tmpa{d}%
5889  \Put@Direct(0,0){\set@fusionadd@sixv}%
5890 \else\if\@tmpa F%
5891  \edef\@@tmpa{D}%
5892  \Put@Direct(0,0){\set@fusionadd@sixv}%
5893 \else\if\@tmpa g%
5894  \edef\@@tmpa{e}%
5895  \Put@Direct(0,0){\set@fusionadd@sixv}%
5896 \else\if\@tmpa G%
5897  \edef\@@tmpa{E}%
5898  \Put@Direct(0,0){\set@fusionadd@sixv}%
5899 \else\if\@tmpa h%
5900  \edef\@@tmpa{f}%
5901  \Put@Direct(0,0){\set@fusionadd@sixv}%
5902 \else\if\@tmpa H%
5903  \edef\@@tmpa{F}%
5904  \Put@Direct(0,0){\set@fusionadd@sixv}%
5905 \else\if\@tmpa i%
5906  \edef\@@tmpa{a}%
5907  \Put@Direct(0,0){\set@fusionadd@sixv}%

5908  \UnfavorableFusion{i}%
5909 \else\if\@tmpa I%
5910  \edef\@@tmpa{A}%
5911  \Put@Direct(0,0){\set@fusionadd@sixv}%
5912  \UnfavorableFusion{I}%
5913 \else\if\@tmpa j%
5914  \edef\@@tmpa{f}%
5915  \Put@Direct(342,0){\set@fusionadd@sixv}%
5916  \UnfavorableFusion{j}%
5917 \else\if\@tmpa J%
5918  \edef\@@tmpa{F}%
5919  \Put@Direct(342,0){\set@fusionadd@sixv}%
5920  \UnfavorableFusion{J}%
5921 \else\if\@tmpa k%
5922  \edef\@@tmpa{e}%
5923  \Put@Direct(342,0){\set@fusionadd@sixv}%
5924  \ForbiddenFusion{k}%
5925 \else\if\@tmpa K%
5926  \edef\@@tmpa{E}%
5927  \Put@Direct(342,0){\set@fusionadd@sixv}%
5928  \ForbiddenFusion{K}%
5929 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
5930 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
5931 }% end of the macro \set@fusion@decav

10.3 Vertical-Bottom Type

The macro \set@fusion@decavb is an inner command contained in the definition of \decalinevb and \decaheterovb etc., where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by the inner command \set@fusionadd@sixv.

\set@fusion@decavb
5932 \def\set@fusion@decavb{%
5933 \let\@@tmpa=\@tmpa
5934 \let\@@tmpb=\@tmpb
5935 \if\@tmpa a%
5936  \edef\@@tmpa{b}%
5937  \Put@Direct(0,0){\set@fusionadd@sixv}%
5938 \else\if\@tmpa A%
5939  \edef\@@tmpa{B}%
5940  \Put@Direct(0,0){\set@fusionadd@sixv}%
5941 \else\if\@tmpa b%
5942  \edef\@@tmpa{c}%
5943  \Put@Direct(0,0){\set@fusionadd@sixv}%
5944 \else\if\@tmpa B%
5945  \edef\@@tmpa{C}%
5946  \Put@Direct(0,0){\set@fusionadd@sixv}%
5947 \else\if\@tmpa c%
5948  \edef\@@tmpa{d}%
5949  \Put@Direct(0,0){\set@fusionadd@sixv}%
5950 \else\if\@tmpa C%
5951  \edef\@@tmpa{D}%
5952  \Put@Direct(0,0){\set@fusionadd@sixv}%

5953 \else\if\@tmpa d%
5954  \edef\@@tmpa{e}%
5955  \Put@Direct(0,0){\set@fusionadd@sixv}%
5956  \UnfavorableFusion{d}%
5957 \else\if\@tmpa D%
5958  \edef\@@tmpa{E}%
5959  \Put@Direct(0,0){\set@fusionadd@sixv}%
5960  \UnfavorableFusion{D}%
5961 \else\if\@tmpa e%
5962  \edef\@@tmpa{d}%
5963  \Put@Direct(-171,303){\set@fusionadd@sixv}%
5964  \UnfavorableFusion{e}%
5965 \else\if\@tmpa E%
5966  \edef\@@tmpa{D}%
5967  \Put@Direct(-171,303){\set@fusionadd@sixv}%
5968  \UnfavorableFusion{E}%
5969 \else\if\@tmpa f%
5970  \edef\@@tmpa{e}%
5971  \Put@Direct(-171,303){\set@fusionadd@sixv}%
5972 \else\if\@tmpa F%
5973  \edef\@@tmpa{E}%
5974  \Put@Direct(-171,303){\set@fusionadd@sixv}%
5975 \else\if\@tmpa g%
5976  \edef\@@tmpa{f}%
5977  \Put@Direct(-171,303){\set@fusionadd@sixv}%
5978 \else\if\@tmpa G%
5979  \edef\@@tmpa{F}%
5980  \Put@Direct(-171,303){\set@fusionadd@sixv}%
5981 \else\if\@tmpa h%
5982  \edef\@@tmpa{a}%
5983  \Put@Direct(-171,303){\set@fusionadd@sixv}%
5984 \else\if\@tmpa H%
5985  \edef\@@tmpa{A}%
5986  \Put@Direct(-171,303){\set@fusionadd@sixv}%
5987 \else\if\@tmpa i%
5988  \edef\@@tmpa{b}%
5989  \Put@Direct(-171,303){\set@fusionadd@sixv}%
5990  \UnfavorableFusion{i}%
5991 \else\if\@tmpa I%
5992  \edef\@@tmpa{B}%
5993  \Put@Direct(-171,303){\set@fusionadd@sixv}%
5994  \UnfavorableFusion{I}%
5995 \else\if\@tmpa j%
5996  \edef\@@tmpa{a}%
5997  \Put@Direct(0,0){\set@fusionadd@sixv}%
5998  \UnfavorableFusion{j}%
5999 \else\if\@tmpa J%
6000  \edef\@@tmpa{A}%
6001  \Put@Direct(0,0){\set@fusionadd@sixv}%
6002  \UnfavorableFusion{J}%
6003 \else\if\@tmpa k%
6004  \edef\@@tmpa{c}%
6005  \Put@Direct(-171,303){\set@fusionadd@sixv}%
6006  \ForbiddenFusion{k}%

6007 \else\if\@tmpa K%
6008  \edef\@@tmpa{C}%
6009  \Put@Direct(-171,303){\set@fusionadd@sixv}%
6010  \ForbiddenFusion{K}%
6011 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6012 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6013 }% end of the macro \set@fusion@decavb

10.4 Vertical-Top Type

The macro \set@fusion@decavt is an inner command contained in the definition of \decalinevt and \decaheterovt etc., where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by the inner command \set@fusionadd@sixv.

\set@fusion@decavt
6014 \def\set@fusion@decavt{%
6015 \let\@@tmpa=\@tmpa
6016 \let\@@tmpb=\@tmpb
6017 \if\@tmpa a%
6018  \edef\@@tmpa{f}%
6019  \Put@Direct(171,303){\set@fusionadd@sixv}%
6020 \else\if\@tmpa A%
6021  \edef\@@tmpa{F}%
6022  \Put@Direct(171,303){\set@fusionadd@sixv}%
6023 \else\if\@tmpa b%
6024  \edef\@@tmpa{a}%
6025  \Put@Direct(171,303){\set@fusionadd@sixv}%
6026 \else\if\@tmpa B%
6027  \edef\@@tmpa{A}%
6028  \Put@Direct(171,303){\set@fusionadd@sixv}%
6029 \else\if\@tmpa c%
6030  \edef\@@tmpa{b}%
6031  \Put@Direct(171,303){\set@fusionadd@sixv}%
6032 \else\if\@tmpa C%
6033  \edef\@@tmpa{B}%
6034  \Put@Direct(171,303){\set@fusionadd@sixv}%
6035 \else\if\@tmpa d%
6036  \edef\@@tmpa{c}%
6037  \Put@Direct(171,303){\set@fusionadd@sixv}%
6038  \UnfavorableFusion{d}%
6039 \else\if\@tmpa D%
6040  \edef\@@tmpa{C}%
6041  \Put@Direct(171,303){\set@fusionadd@sixv}%
6042  \UnfavorableFusion{D}%
6043 \else\if\@tmpa e%
6044  \edef\@@tmpa{b}%
6045  \Put@Direct(0,0){\set@fusionadd@sixv}%
6046  \UnfavorableFusion{e}%
6047 \else\if\@tmpa E%
6048  \edef\@@tmpa{B}%
6049  \Put@Direct(0,0){\set@fusionadd@sixv}%
6050  \UnfavorableFusion{E}%
6051 \else\if\@tmpa f%

6052  \edef\@@tmpa{c}%
6053  \Put@Direct(0,0){\set@fusionadd@sixv}%
6054 \else\if\@tmpa F%
6055  \edef\@@tmpa{C}%
6056  \Put@Direct(0,0){\set@fusionadd@sixv}%
6057 \else\if\@tmpa g%
6058  \edef\@@tmpa{d}%
6059  \Put@Direct(0,0){\set@fusionadd@sixv}%
6060 \else\if\@tmpa G%
6061  \edef\@@tmpa{D}%
6062  \Put@Direct(0,0){\set@fusionadd@sixv}%
6063 \else\if\@tmpa h%
6064  \edef\@@tmpa{e}%
6065  \Put@Direct(0,0){\set@fusionadd@sixv}%
6066 \else\if\@tmpa H%
6067  \edef\@@tmpa{E}%
6068  \Put@Direct(0,0){\set@fusionadd@sixv}%
6069 \else\if\@tmpa i%
6070  \edef\@@tmpa{f}%
6071  \Put@Direct(0,0){\set@fusionadd@sixv}%
6072  \UnfavorableFusion{i}%
6073 \else\if\@tmpa I%
6074  \edef\@@tmpa{F}%
6075  \Put@Direct(0,0){\set@fusionadd@sixv}%
6076  \UnfavorableFusion{I}%
6077 \else\if\@tmpa j%
6078  \edef\@@tmpa{e}%
6079  \Put@Direct(171,303){\set@fusionadd@sixv}%
6080  \UnfavorableFusion{j}%
6081 \else\if\@tmpa J%
6082  \edef\@@tmpa{E}%
6083  \Put@Direct(171,303){\set@fusionadd@sixv}%
6084  \UnfavorableFusion{J}%
6085 \else\if\@tmpa k%
6086  \edef\@@tmpa{d}%
6087  \Put@Direct(171,303){\set@fusionadd@sixv}%
6088  \ForbiddenFusion{k}%
6089 \else\if\@tmpa K%
6090  \edef\@@tmpa{D}%
6091  \Put@Direct(171,303){\set@fusionadd@sixv}%
6092  \ForbiddenFusion{K}%
6093 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6094 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6095 }% end of \set@fusion@decavt

10.5 Normal Horizontal Type

The macro \set@fusion@decah is an inner command contained in the definition of \decalineh and \decaheteroh, where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset

  by the inner command \set@fusionadd@sixh.
\set@fusion@decah

6096 \def\set@fusion@decah{%
6097 \let\@@tmpa=\@tmpa
6098 \let\@@tmpb=\@tmpb
6099 \if\@tmpa a%
6100  \let\@@tmpa=\@tmpa
6101  \Put@Direct(0,0){\set@fusionadd@sixh}%
6102 \else\if\@tmpa A%
6103  \let\@@tmpa=\@tmpa
6104  \Put@Direct(0,0){\set@fusionadd@sixh}%
6105 \else\if\@tmpa b%
6106  \let\@@tmpa=\@tmpa
6107  \Put@Direct(0,0){\set@fusionadd@sixh}%
6108 \else\if\@tmpa B%
6109  \let\@@tmpa=\@tmpa
6110  \Put@Direct(0,0){\set@fusionadd@sixh}%
6111 \else\if\@tmpa c%
6112  \let\@@tmpa=\@tmpa
6113  \Put@Direct(0,0){\set@fusionadd@sixh}%
6114 \else\if\@tmpa C%
6115  \let\@@tmpa=\@tmpa
6116  \Put@Direct(0,0){\set@fusionadd@sixh}%
6117 \else\if\@tmpa d%
6118  \let\@@tmpa=\@tmpa
6119  \Put@Direct(0,0){\set@fusionadd@sixh}%
6120  \UnfavorableFusion{d}%
6121 \else\if\@tmpa D%
6122  \let\@@tmpa=\@tmpa
6123  \Put@Direct(0,0){\set@fusionadd@sixh}%
6124  \UnfavorableFusion{D}%
6125 \else\if\@tmpa e%
6126  \edef\@@tmpa{c}%
6127  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6128  \UnfavorableFusion{e}%
6129 \else\if\@tmpa E%
6130  \edef\@@tmpa{C}%
6131  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6132  \UnfavorableFusion{E}%
6133 \else\if\@tmpa f%
6134  \edef\@@tmpa{d}%
6135  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6136 \else\if\@tmpa F%
6137  \edef\@@tmpa{D}%
6138  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6139 \else\if\@tmpa g%
6140  \edef\@@tmpa{e}%
6141  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6142 \else\if\@tmpa G%
6143  \edef\@@tmpa{E}%
6144  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6145 \else\if\@tmpa h%
6146  \edef\@@tmpa{f}%
6147  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6148 \else\if\@tmpa H%
6149  \edef\@@tmpa{F}%

6150  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6151 \else\if\@tmpa i%
6152  \edef\@@tmpa{a}%
6153  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6154  \UnfavorableFusion{i}%
6155 \else\if\@tmpa I%
6156  \edef\@@tmpa{A}%
6157  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6158  \UnfavorableFusion{I}%
6159 \else\if\@tmpa j%
6160  \edef\@@tmpa{f}%
6161  \Put@Direct(0,0){\set@fusionadd@sixh}%
6162  \UnfavorableFusion{j}%
6163 \else\if\@tmpa J%
6164  \edef\@@tmpa{F}%
6165  \Put@Direct(0,0){\set@fusionadd@sixh}%
6166  \UnfavorableFusion{J}%
6167 \else\if\@tmpa k%
6168  \edef\@@tmpa{e}%
6169  \Put@Direct(0,0){\set@fusionadd@sixh}%
6170  \ForbiddenFusion{k}%
6171 \else\if\@tmpa K%
6172  \edef\@@tmpa{E}%
6173  \Put@Direct(0,0){\set@fusionadd@sixh}%
6174  \ForbiddenFusion{K}%
6175 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6176 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6177 }% end of the macro \set@fusion@decah

11 Ring-fusion Commands for Six-Six-Six Fused Rings

11.1 Normal Vertical Type of Anthracenes

The macro \set@fusion@hanthrav is an inner command contained in the definition of \hanthracenev, where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by the inner

  command \set@fusionadd@sixv.
\set@fusion@hanthrav
6178 \def\set@fusion@hanthrav{%
6179 \let\@@tmpa=\@tmpa
6180 \let\@@tmpb=\@tmpb
6181 \if\@tmpa a%
6182  \let\@@tmpa=\@tmpa
6183  \Put@Direct(684,0){\set@fusionadd@sixv}%
6184 \else\if\@tmpa A%
6185  \let\@@tmpa=\@tmpa
6186  \Put@Direct(684,0){\set@fusionadd@sixv}%
6187 \else\if\@tmpa b%
6188  \let\@@tmpa=\@tmpa
6189  \Put@Direct(684,0){\set@fusionadd@sixv}%

6190 \else\if\@tmpa B%
6191  \let\@@tmpa=\@tmpa
6192  \Put@Direct(684,0){\set@fusionadd@sixv}%
6193 \else\if\@tmpa c%
6194  \let\@@tmpa=\@tmpa
6195  \Put@Direct(684,0){\set@fusionadd@sixv}%
6196 \else\if\@tmpa C%
6197  \let\@@tmpa=\@tmpa
6198  \Put@Direct(684,0){\set@fusionadd@sixv}%
6199 \else\if\@tmpa d%
6200  \let\@@tmpa=\@tmpa
6201  \Put@Direct(684,0){\set@fusionadd@sixv}%
6202  \UnfavorableFusion{d}%
6203 \else\if\@tmpa D%
6204  \let\@@tmpa=\@tmpa
6205  \Put@Direct(684,0){\set@fusionadd@sixv}%
6206  \UnfavorableFusion{D}%
6207 \else\if\@tmpa e%
6208  \edef\@@tmpa{c}%
6209  \Put@Direct(342,0){\set@fusionadd@sixv}%
6210  \UnfavorableFusion{e}%
6211 \else\if\@tmpa E%
6212  \edef\@@tmpa{C}%
6213  \Put@Direct(342,0){\set@fusionadd@sixv}%
6214  \UnfavorableFusion{E}%
6215 \else\if\@tmpa f%
6216  \edef\@@tmpa{d}%
6217  \Put@Direct(342,0){\set@fusionadd@sixv}%
6218  \UnfavorableFusion{f}%
6219 \else\if\@tmpa F%
6220  \edef\@@tmpa{D}%
6221  \Put@Direct(342,0){\set@fusionadd@sixv}%
6222  \UnfavorableFusion{F}%
6223 \else\if\@tmpa g%
6224  \edef\@@tmpa{c}%
6225  \Put@Direct(0,0){\set@fusionadd@sixv}%
6226  \UnfavorableFusion{g}%
6227 \else\if\@tmpa G%
6228  \edef\@@tmpa{C}%
6229  \Put@Direct(0,0){\set@fusionadd@sixv}%
6230  \UnfavorableFusion{G}%
6231 \else\if\@tmpa h%
6232  \edef\@@tmpa{d}%
6233  \Put@Direct(0,0){\set@fusionadd@sixv}%
6234 \else\if\@tmpa H%
6235  \edef\@@tmpa{D}%
6236  \Put@Direct(0,0){\set@fusionadd@sixv}%
6237 \else\if\@tmpa i%
6238  \edef\@@tmpa{e}%
6239  \Put@Direct(0,0){\set@fusionadd@sixv}%
6240 \else\if\@tmpa I%
6241  \edef\@@tmpa{E}%
6242  \Put@Direct(0,0){\set@fusionadd@sixv}%
6243 \else\if\@tmpa j%

6244  \edef\@@tmpa{f}%
6245  \Put@Direct(0,0){\set@fusionadd@sixv}%
6246 \else\if\@tmpa J%
6247  \edef\@@tmpa{F}%
6248  \Put@Direct(0,0){\set@fusionadd@sixv}%
6249 \else\if\@tmpa k%
6250  \edef\@@tmpa{a}%
6251  \Put@Direct(0,0){\set@fusionadd@sixv}%
6252  \UnfavorableFusion{k}%
6253 \else\if\@tmpa K%
6254  \edef\@@tmpa{A}%
6255  \Put@Direct(0,0){\set@fusionadd@sixv}%
6256  \UnfavorableFusion{K}%
6257 \else\if\@tmpa l%
6258  \edef\@@tmpa{f}%
6259  \Put@Direct(342,0){\set@fusionadd@sixv}%
6260  \UnfavorableFusion{l}%
6261 \else\if\@tmpa L%
6262  \edef\@@tmpa{F}%
6263  \Put@Direct(342,0){\set@fusionadd@sixv}%
6264  \UnfavorableFusion{L}%
6265 \else\if\@tmpa m%
6266  \edef\@@tmpa{a}%
6267  \Put@Direct(342,0){\set@fusionadd@sixv}%
6268  \UnfavorableFusion{m}%
6269 \else\if\@tmpa M%
6270  \edef\@@tmpa{A}%
6271  \Put@Direct(342,0){\set@fusionadd@sixv}%
6272  \UnfavorableFusion{M}%
6273 \else\if\@tmpa n%
6274  \edef\@@tmpa{f}%
6275  \Put@Direct(684,0){\set@fusionadd@sixv}%
6276  \UnfavorableFusion{n}%
6277 \else\if\@tmpa N%
6278  \edef\@@tmpa{F}%
6279  \Put@Direct(684,0){\set@fusionadd@sixv}%
6280  \UnfavorableFusion{N}%
6281 \else\if\@tmpa o%
6282  \edef\@@tmpa{e}%
6283  \Put@Direct(684,0){\set@fusionadd@sixv}%
6284  \ForbiddenFusion{o}%
6285 \else\if\@tmpa O%
6286  \edef\@@tmpa{E}%
6287  \Put@Direct(684,0){\set@fusionadd@sixv}%
6288  \ForbiddenFusion{O}%
6289 \else\if\@tmpa p%
6290  \edef\@@tmpa{e}%
6291  \Put@Direct(342,0){\set@fusionadd@sixv}%
6292  \ForbiddenFusion{p}%
6293 \else\if\@tmpa P%
6294  \edef\@@tmpa{E}%
6295  \Put@Direct(342,0){\set@fusionadd@sixv}%
6296  \ForbiddenFusion{P}%
6297 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%

6298 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6299 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6300 }% end of the macro \set@fusion@hanthrav

11.2 Normal Vertical Type of Phenanthrenes

The macro \set@fusion@hphenanv is an inner command contained in the definition of \hphenanthrenev, where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by the

  inner command \set@fusionadd@sixv.
\set@fusion@hphenanv
6301 \def\set@fusion@hphenanv{%
6302 \let\@@tmpa=\@tmpa
6303 \let\@@tmpb=\@tmpb
6304 \if\@tmpa a%
6305  \edef\@@tmpa{b}%
6306  \Put@Direct(513,303){\set@fusionadd@sixv}%
6307 \else\if\@tmpa A%
6308  \edef\@@tmpa{B}%
6309  \Put@Direct(513,303){\set@fusionadd@sixv}%
6310 \else\if\@tmpa b%
6311  \edef\@@tmpa{a}%
6312  \Put@Direct(513,303){\set@fusionadd@sixv}%
6313 \else\if\@tmpa B%
6314  \edef\@@tmpa{A}%
6315  \Put@Direct(513,303){\set@fusionadd@sixv}%
6316 \else\if\@tmpa c%
6317  \edef\@@tmpa{f}%
6318  \Put@Direct(513,303){\set@fusionadd@sixv}%
6319 \else\if\@tmpa C%
6320  \edef\@@tmpa{F}%
6321  \Put@Direct(513,303){\set@fusionadd@sixv}%
6322 \else\if\@tmpa d%
6323  \edef\@@tmpa{e}%
6324  \Put@Direct(513,303){\set@fusionadd@sixv}%
6325  \UnfavorableFusion{d}%
6326 \else\if\@tmpa D%
6327  \edef\@@tmpa{E}%
6328  \Put@Direct(513,303){\set@fusionadd@sixv}%
6329  \UnfavorableFusion{D}%
6330 \else\if\@tmpa e%
6331  \edef\@@tmpa{f}%
6332  \Put@Direct(342,0){\set@fusionadd@sixv}%
6333  \UnfavorableFusion{e}%
6334 \else\if\@tmpa E%
6335  \edef\@@tmpa{F}%
6336  \Put@Direct(342,0){\set@fusionadd@sixv}%
6337  \UnfavorableFusion{E}%
6338 \else\if\@tmpa f%
6339  \edef\@@tmpa{a}%
6340  \Put@Direct(0,0){\set@fusionadd@sixv}%
6341  \UnfavorableFusion{f}%
6342 \else\if\@tmpa F%

6343  \edef\@@tmpa{A}%
6344  \Put@Direct(0,0){\set@fusionadd@sixv}%
6345  \UnfavorableFusion{F}%
6346 \else\if\@tmpa g%
6347  \edef\@@tmpa{f}%
6348  \Put@Direct(0,0){\set@fusionadd@sixv}%
6349 \else\if\@tmpa G%
6350  \edef\@@tmpa{F}%
6351  \Put@Direct(0,0){\set@fusionadd@sixv}%
6352 \else\if\@tmpa h%
6353  \edef\@@tmpa{e}%
6354  \Put@Direct(0,0){\set@fusionadd@sixv}%
6355 \else\if\@tmpa H%
6356  \edef\@@tmpa{E}%
6357  \Put@Direct(0,0){\set@fusionadd@sixv}%
6358 \else\if\@tmpa i%
6359  \edef\@@tmpa{d}%
6360  \Put@Direct(0,0){\set@fusionadd@sixv}%
6361 \else\if\@tmpa I%
6362  \edef\@@tmpa{D}%
6363  \Put@Direct(0,0){\set@fusionadd@sixv}%
6364 \else\if\@tmpa j%
6365  \edef\@@tmpa{c}%
6366  \Put@Direct(0,0){\set@fusionadd@sixv}%
6367  \UnfavorableFusion{j}%
6368 \else\if\@tmpa J%
6369  \edef\@@tmpa{C}%
6370  \Put@Direct(0,0){\set@fusionadd@sixv}%
6371  \UnfavorableFusion{J}%
6372 \else\if\@tmpa k%
6373  \edef\@@tmpa{d}%
6374  \Put@Direct(342,0){\set@fusionadd@sixv}%
6375  \UnfavorableFusion{k}%
6376 \else\if\@tmpa K%
6377  \edef\@@tmpa{D}%
6378  \Put@Direct(342,0){\set@fusionadd@sixv}%
6379  \UnfavorableFusion{K}%
6380 \else\if\@tmpa l%
6381  \edef\@@tmpa{c}%
6382  \Put@Direct(342,0){\set@fusionadd@sixv}%
6383 \else\if\@tmpa L%
6384  \edef\@@tmpa{C}%
6385  \Put@Direct(342,0){\set@fusionadd@sixv}%
6386 \else\if\@tmpa m%
6387  \edef\@@tmpa{b}%
6388  \Put@Direct(342,0){\set@fusionadd@sixv}%
6389  \UnfavorableFusion{m}%
6390 \else\if\@tmpa M%
6391  \edef\@@tmpa{B}%
6392  \Put@Direct(342,0){\set@fusionadd@sixv}%
6393  \UnfavorableFusion{M}%
6394 \else\if\@tmpa n%
6395  \edef\@@tmpa{c}%
6396  \Put@Direct(513,303){\set@fusionadd@sixv}%

6397  \UnfavorableFusion{n}%
6398 \else\if\@tmpa N%
6399  \edef\@@tmpa{C}%
6400  \Put@Direct(513,303){\set@fusionadd@sixv}%
6401  \UnfavorableFusion{N}%
6402 \else\if\@tmpa o%
6403  \edef\@@tmpa{d}%
6404  \Put@Direct(513,303){\set@fusionadd@sixv}%
6405  \ForbiddenFusion{o}%
6406 \else\if\@tmpa O%
6407  \edef\@@tmpa{D}%
6408  \Put@Direct(513,303){\set@fusionadd@sixv}%
6409  \ForbiddenFusion{O}%
6410 \else\if\@tmpa p%
6411  \edef\@@tmpa{e}%
6412  \Put@Direct(342,0){\set@fusionadd@sixv}%
6413  \ForbiddenFusion{p}%
6414 \else\if\@tmpa P%
6415  \edef\@@tmpa{E}%
6416  \Put@Direct(342,0){\set@fusionadd@sixv}%
6417  \ForbiddenFusion{P}%
6418 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6419 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6420 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6421 }% end of the macro \set@fusion@hphananv

12 Ring-fusion Commands for Five-Membered Rings

12.1 Normal vertical type

The macro \set@fusionadd@fivev is an inner command contained in the definition of \fiveheterov etc., where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by the

  inner command \set@fusion@fivev.
\set@fusionadd@fivev
6422 \def\set@fusionadd@fivev{%
6423  \if\@@tmpa 1\relax%
6424  \putratom{-38}{88}{\@@tmpb}%        % right type
6425  \else\if\@@tmpa 2\relax%
6426  \putratom{60}{120}{\@@tmpb}%        % right type
6427  \else\if\@@tmpa 3\relax%
6428  \putratom{60}{233}{\@@tmpb}%        % right type
6429  \else\if\@@tmpa 4\relax%
6430  \putratom{-60}{233}{\@@tmpb}%       % right type
6431  \else\if\@@tmpa 5\relax%
6432  \putratom{-60}{120}{\@@tmpb}%       % right type
6433  \else\if\@@tmpa 0\relax%
6434  \putratom{-38}{150}{\@@tmpb}%       % right type
6435  \else
6436 % %%%%%%%%%%%%%%%%%%%%%

6437 % % inner bond fusion %
6438 % %%%%%%%%%%%%%%%%%%%%%
6439  \set@fusion@fivev
6440  \fi\fi\fi\fi\fi\fi%
6441 }% end of the macro \set@fusionadd@fivev

The inner command \set@fusion@fivev is used for typesetting a fused ring at each bond represented by \@@tmpa. Warnings concerning mismatched ring-fusions are based on the command \FuseWarning.

\set@fusion@fivev
6442 \def\set@fusion@fivev{%
6443 % %%%%%%%%%%%%%%%%%%%%%
6444 % % inner bond fusion %
6445 % %%%%%%%%%%%%%%%%%%%%%
6446 \if\@@tmpa a\relax%
6447  \putlratom{0}{0}{\@@tmpb}%      % right type
6448  \FuseWarning{-171}{-103}%
6449  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
6450  \else\if\@@tmpa A\relax%
6451  \putlratom{171}{103}{\@@tmpb}%      % right type
6452  \FuseWarning{171}{103}%
6453  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
6454  \else\if\@@tmpa b\relax%
6455  \putlratom{171}{103}{\@@tmpb}%      % right type
6456  \FuseWarning{0}{-200}%
6457  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
6458  \else\if\@@tmpa B\relax%
6459  \putlratom{171}{303}{\@@tmpb}%      % right type
6460  \FuseWarning{0}{200}%
6461  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
6462  \else\if\@@tmpa c\relax
6463  \XyMTeXWarning{Not-used fusion at bond `c'}%
6464  \else\if\@@tmpa C\relax%
6465  \XyMTeXWarning{Not-used fusion at bond `C'}%
6466  \else\if\@@tmpa d\relax%
6467  \putlratom{-171}{303}{\@@tmpb}%      % right type
6468  \FuseWarning{0}{200}%
6469  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d}%
6470  \else\if\@@tmpa D\relax%
6471  \putlratom{-171}{103}{\@@tmpb}%      % right type
6472  \FuseWarning{0}{-200}%
6473  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D}%
6474  \else\if\@@tmpa e\relax%
6475  \putlratom{-171}{103}{\@@tmpb}%      % right type
6476  \FuseWarning{171}{-103}%
6477  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
6478  \else\if\@@tmpa E\relax%
6479  \putlratom{0}{0}{\@@tmpb}%      % right type
6480  \FuseWarning{-171}{103}%
6481  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
6482  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6483 }% end of the marcro \set@fusion@fivev

12.2 Inverse vertical type

The macro \set@fusionadd@fivevi is an inner command contained in the definition of \fiveheterov etc., where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by

  the inner command \set@fusion@fivevi.
\set@fusionadd@fivevi
6484 \def\set@fusionadd@fivevi{%
6485  \if\@@tmpa 1\relax%
6486  \putratom{-38}{282}{\@@tmpb}%      % right type
6487  \else\if\@@tmpa 2\relax%
6488  \putratom{60}{233}{\@@tmpb}%        % right type
6489  \else\if\@@tmpa 3\relax%
6490  \putratom{60}{120}{\@@tmpb}%        % right type
6491  \else\if\@@tmpa 4\relax%
6492  \putratom{-60}{120}{\@@tmpb}%       % right type
6493  \else\if\@@tmpa 5\relax%
6494  \putratom{-60}{233}{\@@tmpb}%       % right type
6495  \else\if\@@tmpa 0\relax%
6496  \putratom{-38}{213}{\@@tmpb}%       % right type
6497  \else
6498 % %%%%%%%%%%%%%%%%%%%%%
6499 % % inner bond fusion %
6500 % %%%%%%%%%%%%%%%%%%%%%
6501  \set@fusion@fivevi
6502  \fi\fi\fi\fi\fi\fi%
6503 }% end of the macro \set@fusionadd@fivevi

The inner command \set@fusion@fivevi is used for typesetting a fused ring at each bond represented by \@@tmpa. Warnings concerning mismatched ringfusions are based on the command \FuseWarning.

\set@fusion@fivevi
6504 \def\set@fusion@fivevi{%
6505 % %%%%%%%%%%%%%%%%%%%%%
6506 % % inner bond fusion %
6507 % %%%%%%%%%%%%%%%%%%%%%
6508 \if\@@tmpa d\relax%
6509  \putlratom{-171}{103}{\@@tmpb}%     % bond fused
6510  \FuseWarning{0}{-200}%
6511  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, k, or other}%
6512  \else\if\@@tmpa D\relax%
6513  \putlratom{-171}{303}{\@@tmpb}%     % bond fused
6514  \FuseWarning{0}{200}%
6515  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, K, or other}%
6516  \else\if\@@tmpa e\relax%
6517  \putlratom{-171}{303}{\@@tmpb}%     % bond fused
6518  \FuseWarning{-171}{-103}%
6519  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, j, or other}%
6520  \else\if\@@tmpa E\relax%
6521  \putlratom{0}{406}{\@@tmpb}%       % bond fused
6522  \FuseWarning{171}{103}%
6523  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, J, or other}%

6524  \else\if\@@tmpa a\relax%
6525  \putlratom{0}{406}{\@@tmpb}%       % bond fused
6526  \FuseWarning{-171}{103}%
6527  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
6528  \else\if\@@tmpa A\relax%
6529  \putlratom{171}{303}{\@@tmpb}%    % bond fused
6530  \FuseWarning{171}{-103}%
6531  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
6532  \else\if\@@tmpa b\relax%
6533  \putlratom{171}{303}{\@@tmpb}%    % bond fused
6534  \FuseWarning{0}{200}%
6535  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
6536  \else\if\@@tmpa B\relax%
6537  \putlratom{171}{103}{\@@tmpb}%    % bond fused
6538  \FuseWarning{0}{-200}%
6539  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
6540  \else\if\@@tmpa c\relax
6541  \XyMTeXWarning{Not-used fusion at bond `c'}%
6542  \else\if\@@tmpa C\relax%
6543  \XyMTeXWarning{Not-used fusion at bond `C'}%
6544  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6545 }% end of the macro \set@fusion@fivevi

12.3 Normal horizontal type

The macro \set@fusionadd@fiveh is an inner command contained in the definition of \fiveheteroh etc., where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by the

  inner command \set@fusion@fiveh.
\set@fusionadd@fiveh
6546 \def\set@fusionadd@fiveh{%
6547  \if\@@tmpa 1\relax%
6548  \putratom{272}{-18}{\@@tmpb}%      % right type
6549  \else\if\@@tmpa 2\relax%
6550  \putratom{233}{60}{\@@tmpb}%       % right type
6551  \else\if\@@tmpa 3\relax%
6552  \putratom{120}{60}{\@@tmpb}%       % right type
6553  \else\if\@@tmpa 5\relax%
6554  \putratom{233}{-110}{\@@tmpb}%     % right type
6555  \else\if\@@tmpa 4\relax%
6556  \putratom{120}{-110}{\@@tmpb}%     % right type
6557  \else\if\@@tmpa 0\relax%
6558  \putratom{196}{-30}{\@@tmpb}%      % right type
6559  \else
6560 % %%%%%%%%%%%%%%%%%%%%%
6561 % % inner bond fusion %
6562 % %%%%%%%%%%%%%%%%%%%%%
6563  \set@fusion@fiveh
6564  \fi\fi\fi\fi\fi\fi%

6565 }%

The inner command \set@fusion@fiveh is used for typesetting a fused ring at each bond represented by \@@tmpa. Warnings concerning mismatched ring-fusions

are based on the command \FuseWarning.

\set@fusion@fiveh
6566 \def\set@fusion@fiveh{%
6567 % %%%%%%%%%%%%%%%%%%%%%
6568 % % inner bond fusion %
6569 % %%%%%%%%%%%%%%%%%%%%%
6570 \if\@@tmpa E\relax%
6571  \putlratom{406}{0}{\@@tmpb}%         % bond fused
6572  \FuseWarning{103}{171}%
6573  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, J, or other}%
6574  \else\if\@@tmpa e\relax%
6575  \putlratom{303}{-171}{\@@tmpb}%     % bond fused
6576  \FuseWarning{-103}{-171}%
6577  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, j, or other}%
6578  \else\if\@@tmpa D\relax%
6579  \putlratom{303}{-171}{\@@tmpb}%     % bond fused
6580  \FuseWarning{200}{0}%
6581  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, K, or other}%
6582  \else\if\@@tmpa d\relax%
6583  \putlratom{103}{-171}{\@@tmpb}%     % bond fused
6584  \FuseWarning{-200}{0}%
6585  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, k, or other}%
6586  \else\if\@@tmpa c\relax
6587  \XyMTeXWarning{Not-used fusion at bond `c'}%
6588  \else\if\@@tmpa C\relax%
6589  \XyMTeXWarning{Not-used fusion at bond `C'}%
6590  \else\if\@@tmpa B\relax%
6591  \putlratom{103}{171}{\@@tmpb}%    % bond fused
6592  \FuseWarning{-200}{0}%
6593  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
6594  \else\if\@@tmpa b\relax%
6595  \putlratom{303}{171}{\@@tmpb}%    % bond fused
6596  \FuseWarning{200}{0}%
6597  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
6598  \else\if\@@tmpa A\relax%
6599  \putlratom{303}{171}{\@@tmpb}%    % bond fused
6600  \FuseWarning{-103}{171}%
6601  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
6602  \else\if\@@tmpa a\relax%
6603  \putlratom{406}{0}{\@@tmpb}%      % bond fused
6604  \FuseWarning{103}{-171}%
6605  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
6606  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6607 }% end of the macro \set@fusion@fiveh

12.4 Inverse horizontal type

The macro \set@fusionadd@fivehi is an inner command contained in the definition of \fiveheterohi etc., where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by

  the inner command \set@fusion@fivehi.
\set@fusionadd@fivehi

6608 \def\set@fusionadd@fivehi{%
6609  \if\@@tmpa 1\relax%
6610  \putratom{-38}{282}{\@@tmpb}%      % right type
6611  \else\if\@@tmpa 2\relax%
6612  \putratom{60}{233}{\@@tmpb}%       % right type
6613  \else\if\@@tmpa 3\relax%
6614  \putratom{60}{120}{\@@tmpb}%       % right type
6615  \else\if\@@tmpa 4\relax%
6616  \putratom{-60}{120}{\@@tmpb}%      % right type
6617  \else\if\@@tmpa 5\relax%
6618  \putratom{-60}{233}{\@@tmpb}%      % right type
6619  \else\if\@@tmpa 0\relax%
6620  \putratom{140}{-30}{\@@tmpb}%      % right type
6621  \else
6622 % %%%%%%%%%%%%%%%%%%%%%
6623 % % inner bond fusion %
6624 % %%%%%%%%%%%%%%%%%%%%%
6625  \set@fusion@fivehi
6626  \fi\fi\fi\fi\fi\fi%

6627 }%

The inner command \set@fusion@fivehi is used for typesetting a fused ring at each bond represented by \@@tmpa. Warnings concerning mismatched ringfusions are based on the command \FuseWarning.

\set@fusion@fivehi
6628 \def\set@fusion@fivehi{%
6629 % %%%%%%%%%%%%%%%%%%%%%
6630 % % inner bond fusion %
6631 % %%%%%%%%%%%%%%%%%%%%%
6632 \if\@@tmpa d\relax%
6633  \putlratom{303}{-171}{\@@tmpb}%     % bond fused
6634  \FuseWarning{200}{0}%
6635  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, k, or other}%
6636  \else\if\@@tmpa D\relax%
6637  \putlratom{103}{-171}{\@@tmpb}%     % bond fused
6638  \FuseWarning{-200}{0}%
6639  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, K, or other}%
6640  \else\if\@@tmpa e\relax%
6641  \putlratom{103}{-171}{\@@tmpb}%     % bond fused
6642  \FuseWarning{103}{-171}%
6643  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, j, or other}%
6644  \else\if\@@tmpa E\relax%
6645  \putlratom{0}{0}{\@@tmpb}%       % bond fused
6646  \FuseWarning{-103}{171}%
6647  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, J, or other}%
6648  \else\if\@@tmpa a\relax%
6649  \putlratom{0}{0}{\@@tmpb}%       % bond fused
6650  \FuseWarning{-103}{-171}%
6651  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
6652  \else\if\@@tmpa A\relax%
6653  \putlratom{103}{171}{\@@tmpb}%    % bond fused
6654  \FuseWarning{103}{171}%
6655  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%

6656  \else\if\@@tmpa b\relax%
6657  \putlratom{103}{171}{\@@tmpb}%    % bond fused
6658  \FuseWarning{-200}{0}%
6659  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
6660  \else\if\@@tmpa B\relax%
6661  \putlratom{303}{171}{\@@tmpb}%    % bond fused
6662  \FuseWarning{200}{0}%
6663  {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
6664  \else\if\@@tmpa c\relax
6665  \XyMTeXWarning{Not-used fusion at bond `c'}%
6666  \else\if\@@tmpa C\relax%
6667  \XyMTeXWarning{Not-used fusion at bond `C'}%
6668  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6669 }% end of the macro \set@fusion@sixh

13 Ring-fusion Commands for Six-Five-fused Rings

13.1 Normal vertical type

The macro \set@fusion@nonav is an inner command contained in the definition of \indanev and \nonaheterov, where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset

  by the inner command \set@fusionadd@sixvi.
\set@fusion@nonav
6670 \def\set@fusion@nonav{%
6671 \let\@@tmpa=\@tmpa
6672 \let\@@tmpb=\@tmpb
6673 \if\@tmpa a%
6674  \let\@@tmpa=\@tmpa
6675  \Put@Direct(342,0){\set@fusionadd@sixvi}%
6676 \else\if\@tmpa A%
6677  \let\@@tmpa=\@tmpa
6678  \Put@Direct(342,0){\set@fusionadd@sixvi}%
6679 \else\if\@tmpa b%
6680  \let\@@tmpa=\@tmpa
6681  \Put@Direct(342,0){\set@fusionadd@sixvi}%
6682 \else\if\@tmpa B%
6683  \let\@@tmpa=\@tmpa
6684  \Put@Direct(342,0){\set@fusionadd@sixvi}%
6685 \else\if\@tmpa c\relax
6686  \XyMTeXWarning{Not-used fusion at bond `c'}%
6687 \else\if\@tmpa C\relax%
6688  \XyMTeXWarning{Not-used fusion at bond `C'}%
6689 \else\if\@tmpa d%
6690  \edef\@@tmpa{c}%
6691  \Put@Direct(0,0){\set@fusionadd@sixvi}%
6692  \UnfavorableFusion{d}%
6693 \else\if\@tmpa D%
6694  \edef\@@tmpa{C}%
6695  \Put@Direct(0,0){\set@fusionadd@sixvi}%
6696  \UnfavorableFusion{D}%
6697 \else\if\@tmpa e%

6698  \edef\@@tmpa{d}%
6699  \Put@Direct(0,0){\set@fusionadd@sixvi}%
6700 \else\if\@tmpa E%
6701  \edef\@@tmpa{D}%
6702  \Put@Direct(0,0){\set@fusionadd@sixvi}%
6703 \else\if\@tmpa f%
6704  \edef\@@tmpa{e}%
6705  \Put@Direct(0,0){\set@fusionadd@sixvi}%
6706 \else\if\@tmpa F%
6707  \edef\@@tmpa{E}%
6708  \Put@Direct(0,0){\set@fusionadd@sixvi}%
6709 \else\if\@tmpa g%
6710  \edef\@@tmpa{f}%
6711  \Put@Direct(0,0){\set@fusionadd@sixvi}%
6712 \else\if\@tmpa G%
6713  \edef\@@tmpa{F}%
6714  \Put@Direct(0,0){\set@fusionadd@sixvi}%
6715 \else\if\@tmpa h%
6716  \edef\@@tmpa{a}%
6717  \Put@Direct(0,0){\set@fusionadd@sixvi}%
6718  \UnfavorableFusion{h}%
6719 \else\if\@tmpa H%
6720  \edef\@@tmpa{A}%
6721  \Put@Direct(0,0){\set@fusionadd@sixvi}%
6722  \UnfavorableFusion{H}%
6723 \else\if\@tmpa i%
6724  \edef\@@tmpa{f}%
6725  \Put@Direct(342,0){\set@fusionadd@sixvi}%
6726  \UnfavorableFusion{i}%
6727 \else\if\@tmpa I%
6728  \edef\@@tmpa{F}%
6729  \Put@Direct(342,0){\set@fusionadd@sixvi}%
6730  \UnfavorableFusion{I}%
6731 \else\if\@tmpa j%
6732  \edef\@@tmpa{e}%
6733  \Put@Direct(342,0){\set@fusionadd@sixvi}%
6734  \ForbiddenFusion{j}%
6735 \else\if\@tmpa J%
6736  \edef\@@tmpa{E}%
6737  \Put@Direct(342,0){\set@fusionadd@sixvi}%
6738  \ForbiddenFusion{J}%
6739 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6740 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6741 }% end of the macro \set@fusion@nonav

13.2 Inverse vertical type

The macro \set@fusion@nonavi is an inner command contained in the definition of \indanevi and \nonaheterovi, where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset

  by the inner command \set@fusionadd@sixv.
\set@fusion@nonavi

6742 \def\set@fusion@nonavi{%
6743 \let\@@tmpa=\@tmpa
6744 \let\@@tmpb=\@tmpb
6745 \if\@tmpa a%
6746  \let\@@tmpa=\@tmpa
6747  \Put@Direct(342,0){\set@fusionadd@sixv}%
6748 \else\if\@tmpa A%
6749  \let\@@tmpa=\@tmpa
6750  \Put@Direct(342,0){\set@fusionadd@sixv}%
6751 \else\if\@tmpa b%
6752  \let\@@tmpa=\@tmpa
6753  \Put@Direct(342,0){\set@fusionadd@sixv}%
6754 \else\if\@tmpa B%
6755  \let\@@tmpa=\@tmpa
6756  \Put@Direct(342,0){\set@fusionadd@sixv}%
6757 \else\if\@tmpa c\relax
6758  \XyMTeXWarning{Not-used fusion at bond `c'}%
6759 \else\if\@tmpa C\relax%
6760  \XyMTeXWarning{Not-used fusion at bond `C'}%
6761 \else\if\@tmpa d%
6762  \edef\@@tmpa{c}%
6763  \Put@Direct(0,0){\set@fusionadd@sixv}%
6764  \UnfavorableFusion{d}%
6765 \else\if\@tmpa D%
6766  \edef\@@tmpa{C}%
6767  \Put@Direct(0,0){\set@fusionadd@sixv}%
6768  \UnfavorableFusion{D}%
6769 \else\if\@tmpa e%
6770  \edef\@@tmpa{d}%
6771  \Put@Direct(0,0){\set@fusionadd@sixv}%
6772 \else\if\@tmpa E%
6773  \edef\@@tmpa{D}%
6774  \Put@Direct(0,0){\set@fusionadd@sixv}%
6775 \else\if\@tmpa f%
6776  \edef\@@tmpa{e}%
6777  \Put@Direct(0,0){\set@fusionadd@sixv}%
6778 \else\if\@tmpa F%
6779  \edef\@@tmpa{E}%
6780  \Put@Direct(0,0){\set@fusionadd@sixv}%
6781 \else\if\@tmpa g%
6782  \edef\@@tmpa{f}%
6783  \Put@Direct(0,0){\set@fusionadd@sixv}%
6784 \else\if\@tmpa G%
6785  \edef\@@tmpa{F}%
6786  \Put@Direct(0,0){\set@fusionadd@sixv}%
6787 \else\if\@tmpa h%
6788  \edef\@@tmpa{a}%
6789  \Put@Direct(0,0){\set@fusionadd@sixv}%
6790  \UnfavorableFusion{h}%
6791 \else\if\@tmpa H%
6792  \edef\@@tmpa{A}%
6793  \Put@Direct(0,0){\set@fusionadd@sixv}%
6794  \UnfavorableFusion{H}%
6795 \else\if\@tmpa i%

6796  \edef\@@tmpa{f}%
6797  \Put@Direct(342,0){\set@fusionadd@sixv}%
6798  \UnfavorableFusion{i}%
6799 \else\if\@tmpa I%
6800  \edef\@@tmpa{F}%
6801  \Put@Direct(342,0){\set@fusionadd@sixv}%
6802  \UnfavorableFusion{I}%
6803 \else\if\@tmpa j%
6804  \edef\@@tmpa{e}%
6805  \Put@Direct(342,0){\set@fusionadd@sixv}%
6806  \ForbiddenFusion{j}%
6807 \else\if\@tmpa J%
6808  \edef\@@tmpa{E}%
6809  \Put@Direct(342,0){\set@fusionadd@sixv}%
6810  \ForbiddenFusion{J}%
6811 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6812 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6813 }% end of the macro \set@fusion@nonavi

13.3 Normal horizontal type

The macro \set@fusion@nonah is an inner command contained in the definition of \nonaheteroh, where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset by the inner

  command \set@fusionadd@sixhi.
\set@fusion@nonah
6814 \def\set@fusion@nonah{%
6815 \let\@@tmpa=\@tmpa
6816 \let\@@tmpb=\@tmpb
6817 \if\@tmpa a%
6818  \let\@@tmpa=\@tmpa
6819  \Put@Direct(0,0){\set@fusionadd@sixhi}%
6820 \else\if\@tmpa A%
6821  \let\@@tmpa=\@tmpa
6822  \Put@Direct(0,0){\set@fusionadd@sixhi}%
6823 \else\if\@tmpa b%
6824  \let\@@tmpa=\@tmpa
6825  \Put@Direct(0,0){\set@fusionadd@sixhi}%
6826 \else\if\@tmpa B%
6827  \let\@@tmpa=\@tmpa
6828  \Put@Direct(0,0){\set@fusionadd@sixhi}%
6829 \else\if\@tmpa c\relax
6830  \XyMTeXWarning{Not-used fusion at bond `c'}%
6831 \else\if\@tmpa C\relax%
6832  \XyMTeXWarning{Not-used fusion at bond `C'}%
6833 \else\if\@tmpa d%
6834  \edef\@@tmpa{c}%
6835  \Put@Direct(0,-342){\set@fusionadd@sixhi}%
6836  \UnfavorableFusion{d}%
6837 \else\if\@tmpa D%
6838  \edef\@@tmpa{C}%
6839  \Put@Direct(0,-342){\set@fusionadd@sixhi}%
6840  \UnfavorableFusion{D}%

6841 \else\if\@tmpa e%
6842  \edef\@@tmpa{d}%
6843  \Put@Direct(0,-342){\set@fusionadd@sixhi}%
6844 \else\if\@tmpa E%
6845  \edef\@@tmpa{D}%
6846  \Put@Direct(0,-342){\set@fusionadd@sixhi}%
6847 \else\if\@tmpa f%
6848  \edef\@@tmpa{e}%
6849  \Put@Direct(0,-342){\set@fusionadd@sixhi}%
6850 \else\if\@tmpa F%
6851  \edef\@@tmpa{E}%
6852  \Put@Direct(0,-342){\set@fusionadd@sixhi}%
6853 \else\if\@tmpa g%
6854  \edef\@@tmpa{f}%
6855  \Put@Direct(0,-342){\set@fusionadd@sixhi}%
6856 \else\if\@tmpa G%
6857  \edef\@@tmpa{F}%
6858  \Put@Direct(0,-342){\set@fusionadd@sixhi}%
6859 \else\if\@tmpa h%
6860  \edef\@@tmpa{a}%
6861  \Put@Direct(0,-342){\set@fusionadd@sixhi}%
6862  \UnfavorableFusion{h}%
6863 \else\if\@tmpa H%
6864  \edef\@@tmpa{A}%
6865  \Put@Direct(0,-342){\set@fusionadd@sixhi}%
6866  \UnfavorableFusion{H}%
6867 \else\if\@tmpa i%
6868  \edef\@@tmpa{f}%
6869  \Put@Direct(0,0){\set@fusionadd@sixhi}%
6870  \UnfavorableFusion{i}%
6871 \else\if\@tmpa I%
6872  \edef\@@tmpa{F}%
6873  \Put@Direct(0,0){\set@fusionadd@sixhi}%
6874  \UnfavorableFusion{I}%
6875 \else\if\@tmpa j%
6876  \edef\@@tmpa{e}%
6877  \Put@Direct(0,0){\set@fusionadd@sixhi}%
6878  \ForbiddenFusion{j}%
6879 \else\if\@tmpa J%
6880  \edef\@@tmpa{E}%
6881  \Put@Direct(0,0){\set@fusionadd@sixhi}%
6882  \ForbiddenFusion{J}%
6883 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6884 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6885 }% end of the macro \set@fusion@nonah

13.4 Inverse horizontal type

The macro \set@fusion@nonahi is an inner command contained in the definition of \indanehi and \nonaheterohi, where the macro is used for setting an additive or a fused ring at each bond (designated by \@@tmpa). The fused ring is typeset

  by the inner command \set@fusionadd@sixh.

\set@fusion@nonahi
6886 \def\set@fusion@nonahi{%
6887 \let\@@tmpa=\@tmpa
6888 \let\@@tmpb=\@tmpb
6889 \if\@tmpa a%
6890  \let\@@tmpa=\@tmpa
6891  \Put@Direct(0,0){\set@fusionadd@sixh}%
6892 \else\if\@tmpa A%
6893  \let\@@tmpa=\@tmpa
6894  \Put@Direct(0,0){\set@fusionadd@sixh}%
6895 \else\if\@tmpa b%
6896  \let\@@tmpa=\@tmpa
6897  \Put@Direct(0,0){\set@fusionadd@sixh}%
6898 \else\if\@tmpa B%
6899  \let\@@tmpa=\@tmpa
6900  \Put@Direct(0,0){\set@fusionadd@sixh}%
6901 \else\if\@tmpa c\relax
6902  \XyMTeXWarning{Not-used fusion at bond `c'}%
6903 \else\if\@tmpa C\relax%
6904  \XyMTeXWarning{Not-used fusion at bond `C'}%
6905 \else\if\@tmpa d%
6906  \edef\@@tmpa{c}%
6907  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6908  \UnfavorableFusion{d}%
6909 \else\if\@tmpa D%
6910  \edef\@@tmpa{C}%
6911  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6912  \UnfavorableFusion{D}%
6913 \else\if\@tmpa e%
6914  \edef\@@tmpa{d}%
6915  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6916 \else\if\@tmpa E%
6917  \edef\@@tmpa{D}%
6918  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6919 \else\if\@tmpa f%
6920  \edef\@@tmpa{e}%
6921  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6922 \else\if\@tmpa F%
6923  \edef\@@tmpa{E}%
6924  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6925 \else\if\@tmpa g%
6926  \edef\@@tmpa{f}%
6927  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6928 \else\if\@tmpa G%
6929  \edef\@@tmpa{F}%
6930  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6931 \else\if\@tmpa h%
6932  \edef\@@tmpa{a}%
6933  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6934  \UnfavorableFusion{h}%
6935 \else\if\@tmpa H%
6936  \edef\@@tmpa{A}%
6937  \Put@Direct(0,-342){\set@fusionadd@sixh}%
6938  \UnfavorableFusion{H}%

6939 \else\if\@tmpa i%
6940  \edef\@@tmpa{f}%
6941  \Put@Direct(0,0){\set@fusionadd@sixh}%
6942  \UnfavorableFusion{i}%
6943 \else\if\@tmpa I%
6944  \edef\@@tmpa{F}%
6945  \Put@Direct(0,0){\set@fusionadd@sixh}%
6946  \UnfavorableFusion{I}%
6947 \else\if\@tmpa j%
6948  \edef\@@tmpa{e}%
6949  \Put@Direct(0,0){\set@fusionadd@sixh}%
6950  \ForbiddenFusion{j}%
6951 \else\if\@tmpa J%
6952  \edef\@@tmpa{E}%
6953  \Put@Direct(0,0){\set@fusionadd@sixh}%
6954  \ForbiddenFusion{J}%
6955 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6956 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
6957 }% end of the macro \set@fusion@nonahi
6958 \originalpicture%initial setting

6959 ⟨/chemstr⟩