Steroid derivatives by steroid.sty of XΥMTEX (v1.00)

Shinsaku Fujita Shonan Institute of Chemoinformatics and Mathematical Chemistry,

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

2009/06/15

1 Introduction

1.1 Options for docstrip

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

1.2 Version Information

1 ⟨∗steroid⟩

2 \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 4.04}
3 \typeout{       -- Released June 16, 2009 by Shinsaku Fujita}
4 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5 \def\j@urnalname{steroid}
6 \def\versi@ndate{June 15, 2009}
7 \def\versi@nno{ver1.00}
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 steroid.sty

*********************************
* steroid.sty: list of commands *
*********************************
 <Macros for drawing basic steroids>
 \gonane
 \gonanealpha
 \gonanebeta
 \estrane
 \estranealpha
 \estranebeta

\steroidnochainandrostane
\androstane
\androstanealpha
\androstanebeta
\steroidethylchain
\steroidethylchainpregnane
\pregnane
\pregnanealpha
\pregnanebeta
<Macros for drawing steroids with chains (modern type)>
C22-C23: transoid
\steroidChain
\steroidChaindiMe
\cholestaneAlpha
\cholestaneBeta
\cholestane
\ergostaneAlpha
\ergostaneBeta
\ergostane
\campestaneAlpha
\campestaneBeta
\campestane
\poriferastaneAlpha
\poriferastaneBeta
\poriferastane
\stigmastaneAlpha
\stigmastaneBeta
\stigmastane
<Macros for drawing steroids with short chains (modern type)>
C22-C23: transoid
\steroidShortChain
\steroidShortChainMe
\cholaneAlpha
\cholaneBeta
<Macros for drawing steroids with short chains (old type)>
C22-C23: transoid
\steroidshortchain
\steroidshortchainMe
\cholanealpha
\cholanebeta
\cholanE
<Macros for drawing steroids with chains (old type)>

C22-C23: cisoid
\steroidchaindiMe
\cholestanealpha
\cholestanebeta
\cholestanE
\ergostanealpha
\ergostanebeta
\ergostanE
\campestanealpha
\campestanebeta
\campestanE
\poriferastanealpha
\poriferastanebeta
\poriferastanE
\stigmastanealpha
\stigmastanebeta
\stigmastanE
<Macros for drawing spirostans>
\steroidspiro
\steroidspirotriMe
\spirostanalpha
\spirostanbeta
\spirostan
\spirostannor
<Macros for drawing furostans>
\steroidfuros
\steroidspirotriMe
\furostanalpha
\furostanbeta
\furostan
<Macros for drawing spiro pyranoses>
\pyranoseChairi
\pyranoseChairii

3 Input of basic macros

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

12 % *************************
13 % * input of basic macros *
14 % *************************
15 \@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
16 \@ifundefined{steroidchain}{\input carom.sty\relax}{}
17 \@ifundefined{ylchairiposition}{\input ccycle.sty\relax}{}
18 \unitlength=0.1pt

The commands \steroid and \steroidchain for drawing raw skeletons of steroid derivatives have been already defined in carom.sty, which is loaded automatically as above.

4 Macros for Steroids with No Side Chains

By starting from the commands \steroid defined in the carom.sty, several intermediate commands are defined to draw steroid derivatives without side chains.

\gonane
\gonanealpha
\gonanebeta
\estrane
\estranealpha
\estranebeta

19 % ***********************************************
20 % * For drawing side chains of the common style *
21 % ***********************************************
22 % *******************
23 % * gonane, estrane *
24 % *******************
25 \def\gonanealpha{\@ifnextchar[{\@gonanealpha}{\@gonanealpha[]}}
26 \def\@gonanealpha[#1]#2{%
27 \steroid[#1]{#2;5A==H;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
28 \def\gonanebeta{\@ifnextchar[{\@gonanebeta}{\@gonanebeta[]}}
29 \def\@gonanebeta[#1]#2{%
30 \steroid[#1]{#2;5B==H;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
31 \def\gonane{\@ifnextchar[{\@gonane}{\@gonane[]}}
32 \def\@gonane[#1]#2{%
33 \steroid[#1]{#2;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
34 \def\estranealpha{\@ifnextchar[{\@estranealpha}{\@estranealpha[]}}
35 \def\@estranealpha[#1]#2{%
36 \steroid[#1]{#2;5A==H;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
37 \def\estranebeta{\@ifnextchar[{\@estranebeta}{\@estranebeta[]}}
38 \def\@estranebeta[#1]#2{
39 \steroid[#1]{#2;5B==H;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
40 \def\estrane{\@ifnextchar[{\@estrane}{\@estrane[]}}
41 \def\@estrane[#1]#2{
42 \steroid[#1]{#2;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
\steroidnochainandrostane
\androstane
\androstanealpha
\androstanebeta

43 % **************
44 % * androstane *
45 % **************
46 \def\steroidnochainandrostane[#1]#2{%
47 \steroid[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H}}
48 \def\androstanealpha{\@ifnextchar[{\@androstanealpha}{\@androstanealpha[]}}
49 \def\@androstanealpha[#1]#2{\steroidnochainandrostane[#1]{#2;5A==H}}
50 \def\androstanebeta{\@ifnextchar[{\@androstanebeta}{\@androstanebeta[]}}

51 \def\@androstanebeta[#1]#2{\steroidnochainandrostane[#1]{#2;5B==H}}
52 \def\androstane{\@ifnextchar[{\@androstane}{\@androstane[]}}
53 \def\@androstane[#1]#2{\steroidnochainandrostane[#1]{#2}}

5 Macros for Steroids with a Ethyl Chain

After the definition of the macro \steroidethylchain for drawing steroids with an ethyl chain, several commands for drawing pregnane derivative are defined.

\steroidethylchain
54 \def\steroidethylchain{\@ifnextchar[{\@steroidethylchain[@}{\@steroidethylchain[Z]}}
55 \def\@steroidethylchain[#1]#2{%
56 \@reset@ylsw\reset@@yl
57 \yl@steroidposition{#2}%
58 \ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
59 \if@ylsw \ifx\@@ylii\empty
60 \def\@@ylii{-1026}\def\@@yli{-606}\fi
61 \else
62 \ylposition{#2}{-14}{5}{7}{0}%for 20 position
63 \fi
64 \if@ylsw\ifx\@@ylii\empty
65 \def\@@ylii{-1026}\def\@@yli{-606}\fi\else
66 \ylposition{#2}{-20}{3}{5}{0}%for 24 position
67 \fi
68 \if@ylsw\ifx\@@ylii\empty
69 \def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
70 \if@ylsw
71 \yl@shiftii=\@ylii
72 \ifx\@@ylii\empty\else
73 \advance\yl@shiftii\@@ylii\fi
74 \yl@shifti=\@yli
75 \ifx\@@yli\empty\else
76 \advance\yl@shifti\@@yli\fi
77 \advance\yl@shiftii\yl@xdiff
78 \advance\yl@shifti\yl@ydiff
79 \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
80 \reset@yl@xydiff%1999/1/6 by S. Fujita
81 \else
82 \begin{sfpicture}(1850,1500)(-\shiftii,-\shifti)%
83 \iforigpt \typeout{command `steroidethylchain' is based on `steroid'.}\fi%
84 \fi
85 \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
86 \Put@Line(855,709)(0,1){200}%       %bond 17-20
87 \Put@Line(1026,1012)(-5,-3){171}%   %bond 22-20
88 \@tfor\member:=#1\do{%
89 \expandafter\twoCH@R\member//\relax%
90 \if\@tmpa Z\relax%
91 \ifx\@tmpb\empty%no action
92 \else\if\@tmpb a%
93 \Put@Line(888,735)(0,1){148}%       %double bond 17-20
94 \else\if\@tmpb b%
95 \Put@Line(1020,970)(-5,-3){126}%    %double bond 22-20
96 \fi\fi\fi\fi}%

 97 \Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
 98 \Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
 99 %\Put@Direct(1197,709){\setsixringv{#2}{-20}{3}{5}{0}}%for 24 position
100 %\Put@Direct(1397,709){\setatombond{#2}{-24}{4}}%      % for 25
101 \end{sfpicture}}%               %end of \steroidethylchain macro%
\steroidethylchainpregnane
\pregnane
\pregnanealpha
\pregnanebeta

102 % ************
103 % * pregnane *
104 % ************
105 \def\steroidethylchainpregnane[#1]#2{%
106 \steroidethylchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
107 {17}SA==\raisebox{-4pt}{~H}}}
108 \def\pregnanealpha{\@ifnextchar[{\@pregnanealpha}{\@pregnanealpha[]}}
109 \def\@pregnanealpha[#1]#2{\steroidethylchainpregnane[#1]{#2;5A==H}}
110 \def\pregnanebeta{\@ifnextchar[{\@pregnanebeta}{\@pregnanebeta[]}}
111 \def\@pregnanebeta[#1]#2{\steroidethylchainpregnane[#1]{#2;5B==H}}
112 \def\pregnane{\@ifnextchar[{\@pregnane}{\@pregnane[]}}
113 \def\@pregnane[#1]#2{\steroidethylchainpregnane[#1]{#2}}

6 Macros for Steroids with Chains (Modern Types)

For drawing steroids with side chains of modern expressions, the command \steroidChain is created in addition to the previous command \steroidchain for drawing a side chain of an old expression.

\steroidChain
114 % ************************************************************
115 % * Raw Skeleton for drawing side chains of the modern style *
116 % ************************************************************
117 \def\steroidChain{\@ifnextchar[{\@steroidChain[@}{\@steroidChain[Z]}}
118 \def\@steroidChain[#1]#2{%
119 \@reset@ylsw\reset@@yl
120 \yl@steroidposition{#2}%
121 \ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
122 \if@ylsw \ifx\@@ylii\empty
123 \def\@@ylii{-1026}\def\@@yli{-606}\fi
124 \else
125 \ylposition{#2}{-14}{5}{7}{0}%for 20 position
126 \fi
127 \if@ylsw
128 \ifx\@@ylii\empty
129 \def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
130 \else
131 \ylposition{#2}{-23}{0}{2}{0}%for 24 position
132 \fi
133 \if@ylsw\ifx\@@ylii\empty
134 \def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 24 positions
135 \else
136 \ylatombondposition{#2}{-24}{4}%      % for 25
137 \fi
138 \if@ylsw\ifx\@@ylii\empty
139 \def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 25 positions

140 \else
141 \ylatombondposition{#2}{-25}{4}%      % for 26
142 \fi
143 \if@ylsw\ifx\@@ylii\empty
144 \def\@@ylii{-1710}\def\@@yli{-1012}\fi%%set 26 positions
145 \else
146 \ylatombondposition{#2}{-26}{4}%      % for 27
147 \fi
148 \if@ylsw\ifx\@@ylii\empty
149 \def\@@ylii{-1539}\def\@@yli{-709}\fi%%set 27 positions
150 \fi
151 \if@ylsw
152 \yl@shiftii=\@ylii
153 \ifx\@@ylii\empty\else
154 \advance\yl@shiftii\@@ylii\fi
155 \yl@shifti=\@yli
156 \ifx\@@yli\empty\else
157 \advance\yl@shifti\@@yli\fi
158 \advance\yl@shiftii\yl@xdiff
159 \advance\yl@shifti\yl@ydiff
160 \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
161 \reset@yl@xydiff%1999/1/6 by S. Fujita
162 \else
163 \begin{sfpicture}(2300,1500)(-\shiftii,-\shifti)%
164 \iforigpt \typeout{command `steroidChain' is based on `steroid'.}\fi%
165 \fi
166 \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
167 \Put@Line(855,709)(0,1){200}%       %bond 17-20
168 \Put@Line(1026,1012)(-5,-3){171}%   %bond 22-20
169 \Put@Line(1026,1012)(5,-3){171}%    %bond 22-23
170 \Put@Line(1197,909)(5,3){171}%      %bond 23-24
171 \Put@Line(1368,1012)(5,-3){171}%    %bond 24-25
172 \Put@Line(1539,909)(5,3){171}%      %bond 25-26
173 \Put@Line(1539,909)(0,-1){200}%      %bond 25-27
174 \@tfor\member:=#1\do{%
175 \expandafter\twoCH@R\member//\relax%
176 \if\@tmpa Z\relax%
177 \ifx\@tmpb\empty%no action
178 \else\if\@tmpb a%
179 \Put@Line(888,735)(0,1){148}%       %double bond 17-20
180 \else\if\@tmpb b%
181 \Put@Line(1020,970)(-5,-3){126}%    %double bond 22-20
182 \else\if\@tmpb c%
183 \Put@Line(1032,970)(5,-3){126}%     %double bond 22-23
184 \else\if\@tmpb d%
185 \Put@Line(1203,952)(5,3){126}%     %double bond 23-24
186 \else\if\@tmpb e%
187 \Put@Line(1372,970)(5,-3){126}%     %double bond 24-25
188 \else\if\@tmpb f%
189 \Put@Line(1545,952)(5,3){126}%     %double bond 25-26
190 \else\if\@tmpb F%
191 \Put@Line(1580,890)(5,3){126}%     %double bond 25-26(alternative)
192 \else\if\@tmpb g%
193 \Put@Line(1580,890)(0,-1){148}%     %double bond 25-27

194 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
195 \Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{2}{0}}%for 22 position
196 \Put@Direct(1192,909){\setsixringv{#2}{-19}{3}{5}{0}}%for 23 position
197 \Put@Direct(1368,606){\setsixringv{#2}{-23}{0}{2}{0}}%for 24 position
198 \Put@Direct(1539,909){\setatombond{#2}{-24}{5}}%     % for 25
199 \Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
200 \end{sfpicture}}%               %end of \steroidChain macro%
\steroidChaindiMe
201 \def\steroidChaindiMe[#1]#2{%
202 \steroidChain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
203 {17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
    Sometimes, \cholestane[{Z}{Zb}]{} may be used in place of \cholestane[{Zb}]{}

because the latter gives an erroneous result.

\cholestaneAlpha
\cholestaneBeta
\cholestane
\ergostaneAlpha
\ergostaneBeta
\ergostane
\campestaneAlpha
\campestaneBeta
\campestane
\poriferastaneAlpha
\poriferastaneBeta
\poriferastane
\stigmastaneAlpha
\stigmastaneBeta
\stigmastane

204 % *****************************************************
205 % * Intermediate skeletons for drawing                *
206 % * cholestane, ergostane, campestane, poriferastane, *
207 % * and stigmastane (the modern type)                 *
208 % *****************************************************
209 \def\cholestaneAlpha{\@ifnextchar[{\@cholestaneAlpha}{\@cholestaneAlpha[]}}
210 \def\@cholestaneAlpha[#1]#2{\steroidChaindiMe[#1]{#2;5A==H}}
211 \def\cholestaneBeta{\@ifnextchar[{\@cholestaneBeta}{\@cholestaneBeta[]}}
212 \def\@cholestaneBeta[#1]#2{\steroidChaindiMe[#1]{#2;5B==H}}
213 \def\cholestane{\@ifnextchar[{\@cholestane}{\@cholestane[]}}
214 \def\@cholestane[#1]#2{\steroidChaindiMe[#1]{#2}}
215 \def\ergostaneAlpha{\@ifnextchar[{\@ergostaneAlpha}{\@ergostaneAlpha[]}}
216 \def\@ergostaneAlpha[#1]#2{%
217 \@cholestaneAlpha[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
218 \def\ergostaneBeta{\@ifnextchar[{\@ergostaneBeta}{\@ergostaneBeta[]}}
219 \def\@ergostaneBeta[#1]#2{%
220 \@cholestaneBeta[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
221 \def\ergostane{\@ifnextchar[{\@ergostane}{\@ergostane[]}}
222 \def\@ergostane[#1]#2{%
223 \@cholestane[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
224 \def\campestaneAlpha{\@ifnextchar[{\@campestaneAlpha}{\@campestaneAlpha[]}}
225 \def\@campestaneAlpha[#1]#2{%
226 \@cholestaneAlpha[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
227 \def\campestaneBeta{\@ifnextchar[{\@campestaneBeta}{\@campestaneBeta[]}}
228 \def\@campestaneBeta[#1]#2{%
229 \@cholestaneBeta[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
230 \def\campestane{\@ifnextchar[{\@campestane}{\@campestane[]}}
231 \def\@campestane[#1]#2{%
232 \@cholestane[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
233 \def\poriferastaneAlpha{\@ifnextchar[{\@poriferastaneAlpha}{\@poriferastaneAlpha[]}}
234 \def\@poriferastaneAlpha[#1]#2{%
235 \@cholestaneAlpha[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
236 \def\poriferastaneBeta{\@ifnextchar[{\@poriferastaneBeta}{\@poriferastaneBeta[]}}
237 \def\@poriferastaneBeta[#1]#2{%
238 \@cholestaneBeta[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
239 \def\poriferastane{\@ifnextchar[{\@poriferastane}{\@poriferastane[]}}
240 \def\@poriferastane[#1]#2{%

241 \@cholestane[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
242 \def\stigmastaneAlpha{\@ifnextchar[{\@stigmastaneAlpha}{\@stigmastaneAlpha[]}}
243 \def\@stigmastaneAlpha[#1]#2{%
244 \@cholestaneAlpha[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
245 \def\stigmastaneBeta{\@ifnextchar[{\@stigmastaneBeta}{\@stigmastaneBeta[]}}
246 \def\@stigmastaneBeta[#1]#2{%
247 \@cholestaneBeta[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
248 \def\stigmastane{\@ifnextchar[{\@stigmastane}{\@stigmastane[]}}
249 \def\@stigmastane[#1]#2{%
250 \@cholestane[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}

7 Macros for Steroids with Short Chains (Modern Types)

\steroidShortChain
251 % ******************************************************************
252 % * Raw Skeleton for drawing short side chains of the modern style *
253 % ******************************************************************
254 \def\steroidShortChain{\@ifnextchar[{\@steroidShortChain[@}{\@steroidShortChain[Z]}}
255 \def\@steroidShortChain[#1]#2{%
256 \@reset@ylsw\reset@@yl
257 \yl@steroidposition{#2}%
258 \ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
259 \if@ylsw \ifx\@@ylii\empty
260 \def\@@ylii{-1026}\def\@@yli{-606}\fi
261 \else
262 \ylposition{#2}{-14}{5}{7}{0}%for 20 position
263 \fi
264 \if@ylsw
265 \ifx\@@ylii\empty
266 \def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
267 \else
268 \ylposition{#2}{-23}{0}{2}{0}%for 24 position
269 \fi
270 \if@ylsw\ifx\@@ylii\empty
271 \def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 24 positions
272 \fi
273 \if@ylsw
274 \yl@shiftii=\@ylii
275 \ifx\@@ylii\empty\else
276 \advance\yl@shiftii\@@ylii\fi
277 \yl@shifti=\@yli
278 \ifx\@@yli\empty\else
279 \advance\yl@shifti\@@yli\fi
280 \advance\yl@shiftii\yl@xdiff
281 \advance\yl@shifti\yl@ydiff
282 \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
283 \reset@yl@xydiff%1999/1/6 by S. Fujita
284 \else
285 \begin{sfpicture}(2000,1500)(-\shiftii,-\shifti)%
286 \iforigpt \typeout{command `steroidChain' is based on `steroid'.}\fi%
287 \fi

288 \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
289 \Put@Line(855,709)(0,1){200}%       %bond 17-20
290 \Put@Line(1026,1012)(-5,-3){171}%   %bond 22-20
291 \Put@Line(1026,1012)(5,-3){171}%    %bond 22-23
292 \Put@Line(1197,909)(5,3){171}%      %bond 23-24
293 \@tfor\member:=#1\do{%
294 \expandafter\twoCH@R\member//\relax%
295 \if\@tmpa Z\relax%
296 \ifx\@tmpb\empty%no action
297 \else\if\@tmpb a%
298 \Put@Line(888,735)(0,1){148}%       %double bond 17-20
299 \else\if\@tmpb b%
300 \Put@Line(1020,970)(-5,-3){126}%    %double bond 22-20
301 \else\if\@tmpb c%
302 \Put@Line(1032,970)(5,-3){126}%     %double bond 22-23
303 \else\if\@tmpb d%
304 \Put@Line(1203,952)(5,3){126}%     %double bond 23-24
305 \fi\fi\fi\fi\fi\fi}%
306 \Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{2}{0}}%for 22 position
307 \Put@Direct(1192,909){\setsixringv{#2}{-19}{3}{5}{0}}%for 23 position
308 \Put@Direct(1368,606){\setsixringv{#2}{-23}{0}{2}{0}}%for 24 position
309 %\Put@Direct(1539,909){\setatombond{#2}{-24}{5}}%     % for 25
310 \Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
311 \end{sfpicture}}%               %end of \steroidShortChain macro%
\steroidShortChainMe
312 \def\steroidShortChainMe[#1]#2{%
313 \steroidShortChain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
314 {17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
\cholaneAlpha
\cholaneBeta
\cholane

315 % *****************************************************************
316 % * Intermediate skeletons for drawing choranes (the modern type) *
317 % *****************************************************************
318 \def\cholaneAlpha{\@ifnextchar[{\@cholaneAlpha}{\@cholaneAlpha[]}}
319 \def\@cholaneAlpha[#1]#2{\steroidShortChainMe[#1]{#2;5A==H}}
320 \def\cholaneBeta{\@ifnextchar[{\@cholaneBeta}{\@cholaneBeta[]}}
321 \def\@cholaneBeta[#1]#2{\steroidShortChainMe[#1]{#2;5B==H}}
322 \def\cholane{\@ifnextchar[{\@cholane}{\@cholane[]}}
323 \def\@cholane[#1]#2{\steroidShortChainMe[#1]{#2}}

8 Macros for Steroids with Short Chains (Old Types)

\steroidshortchain
324 % ******************************************************
325 % * Raw skeletons drawing side chains of the old style *
326 % ******************************************************
327 \def\steroidshortchain{\@ifnextchar[{\@steroidshortchain[@}{\@steroidshortchain[Z]}}
328 \def\@steroidshortchain[#1]#2{%
329 \@reset@ylsw\reset@@yl
330 \yl@steroidposition{#2}%

331 \ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
332 \if@ylsw \ifx\@@ylii\empty
333 \def\@@ylii{-1026}\def\@@yli{-606}\fi
334 \else
335 \ylposition{#2}{-14}{5}{7}{0}%for 20 position
336 \fi
337 \if@ylsw\ifx\@@ylii\empty
338 \def\@@ylii{-1026}\def\@@yli{-606}\fi\else
339 \ylposition{#2}{-20}{3}{5}{0}%for 24 position
340 \fi
341 \if@ylsw\ifx\@@ylii\empty
342 \def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
343 \if@ylsw
344 \yl@shiftii=\@ylii
345 \ifx\@@ylii\empty\else
346 \advance\yl@shiftii\@@ylii\fi
347 \yl@shifti=\@yli
348 \ifx\@@yli\empty\else
349 \advance\yl@shifti\@@yli\fi
350 \advance\yl@shiftii\yl@xdiff
351 \advance\yl@shifti\yl@ydiff
352 \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
353 \reset@yl@xydiff%1999/1/6 by S. Fujita
354 \else
355 \begin{sfpicture}(1850,1500)(-\shiftii,-\shifti)%
356 \iforigpt \typeout{command `steroidshortchain' is based on `steroid'.}\fi%
357 \fi
358 \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
359 \Put@Line(855,709)(0,1){200}%       %bond 17-20
360 \Put@Line(1026,1012)(-5,-3){171}%   %bond 22-20
361 \Put@Line(1026,1012)(5,-3){171}%    %bond 22-23
362 \Put@Line(1197,709)(0,1){200}%      %bond 24-23
363 \@tfor\member:=#1\do{%
364 \expandafter\twoCH@R\member//\relax%
365 \if\@tmpa Z\relax%
366 \ifx\@tmpb\empty%no action
367 \else\if\@tmpb a%
368 \Put@Line(888,735)(0,1){148}%       %double bond 17-20
369 \else\if\@tmpb b%
370 \Put@Line(1020,970)(-5,-3){126}%    %double bond 22-20
371 \else\if\@tmpb c%
372 \Put@Line(1032,970)(5,-3){126}%     %double bond 22-23
373 \else\if\@tmpb d%
374 \Put@Line(1164,735)(0,1){148}%      %double bond 24-23
375 \fi\fi\fi\fi\fi\fi}%
376 \Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
377 \Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
378 \Put@Direct(1197,709){\setsixringv{#2}{-20}{3}{5}{0}}%for 24 position
379 \end{sfpicture}}%               %end of \steroidshortchain macro%
\steroidshortchainMe
\cholanealpha
\cholanebeta
\cholanE

380 % ***********
381 % * cholane *
382 % ***********

383 \def\steroidshortchainMe[#1]#2{%
384 \steroidshortchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
385 {17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
386 \def\cholanealpha{\@ifnextchar[{\@cholanealpha}{\@cholanealpha[]}}
387 \def\@cholanealpha[#1]#2{\steroidshortchainMe[#1]{#2;5A==H}}
388 \def\cholanebeta{\@ifnextchar[{\@cholanebeta}{\@cholanebeta[]}}
389 \def\@cholanebeta[#1]#2{\steroidshortchainMe[#1]{#2;5B==H}}
390 \def\cholanE{\@ifnextchar[{\@cholanE}{\@cholanE[]}}
391 \def\@cholanE[#1]#2{\steroidshortchainMe[#1]{#2}}

9 Macros for Steroids with Chains (Old Types)

For drawing steroids with side chains of old expressions, the command \steroidchain defined in carom.sty is used.

\steroidchaindiMe
\cholestanealpha
\cholestanebeta
\cholestanE
\ergostanealpha
\ergostanebeta
\ergostanE
\campestanealpha
\campestanebeta
\campestanE

392 % ************************************************
393 % * cholestane, ergostane, campestane (old type) *
394 % ************************************************
395 \def\steroidchaindiMe[#1]#2{%
396 \steroidchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
397 {17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
398 \def\cholestanealpha{\@ifnextchar[{\@cholestanealpha}{\@cholestanealpha[]}}
399 \def\@cholestanealpha[#1]#2{\steroidchaindiMe[#1]{#2;5A==H}}
400 \def\cholestanebeta{\@ifnextchar[{\@cholestanebeta}{\@cholestanebeta[]}}
401 \def\@cholestanebeta[#1]#2{\steroidchaindiMe[#1]{#2;5B==H}}
402 \def\cholestanE{\@ifnextchar[{\@cholestanE}{\@cholestanE[]}}
403 \def\@cholestanE[#1]#2{\steroidchaindiMe[#1]{#2}}
404 \def\ergostanealpha{\@ifnextchar[{\@ergostanealpha}{\@ergostanealpha[]}}
405 \def\@ergostanealpha[#1]#2{%
406 \@cholestanealpha[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
407 \def\ergostanebeta{\@ifnextchar[{\@ergostanebeta}{\@ergostanebeta[]}}
408 \def\@ergostanebeta[#1]#2{%
409 \@cholestanebeta[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
410 \def\ergostanE{\@ifnextchar[{\@ergostanE}{\@ergostanE[]}}
411 \def\@ergostanE[#1]#2{%
412 \@cholestanE[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
413 \def\campestanealpha{\@ifnextchar[{\@campestanealpha}{\@campestanealpha[]}}
414 \def\@campestanealpha[#1]#2{%
415 \@cholestanealpha[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
416 \def\campestanebeta{\@ifnextchar[{\@campestanebeta}{\@campestanebeta[]}}
417 \def\@campestanebeta[#1]#2{%
418 \@cholestanebeta[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
419 \def\campestanE{\@ifnextchar[{\@campestanE}{\@campestanE[]}}
420 \def\@campestanE[#1]#2{%
421 \@cholestanE[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
\poriferastanealpha
\poriferastanebeta
\poriferastanE
\stigmastanealpha
\stigmastanebeta
\stigmastanE

422 % *****************************************
423 % * poriferastane, stigmastane (old type) *
424 % *****************************************
425 \def\poriferastanealpha{\@ifnextchar[{\@poriferastanealpha}{\@poriferastanealpha[]}}
426 \def\@poriferastanealpha[#1]#2{%

427 \@cholestanealpha[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
428 \def\poriferastanebeta{\@ifnextchar[{\@poriferastanebeta}{\@poriferastanebeta[]}}
429 \def\@poriferastanebeta[#1]#2{%
430 \@cholestanebeta[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
431 \def\poriferastanE{\@ifnextchar[{\@poriferastanE}{\@poriferastanE[]}}
432 \def\@poriferastanE[#1]#2{%
433 \@cholestanE[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
434 \def\stigmastanealpha{\@ifnextchar[{\@stigmastanealpha}{\@stigmastanealpha[]}}
435 \def\@stigmastanealpha[#1]#2{%
436 \@cholestanealpha[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
437 \def\stigmastanebeta{\@ifnextchar[{\@stigmastanebeta}{\@stigmastanebeta[]}}
438 \def\@stigmastanebeta[#1]#2{%
439 \@cholestanebeta[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
440 \def\stigmastanE{\@ifnextchar[{\@stigmastanE}{\@stigmastanE[]}}
441 \def\@stigmastanE[#1]#2{%
442 \@cholestanE[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}

10 Macros for Spirostans

After the macro \steroidspiro is defined as a basic macro several macros for drawing spirostans are defined.

\steroidspiro
443 % ***************************************
444 % * Raw skeleton for drawing spirostans *
445 % ***************************************
446 \def\steroidspiro{\@ifnextchar[{\@steroidspiro[@}{\@steroidspiro[Z]}}
447 \def\@steroidspiro[#1]#2{%
448 \@reset@ylsw\reset@@yl
449 \yl@steroidposition{#2}%
450 \ylposition{#2}{-20}{1}{3}{0}%for 22 position
451 \if@ylsw \ifx\@@ylii\empty
452 \def\@@ylii{-1026}\def\@@yli{-606}\fi
453 \else
454 \ylposition{#2}{-14}{5}{7}{0}%for 20 position
455 \fi
456 \if@ylsw
457 \ifx\@@ylii\empty
458 \def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
459 \else
460 \ylposition{#2}{-22}{0}{2}{0}%for 23 position
461 \fi
462 \if@ylsw\ifx\@@ylii\empty
463 \def\@@ylii{-1368}\def\@@yli{-400}\fi%%set 23 position
464 \else
465 \ylatombondposition{#2}{-23}{4}%      % for 24
466 \fi
467 \if@ylsw\ifx\@@ylii\empty
468 \def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 24 position
469 \else
470 \ylatombondposition{#2}{-24}{4}%      % for 25
471 \fi
472 \if@ylsw\ifx\@@ylii\empty

473 \def\@@ylii{-1539}\def\@@yli{-1109}\fi%%set 25 position
474 \else
475 \ylatombondposition{#2}{-25}{4}%      % for 26
476 \fi
477 \if@ylsw\ifx\@@ylii\empty
478 \def\@@ylii{-1368}\def\@@yli{-1212}\fi%%set 26 position
479 \fi
480 \if@ylsw
481 \yl@shiftii=\@ylii
482 \ifx\@@ylii\empty\else
483 \advance\yl@shiftii\@@ylii\fi
484 \yl@shifti=\@yli
485 \ifx\@@yli\empty\else
486 \advance\yl@shifti\@@yli\fi
487 \advance\yl@shiftii\yl@xdiff
488 \advance\yl@shifti\yl@ydiff
489 \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
490 \reset@yl@xydiff%1999/1/6 by S. Fujita
491 \else
492 \begin{sfpicture}(2300,1500)(-\shiftii,-\shifti)%
493 \iforigpt \typeout{command `steroidspiro' is based on `steroid'.}\fi%
494 \fi
495 \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
496 \Put@Line(855,709)(0,1){200}%       %bond 17-20
497 \Put@Line(855,909)(1,0){342}%       %bond 20-22
498 \Put@Line(1197,909)(0,-1){140}%       %bond 22-O (down)
499 \Put@Line(1026,606)(5,3){120}%       %bond 16-O
500 \Put@Direct(1197,709){\makebox(0,0){O}}%
501 \dotorline(1197,909)(0,1){140}/(1197,909)(1197,1049)% 22-O (up)
502 {\thicklines
503 \Put@Line(1197,909)(5,-3){171}%       %bond 22-23

504 }%

505 \Put@Line(1539,909)(-5,-3){171}%       %bond 24-23
506 \Put@Line(1539,909)(0,1){200}%       %bond 24-25
507 \Put@Line(1539,1109)(-5,3){171}%       %bond 25-26
508 \Put@Line(1368,1212)(-5,-3){120}%       %bond 26-O (down)
509 \Put@Direct(1197,1109){\makebox(0,0){O}}%
510 \@tfor\member:=#1\do{%
511 \expandafter\twoCH@R\member//\relax%
512 \if\@tmpa Z\relax%
513 \ifx\@tmpb\empty%no action
514 \else\if\@tmpb a%
515 \Put@Line(888,735)(0,1){148}%       %double bond 17-20
516 \else\if\@tmpb b%
517 \Put@Line(888,880)(1,0){276}%    %double bond 20-22
518 \else\if\@tmpb c%
519 \Put@Line(1164,880)(0,-1){116}%    %double bond 22-O
520 \else\if\@tmpb d%
521 \Put@Line(1039,650)(5,3){100}%       %double bond 16-O
522 \else\if\@tmpb e%
523 \Put@Line(1240,930)(5,-3){126}%    %double bond 22-23
524 \else\if\@tmpb f%
525 \Put@Line(1366,848)(5,3){140}%     %double bond 23-24
526 \else\if\@tmpb g%

527 \Put@Line(1504,930)(0,1){148}%     %double bond 24-25
528 \else\if\@tmpb h%
529 \Put@Line(1366,1166)(5,-3){140}%     %double bond 26-25
530 \else\if\@tmpb i%
531 \Put@Line(1366,1166)(-5,-3){110}%     %double bond 26-O
532 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
533 \Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
534 \Put@Direct(1026,606){\setsixringv{#2}{-112}{4}{6}{0}}%for 17 position (117 as Exception)
535 \Put@Direct(1368,806){\setsixringv{#2}{-25}{0}{2}{0}}%for 26
536 \Put@Direct(1368,806){\setsixringv{#2}{-23}{1}{3}{0}}%for 25
537 \Put@Direct(1368,806){\setsixringv{#2}{-21}{2}{4}{0}}%for 24
538 \Put@Direct(1368,806){\setsixringv{#2}{-19}{3}{5}{0}}%for 23
539 \end{sfpicture}}%               %end of \steroidspiro macro%
\steroidspirotriMe
\spirostanalpha
\spirostanbeta
\spirostan
\spirostannor

540 % **************
541 % * spirostans *
542 % **************
543 \def\steroidspirotriMe[#1]#2{%
544 \steroidspiro[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
545 {117}FA==H;{20}A==H$_{3}$C;{16}FA==H}}
546 \def\spirostanalpha{\@ifnextchar[{\@spirostanalpha}{\@spirostanalpha[]}}
547 \def\@spirostanalpha[#1]#2{\steroidspirotriMe[#1]{#2;5A==H;{25}B==CH$_{3}$}}
548 \def\spirostanbeta{\@ifnextchar[{\@spirostanbeta}{\@spirostanbeta[]}}
549 \def\@spirostanbeta[#1]#2{\steroidspirotriMe[#1]{#2;5B==H;{25}B==CH$_{3}$}}
550 \def\spirostan{\@ifnextchar[{\@spirostan}{\@spirostan[]}}
551 \def\@spirostan[#1]#2{\steroidspirotriMe[#1]{#2;{{25}}==\null}}
552 \def\spirostannor{\@ifnextchar[{\@spirostannor}{\@spirostannor[]}}
553 \def\@spirostannor[#1]#2{\steroidspirotriMe[#1]{#2}}

11 Macros for Furostans

After the macro \steroidfuros is defined as a basic macro, several macros for drawing furostans are defined.

\steroidfuros
554 % **************************************
555 % * Raw skeleton for drawing furostans *
556 % **************************************
557 \def\steroidfuros{\@ifnextchar[{\@steroidfuros[@}{\@steroidfuros[Z]}}
558 \def\@steroidfuros[#1]#2{%
559 \@reset@ylsw\reset@@yl
560 \yl@steroidposition{#2}%
561 \ylposition{#2}{-20}{1}{3}{0}%for 22 position
562 \if@ylsw \ifx\@@ylii\empty
563 \def\@@ylii{-1026}\def\@@yli{-606}\fi
564 \else
565 \ylposition{#2}{-14}{5}{7}{0}%for 20 position
566 \fi
567 \if@ylsw
568 \ifx\@@ylii\empty
569 \def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
570 \else

571 \ylposition{#2}{-22}{0}{2}{0}%for 23 position
572 \fi
573 \if@ylsw\ifx\@@ylii\empty
574 \def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 23 position
575 \else
576 \ylatombondposition{#2}{-23}{4}%      % for 24
577 \fi
578 \if@ylsw\ifx\@@ylii\empty
579 \def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 24 position
580 \else
581 \ylatombondposition{#2}{-24}{4}%      % for 25
582 \fi
583 \if@ylsw\ifx\@@ylii\empty
584 \def\@@ylii{-1710}\def\@@yli{-1012}\fi%%set 25 position
585 \else
586 \ylatombondposition{#2}{-25}{4}%      % for 26
587 \fi
588 \if@ylsw\ifx\@@ylii\empty
589 \def\@@ylii{-1710}\def\@@yli{-1212}\fi%%set 26 position
590 \else
591 \ylatombondposition{#2}{-26}{4}%      % for 27
592 \fi
593 \if@ylsw\ifx\@@ylii\empty
594 \def\@@ylii{-1881}\def\@@yli{-909}\fi%%set 27 position
595 \fi
596 \if@ylsw
597 \yl@shiftii=\@ylii
598 \ifx\@@ylii\empty\else
599 \advance\yl@shiftii\@@ylii\fi
600 \yl@shifti=\@yli
601 \ifx\@@yli\empty\else
602 \advance\yl@shifti\@@yli\fi
603 \advance\yl@shiftii\yl@xdiff
604 \advance\yl@shifti\yl@ydiff
605 \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
606 \reset@yl@xydiff%1999/1/6 by S. Fujita
607 \else
608 \begin{sfpicture}(2300,1500)(-\shiftii,-\shifti)%
609 \iforigpt \typeout{command `steroidfuros' is based on `steroid'.}\fi%
610 \fi
611 \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
612 \Put@Line(855,709)(0,1){200}%       %bond 17-20
613 \Put@Line(855,909)(1,0){342}%       %bond 20-22
614 \Put@Line(1197,909)(0,-1){140}%       %bond 22-O (down)
615 \Put@Line(1026,606)(5,3){120}%       %bond 16-O
616 \Put@Direct(1197,709){\makebox(0,0){O}}%
617 \Put@Line(1197,909)(5,3){171}%       %bond 22-23
618 \Put@Line(1368,1012)(5,-3){171}%       %bond 23-24
619 \Put@Line(1539,909)(5,3){171}%       %bond 24-25
620 \Put@Line(1710,1012)(5,-3){171}%       %bond 25-27
621 \Put@Line(1710,1012)(0,1){200}%       %bond 25-27
622 \@tfor\member:=#1\do{%
623 \expandafter\twoCH@R\member//\relax%
624 \if\@tmpa Z\relax%

625 \ifx\@tmpb\empty%no action
626 \else\if\@tmpb a%
627 \Put@Line(888,735)(0,1){148}%       %double bond 17-20
628 \else\if\@tmpb b%
629 \Put@Line(888,880)(1,0){276}%    %double bond 20-22
630 \else\if\@tmpb c%
631 \Put@Line(1164,880)(0,-1){116}%    %double bond 22-O
632 \else\if\@tmpb d%
633 \Put@Line(1039,650)(5,3){100}%       %double bond 16-O
634 \else\if\@tmpb e%
635 \Put@Line(1240,900)(5,3){126}%    %double bond 22-23
636 \else\if\@tmpb f%
637 \Put@Line(1410,1022)(5,-3){126}%     %double bond 23-24
638 \else\if\@tmpb g%
639 \Put@Line(1582,900)(5,3){126}%    %double bond 24-25
640 \else\if\@tmpb h%
641 \Put@Line(1740,1035)(0,1){150}%     %double bond 25-26
642 \else\if\@tmpb i%
643 \Put@Line(1752,1022)(5,-3){126}%     %double bond 25-27
644 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
645 \Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
646 \Put@Direct(1026,606){\setsixringv{#2}{-112}{4}{6}{0}}%for 17 position (117 as Exception)
647 \Put@Direct(1197,503){\setsixringv{#2}{-21}{0}{2}{0}}%for 22
648 \Put@Direct(1368,606){\setsixringv{#2}{-22}{0}{2}{0}}%for 23
649 \Put@Direct(1539,909){\setsixringv{#2}{-20}{3}{5}{0}}%for 24
650 \Put@Direct(1710,1012){\setatombond{#2}{-24}{3}}%      % for 25
651 \Put@Direct(1539,909){\setsixringv{#2}{-24}{1}{3}{0}}%for 26
652 \Put@Direct(1710,606){\setsixringv{#2}{-25}{1}{3}{0}}%for 27
653 \end{sfpicture}}%               %end of \steroidfuros macro%
\steroidfurostriMe
\furostanalpha
\furostanbeta
\furostan

654 % *************
655 % * furostans *
656 % *************
657 \def\steroidfurostriMe[#1]#2{%
658 \steroidfuros[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
659 {117}FA==H;{20}A==H$_{3}$C;{16}FA==H}}
660 \def\furostanalpha{\@ifnextchar[{\@furostanalpha}{\@furostanalpha[]}}
661 \def\@furostanalpha[#1]#2{\steroidfurostriMe[#1]{#2;5A==H}}
662 \def\furostanbeta{\@ifnextchar[{\@furostanbeta}{\@furostanbeta[]}}
663 \def\@furostanbeta[#1]#2{\steroidfurostriMe[#1]{#2;5B==H}}
664 \def\furostan{\@ifnextchar[{\@furostan}{\@furostan[]}}
665 \def\@furostan[#1]#2{\steroidfurostriMe[#1]{#2}}

666 ⟨/steroid⟩

12 Macros for Spiro Pyranoses

The macro \pyranoseChairi is defined to draw steroid with spiro pyranose rings The switch \pyranoseChairalphatrue is declared to draw an alpha bond (a dashed line).

\ifpyranoseChairalpha
\pyranoseChairi
667 \newif\ifpyranoseChairalpha

668 \pyranoseChairalphatrue
669 \def\pyranoseChairi{\@ifnextchar[{\@pyranoseChairi}{\@pyranoseChairi[r]}}
670 \def\@pyranoseChairi[#1]#2{%
671 \@reset@ylsw%
672 \ylchairiposition{#2}%
673 \def\@@ylii{0}\def\@@yli{0}%
674 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
675 (1600,800)(-400,-319){chairi}%
676 (400,319)%2002/4/30 by S. Fujita
677 % skeletal bonds
678 \thinlines%
679 \ifpyranoseChairalpha
680 \dotorline(0,0)(3,4){140}/(0,0)(140,187)% bond 1 to 6
681 \else
682  \Put@Line(0,0)(3,4){140}%         % bond 1 to 6
683 \fi
684  \Put@Line(573,91)(-3,1){360}%      %      5 to 6
685  \Put@Direct(130,190){O}%
686  \Put@Line(573,91)(3,1){270}%      %      5 to 4
687 {\thicklines%
688  \molfronttrue%
689  \Put@Line(843,181)(-3,-4){170}%    %      4 to 3
690  \Put@Line(673,-46)(-3,1){403}%     %      3 to 2
691  \Put@Line(0,0)(3,1){270}%          %      1 to 2

692 }%

693 \thinlines%
694 % inner double bonds
695 \@tfor\member:=#1\do{%
696 \if\member r%no endcyclic bonds
697 \else \if\member c%%%a%
698  \Put@Line(767,139)(-3,-4){110}%   % double bond 3 to 4
699 \else \if\member b%%%d%%%b%
700  \Put@Line(640,-5)(-3,1){343}%      %             4 to 5
701 \else \if\member a%%%e%%%%c%
702  \Put@Line(240,111)(-3,-1){190}%   %             5 to 6
703 \else \if\member f%%%d%
704  \Put@Line(63,40)(3,4){110}%        %             6 to 7
705 \else \if\member e%%%l%
706  \Put@Line(182,187)(3,-1){343}%     %             7 to 10
707 \else \if\member d%%%k%%%f%
708  \Put@Line(768,131)(-3,-1){170}%    %             10 to 3
709 \fi\fi\fi\fi\fi\fi\fi}%

710 % %

711 \@forsemicol\member:=#2\do{%
712 \ifx\member\empty\else
713 \expandafter\@m@mb@r\member;\relax%
714 \expandafter\threech@r\@membera{}{}%
715 \ifx\@memberb\@yl\else
716 \ifcase\@tmpa%0 omit
717 \or \@chairia% subst. on 1
718 \or \@chairib% subst. on 2
719 \or \@chairic% subst. on 3
720 \or \@chairid% subst. on 4
721 \or \@chairie% subst. on 5

722 \or \@chairif% subst. on 6
723 \fi %end of ifcase
724 \fi\fi%
725 }\end{ShiftPicEnvB}}%               %end of \pyranoseChairi macro

The macro \pyranoseChairii is defined to draw steroid with spiro pyranose rings

\pyranoseChairi
726 \def\pyranoseChairii{\@ifnextchar[{\@pyranoseChairii}{\@pyranoseChairii[r]}}
727 \def\@pyranoseChairii[#1]#2{%
728 \@reset@ylsw%
729 \ylchairiposition{#2}%
730 \def\@@ylii{0}\def\@@yli{0}%
731 \begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
732 (1600,800)(-400,-319){chairi}%
733 (400,319)%2002/4/30 by S. Fujita
734 % skeletal bonds
735 \thinlines%
736 \ifpyranoseChairalpha
737 \dotorline(0,0)(3,4){170}/(0,0)(170,227)% bond 1 to 6
738 \else
739  \Put@Line(0,0)(3,4){170}%         % bond 1 to 6
740 \fi
741  \Put@Line(170,226)(3,-1){403}%    %      6 to 5
742  \Put@Line(573,91)(3,1){270}%      %      5 to 4
743  \Put@Direct(230,50){O}%
744 {\thicklines%
745  \molfronttrue%
746  \Put@Line(843,181)(-3,-4){170}%    %      4 to 3
747  \Put@Line(673,-46)(-3,1){360}%     %      3 to 2
748  \Put@Line(0,0)(3,1){230}%          %      1 to 2

749 }%

750 \thinlines%
751 % inner double bonds
752 \@tfor\member:=#1\do{%
753 \if\member r%no endcyclic bonds
754 \else \if\member c%%%a%
755  \Put@Line(767,139)(-3,-4){110}%   % double bond 3 to 4
756 \else \if\member b%%%d%%%b%
757  \Put@Line(640,-5)(-3,1){343}%      %             4 to 5
758 \else \if\member a%%%e%%%%c%
759  \Put@Line(240,111)(-3,-1){190}%   %             5 to 6
760 \else \if\member f%%%d%
761  \Put@Line(63,40)(3,4){110}%        %             6 to 7
762 \else \if\member e%%%l%
763  \Put@Line(182,187)(3,-1){343}%     %             7 to 10
764 \else \if\member d%%%k%%%f%
765  \Put@Line(768,131)(-3,-1){170}%    %             10 to 3
766 \fi\fi\fi\fi\fi\fi\fi}%

767 % %

768 \@forsemicol\member:=#2\do{%
769 \ifx\member\empty\else
770 \expandafter\@m@mb@r\member;\relax%

771 \expandafter\threech@r\@membera{}{}%
772 \ifx\@memberb\@yl\else
773 \ifcase\@tmpa%0 omit
774 \or \@chairia% subst. on 1
775 \or \@chairib% subst. on 2
776 \or \@chairic% subst. on 3
777 \or \@chairid% subst. on 4
778 \or \@chairie% subst. on 5
779 \or \@chairif% subst. on 6
780 \fi %end of ifcase
781 \fi\fi%
782 }\end{ShiftPicEnvB}}%               %end of \pyranoseChairii macro