summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/xymtex/base/steroid.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/xymtex/base/steroid.dtx')
-rw-r--r--macros/latex/contrib/xymtex/base/steroid.dtx1317
1 files changed, 1317 insertions, 0 deletions
diff --git a/macros/latex/contrib/xymtex/base/steroid.dtx b/macros/latex/contrib/xymtex/base/steroid.dtx
new file mode 100644
index 0000000000..20f8f200ab
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/steroid.dtx
@@ -0,0 +1,1317 @@
+% \iffalse meta-comment
+%% File: steroid.dtx
+%
+% Copyright 2009, 2010 by Shinsaku Fujita
+% Copyright for the XyMTeX system 1993,1996,1998,2001,2002,2004,2005,2009 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% steroid.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files steroid.dtx and steroid.ins
+% and the derived file steroid.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{steroid}
+% \def\versi@ndate{June 15, 2009}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF}% Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{1778}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.00}{2009/06/15}{The first version}
+% \changes{v5.00}{2010/10/01}{for bond coloring and the LaTeX Project Public License}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{steroid.dtx}[2010/10/01 v5.00 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{steroid.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Steroid derivatives by {\sffamily steroid.sty}
+of \XyMTeX{} (\fileversion) }
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun Kanagawa-ken, 258-0019, Japan.
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{steroid.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{steroid:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% steroid & steroid.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*steroid>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{steroid}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF}% Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for steroid.sty}
+%
+% \begin{verbatim}
+% *********************************
+% * 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
+%
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf steroid.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{steroidchain}{\input carom.sty\relax}{}
+\@ifundefined{ylchairiposition}{\input ccycle.sty\relax}{}
+\unitlength=0.1pt
+% \end{macrocode}
+%
+% The commands |\steroid| and |\steroidchain| for drawing raw skeletons of
+% steroid derivatives have been already defined in {\sf carom.sty}, which
+% is loaded automatically as above.
+%
+% \section{Macros for Steroids with No Side Chains}
+%
+% By starting from the commands |\steroid| defined in the {\sf carom.sty},
+% several intermediate commands are defined to draw steroid derivatives
+% without side chains.
+%
+% \begin{macro}{\gonane}
+% \begin{macro}{\gonanealpha}
+% \begin{macro}{\gonanebeta}
+% \begin{macro}{\estrane}
+% \begin{macro}{\estranealpha}
+% \begin{macro}{\estranebeta}
+% \begin{macrocode}
+% ***********************************************
+% * For drawing side chains of the common style *
+% ***********************************************
+% *******************
+% * gonane, estrane *
+% *******************
+\def\gonanealpha{\@ifnextchar[{\@gonanealpha}{\@gonanealpha[]}}
+\def\@gonanealpha[#1]#2{%
+\steroid[#1]{#2;5A==H;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
+\def\gonanebeta{\@ifnextchar[{\@gonanebeta}{\@gonanebeta[]}}
+\def\@gonanebeta[#1]#2{%
+\steroid[#1]{#2;5B==H;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
+\def\gonane{\@ifnextchar[{\@gonane}{\@gonane[]}}
+\def\@gonane[#1]#2{%
+\steroid[#1]{#2;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
+\def\estranealpha{\@ifnextchar[{\@estranealpha}{\@estranealpha[]}}
+\def\@estranealpha[#1]#2{%
+\steroid[#1]{#2;5A==H;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
+\def\estranebeta{\@ifnextchar[{\@estranebeta}{\@estranebeta[]}}
+\def\@estranebeta[#1]#2{
+\steroid[#1]{#2;5B==H;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
+\def\estrane{\@ifnextchar[{\@estrane}{\@estrane[]}}
+\def\@estrane[#1]#2{
+\steroid[#1]{#2;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\steroidnochainandrostane}
+% \begin{macro}{\androstane}
+% \begin{macro}{\androstanealpha}
+% \begin{macro}{\androstanebeta}
+% \begin{macrocode}
+% **************
+% * androstane *
+% **************
+\def\steroidnochainandrostane[#1]#2{%
+\steroid[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H}}
+\def\androstanealpha{\@ifnextchar[{\@androstanealpha}{\@androstanealpha[]}}
+\def\@androstanealpha[#1]#2{\steroidnochainandrostane[#1]{#2;5A==H}}
+\def\androstanebeta{\@ifnextchar[{\@androstanebeta}{\@androstanebeta[]}}
+\def\@androstanebeta[#1]#2{\steroidnochainandrostane[#1]{#2;5B==H}}
+\def\androstane{\@ifnextchar[{\@androstane}{\@androstane[]}}
+\def\@androstane[#1]#2{\steroidnochainandrostane[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{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.
+%
+% \begin{macro}{\steroidethylchain}
+% \begin{macrocode}
+\def\steroidethylchain{\@ifnextchar[{\@steroidethylchain[@}{\@steroidethylchain[Z]}}
+\def\@steroidethylchain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi\else
+\ylposition{#2}{-20}{3}{5}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \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}(1850,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidethylchain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+%\Put@Direct(1197,709){\setsixringv{#2}{-20}{3}{5}{0}}%for 24 position
+%\Put@Direct(1397,709){\setatombond{#2}{-24}{4}}% % for 25
+\end{sfpicture}}% %end of \steroidethylchain macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\steroidethylchainpregnane}
+% \begin{macro}{\pregnane}
+% \begin{macro}{\pregnanealpha}
+% \begin{macro}{\pregnanebeta}
+% \begin{macrocode}
+% ************
+% * pregnane *
+% ************
+\def\steroidethylchainpregnane[#1]#2{%
+\steroidethylchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H}}}
+\def\pregnanealpha{\@ifnextchar[{\@pregnanealpha}{\@pregnanealpha[]}}
+\def\@pregnanealpha[#1]#2{\steroidethylchainpregnane[#1]{#2;5A==H}}
+\def\pregnanebeta{\@ifnextchar[{\@pregnanebeta}{\@pregnanebeta[]}}
+\def\@pregnanebeta[#1]#2{\steroidethylchainpregnane[#1]{#2;5B==H}}
+\def\pregnane{\@ifnextchar[{\@pregnane}{\@pregnane[]}}
+\def\@pregnane[#1]#2{\steroidethylchainpregnane[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{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.
+%
+% \begin{macro}{\steroidChain}
+% \begin{macrocode}
+% ************************************************************
+% * Raw Skeleton for drawing side chains of the modern style *
+% ************************************************************
+\def\steroidChain{\@ifnextchar[{\@steroidChain[@}{\@steroidChain[Z]}}
+\def\@steroidChain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-23}{0}{2}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 24 positions
+\else
+\ylatombondposition{#2}{-24}{4}% % for 25
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 25 positions
+\else
+\ylatombondposition{#2}{-25}{4}% % for 26
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1710}\def\@@yli{-1012}\fi%%set 26 positions
+\else
+\ylatombondposition{#2}{-26}{4}% % for 27
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-709}\fi%%set 27 positions
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \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}(2300,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidChain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,909)(5,3){171}% %bond 23-24
+ \Put@Line(1368,1012)(5,-3){171}% %bond 24-25
+ \Put@Line(1539,909)(5,3){171}% %bond 25-26
+ \Put@Line(1539,909)(0,-1){200}% %bond 25-27
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1203,952)(5,3){126}% %double bond 23-24
+ \else\if\@tmpb e%
+ \Put@Line(1372,970)(5,-3){126}% %double bond 24-25
+ \else\if\@tmpb f%
+ \Put@Line(1545,952)(5,3){126}% %double bond 25-26
+ \else\if\@tmpb F%
+ \Put@Line(1580,890)(5,3){126}% %double bond 25-26(alternative)
+ \else\if\@tmpb g%
+ \Put@Line(1580,890)(0,-1){148}% %double bond 25-27
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{2}{0}}%for 22 position
+\Put@Direct(1192,909){\setsixringv{#2}{-19}{3}{5}{0}}%for 23 position
+\Put@Direct(1368,606){\setsixringv{#2}{-23}{0}{2}{0}}%for 24 position
+\Put@Direct(1539,909){\setatombond{#2}{-24}{5}}% % for 25
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\end{sfpicture}}% %end of \steroidChain macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\steroidChaindiMe}
+% \begin{macrocode}
+\def\steroidChaindiMe[#1]#2{%
+\steroidChain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+% \end{macrocode}
+% \end{macro}
+%
+% Sometimes, |\cholestane[{Z}{Zb}]{}| may be used in place of
+% |\cholestane[{Zb}]{}| because the latter gives an erroneous
+% result.
+%
+%
+% \begin{macro}{\cholestaneAlpha}
+% \begin{macro}{\cholestaneBeta}
+% \begin{macro}{\cholestane}
+% \begin{macro}{\ergostaneAlpha}
+% \begin{macro}{\ergostaneBeta}
+% \begin{macro}{\ergostane}
+% \begin{macro}{\campestaneAlpha}
+% \begin{macro}{\campestaneBeta}
+% \begin{macro}{\campestane}
+% \begin{macro}{\poriferastaneAlpha}
+% \begin{macro}{\poriferastaneBeta}
+% \begin{macro}{\poriferastane}
+% \begin{macro}{\stigmastaneAlpha}
+% \begin{macro}{\stigmastaneBeta}
+% \begin{macro}{\stigmastane}
+% \begin{macrocode}
+% *****************************************************
+% * Intermediate skeletons for drawing *
+% * cholestane, ergostane, campestane, poriferastane, *
+% * and stigmastane (the modern type) *
+% *****************************************************
+\def\cholestaneAlpha{\@ifnextchar[{\@cholestaneAlpha}{\@cholestaneAlpha[]}}
+\def\@cholestaneAlpha[#1]#2{\steroidChaindiMe[#1]{#2;5A==H}}
+\def\cholestaneBeta{\@ifnextchar[{\@cholestaneBeta}{\@cholestaneBeta[]}}
+\def\@cholestaneBeta[#1]#2{\steroidChaindiMe[#1]{#2;5B==H}}
+\def\cholestane{\@ifnextchar[{\@cholestane}{\@cholestane[]}}
+\def\@cholestane[#1]#2{\steroidChaindiMe[#1]{#2}}
+\def\ergostaneAlpha{\@ifnextchar[{\@ergostaneAlpha}{\@ergostaneAlpha[]}}
+\def\@ergostaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
+\def\ergostaneBeta{\@ifnextchar[{\@ergostaneBeta}{\@ergostaneBeta[]}}
+\def\@ergostaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
+\def\ergostane{\@ifnextchar[{\@ergostane}{\@ergostane[]}}
+\def\@ergostane[#1]#2{%
+\@cholestane[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
+\def\campestaneAlpha{\@ifnextchar[{\@campestaneAlpha}{\@campestaneAlpha[]}}
+\def\@campestaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
+\def\campestaneBeta{\@ifnextchar[{\@campestaneBeta}{\@campestaneBeta[]}}
+\def\@campestaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
+\def\campestane{\@ifnextchar[{\@campestane}{\@campestane[]}}
+\def\@campestane[#1]#2{%
+\@cholestane[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
+\def\poriferastaneAlpha{\@ifnextchar[{\@poriferastaneAlpha}{\@poriferastaneAlpha[]}}
+\def\@poriferastaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
+\def\poriferastaneBeta{\@ifnextchar[{\@poriferastaneBeta}{\@poriferastaneBeta[]}}
+\def\@poriferastaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
+\def\poriferastane{\@ifnextchar[{\@poriferastane}{\@poriferastane[]}}
+\def\@poriferastane[#1]#2{%
+\@cholestane[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
+\def\stigmastaneAlpha{\@ifnextchar[{\@stigmastaneAlpha}{\@stigmastaneAlpha[]}}
+\def\@stigmastaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
+\def\stigmastaneBeta{\@ifnextchar[{\@stigmastaneBeta}{\@stigmastaneBeta[]}}
+\def\@stigmastaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
+\def\stigmastane{\@ifnextchar[{\@stigmastane}{\@stigmastane[]}}
+\def\@stigmastane[#1]#2{%
+\@cholestane[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Steroids with Short Chains (Modern Types)}
+%
+%
+% \begin{macro}{\steroidShortChain}
+% \begin{macrocode}
+% ******************************************************************
+% * Raw Skeleton for drawing short side chains of the modern style *
+% ******************************************************************
+\def\steroidShortChain{\@ifnextchar[{\@steroidShortChain[@}{\@steroidShortChain[Z]}}
+\def\@steroidShortChain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-23}{0}{2}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 24 positions
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \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}(2000,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidChain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,909)(5,3){171}% %bond 23-24
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1203,952)(5,3){126}% %double bond 23-24
+ \fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{2}{0}}%for 22 position
+\Put@Direct(1192,909){\setsixringv{#2}{-19}{3}{5}{0}}%for 23 position
+\Put@Direct(1368,606){\setsixringv{#2}{-23}{0}{2}{0}}%for 24 position
+%\Put@Direct(1539,909){\setatombond{#2}{-24}{5}}% % for 25
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\end{sfpicture}}% %end of \steroidShortChain macro%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\steroidShortChainMe}
+% \begin{macrocode}
+\def\steroidShortChainMe[#1]#2{%
+\steroidShortChain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\cholaneAlpha}
+% \begin{macro}{\cholaneBeta}
+% \begin{macro}{\cholane}
+% \begin{macrocode}
+% *****************************************************************
+% * Intermediate skeletons for drawing choranes (the modern type) *
+% *****************************************************************
+\def\cholaneAlpha{\@ifnextchar[{\@cholaneAlpha}{\@cholaneAlpha[]}}
+\def\@cholaneAlpha[#1]#2{\steroidShortChainMe[#1]{#2;5A==H}}
+\def\cholaneBeta{\@ifnextchar[{\@cholaneBeta}{\@cholaneBeta[]}}
+\def\@cholaneBeta[#1]#2{\steroidShortChainMe[#1]{#2;5B==H}}
+\def\cholane{\@ifnextchar[{\@cholane}{\@cholane[]}}
+\def\@cholane[#1]#2{\steroidShortChainMe[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Steroids with Short Chains (Old Types)}
+%
+% \begin{macro}{\steroidshortchain}
+% \begin{macrocode}
+% ******************************************************
+% * Raw skeletons drawing side chains of the old style *
+% ******************************************************
+\def\steroidshortchain{\@ifnextchar[{\@steroidshortchain[@}{\@steroidshortchain[Z]}}
+\def\@steroidshortchain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi\else
+\ylposition{#2}{-20}{3}{5}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \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}(1850,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidshortchain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,709)(0,1){200}% %bond 24-23
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1164,735)(0,1){148}% %double bond 24-23
+ \fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1197,709){\setsixringv{#2}{-20}{3}{5}{0}}%for 24 position
+\end{sfpicture}}% %end of \steroidshortchain macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\steroidshortchainMe}
+% \begin{macro}{\cholanealpha}
+% \begin{macro}{\cholanebeta}
+% \begin{macro}{\cholanE}
+% \begin{macrocode}
+% ***********
+% * cholane *
+% ***********
+\def\steroidshortchainMe[#1]#2{%
+\steroidshortchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+\def\cholanealpha{\@ifnextchar[{\@cholanealpha}{\@cholanealpha[]}}
+\def\@cholanealpha[#1]#2{\steroidshortchainMe[#1]{#2;5A==H}}
+\def\cholanebeta{\@ifnextchar[{\@cholanebeta}{\@cholanebeta[]}}
+\def\@cholanebeta[#1]#2{\steroidshortchainMe[#1]{#2;5B==H}}
+\def\cholanE{\@ifnextchar[{\@cholanE}{\@cholanE[]}}
+\def\@cholanE[#1]#2{\steroidshortchainMe[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Steroids with Chains (Old Types)}
+%
+% For drawing steroids with side chains of old expressions, the command |\steroidchain|
+% defined in {\sf carom.sty} is used.
+%
+% \begin{macro}{\steroidchaindiMe}
+% \begin{macro}{\cholestanealpha}
+% \begin{macro}{\cholestanebeta}
+% \begin{macro}{\cholestanE}
+% \begin{macro}{\ergostanealpha}
+% \begin{macro}{\ergostanebeta}
+% \begin{macro}{\ergostanE}
+% \begin{macro}{\campestanealpha}
+% \begin{macro}{\campestanebeta}
+% \begin{macro}{\campestanE}
+% \begin{macrocode}
+% ************************************************
+% * cholestane, ergostane, campestane (old type) *
+% ************************************************
+\def\steroidchaindiMe[#1]#2{%
+\steroidchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+\def\cholestanealpha{\@ifnextchar[{\@cholestanealpha}{\@cholestanealpha[]}}
+\def\@cholestanealpha[#1]#2{\steroidchaindiMe[#1]{#2;5A==H}}
+\def\cholestanebeta{\@ifnextchar[{\@cholestanebeta}{\@cholestanebeta[]}}
+\def\@cholestanebeta[#1]#2{\steroidchaindiMe[#1]{#2;5B==H}}
+\def\cholestanE{\@ifnextchar[{\@cholestanE}{\@cholestanE[]}}
+\def\@cholestanE[#1]#2{\steroidchaindiMe[#1]{#2}}
+\def\ergostanealpha{\@ifnextchar[{\@ergostanealpha}{\@ergostanealpha[]}}
+\def\@ergostanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
+\def\ergostanebeta{\@ifnextchar[{\@ergostanebeta}{\@ergostanebeta[]}}
+\def\@ergostanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
+\def\ergostanE{\@ifnextchar[{\@ergostanE}{\@ergostanE[]}}
+\def\@ergostanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
+\def\campestanealpha{\@ifnextchar[{\@campestanealpha}{\@campestanealpha[]}}
+\def\@campestanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
+\def\campestanebeta{\@ifnextchar[{\@campestanebeta}{\@campestanebeta[]}}
+\def\@campestanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
+\def\campestanE{\@ifnextchar[{\@campestanE}{\@campestanE[]}}
+\def\@campestanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\poriferastanealpha}
+% \begin{macro}{\poriferastanebeta}
+% \begin{macro}{\poriferastanE}
+% \begin{macro}{\stigmastanealpha}
+% \begin{macro}{\stigmastanebeta}
+% \begin{macro}{\stigmastanE}
+% \begin{macrocode}
+% *****************************************
+% * poriferastane, stigmastane (old type) *
+% *****************************************
+\def\poriferastanealpha{\@ifnextchar[{\@poriferastanealpha}{\@poriferastanealpha[]}}
+\def\@poriferastanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
+\def\poriferastanebeta{\@ifnextchar[{\@poriferastanebeta}{\@poriferastanebeta[]}}
+\def\@poriferastanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
+\def\poriferastanE{\@ifnextchar[{\@poriferastanE}{\@poriferastanE[]}}
+\def\@poriferastanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
+\def\stigmastanealpha{\@ifnextchar[{\@stigmastanealpha}{\@stigmastanealpha[]}}
+\def\@stigmastanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
+\def\stigmastanebeta{\@ifnextchar[{\@stigmastanebeta}{\@stigmastanebeta[]}}
+\def\@stigmastanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
+\def\stigmastanE{\@ifnextchar[{\@stigmastanE}{\@stigmastanE[]}}
+\def\@stigmastanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Spirostans}
+%
+% After the macro |\steroidspiro| is defined as a basic macro
+% several macros for drawing spirostans are defined.
+%
+% \begin{macro}{\steroidspiro}
+% \begin{macrocode}
+% ***************************************
+% * Raw skeleton for drawing spirostans *
+% ***************************************
+\def\steroidspiro{\@ifnextchar[{\@steroidspiro[@}{\@steroidspiro[Z]}}
+\def\@steroidspiro[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-20}{1}{3}{0}%for 22 position
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-22}{0}{2}{0}%for 23 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-400}\fi%%set 23 position
+\else
+\ylatombondposition{#2}{-23}{4}% % for 24
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 24 position
+\else
+\ylatombondposition{#2}{-24}{4}% % for 25
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-1109}\fi%%set 25 position
+\else
+\ylatombondposition{#2}{-25}{4}% % for 26
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-1212}\fi%%set 26 position
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \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}(2300,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidspiro' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(855,909)(1,0){342}% %bond 20-22
+ \Put@Line(1197,909)(0,-1){140}% %bond 22-O (down)
+ \Put@Line(1026,606)(5,3){120}% %bond 16-O
+ \Put@Direct(1197,709){\makebox(0,0){O}}%
+ \dotorline(1197,909)(0,1){140}/(1197,909)(1197,1049)% 22-O (up)
+ {\thicklines
+ \Put@Line(1197,909)(5,-3){171}% %bond 22-23
+ }%
+ \Put@Line(1539,909)(-5,-3){171}% %bond 24-23
+ \Put@Line(1539,909)(0,1){200}% %bond 24-25
+ \Put@Line(1539,1109)(-5,3){171}% %bond 25-26
+ \Put@Line(1368,1212)(-5,-3){120}% %bond 26-O (down)
+ \Put@Direct(1197,1109){\makebox(0,0){O}}%
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(888,880)(1,0){276}% %double bond 20-22
+ \else\if\@tmpb c%
+ \Put@Line(1164,880)(0,-1){116}% %double bond 22-O
+ \else\if\@tmpb d%
+ \Put@Line(1039,650)(5,3){100}% %double bond 16-O
+ \else\if\@tmpb e%
+ \Put@Line(1240,930)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb f%
+ \Put@Line(1366,848)(5,3){140}% %double bond 23-24
+ \else\if\@tmpb g%
+ \Put@Line(1504,930)(0,1){148}% %double bond 24-25
+ \else\if\@tmpb h%
+ \Put@Line(1366,1166)(5,-3){140}% %double bond 26-25
+ \else\if\@tmpb i%
+ \Put@Line(1366,1166)(-5,-3){110}% %double bond 26-O
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1026,606){\setsixringv{#2}{-112}{4}{6}{0}}%for 17 position (117 as Exception)
+\Put@Direct(1368,806){\setsixringv{#2}{-25}{0}{2}{0}}%for 26
+\Put@Direct(1368,806){\setsixringv{#2}{-23}{1}{3}{0}}%for 25
+\Put@Direct(1368,806){\setsixringv{#2}{-21}{2}{4}{0}}%for 24
+\Put@Direct(1368,806){\setsixringv{#2}{-19}{3}{5}{0}}%for 23
+\end{sfpicture}}% %end of \steroidspiro macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\steroidspirotriMe}
+% \begin{macro}{\spirostanalpha}
+% \begin{macro}{\spirostanbeta}
+% \begin{macro}{\spirostan}
+% \begin{macro}{\spirostannor}
+% \begin{macrocode}
+% **************
+% * spirostans *
+% **************
+\def\steroidspirotriMe[#1]#2{%
+\steroidspiro[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{117}FA==H;{20}A==H$_{3}$C;{16}FA==H}}
+\def\spirostanalpha{\@ifnextchar[{\@spirostanalpha}{\@spirostanalpha[]}}
+\def\@spirostanalpha[#1]#2{\steroidspirotriMe[#1]{#2;5A==H;{25}B==CH$_{3}$}}
+\def\spirostanbeta{\@ifnextchar[{\@spirostanbeta}{\@spirostanbeta[]}}
+\def\@spirostanbeta[#1]#2{\steroidspirotriMe[#1]{#2;5B==H;{25}B==CH$_{3}$}}
+\def\spirostan{\@ifnextchar[{\@spirostan}{\@spirostan[]}}
+\def\@spirostan[#1]#2{\steroidspirotriMe[#1]{#2;{{25}}==\null}}
+\def\spirostannor{\@ifnextchar[{\@spirostannor}{\@spirostannor[]}}
+\def\@spirostannor[#1]#2{\steroidspirotriMe[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Furostans}
+%
+% After the macro |\steroidfuros| is defined as a basic macro,
+% several macros for drawing furostans are defined.
+%
+% \begin{macro}{\steroidfuros}
+% \begin{macrocode}
+% **************************************
+% * Raw skeleton for drawing furostans *
+% **************************************
+\def\steroidfuros{\@ifnextchar[{\@steroidfuros[@}{\@steroidfuros[Z]}}
+\def\@steroidfuros[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-20}{1}{3}{0}%for 22 position
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-22}{0}{2}{0}%for 23 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 23 position
+\else
+\ylatombondposition{#2}{-23}{4}% % for 24
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 24 position
+\else
+\ylatombondposition{#2}{-24}{4}% % for 25
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1710}\def\@@yli{-1012}\fi%%set 25 position
+\else
+\ylatombondposition{#2}{-25}{4}% % for 26
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1710}\def\@@yli{-1212}\fi%%set 26 position
+\else
+\ylatombondposition{#2}{-26}{4}% % for 27
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1881}\def\@@yli{-909}\fi%%set 27 position
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \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}(2300,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidfuros' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(855,909)(1,0){342}% %bond 20-22
+ \Put@Line(1197,909)(0,-1){140}% %bond 22-O (down)
+ \Put@Line(1026,606)(5,3){120}% %bond 16-O
+ \Put@Direct(1197,709){\makebox(0,0){O}}%
+ \Put@Line(1197,909)(5,3){171}% %bond 22-23
+ \Put@Line(1368,1012)(5,-3){171}% %bond 23-24
+ \Put@Line(1539,909)(5,3){171}% %bond 24-25
+ \Put@Line(1710,1012)(5,-3){171}% %bond 25-27
+ \Put@Line(1710,1012)(0,1){200}% %bond 25-27
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(888,880)(1,0){276}% %double bond 20-22
+ \else\if\@tmpb c%
+ \Put@Line(1164,880)(0,-1){116}% %double bond 22-O
+ \else\if\@tmpb d%
+ \Put@Line(1039,650)(5,3){100}% %double bond 16-O
+ \else\if\@tmpb e%
+ \Put@Line(1240,900)(5,3){126}% %double bond 22-23
+ \else\if\@tmpb f%
+ \Put@Line(1410,1022)(5,-3){126}% %double bond 23-24
+ \else\if\@tmpb g%
+ \Put@Line(1582,900)(5,3){126}% %double bond 24-25
+ \else\if\@tmpb h%
+ \Put@Line(1740,1035)(0,1){150}% %double bond 25-26
+ \else\if\@tmpb i%
+ \Put@Line(1752,1022)(5,-3){126}% %double bond 25-27
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1026,606){\setsixringv{#2}{-112}{4}{6}{0}}%for 17 position (117 as Exception)
+\Put@Direct(1197,503){\setsixringv{#2}{-21}{0}{2}{0}}%for 22
+\Put@Direct(1368,606){\setsixringv{#2}{-22}{0}{2}{0}}%for 23
+\Put@Direct(1539,909){\setsixringv{#2}{-20}{3}{5}{0}}%for 24
+\Put@Direct(1710,1012){\setatombond{#2}{-24}{3}}% % for 25
+\Put@Direct(1539,909){\setsixringv{#2}{-24}{1}{3}{0}}%for 26
+\Put@Direct(1710,606){\setsixringv{#2}{-25}{1}{3}{0}}%for 27
+\end{sfpicture}}% %end of \steroidfuros macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\steroidfurostriMe}
+% \begin{macro}{\furostanalpha}
+% \begin{macro}{\furostanbeta}
+% \begin{macro}{\furostan}
+% \begin{macrocode}
+% *************
+% * furostans *
+% *************
+\def\steroidfurostriMe[#1]#2{%
+\steroidfuros[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{117}FA==H;{20}A==H$_{3}$C;{16}FA==H}}
+\def\furostanalpha{\@ifnextchar[{\@furostanalpha}{\@furostanalpha[]}}
+\def\@furostanalpha[#1]#2{\steroidfurostriMe[#1]{#2;5A==H}}
+\def\furostanbeta{\@ifnextchar[{\@furostanbeta}{\@furostanbeta[]}}
+\def\@furostanbeta[#1]#2{\steroidfurostriMe[#1]{#2;5B==H}}
+\def\furostan{\@ifnextchar[{\@furostan}{\@furostan[]}}
+\def\@furostan[#1]#2{\steroidfurostriMe[#1]{#2}}
+%</steroid>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{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).
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\ifpyranoseChairalpha}
+% \begin{macro}{\pyranoseChairi}
+% \begin{macrocode}
+\newif\ifpyranoseChairalpha
+\pyranoseChairalphatrue
+\def\pyranoseChairi{\@ifnextchar[{\@pyranoseChairi}{\@pyranoseChairi[r]}}
+\def\@pyranoseChairi[#1]#2{%
+\@reset@ylsw%
+\ylchairiposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,800)(-400,-319){chairi}%
+(400,319)%2002/4/30 by S. Fujita
+% skeletal bonds
+ \thinlines%
+\ifpyranoseChairalpha
+ \dotorline(0,0)(3,4){140}/(0,0)(140,187)% bond 1 to 6
+\else
+ \Put@Line(0,0)(3,4){140}% % bond 1 to 6
+\fi
+ \Put@Line(573,91)(-3,1){360}% % 5 to 6
+ \Put@Direct(130,190){O}%
+ \Put@Line(573,91)(3,1){270}% % 5 to 4
+ {\thicklines%
+ \molfronttrue%
+ \Put@Line(843,181)(-3,-4){170}% % 4 to 3
+ \Put@Line(673,-46)(-3,1){403}% % 3 to 2
+ \Put@Line(0,0)(3,1){270}% % 1 to 2
+ }%
+ \thinlines%
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member c%%%a%
+ \Put@Line(767,139)(-3,-4){110}% % double bond 3 to 4
+\else \if\member b%%%d%%%b%
+ \Put@Line(640,-5)(-3,1){343}% % 4 to 5
+\else \if\member a%%%e%%%%c%
+ \Put@Line(240,111)(-3,-1){190}% % 5 to 6
+\else \if\member f%%%d%
+ \Put@Line(63,40)(3,4){110}% % 6 to 7
+\else \if\member e%%%l%
+ \Put@Line(182,187)(3,-1){343}% % 7 to 10
+\else \if\member d%%%k%%%f%
+ \Put@Line(768,131)(-3,-1){170}% % 10 to 3
+\fi\fi\fi\fi\fi\fi\fi}%
+% %
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@chairia}% subst. on 1
+ \or\setBScolor{\@chairib}% subst. on 2
+ \or\setBScolor{\@chairic}% subst. on 3
+ \or\setBScolor{\@chairid}% subst. on 4
+ \or\setBScolor{\@chairie}% subst. on 5
+ \or\setBScolor{\@chairif}% subst. on 6
+\fi %end of ifcase
+\fi\fi%
+}\end{ShiftPicEnvB}}% %end of \pyranoseChairi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\pyranoseChairii| is defined to draw steroid with spiro pyranose rings
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\pyranoseChairii}
+% \begin{macrocode}
+\def\pyranoseChairii{\@ifnextchar[{\@pyranoseChairii}{\@pyranoseChairii[r]}}
+\def\@pyranoseChairii[#1]#2{%
+\@reset@ylsw%
+\ylchairiposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,800)(-400,-319){chairi}%
+(400,319)%2002/4/30 by S. Fujita
+% skeletal bonds
+ \thinlines%
+\ifpyranoseChairalpha
+ \dotorline(0,0)(3,4){170}/(0,0)(170,227)% bond 1 to 6
+\else
+ \Put@Line(0,0)(3,4){170}% % bond 1 to 6
+\fi
+ \Put@Line(170,226)(3,-1){403}% % 6 to 5
+ \Put@Line(573,91)(3,1){270}% % 5 to 4
+ \Put@Direct(230,50){O}%
+ {\thicklines%
+ \molfronttrue%
+ \Put@Line(843,181)(-3,-4){170}% % 4 to 3
+ \Put@Line(673,-46)(-3,1){360}% % 3 to 2
+ \Put@Line(0,0)(3,1){230}% % 1 to 2
+ }%
+ \thinlines%
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member c%%%a%
+ \Put@Line(767,139)(-3,-4){110}% % double bond 3 to 4
+\else \if\member b%%%d%%%b%
+ \Put@Line(640,-5)(-3,1){343}% % 4 to 5
+\else \if\member a%%%e%%%%c%
+ \Put@Line(240,111)(-3,-1){190}% % 5 to 6
+\else \if\member f%%%d%
+ \Put@Line(63,40)(3,4){110}% % 6 to 7
+\else \if\member e%%%l%
+ \Put@Line(182,187)(3,-1){343}% % 7 to 10
+\else \if\member d%%%k%%%f%
+ \Put@Line(768,131)(-3,-1){170}% % 10 to 3
+\fi\fi\fi\fi\fi\fi\fi}%
+% %
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@chairia}% subst. on 1
+ \or\setBScolor{\@chairib}% subst. on 2
+ \or\setBScolor{\@chairic}% subst. on 3
+ \or\setBScolor{\@chairid}% subst. on 4
+ \or\setBScolor{\@chairie}% subst. on 5
+ \or\setBScolor{\@chairif}% subst. on 6
+\fi %end of ifcase
+\fi\fi%
+}\end{ShiftPicEnvB}}% %end of \pyranoseChairii macro
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.00}{2009/6/15}{Creating \cs{cholestanealfa} etc.}
+%
+% \Finale
+%
+\endinput