summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/xymtex/base/chemstr.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/xymtex/base/chemstr.dtx')
-rw-r--r--macros/latex/contrib/xymtex/base/chemstr.dtx9531
1 files changed, 9531 insertions, 0 deletions
diff --git a/macros/latex/contrib/xymtex/base/chemstr.dtx b/macros/latex/contrib/xymtex/base/chemstr.dtx
new file mode 100644
index 0000000000..6e437826b8
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/chemstr.dtx
@@ -0,0 +1,9531 @@
+% \iffalse meta-comment
+%% File: chemstr.dtx
+%
+% Copyright 1993,1996,1998,2001,2002, 2004, 2005, 2006, 2009, 2010, 2011, 2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% chemstr.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 chemstr.dtx and chemstr.ins
+% and the derived file chemstr.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
+% (old address)
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+% (old address)
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Bug Fix:
+% 1993/11/14 S. Fujita
+% A and B are interchanged.
+% a and b are interchanged.
+%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{December 01, 1993}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF}% % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% (No Distribution)
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{November 11, 2004}
+% \def\versi@nno{ver4.01a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{December 20, 2004}
+% \def\versi@nno{ver4.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{July 20, 2005}
+% \def\versi@nno{ver4.03}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{September 5, 2006}
+% \def\versi@nno{ver4.03b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{July 7, 2009}
+% \def\versi@nno{ver4.04a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{October 25, 2009}
+% \def\versi@nno{ver4.05}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{February 24, 2011}
+% \def\versi@nno{ver5.01b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{14811}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.01}{1996/06/26}{first edition for LaTeX2e}
+% \changes{v1.02}{1998/10/31}{revised edition for LaTeX2e}
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.01}{2001/06/20}{Size reduction}
+% \changes{v2.01}{2001/06/21}{The command \cs{dotorline} is added.}
+% \changes{v3.00}{2002/04/30}{picture to sfpicture, etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv environment}
+% \changes{v4.01}{2004/08/30}{Minor additions}
+% \changes{v4.01a}{2004/11/11}{Bug fix}
+% \changes{v4.02}{2004/12/20}{Adjustment for \cs{setbondatom..}}
+% \changes{v4.02a}{2004/12/27}{Bug fix: change \cs{ggg} to \cs{gggA}}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry}
+% \changes{v4.03b}{2006/9/5}{\cs{ggg} to \cs{gggA} in \cs{test@vertix}}
+% \changes{v4.04}{2009/7/7}{Bug fix for the \cs{XyMTeX} logo}
+% \changes{v4.05}{2009/10/25}{Bug fix for the \cs{XyMTeX} logo}
+% \changes{v5.00}{2010/10/01}{bond coloring and the LaTeX Project Public License}
+% \changes{v5.01b}{2011/02/24}{added commands for bond coloring of the PostScript Mode}
+% \changes{v5.01}{2011/03/22}{\cs{SetTwoAtoms} added}
+% \changes{v5.01}{2011/04/06}{bug fix}
+% \changes{v5.01}{2011/06/19}{bug fix: \cs{ylposition}}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+ \ProvidesFile{chemstr.dtx}[2013/03/22 v5.01 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{chemstr.dtx}
+%
+% %%XyMTeX Logo: Definition 4%%%
+\makeatletter
+\def\select@@Upsionfont{%
+\edef\test@rm{\rmdefault}%
+\edef\test@sf{\sfdefault}%
+\edef\test@tt{\ttdefault}%
+\ifx\f@family \test@rm\relax
+{\expandafter\csname OT1/cmr/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else\ifx\f@family \test@sf\relax
+{\expandafter\csname OT1/cmss/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else\ifx\f@family \test@tt\relax
+{\expandafter\csname OT1/cmtt/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else{\expandafter\csname OT1/cmr/\f@series/\f@shape/\f@size%
+\endcsname
+\char'7}\fi\fi\fi%
+}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox to0.8em{\hss\select@@Upsionfont%
+\hss}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+\makeatother
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Basic Commands for Drawing Chemical Structures
+by {\sffamily chemstr.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and
+Mathematical Chemistry \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa, \\
+258-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% % (old old address)
+% % Ashigara Research Laboratories,
+% % Fuji Photo Film Co., Ltd., \\
+% % Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{chemstr.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{chemstr:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% chemstr & chemstr.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*chemstr>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released June 19, 2013 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{chemstr}
+\def\versi@ndate{June 19, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for chemstr.sty}
+%
+% \begin{verbatim}
+% *********************************
+% * 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
+%
+% <For designating coordinates for drawing round arrows>
+%
+% \@forendparenthesis
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <Convention>
+%
+% \rmoiety
+% \lmoiety
+% \putlatom
+% \putratom
+% \putlratom
+% \Putlratom
+%
+% \dotorline
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <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
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <VERTICAL SETTING>
+% Substitution
+%
+% \@substa
+% \@substb
+% \@substc
+% \@substd
+% \@subste
+% \@substf
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% 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
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <HORIZONTAL SETTING>
+% Substitution
+%
+% \@hsubsta
+% \@hsubstb
+% \@hsubstc
+% \@hsubstd
+% \@hsubste
+% \@hsubstf
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% Setting of atoms and bonds
+%
+% \setsixringh (on a horizontal six-membered ring)
+%
+% Placing structures as substituents
+%
+% \ylpositionh
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <Linking units>
+%
+% \ryl (right linking unit)
+% \lyl (left linking unit)
+
+
+% <Minor Linking Units>
+%
+% \ayl
+%
+% \upnobond
+% \downnobond
+%
+% \BiFunc
+%
+% <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
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <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
+%
+% <Bond coloring>
+% \addbscolor,
+% \setbscolor, \setBScolor
+% \bscolorswON, \bscolorswOFF
+% \defineXyMcolor
+% \XyMcolor
+%
+% <Truncation for two or more atoms>
+% \SetTwoAtoms
+% \SetTwoAtomx
+% \end{verbatim}
+%
+% \section{Initialization and conventions}
+% \subsection{Logos}
+%
+% The logo of \XyMTeX{} is defined in two ways. The first definition uses
+% the \verb/\fam/ command, which sometimes shows unusual behavior. The
+% second definition is adopted in the present version of \XyMTeX{}, since
+% this aims at the compatibility to \LaTeXe{}.
+%
+% \begin{macro}{\XyMTeX}
+% \begin{macrocode}
+% ***************
+% * XyMTeX Logo *
+% ***************
+% %%XyMTeX Logo: Definition 1%%%
+% \newcount\TestCount
+% \def\XyM{\ifnum\fam=-1\relax\fam=0\relax\fi\TestCount=\fam%
+% X\kern-.30em\smash{\raise.50ex\hbox{$\fam\TestCount\Upsilon$}}%
+% \kern-.30em{M}}
+% \def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%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}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%XyMTeX Logo: Definition 3%%%2009/07/07
+% \edef\test@it{\itdefault}
+% \edef\test@sf{\sfdefault}
+% \edef\test@tt{\ttdefault}
+% \edef\test@sl{\sldefault}
+% \edef\test@bx{\bfdefault}
+% \def\XyM{X\kern-.30em\smash{%
+% \raise.50ex\hbox to0.8em{\hss%
+% \ifx\f@series \test@bx\relax
+% $\mathbf{\Upsilon}$%
+% \else\ifx\f@shape \test@it\relax
+% $\mathit{\Upsilon}$%
+% \else\ifx\f@family \test@sf\relax
+% $\mathsf{\Upsilon}$%
+% \else\ifx\f@family \test@tt\relax
+% $\mathtt{\Upsilon}$%
+% \else\ifx\f@shape \test@sl\relax
+% $\mathit{\Upsilon}$%
+% \else
+% $\Upsilon$\fi\fi\fi\fi\fi%
+% \hss}}\kern-.30em{M}}
+% \def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % \end{macrocode}
+%
+% \begin{macrocode}
+% %%XyMTeX Logo: Definition 4%%%2009/10/25
+\def\select@@Upsionfont{%
+\edef\test@rm{\rmdefault}%
+\edef\test@sf{\sfdefault}%
+\edef\test@tt{\ttdefault}%
+\ifx\f@family \test@rm\relax
+{\expandafter\csname OT1/cmr/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else\ifx\f@family \test@sf\relax
+{\expandafter\csname OT1/cmss/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else\ifx\f@family \test@tt\relax
+{\expandafter\csname OT1/cmtt/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else{\expandafter\csname OT1/cmr/\f@series/\f@shape/\f@size%
+\endcsname
+\char'7}\fi\fi\fi%
+}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox to0.8em{\hss\select@@Upsionfont%
+\hss}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Switches for Three Modes}
+%
+% Switches for determining three modes
+% are added in the \XyMTeX{} system (Version 5.00).
+% \changes{v5.00}{2010/10/01}{bond coloring and the LaTeX Project Public License}
+%
+% \begin{macro}{\ifPSmode etc.}
+% \begin{macrocode}
+\newif\ifPSmode \PSmodefalse
+\newif\ifPDFmode \PDFmodefalse
+\newif\ifTeXLaTeXmode \TeXLaTeXmodetrue%default TeX/LaTeX mode.
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Temporary Counters and Dimentions}
+%
+% The following counter registers are used to draw wavy bonds
+% by Bezier technique.
+%
+% \begin{macro}{\@tempcntXa etc.}
+% \begin{macrocode}
+\newcount\@tempcntXa \newcount\@tempcntYa \newcount\@tempcntz
+\newcount\@tempcntXb \newcount\@tempcntYb \newcount\@tempcntzz
+\newcount\@tempcntXc \newcount\@tempcntYc \newcount\@tempcntzzz
+\newcount\@tempcntXd \newcount\@tempcntYd \newcount\@tempcntzzzz
+% \end{macrocode}
+% \end{macro}
+%
+% The following dimension registers can be used temporarily
+% in addition to |\@tempdima| and |\@tempdimb| of LaTeX
+% utility.
+%
+% \begin{macro}{\@dimtempa etc.}
+% \begin{macrocode}
+\newdimen\@dimtempa
+\newdimen\@tempdimd
+\newdimen\@tempdime
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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.
+% \changes{v4.03}{2005/07/20}{Wavy Bonds}
+%
+%
+% \begin{macro}{\waveunitA}
+% \begin{macrocode}
+\def\waveunitA(#1,#2)#3{%
+\@tempcntz=#1\relax
+\@tempcntzz=#2\relax
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%middle point parameters%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifnum\@tempcntz=3\relax%
+ \ifnum\@tempcntzz=5\relax%
+ \@tempcntXa=-16 \@tempcntYa=10\relax%
+ \@tempcntXd=16 \@tempcntYd=-10\relax
+ \else\ifnum\@tempcntzz=-5\relax%
+ \@tempcntXa=-16 \@tempcntYa=-10\relax
+ \@tempcntXd=16 \@tempcntYd=10\relax
+ \fi\fi
+\else\ifnum\@tempcntz=-3\relax%
+ \ifnum\@tempcntzz=5\relax%
+ \@tempcntXa=-16 \@tempcntYa=-10\relax%
+ \@tempcntXd=16 \@tempcntYd=10\relax
+ \else\ifnum\@tempcntzz=-5\relax%
+ \@tempcntXa=-16 \@tempcntYa=10\relax
+ \@tempcntXd=16 \@tempcntYd=-10\relax
+ \fi\fi
+\else\ifnum\@tempcntz=5\relax
+ \ifnum\@tempcntzz=3\relax
+ \@tempcntXa=-10 \@tempcntYa=16\relax
+ \@tempcntXd=10 \@tempcntYd=-16\relax
+ \else\ifnum\@tempcntzz=-3\relax
+ \@tempcntXa=-10 \@tempcntYa=-16\relax
+ \@tempcntXd=10 \@tempcntYd=16\relax
+ \fi\fi
+\else\ifnum\@tempcntz=-5\relax
+ \ifnum\@tempcntzz=3\relax
+ \@tempcntXa=10 \@tempcntYa=16\relax
+ \@tempcntXd=10 \@tempcntYd=-16\relax
+ \else\ifnum\@tempcntzz=-3\relax
+ \@tempcntXa=10 \@tempcntYa=-16\relax
+ \@tempcntXd=-10 \@tempcntYd=16\relax
+ \fi\fi
+\else\ifnum\@tempcntz=1\relax
+ \ifnum\@tempcntzz=0\relax
+ \@tempcntXa=0 \@tempcntYa=20\relax
+ \@tempcntXd=0 \@tempcntYd=-20\relax
+ \fi
+\else\ifnum\@tempcntz=-1\relax
+ \ifnum\@tempcntzz=0\relax
+ \@tempcntXa=0 \@tempcntYa=-20\relax
+ \@tempcntXd=0 \@tempcntYd=20\relax
+ \fi
+\else\ifnum\@tempcntz=0\relax
+ \ifnum\@tempcntzz=1\relax
+ \@tempcntXa=-20 \@tempcntYa=0\relax
+ \@tempcntXd=20 \@tempcntYd=0\relax
+ \fi
+\fi\fi\fi\fi\fi\fi\fi
+%%%%%%%%%%%%%%%%%%%%
+% start and ending %
+%%%%%%%%%%%%%%%%%%%%
+\ifnum\@tempcntzz=0\relax%(1,0) (-1,0)
+ \ifnum\@tempcntz>0\relax
+ \@tempcntXb=#3\relax
+ \else
+ \@tempcntXb=-#3\relax
+ \fi
+ \@tempcntYb=0
+ \ifnum\@tempcntz>0\relax
+ \@tempcntXa=#3\relax
+ \else
+ \@tempcntXa=-#3\relax
+ \fi
+ \divide\@tempcntXa by2\relax
+ \@tempcntXd=\@tempcntXa
+\else\ifnum\@tempcntz=0\relax%(0,1) (0,-1)
+ \@tempcntXb=0\relax
+ \ifnum\@tempcntzz>0\relax
+ \@tempcntYb=#3\relax
+ \@tempcntYa=#3\relax
+ \else
+ \@tempcntYb=-#3\relax
+ \@tempcntYa=-#3\relax
+ \fi
+ \divide\@tempcntYa by2\relax
+ \@tempcntYd=\@tempcntYa
+\else
+\ifnum\@tempcntz>0\relax
+\@tempcntXb=#3\relax
+\else
+\@tempcntXb=-#3\relax
+\fi
+\ifnum\@tempcntzz>0\relax
+\@tempcntYb=#3\relax
+\else
+\@tempcntYb=-#3\relax
+\fi
+\ifnum\@tempcntzz>0\relax
+\@tempcntzzzz=#2\relax
+\else
+\@tempcntzzzz=-#2\relax
+\fi
+\multiply\@tempcntYb by10\relax
+\multiply\@tempcntYb by\@tempcntzzzz\relax
+\ifnum\@tempcntz>0\relax
+\@tempcntzzzz=#1\relax
+\else
+\@tempcntzzzz=-#1\relax
+\fi
+\divide\@tempcntYb by\@tempcntzzzz\relax
+\divide\@tempcntYb by10\relax
+\@tempcntzzzz=\@tempcntXb
+\divide\@tempcntzzzz by2\relax
+\advance\@tempcntXa by\@tempcntzzzz
+\advance\@tempcntXd by\@tempcntzzzz
+\@tempcntzzzz=\@tempcntYb
+\divide\@tempcntzzzz by2\relax
+\advance\@tempcntYa by\@tempcntzzzz
+\advance\@tempcntYd by\@tempcntzzzz
+\fi\fi
+%%%%%%%%%%%%%%%%%
+% Bezier curves %
+%%%%%%%%%%%%%%%%%
+\@tempcntXc=\@tempcntXb
+\multiply\@tempcntXc by2\relax
+\@tempcntYc=\@tempcntYb
+\multiply\@tempcntYc by2\relax
+\begin{picture}(0,0)(0,0)%
+\multiput(0,0)(\@tempcntXc,\@tempcntYc){3}{%
+\qbezier(0,0)(\@tempcntXa,\@tempcntYa)(\@tempcntXb,\@tempcntYb)}%
+\multiput(\@tempcntXb,\@tempcntYb)(\@tempcntXc,\@tempcntYc){2}{%
+\qbezier(0,0)(\@tempcntXd,\@tempcntYd)(\@tempcntXb,\@tempcntYb)}%
+\end{picture}%
+}%end of \waveunitA
+% \end{macrocode}
+% \end{macro}
+%
+% A new switch for wave bonds for stereochemistry is
+% added: |\ifwavebond|.
+% \changes{v4.03}{2005/07/20}{New switch: \cs{ifwavebond}}
+%
+% \begin{macro}{\ifwavebond}
+% \begin{macro}{\WaveBonds}
+% \begin{macro}{\NormalBonds}
+% \begin{macrocode}
+\newif\ifwavebond \wavebondfalse
+\def\WaveBonds{\wavebondtrue}
+\def\NormalBonds{\wavebondfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v4.03}{2005/07/20}{Renewed command: \cs{Put@@Line}}
+% \begin{macro}{\Put@@Line}
+% \begin{macrocode}
+\def\Put@@Line(#1,#2)(#3,#4)#5{\Put@Direct(#1,#2){%
+\ifwavebond \@tempcnta=#5\relax
+\divide\@tempcnta by5\relax
+\waveunitA(#3,#4){\@tempcnta}\else
+\line(#3,#4){#5}\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Conventions for PostScript}
+%
+% The picture environment is switched to be acceptable
+% to another system such as PostScript.
+%
+% \changes{v4.00}{2002/5/30}{New commands: \cs{Put@@Line},
+% \cs{Put@@sCircle}, and \cs{Put@@oCircle}}
+% \begin{macro}{\Put@@Line}
+% \begin{macro}{\Put@@sCircle}
+% \begin{macro}{\Put@@oCircle}
+% \begin{macrocode}
+\global\let\@ldline=\line%store the oridinal line command of picture enviroment
+\global\let\@ldthicklines=\thicklines
+\global\let\@ldthinlines=\thinlines
+%%\def\Put@@Line(#1,#2)(#3,#4)#5{\Put@Direct(#1,#2){\line(#3,#4){#5}}}
+\def\Put@@sCircle(#1,#2)#3{\Put@Direct(#1,#2){\circle*{#3}}}
+\def\Put@@oCircle(#1,#2)#3{\Put@Direct(#1,#2){\circle{#3}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% The initial setting is the original LaTeX picture environment.
+% To switch the size-reduction meachism and the pstricks mechanism,
+% we can use a switching command such as |\originalpicture|.
+% \changes{v3.00}{2002/4/30}{New environment: sfpicture}
+% \changes{v3.00}{2002/5/30}{New command: \cs{originalpicture}}
+%
+% \begin{macro}{\originalpicture}
+% \begin{macro}{\sfpicture}
+% \begin{macro}{\Put@Direct}
+% \begin{macrocode}
+\newif\ifxymtexpssw\xymtexpsswfalse
+\def\originalpicture{%
+\let\sfpicture=\picture
+\let\endsfpicture=\endpicture
+\let\Put@Direct=\put
+\let\Multiput@Direct=\multiput
+\let\line=\@ldline
+\let\dotorline=\d@t@rline
+\let\thicklines=\@ldthicklines
+\let\thinlines=\@ldthinlines
+\thinlines
+\let\Put@Line=\Put@@Line
+\let\Put@sCircle=\Put@@sCircle
+\let\Put@oCircle=\Put@@oCircle
+\xymtexpsswfalse
+\@ifundefined{@changeunitlength}{}{%
+\let\changeunitlength=\@changeunitlength}%
+\unitlength=0.1pt}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% To switch from XyMTeX to XyMTeX with pstricks, we use the following command:
+% \begin{macro}{\changexymtextops}
+% \begin{macrocode}
+\def\changexymtextops{\xymtexpsswtrue}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SlopetoXY}
+% \changes{v5.00}{2010/10/01}{New command: \cs{SlopetoXY}}
+% This command is extracted from |\Put@@@Line}| of the \textsf{xymtx-ps} package
+% so as to be a common code for defining |\Put@@@Line}| (\textsf{xymtx-ps} package),
+% |\Color@@@Line| (\textsf{xymtx-ps} package), |\Color@@@@Line| (\textsf{xymtx-pdf} package),
+% and so on. This command changes a set of line specifiers (a starting point, a slope, and
+% a line length of the \LaTeX{} picture environment) into another set
+% (a starting point and a terminal point (|\@tempcntXa|,|\@tempcntYa|)).
+%
+% \begin{macrocode}
+\def\SlopetoXY(#1,#2)(#3,#4)#5{%
+%%x-coordinate
+\@tempcntXa=0\relax
+\ifnum#3>0\relax \@tempcntXa=#5\relax
+\else\ifnum#3<0\relax\@tempcntXa=-#5\relax\fi\fi
+\advance\@tempcntXa by#1\relax
+%%y-coordinate
+\@tempcntYa=#5\relax
+\ifnum#3=0\relax\else
+\multiply\@tempcntYa by#4\relax\multiply\@tempcntYa by10\relax
+\divide\@tempcntYa by#3\relax\divide\@tempcntYa by10\relax\fi
+\ifnum\@tempcntYa<0\relax
+\ifnum#4>0\relax\@tempcntYa=-\@tempcntYa\fi
+\else
+\ifnum\@tempcntYa>0\relax
+\ifnum#4<0\relax\@tempcntYa=-\@tempcntYa\fi\fi
+\fi
+\advance\@tempcntYa by#2\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Macros for treating argumets}
+%
+% For separating each argument (BONDLIST, SUBSLIST or ATOMLIST) into
+% components (descriptors), we define several useful macros.
+%
+% \begin{macro}{\@forsemicol}
+% \begin{macro}{\@forl@@p}
+% \begin{macro}{\@iforl@@p}
+%
+% The macro |\@forsemicol| resembles the |\@for| macro that is
+% the \LaTeX{} original macro; however a semicolon is used as
+% a separating key in place of a comma.
+%
+% \changes{v1.01}{1996/07/06}{\cs{@forsemicol}: \cs{edef}
+% to \cs{expandafter}}
+% \changes{v1.01}{1996/07/06}{\cs{@iforl@@p} replaced by
+% a LaTeX2e-like definitiion}
+%
+% \begin{macrocode}
+% ****************************************************
+% * For separating an augument list to each argument *
+% ****************************************************
+%
+\def\@forsemicol#1:=#2\do#3{%
+% \edef\@fortmp{#2}%1996/07/06 by S. Fujita
+ \expandafter\def\expandafter\@fortmp\expandafter{#2}%
+ \ifx\@fortmp\@empty \else%
+ \expandafter\@forl@@p#2;\@nil;\@nil\@@#1{#3}\fi}
+\long\def\@forl@@p#1;#2;#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else%
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@iforl@@p #3\@@#4{#5}\fi\fi}
+\long\def\@iforl@@p#1;#2\@@#3#4{\def#3{#1}\ifx #3\@nnil%
+ \expandafter\@fornoop \else
+ #4\relax\expandafter\@iforl@@p\fi#2\@@#3{#4}}
+%\def\@iforl@@p#1;#2\@@#3#4{\def#3{#1}\ifx #3\@nnil%
+% \let\@nextwhile=\@fornoop \else%
+% #4\relax\let\@nextwhile=\@iforl@@p\fi\@nextwhile#2\@@#3{#4}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% 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.
+%
+% \begin{macro}{\@m@mb@r}
+% \begin{macro}{\twoch@r}
+% \begin{macro}{\twoch@@r}
+% \begin{macro}{\threech@r}
+% \begin{macrocode}
+%\def\@m@mb@r#1==#2;{\gdef\@membera{#1}\gdef\@memberb{#2}}
+\def\@m@mb@r#1==#2;{\def\@membera{#1}\def\@memberb{#2}}
+\def\twoch@r#1#2{\gdef\@tmpa{#1}\gdef\@tmpb{#2}}
+\def\twoch@@r#1#2{\gdef\@@tmpa{#1}\gdef\@@tmpb{#2}}
+%\def\threech@r#1#2#3{\gdef\@tmpa{#1}\gdef\@tmpb{#2}\gdef\@tmpc{#3}}%redefined
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command |\threech@r| is redefined by using |\@get@first@char|
+% in order to give a warning of a two-digit number.
+% \changes{v4.00}{2002/05/30}{\cs{@get@first@char} has been added.}
+%
+% \begin{macro}{\@get@first@char}
+% \begin{macrocode}
+\newif\ifdrawsamesubst\drawsamesubstfalse
+\def\@get@first@char#1{\if\noexpand#1\relax\else
+\@cnttempa=`#1\relax
+\ifnum\@cnttempa>47\relax
+\ifnum\@cnttempa<58\relax
+\XyMTeXWarning{The second number (\@tmpb) of a two-digit number (\@tmpa\@tmpb)
+is missed. ^^J\space This should be written in braces,
+^^J\space e.g. `{\@tmpa\@tmpb}D==substituent' and `{{\@tmpa\@tmpb}}==substituent'.}
+\fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v4.00}{2002/05/30}{\cs{threech@r} has been redefined.}
+%
+% \begin{macro}{\threech@r}
+% \begin{macrocode}
+\def\threech@r#1#2#3{\gdef\@tmpa{#1}\gdef\@tmpb{#2}\gdef\@tmpc{#3}%
+\begingroup
+\ifdrawsamesubst\ifx\@tmpa\empty\relax\else\ifx\@tmpb\empty\relax\else
+\setbox0=\hbox{\@get@first@char#2\relax}\fi\fi\fi
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% The following two commands are added to treat spiro fusion.
+% \changes{v2.00}{1998/11/15}{Added for 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|.
+% \changes{v4.00}{2002/05/30}{Bug fix for \cs{twoCH@@R} and \cs{twoCH@R}}
+%
+% \begin{macro}{\twoCH@R}
+% \begin{macro}{\twoCH@@R}
+% \begin{macrocode}
+%\def\twoCH@@R#1#2//{\gdef\@@tmpa{#1}\gdef\@@tmpb{#2}}
+\def\twoCH@@R#1#2//{\def\@@tmpa{#1}\def\@@tmpb{#2}}
+%\def\twoCH@R#1#2//{\gdef\@tmpa{#1}\gdef\@tmpb{#2}}
+\def\twoCH@R#1#2//{\def\@tmpa{#1}\def\@tmpb{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+
+% \begin{macro}{\@forendparenthesis}
+%
+% The macro |\@forendparenthesis| resembles the |\@for| macro that is
+% the \LaTeX{} original macro; however a close parenthesis is used as
+% a separating key in place of a comma.
+%
+% \changes{v5.00}{2010/10/01}{for drawing round arrows}
+%
+% \begin{macrocode}
+% ************************************
+% * For coordinates for round arrows *
+% ************************************
+%
+\def\@forendparenthesis#1:=#2\do#3{%
+ \expandafter\def\expandafter\@fortmp\expandafter{#2}%
+ \ifx\@fortmp\@empty \else%
+ \expandafter\@forL@@P#2)\@nil)\@nil\@@#1{#3}\fi}
+\long\def\@forL@@P#1)#2)#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else%
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@iforL@@P #3\@@#4{#5}\fi\fi}
+\long\def\@iforL@@P#1)#2\@@#3#4{\def#3{#1}\ifx #3\@nnil%
+ \expandafter\@fornoop \else
+ #4\relax\expandafter\@iforL@@P\fi#2\@@#3{#4}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{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|.
+%
+% \changes{v1.02}{1998/10/20}{Switches \cs{@leftput} added}
+%
+% \begin{macro}{\if@leftput}
+% \begin{macro}{\if@rightput}
+% \begin{macro}{\if@leftrightput}
+% \begin{macro}{\resetlrput}
+% \begin{macrocode}
+\newif\if@rightput \@rightputfalse
+\newif\if@leftput \@leftputfalse
+\newif\if@leftrightput \@leftrightputfalse
+\def\resetlrput{\@rightputfalse\@leftputfalse
+\@leftrightputfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% We can use the macro |\rmoiety| for drawing a right-hand substituent
+% and the macro |\lmoiety| for drawing a left-hand substituent.
+%
+% \changes{v1.02}{1998/10/20}{The definitions of \cs{rmoiety} and
+% \cs{lmoiety} are changed. Warning function is added.}
+%
+% 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.
+%
+% \begin{macro}{\rmoiety}
+% \begin{macro}{\lmoiety}
+% \begin{macrocode}
+% **************
+% * Convention *
+% **************
+% %\def\rmoiety#1{#1 \hss}
+% %\def\lmoiety#1{\hss #1}
+\def\rmoiety#1{\if@leftput
+\XyMTeXWarning{Wrong \string\rmoiety\space used in a left box}%
+\hbox to0pt{%
+\hbox to0pt{\hss\vrule width\overfullrule height\overfullrule}#1\hss}%
+\else\if@rightput\XyMTeXWarning{Unnecessary \string\rmoiety\space
+used in a right box}\hbox to0pt{#1\hss}%
+\else\if@leftrightput\hbox to0pt{#1\hss}%
+\fi\fi\fi\resetlrput}
+\def\lmoiety#1{\if@rightput
+\XyMTeXWarning{Wrong \string\lmoiety\space used in a right box}%
+\hbox to0pt{\hss#1\kern-.72em%
+\hbox to0pt{\vrule width\overfullrule height\overfullrule\hss}}\else
+\if@leftput\XyMTeXWarning{Unnecessary \string\lmoiety\space
+used in a left box}\hbox to0pt{\hss#1}%
+\else\if@leftrightput\hbox to0pt{\hss#1\kern-.72em}%
+\else\hbox to0pt{\hss#1\kern-.72em}\fi\fi\fi\resetlrput}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Warnings from \XyMTeX{} are concerned with commands
+% |\rmoiety| and |\lmoiety|.
+% \changes{v5.00}{2010/10/01}{\cs{if@dbondcolor} added for bondcolor package}
+%
+% \begin{macro}{\XyMTeXWarning}
+% \begin{macrocode}
+\newif\if@dbondcolor \@dbondcolorfalse
+\def\XyMTeXWarning#1{%
+\begingroup
+\if@dbondcolor\else
+ \let\protect\string
+ \immediate\write\@unused{^^IXyMTeX Warning: #1\space
+ on input line \the\inputlineno^^I}%
+\fi
+\endgroup%
+\global\@dbondcolorfalse%2010/10/01 for bond coloring
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Warnings concerned with ring fusion are based on
+% the command |\FuseWarning| of \XyMTeX{}.
+% \changes{v2.00}{1998/11/15}{Warning function is added.}
+% \changes{v5.00}{2010/10/01}{\cs{futileFuseWarning} added for bondcolor package}
+%
+% \begin{macro}{\@cnttempa}
+% \begin{macro}{\@cnttempb}
+% \begin{macro}{\FuseWarning}
+% \begin{macrocode}
+\newcount\@cnttempa
+\newcount\@cnttempb
+\def\FuseW@rning#1#2#3#4#5#6#7{%
+\@tempcnta=#1 \@tempcntb=#2
+\@cnttempa=#3 \advance\@cnttempa-#5
+\@cnttempb=#4 \advance\@cnttempb-#6
+\ifnum\@tempcnta=\@cnttempa
+ \ifnum\@tempcntb=\@cnttempb\else
+ \XyMTeXWarning{Mismatched fusion at bond `#7'}%
+ \fi
+\else
+ \XyMTeXWarning{Mismatched fusion at bond `#7'}%
+\fi}
+\def\futileFuseWarning#1#2#3#4#5#6#7{}
+\let\FuseWarning=\FuseW@rning
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The font of a substituent and its size are designated explicitly.
+% \changes{v4.00}{2002/5/30}{%
+% The comands \cs{substfont} and \cs{substfontsize} are added to
+% \cs{putlatom}, etc.}
+%
+% \begin{macro}{\substfont}
+% \begin{macro}{\substfontsize}
+% \begin{macrocode}
+\let\substfont=\normalfont
+\let\substfontsize=\normalsize
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The original \LaTeX{} command |\put| is changed into macros suitable to
+% more specific uses as follows.
+%
+% \changes{v1.02}{1998/10/20}{The definition is changed. Warning function
+% for \cs{rmoiety} is added.}
+%
+% \begin{macro}{\putlatom}
+% \begin{macrocode}
+\def\putlatom#1#2#3{\begingroup\resetlrput
+\Put@Direct(#1,#2){\@leftputtrue\substfont\substfontsize
+\hbox to0pt{\hss #3}\@leftputfalse}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{The definition is changed. Warning function
+% for \cs{lmoiety} is added.}
+%
+% \begin{macro}{\putratom}
+% \begin{macrocode}
+%\def\putratom#1#2#3{\Put@Direct(#1,#2){\hbox to0pt{#3 \hss}}}
+\def\putratom#1#2#3{\begingroup\resetlrput
+\Put@Direct(#1,#2){\@rightputtrue\substfont\substfontsize
+\hbox to0pt{#3 \hss}\@rightputfalse}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v4.00}{2002/5/30}{The mechanism of centering the
+% first letter of a substituent by \cs{@getcharwidthput} is added to
+% \cs{putlratom}.}
+%
+% \changes{v4.01a}{2004/11/11}{The mechanism of \cs{@getcharwidthput}
+% is altered (one argument to two arguments). Treatments of \$ and commands are added.}
+%
+% \begin{macro}{\@getcharwidthput}
+% \begin{macrocode}
+\newif\ifspecial@ylcs \special@ylcsfalse
+\def\@getcharwidthput#1#2\owari{%
+\global\special@ylcsfalse
+\if\noexpand#1\relax \global\special@ylcstrue \else%\if the category #1 is 'command'
+\ifcat#1$\relax \global\special@ylcstrue\else%if the category of #1 is 'special letter'
+\ifcat#1a\relax%if the category of #1 is 'letter'
+\setbox0=\hbox{#1}%
+\global\@dimtempa=0.7em
+\global\advance\@dimtempa by-\wd0\relax
+\global\divide\@dimtempa by2\relax
+\else\global\@dimtempa=0em\relax\fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{The definition is changed. Warning function
+% for \cs{lmoiety} and \cs{rmoiety|} is added.}
+% \changes{v4.01a}{2004/11/11}{The mechanism of \cs{@getcharwidthput}
+% is altered (one argument to two arguments).}
+%
+% \begin{macro}{\putlratom}
+% \begin{macrocode}
+\def\putlratom#1#2#3{\begingroup\resetlrput
+\Put@Direct(#1,#2){\@leftrightputtrue\substfont\substfontsize
+\setbox1=\hbox{%
+\expandafter\@getcharwidthput#3\relax\owari}%the centering mechanism
+\@tempdima=\@dimtempa%global to local
+\ifspecial@ylcs\hbox to.72em{#3\hss}\else
+\hbox to0.72em{\kern\@tempdima #3\hss}\kern-\@tempdima
+\fi}%
+\@leftrightputfalse\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.01b}{1998/10/06}{\cs{putlratom}: delete \sc{setbox0}}
+% \changes{v1.02}{1998/10/20}{The old definition is
+% totally replaced by the new definition}
+%
+% \begin{verbatim}
+% % 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}
+% \end{verbatim}
+%
+% \begin{macro}{\Putlratom}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \begin{macrocode}
+\def\Putlratom#1#2#3{\Put@Direct(#1,#2){\substfont\substfontsize
+\hbox to.8em{#3}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v2.01}{2000/6/20}{New command: \cs{dotorline}}
+% \begin{macro}{\dotorline}
+% \begin{macrocode}
+\def\d@t@rline(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+ \@ifundefined{dottedline}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \ifdim\unitlength>0.08pt
+ \dottedline{20}(#6,#7)(#8,#9)%
+ \else
+ \dottedline{30}(#6,#7)(#8,#9)\fi}}}
+\let\dotorline=\d@t@rline
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{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.
+%
+%
+% \begin{macro}{\noshift}
+% \begin{macro}{\shifti}
+% \begin{macro}{\shiftii}
+% \begin{macro}{\shiftiii}
+% \begin{macrocode}
+% *******************************
+% * Parameters for Coordinates *
+% *******************************
+\newcount\noshift \noshift=0\relax%
+\newcount\shifti \shifti=240\relax%
+\newcount\shiftii \shiftii=400\relax%
+\newcount\shiftiii \shiftiii=800\relax%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The unit length for \XyMTeX{} 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.
+% \begin{macrocode}
+\unitlength.1pt%
+% \end{macrocode}
+%
+% Parameters for ring fusion are used in fusering.sty.
+% \changes{v2.00}{1999/2/16}{This has been added to process the old XyMTeX
+% manual for Version 1.01}
+%
+% \begin{macro}{\fuseAx}
+% \begin{macro}{\fuseBx}
+% \begin{macro}{\fuseAy}
+% \begin{macro}{\fuseBy}
+% \begin{macrocode}
+\def\fuseAx{0}
+\def\fuseBx{0}
+\def\fuseAy{0}
+\def\fuseBy{0}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Various switchs}
+%
+% These macros are used for clipping spaces at substitution positions.
+% Note that |\if@clip| is used in place of |\if@dclip|.
+%
+% \changes{v3.00}{2002/4/30}{New Command: \cs{originoutput}}
+%
+% \begin{macro}{\if@clip}
+% \begin{macro}{\if@aclip}
+% \begin{macro}{\if@bclip}
+% \begin{macro}{\if@cclip}
+% \begin{macro}{\if@eclip}
+% \begin{macro}{\if@fclip}
+% \begin{macro}{\iforigpt}
+% \begin{macro}{\@tmpaa}
+% \begin{macro}{\oriptoutput}
+% \begin{macro}{\OriptOutput}
+% \begin{macro}{\OriptOutputA}
+% \begin{macrocode}
+% ***************************************
+% * various flags (switches) *
+% * treatment of substitution positions *
+% ***************************************
+%
+% for 6- or lower-membered cycles
+%
+\newif\if@clip \@clipfalse% % switch for clipping at 4
+\newif\if@aclip \@aclipfalse% % switch for clipping at 1
+\newif\if@bclip \@bclipfalse% % switch for clipping at 2
+\newif\if@cclip \@cclipfalse% % switch for clipping at 3
+\newif\if@eclip \@eclipfalse% % switch for clipping at 5
+\newif\if@fclip \@fclipfalse% % switch for clipping at 6
+\newif\iforigpt \origptfalse% % switch for showing the original point
+\newcount\@tmpaa%to use as a local counter
+\def\@rigpt@utput#1{\iforigpt
+ \Put@sCircle(-\shiftii,-\shifti){50}%
+ \Put@oCircle(-\noshift,-\noshift){50}%
+ \typeout{command `#1' origin: %
+ (\the\noshift,\the\noshift) ---> (\the\shiftii,\the\shifti)}\fi}
+\def\OrigptOutput(#1,#2)#3{\iforigpt
+ \Put@sCircle(-#1,-#2){50}\Put@oCircle(0,0){50}%
+ \typeout{command `#3' origin: (0,0) ---> (#1,#2)}\fi}
+\def\OrigptOutputA(#1,#2)(#3,#4)#5{\iforigpt
+ \Put@sCircle(-#1,-#2){50}\Put@oCircle(-#3,-#4){50}%
+ \typeout{command `#5' origin: (#3,#4) ---> (#1,#2)}\fi}
+\def\origptoutput{\@ifnextchar({\@origptoutput}{\@origptoutput(,)}}
+\def\@origptoutput(#1){%
+\@ifnextchar({\@@origptoutput(#1)}{\@@origptoutput(#1)(,)}}
+\def\@@origptoutput(#1,#2)(#3,#4)#5{%
+\def\TEMParga{#1}\def\TEMPargb{#3}%
+\ifx\TEMParga\empty\relax
+\@rigpt@utput{#5}\else\ifx\TEMPargb\empty\relax
+\OrigptOutput(#1,#2){#5}\else
+\OrigptOutputA(#1,#2)(#3,#4){#5}\fi\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\if@gclip}
+% \begin{macro}{\if@hclip}
+% \begin{macro}{\if@iclip}
+% \begin{macro}{\if@jclip}
+% \begin{macro}{\if@xclip}
+% \begin{macrocode}
+%
+% for further-membered cycles
+%
+\newif\if@gclip \@gclipfalse%
+\newif\if@hclip \@hclipfalse%
+\newif\if@iclip \@iclipfalse%
+\newif\if@jclip \@jclipfalse%
+\newif\if@xclip \@xclipfalse%added for temp. 2013/03/24
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% 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,$\ldots$.
+% Out side the grouping, the command |\developclipinfo| is
+% declared to reset |\@acliptrue| etc.
+%
+% \changes{v2.01}{2001/06/20}{Newly defined to communicate clipping
+% information.}
+% \changes{v5.01}{2013/3/24}{\cs{if@xclip} added}
+% \begin{macro}{\clipinfo}
+% \begin{macro}{\storeclipinfo}
+% \begin{macrocode}
+\def\clipinfo{}
+\def\storeclipinfo{%
+\if@aclip \xdef\clipinfo{\clipinfo a,}\fi
+\if@bclip \xdef\clipinfo{\clipinfo b,}\fi
+\if@cclip \xdef\clipinfo{\clipinfo c,}\fi
+\if@clip \xdef\clipinfo{\clipinfo d,}\fi
+\if@eclip \xdef\clipinfo{\clipinfo e,}\fi
+\if@fclip \xdef\clipinfo{\clipinfo f,}\fi
+\if@gclip \xdef\clipinfo{\clipinfo g,}\fi
+\if@hclip \xdef\clipinfo{\clipinfo h,}\fi
+\if@iclip \xdef\clipinfo{\clipinfo i,}\fi
+\if@jclip \xdef\clipinfo{\clipinfo j,}\fi
+\if@xclip \xdef\clipinfo{\clipinfo x,}\fi
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% locally declared
+%
+% \begin{macro}{\developclipinfo}
+% \begin{macrocode}
+\def\developclipinfo{%
+\expandafter\@tfor\expandafter\MEMBER\expandafter:%
+\expandafter=\clipinfo\do{%
+\if\MEMBER a\relax \@acliptrue\fi
+\if\MEMBER b\relax \@bcliptrue\fi
+\if\MEMBER c\relax \@ccliptrue\fi
+\if\MEMBER d\relax \@cliptrue\fi
+\if\MEMBER e\relax \@ecliptrue\fi
+\if\MEMBER f\relax \@fcliptrue\fi
+\if\MEMBER g\relax \@gcliptrue\fi
+\if\MEMBER h\relax \@hcliptrue\fi
+\if\MEMBER i\relax \@icliptrue\fi
+\if\MEMBER j\relax \@jcliptrue\fi}%
+\gdef\clipinfo{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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.
+% \changes{v1.02}{1998/10/31}{Commands for setting substituents}
+% \changes{v2.00}{1998/12/25}{Added: \cs{reset@yl@xydiff}}
+%
+% \begin{macro}{\@yl}
+% \begin{macro}{\yl@xdiff}
+% \begin{macro}{\yl@ydiff}
+% \begin{macro}{\yl@shiftii}
+% \begin{macro}{\yl@shifti}
+% \begin{macro}{\@ylii}
+% \begin{macro}{\@yli}
+% \begin{macro}{\@@ylii}
+% \begin{macro}{\@@yli}
+% \begin{macrocode}
+\def\@yl{(yl)}
+\newcount\yl@xdiff
+\newcount\yl@ydiff
+\newcount\yl@shiftii
+\newcount\yl@shifti
+\def\@ylii{0}\def\@yli{0}
+\def\@@ylii{}\def\@@yli{}
+\def\reset@@yl{\gdef\@@ylii{}\gdef\@@yli{}}
+\def\reset@yl@xydiff{\yl@xdiff=0 \yl@ydiff=0\relax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The following switches are used for shifting the substituent.
+% The locant flags such as |\@ylatrue| have been stoped to use.
+% \changes{v1.02}{1998/10/11}{Delete \cs{@ylatrue} etc.}
+% \changes{v1.02}{1998/10/31}{Commands for setting substituents}
+%
+% Old definition:
+% \begin{macrocode}
+% %%%%% \newif\if@yla \@ylafalse
+% %%%%% \newif\if@ylb \@ylbfalse
+% %%%%% \newif\if@ylc \@ylcfalse
+% %%%%% \newif\if@yld \@yldfalse
+% %%%%% \newif\if@yle \@ylefalse
+% %%%%% \newif\if@ylf \@ylffalse
+% \end{macrocode}
+%
+% \begin{macro}{\if@ylsw}
+% \begin{macro}{\if@@ylsw}
+% \begin{macrocode}
+\newif\if@ylsw \@ylswfalse
+\newif\if@@ylsw \@@ylswfalse
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{verbatim}
+% Old definition:
+% % \begin{macrocode}
+% %%%%% \def\@reset@ylsw{\@ylafalse\@ylbfalse\@ylcfalse
+% %%%%% \@yldfalse\@ylefalse\@ylffalse\@ylswfalse}
+% % \end{macrocode}
+% \end{verbatim}
+%
+% \begin{macro}{\@reset@ylsw}
+% \begin{macrocode}
+\def\@reset@ylsw{\@ylswfalse\@@ylswfalse}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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.
+%
+% \changes{v3.01}{2002/4/30}{Commands for shift of picture environment}
+% \changes{v4.00}{2002/5/30}{New environment: ShiftPicEnv}
+%
+% 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:
+% \begin{verbatim}
+% \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
+% \end{verbatim}
+%
+% For monocyclic compounds:
+% \begin{verbatim}
+% \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
+% \end{verbatim}
+%
+% \begin{macro}{\ShiftPicEnv}
+% \begin{macrocode}
+\newif\ifshiftpicsw\shiftpicswfalse
+\newif\if@sixfuseposv\@sixfuseposvfalse
+\def\ShiftPicEnv{%
+\@ifnextchar[{\ShiftPicEnv@}{\ShiftPicEnv@[0]}}
+\def\ShiftPicEnv@[#1](#2)(#3)/(#4)(#5)#6{%
+\@ifnextchar({\@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}}%
+{\@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}(,)}}
+\def\@ShiftPicEnv[#1](#2)(#3)/(#4)(#5)#6(#7){%
+\@ifnextchar({\@@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}(#7)}%
+{\@@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}(#7)(,)}}
+\def\@@ShiftPicEnv[#1](#2)(#3)/(#4)(#5)#6(#7)(#8){%
+\shiftpicswfalse%initialize
+\ifcase#1\relax%%%non-fused ring
+\if@ylsw \shiftpicswtrue
+\yl@shiftii=\@ylii
+\yl@shifti=\@yli
+\fi
+\or%%%fused ring
+\if@sixfuseposv \shiftpicswtrue
+ \yl@shiftii=-\fuseAx
+ \yl@shifti=-\fuseAy
+\fi
+\fi
+\ifshiftpicsw
+\advance\yl@shiftii\yl@xdiff
+\advance\yl@shifti\yl@ydiff
+\begin{sfpicture}(#2)(#3)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+\begin{sfpicture}(#4)(#5)%
+ \origptoutput(#7)(#8){#6}%
+\fi}
+\def\endShiftPicEnv{\end{sfpicture}}
+% \end{macrocode}
+% \end{macro}
+%
+% Old definition for bicyclic rings:
+% \begin{verbatim}
+% \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
+% \end{verbatim}
+%
+% For bicyclic compounds or others:
+% \begin{verbatim}
+% \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
+% \end{verbatim}
+%
+% \begin{macro}{\ShiftPicEnvB}
+% \begin{macrocode}
+\def\ShiftPicEnvB(#1)(#2)/(#3)(#4)#5{%
+\@ifnextchar({\@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}}%
+{\@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}(,)}}
+\def\@ShiftPicEnvB(#1)(#2)/(#3)(#4)#5(#6){%
+\@ifnextchar({\@@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}(#6)}%
+{\@@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}(#6)(,)}}
+\def\@@ShiftPicEnvB(#1)(#2)/(#3)(#4)#5(#6)(#7){%
+\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}(#1)(#2)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(#3)(#4)%
+ \origptoutput(#6)(#7){#5}%
+\fi}
+\def\endShiftPicEnvB{\end{sfpicture}}
+% \end{macrocode}
+% \end{macro}
+%
+% The further fusion of a three- or four-membered ring at a center bond
+% of a six-six 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).
+%
+% \begin{macro}{\if@smallringsw}
+% \begin{macrocode}
+\newif\if@smallringsw \@smallringswfalse
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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.
+%
+% \begin{macro}{\iniflag}
+% \begin{macro}{\iniatom}
+% \begin{macro}{\resetbdsw}
+% \changes{v1.02}{1998/10/25}{Delete \sc{global}}
+% \changes{v4.02a}{2004/12/27}{Change \sc{ggg} to \sc{ggg}}
+%
+% \begin{macrocode}
+% %\def\iniflag{%
+% %\global\@aclipfalse\global\@bclipfalse%
+% %\global\@cclipfalse\global\@clipfalse\global\@eclipfalse%
+% %\global\@fclipfalse\global\@gclipfalse\global\@hclipfalse%
+% %\global\@iclipfalse\global\@jclipfalse%
+% %\global\@clipfusefalse}%
+% %\def\iniatom{%
+% %\gdef\aaa{}\gdef\bbb{}\gdef\ccc{}\gdef\ddd{}%
+% %\gdef\eee{}\gdef\fff{}%
+% %\gdef\gggA{}\gdef\hhh{}\gdef\iii{}\gdef\jjj{}%
+% %\gdef\@aaa{}\gdef\@bbb{}\gdef\@ccc{}\gdef\@ddd{}%
+% %\gdef\@eee{}\gdef\@fff{}%
+% %}%
+% %\def\resetbdsw{\gdef\@aaa{a}\gdef\@bbb{b}\gdef\@ccc{c}%
+% %\gdef\@ddd{d}\gdef\@eee{e}\gdef\@fff{f}}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\iniflag{%
+\@aclipfalse\@bclipfalse\@cclipfalse\@clipfalse\@eclipfalse%
+\@fclipfalse\@gclipfalse\@hclipfalse%
+\@iclipfalse\@jclipfalse\@clipfusefalse%
+\global\@smallringswfalse%
+}%
+\def\iniatom{%
+\def\aaa{}\def\bbb{}\def\ccc{}\gdef\ddd{}%
+\def\eee{}\def\fff{}%
+\def\gggA{}\def\hhh{}\def\iii{}\gdef\jjj{}%
+\def\@aaa{}\def\@bbb{}\def\@ccc{}\def\@ddd{}%
+\def\@eee{}\def\@fff{}%
+\def\@ggg{}\def\@hhh{}\def\@iii{}%
+\def\@jjj{}\def\@kkk{}%
+}%
+\def\resetbdsw{\def\@aaa{a}\def\@bbb{b}\def\@ccc{c}%
+\def\@ddd{d}\def\@eee{e}\def\@fff{f}%
+\def\@ggg{g}\def\@hhh{h}\def\@iii{i}%
+\def\@jjj{j}\def\@kkk{k}%
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% At the beginning of \XyMTeX\ processing, we initialize atom
+% information by the command |\iniatom|.
+%
+% \begin{macrocode}
+\iniatom
+% \end{macrocode}
+%
+%
+% \section{Macros for Vertical Formulas}
+% \subsection{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.
+% \changes{v1.02}{1998/10/11}{Delete \cs{@ylatrue} etc.}
+% \changes{v1.02}{1998/10/31}{Commands for setting substituents}
+% \changes{v5.01}{2013/06/19}{bug fix: initial setting of \cs{reset@@yl}}
+%
+% \begin{macro}{\ylposition}
+% \begin{macrocode}
+\def\ylposition#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\reset@@yl%%2013/06/19bug fix
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+% \end{macrocode}
+%
+% The flags |\@lyatrue| etc are not used in a revised edition.
+%
+% \begin{macrocode}
+ \or\ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{-406}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{-442}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or\ifx\bbb\empty
+ \gdef\@ylii{-171}\gdef\@yli{-303}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \else
+ \gdef\@ylii{-213}\gdef\@yli{-327}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or\ifx\ccc\empty
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \else
+ \gdef\@ylii{-213}\gdef\@yli{-79}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or\ifx\ddd\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or\ifx\eee\empty
+ \gdef\@ylii{171}\gdef\@yli{-103}\global\@ylswtrue%\@yletrue% subst. on 5
+ \else
+ \gdef\@ylii{213}\gdef\@yli{-79}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \or\ifx\fff\empty
+ \gdef\@ylii{171}\gdef\@yli{-303}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \else
+ \gdef\@ylii{213}\gdef\@yli{-327}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% 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.).
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{New bond modifiers: FA, FB, GA, GB, Su, and Sd}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@substa}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 1 %
+% %%%%%%%%%%%%%%%
+\def\@substa{%
+\if@aclip% %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \dotorline(18,436)(3,5){60}/(18,436)(72,526)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=36\relax
+ \yl@ydiff=-27\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-37\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \dotorline(-18,436)(-3,5){60}/(-18,436)(-72,526)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(-12,436)(0,1){110}% % double bond at 1
+ \Put@Line(12,436)(0,1){110}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \dotorline(0,436)(0,1){110}/(0,436)(0,546)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,436)(0,1){110}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,406){\setatombondd}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,406){\setatombondf}%
+ }%
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+\else% % no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \dotorline(0,406)(3,5){72}/(0,406)(72,526)%
+ \else\if\@tmpc u%(u) upper --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-31\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \dotorline(0,406)(-3,5){72}/(0,406)(-72,526)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(-12,406)(0,1){140}% % double bond at 1
+ \Put@Line(12,406)(0,1){140}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \dotorline(0,406)(0,1){140}/(0,406)(0,546)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(0,1){140}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,406){\setatombondd}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,406){\setatombondf}%
+ }%
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@substa
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@substb| command is used for placing a substituent (|\@memberb|) at
+% the 2-position (upper-right) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{New bond modifiers: FA, FB, GA, GB, Su, and Sd}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@substb}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 2 %
+% %%%%%%%%%%%%%%%
+\def\@substb{%
+ \if@bclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ \Put@Line(201,327)(5,3){100}% % single bond at 2
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=38\relax
+ \putratom{268}{420}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,358)(3,5){60}% % single bond at 2
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-17\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ \dotorline(201,303)(1,0){100}/(201,303)(301,303)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-17\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,303)(1,0){100}% % single bond at 2
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-7\relax
+ \yl@ydiff=38\relax
+ \putratom{268}{420}{\@memberb}% % right type
+ \dotorline(201,358)(3,5){60}/(201,358)(261,458)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=38\relax
+ \putratom{268}{420}{\@memberb}% % right type
+ \Put@Line(201,358)(3,5){60}% % single bond at 2
+ \else\if\@tmpc a%(a) alpha%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ \Put@Line(201,303)(1,0){100}% % single bond at 2
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-7\relax
+ \yl@ydiff=38\relax
+ \putratom{268}{420}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(201,358)(3,5){60}% % single bond at 2
+ }%
+ \else\if\@tmpc U%(U) alphau undefined
+ \yl@xdiff=-17\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(201,303)(1,0){100}% % single bond at 2
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=18\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ \Put@Line(194,331)(5,3){100}% % double bond at 2
+ \Put@Line(200,305)(5,3){100}% % double bond at 2
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,327)(5,3){100}% % single bond at 2
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ \dotorline(201,327)(5,3){100}/(201,327)(301,387)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(210,327)(5,3){100}% % single wave bond at 2
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(171,303){\setatombonda}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(171,303){\setatombonde}%
+ }%
+ \else%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ \Put@Line(201,327)(5,3){100}% % single bond at 2
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \else% %no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ \Put@Line(171,303)(5,3){120}% % single bond at 2
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-15\relax
+ \yl@ydiff=13\relax
+ \putratom{258}{410}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(3,5){72}% % single bond at 2
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-7\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ \dotorline(171,303)(1,0){140}/(171,303)(311,303)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(1,0){140}% % single bond at 2
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-15\relax
+ \yl@ydiff=13\relax
+ \putratom{258}{410}{\@memberb}% % right type
+ \dotorline(171,303)(3,5){72}/(171,303)(243,423)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-15\relax
+ \yl@ydiff=13\relax
+ \putratom{258}{410}{\@memberb}% % right type
+ \Put@Line(171,303)(3,5){72}% % single bond at 2
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-7\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ \Put@Line(171,303)(1,0){140}% % single bond at 2
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-15\relax
+ \yl@ydiff=13\relax
+ \putratom{258}{410}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(3,5){72}% % single bond at 2
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-7\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(1,0){140}% % single bond at 2
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=6\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ \Put@Line(168,310)(5,3){120}% % double bond at 2
+ \Put@Line(174,284)(5,3){120}% % double bond at 2
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(5,3){120}% % single bond at 2
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ \dotorline(171,303)(5,3){120}/(171,303)(291,375)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(5,3){120}% % single wave bond at 2
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(171,303){\setatombonda}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(171,303){\setatombonde}%
+ }%
+ \else%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ \Put@Line(171,303)(5,3){120}% % single bond at 2
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@substb
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@substc| command is used for placing a substituent (|\@memberb|) at
+% the 3-position (lower-right) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff|} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{New bond modifiers: FA, FB, GA, GB, Su, and Sd}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@substc}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 3 %
+% %%%%%%%%%%%%%%%
+\def\@substc{%
+ \if@cclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ \Put@Line(201,79)(5,-3){110}% % single bond at 3
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=28\relax
+ \putratom{268}{-80}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,48)(3,-5){60}% % single bond at 3
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-17\relax
+ \yl@ydiff=29\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ \dotorline(201,103)(1,0){100}/(201,103)(301,103)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-17\relax
+ \yl@ydiff=29\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,103)(1,0){100}% % single bond at 3
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-7\relax
+ \yl@ydiff=28\relax
+ \putratom{268}{-80}{\@memberb}% % right type
+ \dotorline(201,48)(3,-5){60}/(201,48)(261,-52)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=28\relax
+ \putratom{268}{-80}{\@memberb}% % right type
+ \Put@Line(201,48)(3,-5){60}% % single bond at 3
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-17\relax
+ \yl@ydiff=29\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ \Put@Line(201,103)(1,0){100}% % single bond at 3
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-7\relax
+ \yl@ydiff=28\relax
+ \putratom{268}{-80}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(201,48)(3,-5){60}% % single bond at 3
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-17\relax
+ \yl@ydiff=29\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(201,103)(1,0){100}% % single bond at 3
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=52\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ \Put@Line(194,76)(5,-3){100}% % double bond at 3
+ \Put@Line(200,101)(5,-3){100}% % double bond at 3
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,79)(5,-3){100}% % single bond at 3
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ \dotorline(201,79)(5,-3){100}/(201,79)(301,19)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(210,79)(5,-3){100}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(171,103){\setatombondf}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(171,103){\setatombondc}%
+ }%
+ \else%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ \Put@Line(201,79)(5,-3){100}% % single bond at 3
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ \Put@Line(171,103)(5,-3){120}% % single bond at 3
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=48\relax
+ \putratom{258}{-70}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,103)(3,-5){72}% % single bond at 3
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ \dotorline(171,103)(1,0){140}/(171,103)(311,103)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,103)(1,0){140}% % single bond at 3
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=48\relax
+ \putratom{258}{-70}{\@memberb}% % right type
+ \dotorline(171,103)(3,-5){72}/(171,103)(243,-17)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=48\relax
+ \putratom{258}{-70}{\@memberb}% % right type
+ \Put@Line(171,103)(3,-5){72}% % single bond at 3
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ \Put@Line(171,103)(1,0){140}% % single bond at 3
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=48\relax
+ \putratom{258}{-70}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,103)(3,-5){72}% % single bond at 3
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,103)(1,0){140}% % single bond at 3
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=65\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ \Put@Line(168,96)(5,-3){120}% % double bond at 3
+ \Put@Line(174,121)(5,-3){120}% % double bond at 3
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,103)(5,-3){120}% % single bond at 3
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ \dotorline(171,103)(5,-3){120}/(171,103)(291,31)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,103)(5,-3){120}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(171,103){\setatombondf}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(171,103){\setatombondc}%
+ }%
+ \else%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ \Put@Line(171,103)(5,-3){120}% % single bond at 3
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi
+}% end of \@substc
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@substd| command is used for placing a substituent (|\@memberb|) at
+% the 4-position (bottom) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{New bond modifiers: FA, FB, GA, GB, Su, and Sd}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@substd}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 4 %
+% %%%%%%%%%%%%%%%
+\def\@substd{%
+\if@clip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \dotorline(18,-30)(3,-5){60}/(18,-30)(72,-120)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \dotorline(-18,-30)(-3,-5){60}/(-18,-30)(-78,-130)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(-12,-30)(0,-1){110}% % double bond at 4
+ \Put@Line(12,-30)(0,-1){110}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \dotorline(0,-30)(0,-1){110}/(0,-30)(0,-140)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,-30)(0,-1){110}% % single wave bond at 4
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,0){\setatombonde}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,0){\setatombondg}%
+ }%
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \dotorline(0,0)(3,-5){72}/(0,0)(72,-120)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \dotorline(0,0)(-3,-5){72}/(0,0)(-72,-120)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(-12,0)(0,-1){140}% % double bond at 4
+ \Put@Line(12,0)(0,-1){140}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \dotorline(0,0)(0,-1){140}/(0,0)(0,-140)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,-1){140}% % single wave bond at 4
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,0){\setatombonde}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,0){\setatombondg}%
+ }%
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \fi}%end of \@substd
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@subste| command is used for placing a substituent (|\@memberb|) at
+% the 5-position (lower-left) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{New bond modifiers: FA, FB, GA, GB, Su, and Sd}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@subste}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 5 %
+% %%%%%%%%%%%%%%%
+\def\@subste{%
+ \if@eclip%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ \Put@Line(-201,79)(-5,-3){110}% % single bond at 5
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=7\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{-80}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,48)(-3,-5){60}% % single bond at 5
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=17\relax
+ \yl@ydiff=29\relax
+ \putlatom{-318}{74}{\@memberb}% % left type
+ \dotorline(-201,103)(-1,0){100}/(-201,103)(-301,103)%
+ \else\if\@tmpc u% (u) up --- (B) beta
+ \yl@xdiff=17\relax
+ \yl@ydiff=29\relax
+ \putlatom{-318}{74}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,103)(-1,0){100}% % single bond at 5
+ }%
+ \else\if\@tmpc d% (d) down --- (A) alpha
+ \yl@xdiff=7\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{-80}{\@memberb}% % left type
+ \dotorline(-201,48)(-3,-5){60}/(-201,48)(-261,-52)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=7\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{-80}{\@memberb}% % left type
+ \Put@Line(-201,48)(-3,-5){60}% % single bond at 5
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=17\relax
+ \yl@ydiff=29\relax
+ \putlatom{-318}{74}{\@memberb}% % left type
+ \Put@Line(-201,103)(-1,0){100}% % single bond at 5
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=7\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{-80}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-201,48)(-3,-5){60}% % single bond at 5
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=17\relax
+ \yl@ydiff=29\relax
+ \putlatom{-318}{74}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-201,103)(-1,0){100}% % single bond at 5
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=62\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ \Put@Line(-194,76)(-5,-3){100}% % double bond at 5
+ \Put@Line(-200,101)(-5,-3){100}% % double bond at 5
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,79)(-5,-3){100}% % single bond at 5
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ \dotorline(-201,79)(-5,-3){100}/(-201,79)(-301,21)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(-220,79)(-5,-3){100}% % single wave bond at 5
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(-171,103){\setatombondc}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(-171,103){\setatombondd}%
+ }%
+ \else%
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ \Put@Line(-201,79)(-5,-3){100}% % single bond at 5
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+\else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ \Put@Line(-171,103)(-5,-3){120}% % single bond at 5
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=63\relax
+ \putlatom{-258}{-70}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,103)(-3,-5){72}% % single bond at 5
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=29\relax
+ \putlatom{-326}{74}{\@memberb}% % left type
+ \dotorline(-171,103)(-1,0){140}/(-171,103)(-311,103)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=29\relax
+ \putlatom{-326}{74}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,103)(-1,0){140}% % single bond at 5
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=63\relax
+ \putlatom{-258}{-70}{\@memberb}% % left type
+ \dotorline(-171,103)(-3,-5){72}/(-171,103)(-243,-17)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=63\relax
+ \putlatom{-258}{-70}{\@memberb}% % left type
+ \Put@Line(-171,103)(-3,-5){72}% % single bond at 5
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=29\relax
+ \putlatom{-326}{74}{\@memberb}% % left type
+ \Put@Line(-171,103)(-1,0){140}% % single bond at 5
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=15\relax
+ \yl@ydiff=63\relax
+ \putlatom{-258}{-70}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,103)(-3,-5){72}% % single bond at 5
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=15\relax
+ \yl@ydiff=29\relax
+ \putlatom{-326}{74}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,103)(-1,0){140}% % single bond at 5
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=62\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ \Put@Line(-168,96)(-5,-3){120}% % double bond at 5
+ \Put@Line(-174,121)(-5,-3){120}% % double bond at 5
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,103)(-5,-3){120}% % single bond at 5
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ \dotorline(-171,103)(-5,-3){120}/(-171,103)(-311,31)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,103)(-5,-3){120}% % single wave bond at 5
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(-171,103){\setatombondc}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(-171,103){\setatombondd}%
+ }%
+ \else%
+ \yl@xdiff=10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ \Put@Line(-171,103)(-5,-3){120}%% single bond at 5
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \fi}% end of \@subste
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@substf| command is used for placing a substituent (|\@memberb|) at
+% the 6-position (upper-left) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{New bond modifiers: FA, FB, GA, GB, Su, and Sd}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@substf}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 6 %
+% %%%%%%%%%%%%%%%
+\def\@substf{%
+ \if@fclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ \Put@Line(-201,327)(-5,3){100}% % single bond at 6
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=8\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{420}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,358)(-3,5){60}% % single bond at 6
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=17\relax
+ \yl@ydiff=23\relax
+ \putlatom{-318}{280}{\@memberb}% % left type
+ \dotorline(-201,303)(-1,0){100}/(-201,303)(-301,303)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=17\relax
+ \yl@ydiff=23\relax
+ \putlatom{-318}{280}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,303)(-1,0){100}% % single bond at 6
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=8\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{420}{\@memberb}% % left type
+ \dotorline(-201,358)(-3,5){60}/(-201,358)(-261,458)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=8\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{420}{\@memberb}% % left type
+ \Put@Line(-201,358)(-3,5){60}% % single bond at 6
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=17\relax
+ \yl@ydiff=23\relax
+ \putlatom{-318}{280}{\@memberb}% % left type
+ \Put@Line(-201,303)(-1,0){100}% % single bond at 6
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=8\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{420}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-201,358)(-3,5){60}% % single bond at 6
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=17\relax
+ \yl@ydiff=23\relax
+ \putlatom{-318}{280}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-201,303)(-1,0){100}% % single bond at 6
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=6\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ \Put@Line(-194,331)(-5,3){100}% % double bond at 6
+ \Put@Line(-200,305)(-5,3){100}% % double bond at 6
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,327)(-5,3){100}% % single bond at 6
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ \dotorline(-201,327)(-5,3){100}/(-201,327)(-301,387)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(-211,327)(-5,3){100}% % single wave bond at 6
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(-171,303){\setatombondg}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(-171,303){\setatombonda}%
+ }%
+ \else%
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ \Put@Line(-201,327)(-5,3){100}% % single bond at 6
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+\else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ \Put@Line(-171,303)(-5,3){120}% % single bond at 6
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=13\relax
+ \putlatom{-258}{410}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(-3,5){72}% % single bond at 6
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=23\relax
+ \putlatom{-326}{280}{\@memberb}% % left type
+ \dotorline(-171,303)(-1,0){140}/(-171,303)(-311,303)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=23\relax
+ \putlatom{-326}{280}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(-1,0){140}% % single bond at 6
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=13\relax
+ \putlatom{-258}{410}{\@memberb}% % left type
+ \dotorline(-171,303)(-3,5){72}/(-171,303)(-243,423)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=13\relax
+ \putlatom{-258}{410}{\@memberb}% % left type
+ \Put@Line(-171,303)(-3,5){72}% % single bond at 6
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=23\relax
+ \putlatom{-326}{280}{\@memberb}% % left type
+ \Put@Line(-171,303)(-1,0){140}% % single bond at 6
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=15\relax
+ \yl@ydiff=13\relax
+ \putlatom{-258}{410}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,303)(-3,5){72}% % single bond at 6
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=15\relax
+ \yl@ydiff=23\relax
+ \putlatom{-326}{280}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,303)(-1,0){140}% % single bond at 6
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=6\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ \Put@Line(-168,310)(-5,3){120}% % double bond at 6
+ \Put@Line(-174,284)(-5,3){120}% % double bond at 6
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(-5,3){120}% % single bond at 6
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ \dotorline(-171,303)(-5,3){120}/(-171,303)(-311,375)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,303)(-5,3){120}% % single wave bond at 6
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(-171,303){\setatombondg}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(-171,303){\setatombonda}%
+ }%
+ \else%
+ \yl@xdiff=10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ \Put@Line(-171,303)(-5,3){120}% % single bond at 6
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+\fi}% end of \@substf
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Coloring Atoms and Bonds}
+%
+% The \textsf{xcolor} package is loaded to color atoms and bonds.
+% \changes{v5.01}{2011/02/24}{Added}
+% \begin{macrocode}
+\RequirePackage{xcolor}
+% \end{macrocode}
+%
+% The command |\addbscolor| is defined to color substitution bonds.
+% \changes{v5.00}{2010/10/01}{Bond coloring}
+% \changes{v5.01}{2011/02/24}{Bond coloring: \cs{addbscolor} changed and
+% \cs{Addbscolor} added. But deleted.}
+%
+% \begin{verbatim}
+% e.g., \addbscolor{\cyan}{CH$_{3}$}
+% e.g., \Addbscolor{cyan}{CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\addbscolor}
+% \begin{macro}{\Addbscolor}
+% \begin{macro}{\setbscolor}
+% \begin{macrocode}
+\def\bondsubstcolor{}
+%\def\psbondsubstcolor{black}%added 2011/02/24
+\def\addbscolor#1#2{#2\gdef\bondsubstcolor{#1}}
+%\def\addbscolor#1#2{#2\gdef\bondsubstcolor{#1}%changed 2011/02/24
+%\gdef\psbondsubstcolor{\expandafter\@gobble\string #1}}
+%\def\Addbscolor#1#2{#2%added 2011/02/24
+%\expandafter\gdef\expandafter\bondsubstcolor\expandafter{\csname #1\endcsname}%
+%\gdef\psbondsubstcolor{#1}}
+\newif\ifbscolor
+\def\setbscolor{\addbscolor{}{}%
+\edef\@tmptmpb{\@tmpb}\edef\@tmptmpc{\@tmpc}%store original values
+\ifbscolor\setbox0=\hbox{\@memberb}\bondsubstcolor\setbox0=\hbox{}\fi
+\edef\@tmpb{\@tmptmpb}\edef\@tmpc{\@tmptmpc}%recover the original values
+}%
+\def\setBScolor#1{\begingroup\setbscolor#1\addbscolor{}{}\endgroup}%
+\def\bscolorswON{\bscolortrue}
+\def\bscolorswOFF{\bscolorfalse}
+\bscolorswON%default bond coloring
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% In addition to standard colors (e.g., \verb/\cyan/),
+% any colors can be created by using \verb/\defineXyMcolor/.
+% \changes{v5.01}{2011/02/24}{New color: \cs{defineXyMcolor}}
+%
+% \begin{verbatim}
+% \defineXyMcolor{My color name}{Color model}{Color value}
+% e.g.,
+% \defineXyMcolor{MyXyMcolor}{cmyk}{1,0,1,0}
+% \end{verbatim}
+% This defines a color named ``MyXyMcolor'' and the
+% corresponding control sequence \verb/MyXyMcolor/,
+% just as ``cyan'' corresponds to \verb/\cyan/.
+%
+% \begin{macro}{\defineXyMcolor}
+% \begin{macrocode}
+\def\defineXyMcolor#1#2#3{%
+\definecolor{#1}{#2}{#3}%
+\@ifundefined{psset}{%
+\expandafter\def\csname#1\endcsname{\color{#1}}}%
+{\expandafter\def\csname#1\endcsname{\color{#1}%
+\psset{linecolor=#1}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% Pre-defined colors (e.g., olive) in the \textsf{xcolor} package
+% can be renamed to be applied to atom- and bond-coloring.
+% \changes{v5.01}{2011/02/24}{New color: \cs{XyMcolor}}
+%
+% \begin{verbatim}
+% \XyMcolor{new color_name}[color_model]{pre-defined color_name}
+% \end{verbatime}
+% e.g.,
+% \begin{verbatim}
+% \XyMcolor{XyMolive}{olive}
+% \end{verbatime}
+%
+% \begin{macro}{\XyMcolor}
+% \begin{macrocode}
+\def\XyMcolor#1{%
+\@ifnextchar[{\@XyMcolor{#1}}{\@XyMcolor{#1}[]}}
+\def\@XyMcolor#1[#2]#3{%
+\edef\tempColorModel{#2}%
+\ifx\tempColorModel\@empty\colorlet{#1}{#3}\else
+\colorlet{#1}[#2]{#3}\fi
+\@ifundefined{psset}{%
+\expandafter\def\csname#1\endcsname{\color{#1}}}%
+{\expandafter\def\csname#1\endcsname{\color{#1}%
+\psset{linecolor=#1}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Setting-up substituents and bonds on a six-membered ring}
+%
+% The |\setsixringv| takes 5 arguments.
+%
+% \begin{verbatim}
+% **************************************************************
+% * setting of atoms and bonds on a vertical six-membered ring *
+% **************************************************************
+%
+% \setsixringv{SUBSLIST}{AD}{LOWER}{UPPER}{ORDER}
+% \end{verbatim}
+%
+% The first argument |SUBSLIST| is a list of substituents, which is
+% represented in the standard format of \XyMTeX{}.
+%
+% \begin{verbatim}
+% 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
+% \end{verbatim}
+%
+% 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.
+%
+% \begin{verbatim}
+%
+% 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
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding switches \cs{@yla} etc.}
+%
+% \begin{macro}{\setsixringv}
+% \begin{macrocode}
+\def\setsixringv#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%0 omit
+% \end{macrocode}
+%
+% The following commands are not used in a revised version
+% because of the direct use of |\ifx\@memberb\@yl\else...\fi|.
+%
+% \begin{macrocode}
+% %\or \if@yla\else\@substa\fi% subst. on 1
+% %\or \if@ylb\else\@substb\fi% subst. on 2
+% %\or \if@ylc\else\@substc\fi% subst. on 3
+% %\or \if@yld\else\@substd\fi% subst. on 4
+% %\or \if@yle\else\@subste\fi% subst. on 5
+% %\or \if@ylf\else\@substf\fi% subst. on 6
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \or{\setbscolor\@substa\addbscolor{}{}}%% subst. on 1
+ \or{\setbscolor\@substb\addbscolor{}{}}%% subst. on 2
+ \or{\setbscolor\@substc\addbscolor{}{}}%% subst. on 3
+ \or{\setbscolor\@substd\addbscolor{}{}}%% subst. on 4
+ \or{\setbscolor\@subste\addbscolor{}{}}%% subst. on 5
+ \or{\setbscolor\@substf\addbscolor{}{}}%% subst. on 6
+\fi%end of ifcase
+\fi%
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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).
+%
+% \subsection{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.
+% \changes{v1.02}{1998/10/11}{Delete \cs{@ylatrue} etc.}
+% \changes{v1.02}{1998/10/13}{Adding \cs{@fused@link} condition}
+% \changes{v1.02}{1998/10/31}{Commands for setting substituents}
+%
+% \begin{macro}{\ylfusedposition}
+% \begin{macrocode}
+\def\ylfusedposition#1#2#3#4#5{%
+\@@ylswfalse%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax\advance\@tmpaa by #2\relax%
+\@fused@linktrue
+\else\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
+\@fused@linkfalse\fi%
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+% %%%%%%%%%%%%%%%%%%
+% 0 fused positions % F == (171,303) G == (171,103)
+% %%%%%%%%%%%%%%%%%%
+ \if\@tmpb F%single bond at F (fused position)
+ \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 0
+ \else\if\@tmpb G%single bond at G (fused position)
+ \def\@ylii{-171}\def\@yli{-103}\@ylswtrue%\@ylatrue% subst. on 0
+ \fi\fi%
+% %%%%%%%%%%%%%%%%
+\or% subst. on 1 F == (0,406), G == (171,303) for \@fused@linkfalse
+ % subst. on 1 G == (0,406), F == (171,303) for \@fused@linktrue
+% %%%%%%%%%%%%%%%%
+\if@fused@link
+ \if\@tmpb G%single bond at F (5,-3) fusion
+ \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 1
+ \else\if\@tmpb F%single bond at G
+ \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 1
+ \fi\fi%
+\else
+ \if\@tmpb F%single bond at F (5,-3) fusion
+ \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 1
+ \else\if\@tmpb G%single bond at G
+ \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 1
+ \fi\fi%
+\fi
+% %%%%%%%%%%%%%%%%
+\or% subst. on 2 F == (0,406), G == (-171,303) for \@fused@linkfalse
+ % subst. on 2 G == (0,406), F == (-171,303) for \@fused@linktrue
+% %%%%%%%%%%%%%%%%
+\if@fused@link
+ \if\@tmpb G%single bond at (-5,-3) fusion
+ \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 2
+ \else\if\@tmpb F%single bond at G
+ \def\@ylii{171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 2
+ \fi\fi%
+\else
+ \if\@tmpb F%single bond at (-5,-3) fusion
+ \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 2
+ \else\if\@tmpb G%single bond at G
+ \def\@ylii{171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 2
+ \fi\fi%
+\fi
+% %%%%%%%%%%%%%%%%%%
+\or %3 fused positions % G == (303,171) F == (103,171)
+% %%%%%%%%%%%%%%%%%%
+ \if\@tmpb G%single bond at G (fused position)
+ \def\@ylii{-303}\def\@yli{-171}\@ylswtrue%\@ylatrue% subst. on 3
+ \else\if\@tmpb F%single bond at F (fused position)
+ \def\@ylii{-103}\def\@yli{-171}\@ylswtrue%\@ylatrue% subst. on 3
+ \fi\fi%
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}% end of \ylfusedposition
+% \end{macrocode}
+% \end{macro}
+%
+% 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.
+%
+% \changes{v1.02}{1998/10/12}{Separate \cs{GFbonda} etc.}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: FU, GU}
+%
+% \begin{macro}{\GFbonda}
+% \begin{macro}{\GFbonda@a}
+% \begin{macro}{\GFbonda@b}
+% \begin{macrocode}
+\def\GFbonda{%
+% %%%%%%%%%%%%%%%%%%
+% 0 fused positions % F == (171,303) G == (171,103)
+% %%%%%%%%%%%%%%%%%%
+ \if\@tmpb F%single bond at F (fused position)
+ \GFbonda@a
+ \else\if\@tmpb G%single bond at G (fused position)
+ \GFbonda@b
+ \fi\fi%
+}%end of GFbonda
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\GFbonda@a{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(0,1){140}% % single bond at F
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ \dotorline(171,303)(0,1){140}/(171,303)(171,443)%
+ \else\if\@tmpc U% unspecified single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+% \Put@Direct(168,303){$\wr$}% unspecified single bond at F
+% \Put@Direct(168,353){$\wr$}%
+% \Put@Direct(168,403){$\wr$}%
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(0,1){140}% % single wave bond at 1
+ }%
+ \else\if\@tmpc S%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ \Put@Line(171,303)(0,1){140}% % single bond at F
+ \else\ifx\@tmpc\empty%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ \Put@Line(171,303)(0,1){140}% % single bond at F
+ \fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\GFbonda@b{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(171,103)(0,-1){140}% % single bond at G
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ \dotorline(171,103)(0,-1){140}/(171,103)(171,-37)%
+ \else\if\@tmpc U%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+% \Put@Direct(168,43){$\wr$}% unspecified single bond at G
+% \Put@Direct(168,-8){$\wr$}%
+% \Put@Direct(168,-57){$\wr$}%
+ {%
+ \WaveBonds%
+ \Put@Line(171,103)(0,-1){140}% % single wave bond at 1
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ \Put@Line(171,103)(0,-1){140}% % single bond at G
+ \else\ifx\@tmpc\empty%alpha single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ \Put@Line(171,103)(0,-1){140}% % single bond at G
+ \fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GFbondb}
+% \begin{macro}{\GFbondb@a}
+% \begin{macro}{\GFbondb@b}
+% \begin{macrocode}
+\def\GFbondb{%
+% %%%%%%%%%%%%%%%%
+% subst. on 1 F == (0,406), G == (171,303) for \@fused@linkfalse
+% subst. on 1 G == (0,406), F == (171,303) for \@fused@linktrue
+% %%%%%%%%%%%%%%%%
+ \if@fused@link
+ \if\@tmpb G%single bond at G (5,-3) fusion
+ \GFbondb@a
+ \else\if\@tmpb F%single bond at F
+ \GFbondb@b
+ \fi\fi%
+ \else
+ \if\@tmpb F%single bond at F (5,-3) fusion
+ \GFbondb@a
+ \else\if\@tmpb G%single bond at G
+ \GFbondb@b
+ \fi\fi%
+ \fi
+}% end of \GFbondb
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\GFbondb@a{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(-5,3){120}% % single bond at F
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ \dotorline(0,406)(-5,3){120}/(0,406)(-120,478)%
+ \else\if\@tmpc U%unspecified single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(-5,3){120}% % single bond at F
+ }%
+ \else\if\@tmpc S%beta single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ \Put@Line(0,406)(-5,3){120}% % single bond at F
+ \else\ifx\@tmpc\empty%beta single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ \Put@Line(0,406)(-5,3){120}% % single bond at F
+ \else\if\@tmpc D%beta single bond (downward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=90\relax%
+ \putlratom{-31}{176}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,-1){140}% % single bond at F
+ }%
+ \else\if\@tmpc C%alpha single bond (downward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=90\relax%
+ \putlratom{-31}{176}{\@memberb}% % left or right type
+ \dotorline(0,406)(0,-1){140}/(0,406)(0,266)%
+ \fi\fi\fi\fi\fi\fi\fi%
+}% end of \GFbondb@a
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\GFbondb@b{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(5,-3){120}% % single bond at G
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ \dotorline(171,303)(5,-3){120}/(171,303)(291,231)%
+ \else\if\@tmpc U%unspecified single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(5,-3){120}% % single bond at G
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ \Put@Line(171,303)(5,-3){120}% % single bond at G
+ \else\ifx\@tmpc\empty%alpha single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ \Put@Line(171,303)(5,-3){120}% % single bond at G
+ \else\if\@tmpc D%beta single bond (upward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=-17\relax%
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(0,1){140}% % single bond at G
+ }%
+ \else\if\@tmpc C%alpha single bond (upward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=-17\relax%
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ \dotorline(171,303)(0,1){140}/(171,303)(171,443)%
+ \fi\fi\fi\fi\fi\fi\fi%
+}% end of \GFbondb@b
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GFbondc}
+% \begin{macro}{\GFbondc@a}
+% \begin{macro}{\GFbondc@b}
+% \begin{macrocode}
+\def\GFbondc{%
+% %%%%%%%%%%%%%%%%
+% subst. on 2 F == (0,406), G == (-171,303) for \@fused@linkfalse
+% subst. on 2 G == (0,406), F == (-171,303) for \@fused@linktrue
+% %%%%%%%%%%%%%%%%
+\if@fused@link
+ \if\@tmpb G%single bond at (-5,-3) fusion
+ \GFbondc@a
+ \else\if\@tmpb F%single bond at F
+ \GFbondc@b
+ \fi\fi%
+\else
+ \if\@tmpb F%single bond at (-5,-3) fusion
+ \GFbondc@a
+ \else\if\@tmpb G%single bond at G
+ \GFbondc@b
+ \fi\fi%
+\fi
+}% end of \GFbondc
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \def\GFbondc@a{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(5,3){120}% % single bond at F
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ \dotorline(0,406)(5,3){120}/(0,406)(120,478)%
+ \else\if\@tmpc U%unspecified single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(5,3){120}% % single bond at F
+ }%
+ \else\if\@tmpc S%beta single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ \Put@Line(0,406)(5,3){120}% % single bond at F
+ \else\ifx\@tmpc\empty%beta single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ \Put@Line(0,406)(5,3){120}% % single bond at F
+ \else\if\@tmpc D%beta single bond (downward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=90\relax%
+ \putlratom{-31}{176}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,-1){140}% % single bond at F
+ }%
+ \else\if\@tmpc C%alpha single bond (downward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=90\relax%
+ \putlratom{-31}{176}{\@memberb}% % left or right type
+ \dotorline(0,406)(0,-1){140}/(0,406)(0,266)%
+ \fi\fi\fi\fi\fi\fi\fi%
+}% end of \GFbondc@a
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\GFbondc@b{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(-5,-3){120}% % single bond at G
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ \dotorline(-171,303)(-5,-3){120}/(-171,303)(-291,231)%
+ \else\if\@tmpc U%unspecified single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,303)(-5,-3){120}% single bond at G
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ \Put@Line(-171,303)(-5,-3){120}% single bond at G
+ \else\ifx\@tmpc\empty%alpha single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ \Put@Line(-171,303)(-5,-3){120}% single bond at G
+ \else\if\@tmpc D%beta single bond (upward)
+ \yl@xdiff=-30\relax%
+ \yl@ydiff=-17\relax%
+ \putlratom{201}{460}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(0,1){140}% % single bond at G
+ }%
+ \else\if\@tmpc C%alpha single bond (upward)
+ \yl@xdiff=-30\relax%
+ \yl@ydiff=-17\relax%
+ \putlratom{201}{460}{\@memberb}% % left or right type
+ \dotorline(-171,303)(0,1){140}/(-171,303)(-171,443)%
+ \fi\fi\fi\fi\fi\fi\fi%
+}% end of \GFbondc@b
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GFbondd}
+% \begin{macrocode}
+\def\GFbondd{%
+% %%%%%%%%%%%%%%%%%%
+% 3 fused positions % G == (303,171) F == (103,171)
+% %%%%%%%%%%%%%%%%%%
+ \if\@tmpb G%single bond at G (fused position)
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(303,171)(1,0){140}% % single bond at G
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ \dotorline(303,171)(1,0){140}/(303,171)(443,171)%
+ \else\if\@tmpc U% unspecified single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+% \Put@Direct(303,148){$\sim$}% unspecified single bond at G
+% \Put@Direct(353,148){$\sim$}%
+% \Put@Direct(403,148){$\sim$}%
+ {%
+ \WaveBonds%
+ \Put@Line(303,171)(1,0){140}% single bond at G
+ }%
+ \else\if\@tmpc S%beta single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ \Put@Line(303,171)(1,0){140}% % single bond at G
+ \else\ifx\@tmpc\empty%beta single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ \Put@Line(303,171)(1,0){140}% % single bond at G
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpb F%single bond at F (fused position)
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+% \putlratom{-127}{140}{\@memberb}% % left or right type
+ \putlatom{-57}{140}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(103,171)(-1,0){140}% % single bond at F
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+ \dotorline(103,171)(-1,0){140}/(103,171)(-37,171)%
+ \else\if\@tmpc U%beta single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+% \Put@Direct(40,148){$\sim$}% unspecified single bond at F
+% \Put@Direct(-13,148){$\sim$}%
+% \Put@Direct(-62,148){$\sim$}%
+ {%
+ \WaveBonds%
+ \Put@Line(103,171)(-1,0){140}% single bond at F
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+ \Put@Line(103,171)(-1,0){140}% % single bond at F
+ \else\ifx\@tmpc\empty%alpha single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+ \Put@Line(103,171)(-1,0){140}% % single bond at F
+ \fi\fi\fi\fi\fi%
+ \fi\fi%
+}% end of \GFbondd
+% \end{macrocode}
+% \end{macro}
+%
+% The |\setfusedbond| takes 5 arguments.
+%
+% \begin{verbatim}
+% ******************************************************
+% * setting of atoms and bonds at fused bond positions *
+% ******************************************************
+%
+% \setfusedbond{SUBSLIST}{AD}{LOWER}{UPPER}{ORDER}
+% \end{verbatim}
+%
+% The first argument |SUBSLIST| is a list of substituents, which is
+% represented in the standard format of \XyMTeX{}.
+% 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.
+%
+% \begin{verbatim}
+% 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
+%
+% \end{verbatim}
+%
+% 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.
+% \begin{verbatim}
+% 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
+%
+% \end{verbatim}
+%
+% 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.
+% \begin{verbatim}
+% 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
+%
+% \end{verbatim}
+%
+% 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.
+% \begin{verbatim}
+% 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
+% \end{verbatim}
+%
+% 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.
+%
+% \begin{verbatim}
+%
+% 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
+%
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding the \cs{\@memberb=\@y} condition}
+% \changes{v1.02}{1998/10/31}{Separate \cs{GFbonda} etc.}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \changes{v5.00}{2010/10/01}{Coloring Substitution Bond}
+%
+% \begin{macro}{\setfusedbond}
+% \begin{macrocode}
+\newif\if@fused@link \@fused@linkfalse
+\def\setfusedbond#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax\advance\@tmpaa by #2\relax\@fused@linktrue
+\else\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
+\@fused@linkfalse\fi%
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifcase\@tmpaa%
+% %%%%%%%%%%%%%%%%%%
+% 0 fused positions % F == (171,303) G == (171,103)
+% %%%%%%%%%%%%%%%%%%
+{\setbscolor\GFbonda\addbscolor{}{}}%2010/10/01
+% %%%%%%%%%%%%%%%%
+\or% subst. on 1 F == (0,406), G == (171,303)
+% %%%%%%%%%%%%%%%%
+{\setbscolor\GFbondb\addbscolor{}{}}%2010/10/01
+%\GFbondb
+% %%%%%%%%%%%%%%%%
+\or% subst. on 2 F == (0,406), G == (-171,303) for \@fused@linkfalse
+ % subst. on 2 G == (0,406), F == (-171,303) for \@fused@linktrue
+% %%%%%%%%%%%%%%%%
+{\setbscolor\GFbondc\addbscolor{}{}}%2010/10/01
+%\GFbondc
+% %%%%%%%%%%%%%%%%%%
+\or %3 fused positions % G == (303,171) F == (103,171)
+% %%%%%%%%%%%%%%%%%%
+{\setbscolor\GFbondd\addbscolor{}{}}%2010/10/01
+%\GFbondd
+\fi%end of ifcase
+\fi\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Setting-up substituents and bonds at a given position}
+%
+% The |\setatombond| takes 3 arguments.
+%
+% \begin{verbatim}
+% ********************************************************
+% * setting of atoms and bonds at an appropiate position *
+% ********************************************************
+%
+% \setatombond{SUBSLIST}{AD}{SLOPE}
+% \end{verbatim}
+%
+% The first argument |SUBSLIST| is a list of substituents, which is
+% represented in the standard format of \XyMTeX{}.
+% Substituents at the fused positions (vertical bonds) are designated by
+% the number 0 and the following bond modifiers.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents (max 3 substitution positions)
+% \end{verbatim}
+%
+% The second argument |AD| is an adjustment value, which adjusts the original
+% locant number into 1.
+%
+% \begin{verbatim}
+% AD : adjustment,
+% Set AD as being 1 = position number - AD
+% \end{verbatim}
+%
+% The argument |SLOPE| has the following meanings.
+% \begin{verbatim}
+% 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)
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/14}{The bond-setting commands such as
+% \cs{setatombonda} ... \cs{setatombondh} are separated from
+% the original \cs{setatombond}.}
+%
+% \begin{macro}{\setatombond}
+% \begin{macrocode}
+\newif\if@clipfuse \@clipfusefalse
+\def\setatombond#1#2#3{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
+\ifx\@memberb\@yl\else
+\ifnum\@tmpaa >0\relax%
+\ifnum\@tmpaa <2\relax%
+\ifcase\@tmpaa%
+% %%%%%%%%%%%%%%%%
+\or% subst. on 1
+% %%%%%%%%%%%%%%%%
+%
+% (0,1)
+%
+ \ifnum#3=1\relax%(upward)
+{\setbscolor\setatombonda\addbscolor{}{}}%2010/10/01
+% \setatombonda
+%
+% (1,0)
+%
+ \else\ifnum#3=4\relax%(right)
+{\setbscolor\setatombondb\addbscolor{}{}}%2010/10/01
+% \setatombondb
+%
+% (0,-1)
+%
+ \else\ifnum#3=7\relax%(downward)
+{\setbscolor\setatombondc\addbscolor{}{}}%2010/10/01
+% \setatombondc
+%
+% (-5,3)
+%
+ \else\ifnum#3=11\relax%
+{\setbscolor\setatombondd\addbscolor{}{}}%2010/10/01
+% \setatombondd
+%
+% (5,-3)
+%
+ \else\ifnum#3=5\relax%
+{\setbscolor\setatombonde\addbscolor{}{}}%2010/10/01
+% \setatombonde
+%
+% (5,3)
+%
+ \else\ifnum#3=3\relax%
+{\setbscolor\setatombondf\addbscolor{}{}}%2010/10/01
+% \setatombondf
+%
+% (-5,-3)
+%
+ \else\ifnum#3=9\relax%
+{\setbscolor\setatombondg\addbscolor{}{}}%2010/10/01
+% \setatombondg
+%
+% (-1,0)
+%
+ \else\ifnum#3=10\relax%(left)
+{\setbscolor\setatombondh\addbscolor{}{}}%2010/10/01
+% \setatombondh
+\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi%end of ifcase
+\fi\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% The command |\setatombond| uses the following bond-setting
+% commands.
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+%
+% \begin{macro}{\setatombonda}
+% \begin{macro}{\setatombondb}
+% \begin{macro}{\setatombondc}
+% \begin{macro}{\setatombondd}
+% \begin{macro}{\setatombonde}
+% \begin{macro}{\setatombondf}
+% \begin{macro}{\setatombondg}
+% \begin{macro}{\setatombondh}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+\def\setatombonda{%upward (0,1)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \thicklines%
+ \Put@Line(0,40)(0,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \dotorline(0,40)(0,1){100}/(0,40)(0,140)%
+ \else\if\@tmpb U% unspecified single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+% \Put@Direct(-3,30){$\wr$}% unspecified single bond at 1
+% \Put@Direct(-3,80){$\wr$}%
+ {%
+ \WaveBonds%
+ \Put@Line(0,40)(0,1){100}% single bond at F
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,40)(0,1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-10,40)(0,1){100}% % single bond at 1
+ \Put@Line(10,40)(0,1){100}% % single bond at 1
+ \else\if\@tmpb T%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-15,40)(0,1){100}% % single bond at 1
+ \Put@Line(0,40)(0,1){100}% % single bond at 1
+ \Put@Line(15,40)(0,1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,40)(0,1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlratom{-31}{157}{\@memberb}% % left or right type
+ \else%no clip
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \dotorline(0,0)(0,1){140}/(0,0)(0,140)%
+ \else\if\@tmpb U% unspecified single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+% \Put@Direct(-3,0){$\wr$}% unspecified single bond at 1
+% \Put@Direct(-3,50){$\wr$}%
+% \Put@Direct(-3,100){$\wr$}%
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,1){140}% single bond at F
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,0)(0,1){140}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-10,0)(0,1){140}% % single bond at 1
+ \Put@Line(10,0)(0,1){140}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-15,0)(0,1){140}% % single bond at 1
+ \Put@Line(0,0)(0,1){140}% % single bond at 1
+ \Put@Line(15,0)(0,1){140}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,0)(0,1){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlratom{-31}{157}{\@memberb}% % left or right type
+ \fi%
+}% end of \setatombonda
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondb{%(right) (1,0)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ {%
+ \thicklines%
+ \Put@Line(30,0)(1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \dotorline(30,0)(1,0){110}/(30,0)(140,0)%
+ \else\if\@tmpb U%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ {%
+ \WaveBonds%
+ \Put@Line(30,0)(1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(40,0)(1,0){100}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(40,10)(1,0){100}% % single bond at 1
+ \Put@Line(40,-10)(1,0){100}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(40,15)(1,0){100}% % single bond at 1
+ \Put@Line(40,0)(1,0){100}% % single bond at 1
+ \Put@Line(40,-15)(1,0){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(40,0)(1,0){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{157}{-31}{\@memberb}% % right type only
+ \else%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \dotorline(0,0)(1,0){140}/(0,0)(140,0)%
+ \else\if\@tmpb U%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(0,10)(1,0){140}% % single bond at 1
+ \Put@Line(0,-10)(1,0){140}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(0,-15)(1,0){140}% % single bond at 1
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ \Put@Line(0,15)(1,0){140}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{157}{-31}{\@memberb}% % right type only
+ \fi%
+}% end of \setatombondb
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondc{%(downward) (0,-1)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \thicklines%
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \dotorline(0,-40)(0,-1){100}/(0,-40)(0,-140)%
+ \else\if\@tmpb U%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+% \Put@Direct(-3,-90){$\wr$}% unspecified single bond at 1
+% \Put@Direct(-3,-140){$\wr$}%
+ {%
+ \WaveBonds%
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(10,-40)(0,-1){100}% % single bond at 1
+ \Put@Line(-10,-40)(0,-1){100}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(15,-40)(0,-1){100}% % single bond at 1
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ \Put@Line(-15,-40)(0,-1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \dotorline(0,0)(0,-1){140}/(0,0)(0,-140)%
+ \else\if\@tmpb U%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+% \Put@Direct(-3,-60){$\wr$}% unspecified single bond at 1
+% \Put@Direct(-3,-110){$\wr$}%
+% \Put@Direct(-3,-160){$\wr$}%
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(10,0)(0,-1){140}% % single bond at 1
+ \Put@Line(-10,0)(0,-1){140}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(15,0)(0,-1){140}% % single bond at 1
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ \Put@Line(-15,0)(0,-1){140}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \fi%
+}% end of \setatombondc
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\setatombondd{% (-5,3)
+ \if@clipfuse%
+ \yl@xdiff=20\relax
+ \yl@ydiff=18\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-30,18)(-5,3){100}/(-30,18)(-130,78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(-36,8)(-5,3){100}% % single bond at 1
+ \Put@Line(-24,24)(-5,3){100}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(-39,3)(-5,3){100}% % single bond at 1
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ \Put@Line(-21,33)(-5,3){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-150}{60}{\@memberb}% % left type
+ \else%no clipping
+ \yl@xdiff=20\relax
+ \yl@ydiff=18\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-5,3){130}/(0,0)(-130,78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(6,10)(-5,3){130}% % single bond at 1
+ \Put@Line(-6,-10)(-5,3){130}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(9,15)(-5,3){130}% % single bond at 1
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ \Put@Line(-9,-15)(-5,3){130}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-150}{60}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondd
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\setatombonde{%(5,-3)
+ \if@clipfuse%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=52\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(30,-18)(5,-3){100}/(30,-18)(130,-78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(36,-12)(5,-3){100}% % single bond at 1
+ \Put@Line(24,-28)(5,-3){100}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(39,-3)(5,-3){100}% % single bond at 1
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ \Put@Line(21,-33)(5,-3){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{140}{-130}{\@memberb}% % right type
+ \else%no clipping
+ \yl@xdiff=-10\relax
+ \yl@ydiff=52\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(5,-3){130}/(0,0)(130,-78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(6,10)(5,-3){130}% % single bond at 1
+ \Put@Line(-6,-10)(5,-3){130}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(9,15)(5,-3){130}% % single bond at 1
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ \Put@Line(-9,-15)(5,-3){130}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{140}{-130}{\@memberb}% % right type
+ \fi%
+}% end of \setatombonde
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\setatombondf{%% (5,3)
+ \if@clipfuse%
+ \yl@xdiff=-30\relax
+ \yl@ydiff=18\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(30,18)(5,3){100}/(30,18)(130,78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(36,8)(5,3){100}% % single bond at 1
+ \Put@Line(24,24)(5,3){100}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(39,3)(5,3){100}% % single bond at 1
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ \Put@Line(21,33)(5,3){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{160}{60}{\@memberb}% % right type
+ \else%no clipping
+ \yl@xdiff=-30\relax
+ \yl@ydiff=18\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(5,3){120}/(0,0)(130,78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(6,-10)(5,3){130}% % single bond at 1
+ \Put@Line(-6,10)(5,3){130}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(9,-15)(5,3){130}% % single bond at 1
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ \Put@Line(-9,15)(5,3){130}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{160}{60}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondf
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\setatombondg{%% (-5,-3)
+ \if@clipfuse%
+ \yl@xdiff=0\relax
+ \yl@ydiff=52\relax%1999/1/6 by Shinsaku Fujita
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+% \dotorline(-30,-18)(-5,-3){100}/(-20,-12)(-120,-72)%
+ \dotorline(-35,-21)(-5,-3){100}/(-35,-21)(-120,-72)%
+ \else\if\@tmpc U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-35,-21)(-5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpc S%alpha single bond
+% \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ \Put@Line(-35,-21)(-5,-3){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(-36,-12)(-5,-3){100}% % single bond at 1
+ \Put@Line(-24,-28)(-5,-3){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(-39,-3)(-5,-3){100}% % single bond at 1
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ \Put@Line(-21,-33)(-5,-3){100}% % single bond at 1
+ \else\ifx\@tmpc\empty%alpha single bond
+% \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ \Put@Line(-35,-21)(-5,-3){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-130}{-130}{\@memberb}% % left type
+ \else%
+ \yl@xdiff=0\relax
+% \yl@ydiff=62\relax
+ \yl@ydiff=52\relax%1999/1/6 by Shinsaku Fujita
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-5,-3){130}/(0,0)(-130,-78)%
+ \else\if\@tmpc U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(-6,10)(-5,-3){130}% % single bond at 1
+ \Put@Line(6,-10)(-5,-3){130}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(-9,15)(-5,-3){130}% % single bond at 1
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ \Put@Line(9,-15)(-5,-3){130}% % single bond at 1
+ \else\ifx\@tmpc\empty%alpha single bond
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-130}{-130}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondg
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\setatombondh{% (-1,0)
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-30,0)(-1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-30,0)(-1,0){110}/(-30,0)(-140,0)%
+ \else\if\@tmpb U%beta single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-30,0)(-1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \Put@Line(-40,0)(-1,0){100}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(-40,10)(-1,0){100}% % single bond at 1
+ \Put@Line(-40,-10)(-1,0){100}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(-40,15)(-1,0){100}% % single bond at 1
+ \Put@Line(-40,0)(-1,0){100}% % single bond at 1
+ \Put@Line(-40,-15)(-1,0){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \Put@Line(-40,0)(-1,0){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \else%
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-1,0){140}/(0,0)(-140,0)%
+ \else\if\@tmpb U%beta single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(0,10)(-1,0){140}% % single bond at 1
+ \Put@Line(0,-10)(-1,0){140}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(0,-15)(-1,0){140}% % single bond at 1
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \Put@Line(0,15)(-1,0){140}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \fi%
+}% end of \setatombondh
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ylatombondposition| is used to calculate the shift values
+% (|\@ylii| and |\@yli|) for applying the |\setatombond| command.
+% \changes{v1.02}{1998/10/15}{New command: \cs{ylatombondposition}
+% for setting substituents}
+%
+% \begin{macro}{\ylatombondposition}
+% \begin{macrocode}
+\def\ylatombondposition#1#2#3{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
+\ifnum\@tmpaa >0\relax%
+\ifnum\@tmpaa <2\relax%
+\ifcase\@tmpaa%
+% %%%%%%%%%%%%%%%%
+\or% subst. on 1
+% %%%%%%%%%%%%%%%%
+%
+% (0,1)
+%
+ \ifnum#3=1\relax%upward
+ \if@clipfuse%
+ \gdef\@ylii{0}\gdef\@yli{-48}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombonda
+%
+% (1,0)
+%
+ \else\ifnum#3=4\relax%(right)
+ \if@clipfuse%
+ \gdef\@ylii{-40}\gdef\@yli{0}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombondb
+%
+% (0,-1)
+%
+ \else\ifnum#3=7\relax%(downward)
+ \if@clipfuse%
+ \gdef\@ylii{0}\gdef\@yli{48}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombondc
+%
+% (-5,3)
+%
+ \else\ifnum#3=11\relax%
+ \if@clipfuse%
+ \gdef\@ylii{50}\gdef\@yli{-30}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombondd
+%
+% (5,-3)
+%
+ \else\ifnum#3=5\relax%
+ \if@clipfuse%
+ \gdef\@ylii{-50}\gdef\@yli{30}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombonde
+%
+% (5,3)
+%
+ \else\ifnum#3=3\relax%
+ \if@clipfuse%
+ \gdef\@ylii{-50}\gdef\@yli{-30}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombondf
+%
+% (-5,-3)
+%
+ \else\ifnum#3=9\relax%
+ \if@clipfuse%
+ \gdef\@ylii{50}\gdef\@yli{30}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombondg
+%
+% (-1,0)
+%
+ \else\ifnum#3=10\relax%(left)
+ \if@clipfuse%
+ \gdef\@ylii{40}\gdef\@yli{0}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombondh
+\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi%end of ifcase
+\fi\fi\fi\fi%
+\fi}}% end of \ylatombondposition
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Macros for horizontal formulas}
+% \subsection{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.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}.
+% Commands for setting substituents}
+% \changes{v5.01}{2013/06/19}{bug fix: initial setting of \cs{reset@@yl}}
+%
+% \begin{macro}{\ylpositionh}
+% \begin{macrocode}
+\def\ylpositionh#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\reset@@yl%%2013/06/19bug fix
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+ \or\ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else
+ \gdef\@ylii{30}\gdef\@yli{0}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or\ifx\bbb\empty
+ \gdef\@ylii{-103}\gdef\@yli{-171}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \else
+ \gdef\@ylii{-73}\gdef\@yli{-223}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or \ifx\ccc\empty
+ \gdef\@ylii{-303}\gdef\@yli{-171}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \else
+ \gdef\@ylii{-333}\gdef\@yli{-223}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or\ifx\ddd\empty
+ \gdef\@ylii{-406}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else
+ \gdef\@ylii{-436}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or\ifx\eee\empty
+ \gdef\@ylii{-303}\gdef\@yli{171}\global\@ylswtrue%\@yletrue% subst. on 5
+ \else
+ \gdef\@ylii{-333}\gdef\@yli{223}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \or \ifx\fff\empty
+ \gdef\@ylii{-103}\gdef\@yli{171}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \else
+ \gdef\@ylii{-73}\gdef\@yli{223}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+% 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.).
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{Added bond modifiers: FA, FB, GA, GB, Su, Sd}
+% \changes{v4.03}{2005/07/20}{Wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@hsubsta}
+% *************************************************************
+% * treatment of substitution positions for a horizontal type *
+% *************************************************************
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 1 %
+% %%%%%%%%%%%%%%%
+\def\@hsubsta{%
+\if@aclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(-30,0)(-1,0){110}% % single bond at 1
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=27\relax
+ \yl@ydiff=36\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ \dotorline(-30,-18)(-5,-3){100}/(-30,-18)(-120,-72)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=27\relax
+ \yl@ydiff=36\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ \dotorline(-30,18)(-5,3){100}/(-30,18)(-130,78)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=27\relax
+ \yl@ydiff=36\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=27\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=27\relax
+ \yl@ydiff=36\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=27\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ }%
+ \fi\fi\fi\fi\fi
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(-30,-12)(-1,0){110}% % double bond at 1
+ \Put@Line(-30,12)(-1,0){110}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ {%
+ \thicklines%
+ \Put@Line(-30,0)(-1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \dotorline(-30,0)(-1,0){110}/(-30,0)(-140,0)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ {%
+ \WaveBonds%
+ \Put@Line(-30,0)(-1,0){110}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,0){\setatombondG}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,0){\setatombondD}%
+ }%
+ \else%
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(-40,0)(-1,0){100}% % single bond at 1
+ \fi\fi\fi\fi
+ \fi\fi\fi%
+\else%% no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=30\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,3){120}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ \dotorline(0,0)(-5,-3){120}/(0,0)(-120,-72)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,-3){120}% % single bond at 1
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=30\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ \dotorline(0,0)(-5,3){120}/(0,0)(-120,72)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=30\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ \Put@Line(0,0)(-5,3){120}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ \Put@Line(0,0)(-5,-3){120}% % single bond at 1
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=30\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,3){120}% % single bond at 1
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,-3){120}% % single bond at 1
+ }%
+ \fi\fi\fi\fi\fi
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(0,-12)(-1,0){140}% % double bond at 1
+ \Put@Line(0,12)(-1,0){140}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \dotorline(0,0)(-1,0){140}/(0,0)(-140,0)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,0){140}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,0){\setatombondG}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,0){\setatombondD}%
+ }%
+ \else%
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}%end of \@hsubsta
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@hsubstb| command is used for placing a substituent (|\@memberb|) at
+% the 2-position (upper-left) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{Added bond modifiers: FA, FB, GA, GB, Su, Sd}
+% \changes{v4.03}{2005/07/20}{Wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@hsubstb}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 2 %
+% %%%%%%%%%%%%%%%
+\def\@hsubstb{%
+ \if@bclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ \Put@Line(79,221)(-3,5){63}% % single bond at 2 (62=>63)
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putlatom{-41}{240}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(59,201)(-5,3){100}% % single bond at 2
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-10\relax
+ \putratom{73}{331}{\@memberb}% % right type
+ \dotorline(103,221)(0,1){100}/(103,221)(103,321)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=-10\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(103,221)(0,1){100}% % single bond at 2
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putlatom{-41}{240}{\@memberb}% % left type
+ \dotorline(59,201)(-5,3){100}/(59,201)(-41,261)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putlatom{-41}{240}{\@memberb}% % left type
+ \Put@Line(59,201)(-5,3){100}% % single bond at 2
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-10\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ \Put@Line(103,221)(0,1){100}% % single bond at 2
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putlatom{-41}{240}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(59,201)(-5,3){100}% % single bond at 2
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=-10\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ {%
+ \WaveBonds%
+ \Put@Line(103,221)(0,1){100}% % single bond at 2
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=59\relax
+ \yl@ydiff=-13\relax
+ \putlratom{-37}{331}{\@memberb}%
+ \Put@Line(78,208)(-3,5){63}% % double bond at 2(62->63)
+ \Put@Line(100,219)(-3,5){63}% % double bond at 2(62->63)
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(79,221)(-3,5){63}% % single bond at 2 (62->63)
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ \dotorline(79,221)(-3,5){63}/(79,221)(16,326)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(79,221)(-3,5){63}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(103,171){\setatombondh}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(103,171){\setatombondF}%
+ }%
+ \else%
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ \Put@Line(79,221)(-3,5){63}% % single bond at 2 (62->63)
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \else%%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ \Put@Line(103,171)(-3,5){72}% % single bond at 2
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=14\relax
+ \yl@ydiff=-3\relax
+ \putlatom{-31}{240}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(103,171)(-5,3){120}% % single bond at 2
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ \dotorline(103,171)(0,1){140}/(103,171)(103,311)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(103,171)(0,1){140}% % single bond at 2
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=14\relax
+ \yl@ydiff=-3\relax
+ \putlatom{-31}{240}{\@memberb}% % left type
+ \dotorline(103,171)(-5,3){120}/(103,171)(-7,243)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=14\relax
+ \yl@ydiff=-3\relax
+ \putlatom{-31}{240}{\@memberb}% % left type
+ \Put@Line(103,171)(-5,3){120}% % single bond at 2
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ \Put@Line(103,171)(0,1){140}% % single bond at 2
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=14\relax
+ \yl@ydiff=-3\relax
+ \putlatom{-31}{240}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(103,171)(-5,3){120}% % single bond at 2
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ {%
+ \WaveBonds%
+ \Put@Line(103,171)(0,1){140}% % single bond at 2
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=64\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ \Put@Line(96,168)(-3,5){72}% % double bond at 2
+ \Put@Line(121,174)(-3,5){72}% % double bond at 2
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(103,171)(-3,5){72}% % single bond at 2
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ \dotorline(103,171)(-3,5){72}/(103,171)(31,291)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(103,171)(-3,5){72}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(103,171){\setatombondh}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(103,171){\setatombondF}%
+ }%
+ \else%
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ \Put@Line(103,171)(-3,5){72}% % single bond at 2
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubstb
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@hsubstc| command is used for placing a substituent (|\@memberb|) at
+% the 3-position (upper-right) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{Added bond modifiers: FA, FB, GA, GB, Su, Sd}
+% \changes{v4.03}{2005/07/20}{Wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@hsubstc}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 3 %
+% %%%%%%%%%%%%%%%
+\def\@hsubstc{%
+ \if@cclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ \Put@Line(343,221)(3,5){63}% % single bond at 3 (62->63)
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(343,201)(5,3){100}% % single bond at 3
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=0\relax
+ \putlratom{273}{331}{\@memberb}% % left-right type
+ \dotorline(303,221)(0,1){110}/(303,221)(303,321)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=0\relax
+ \putlratom{273}{331}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(303,221)(0,1){100}% % single bond at 3
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ \dotorline(343,201)(5,3){100}/(343,201)(443,261)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ \Put@Line(343,201)(5,3){100}% % single bond at 3
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=0\relax
+ \putlratom{273}{331}{\@memberb}% % left-right type
+ \Put@Line(303,221)(0,1){100}% % single bond at 3
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(343,201)(5,3){100}% % single bond at 3
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=0\relax
+ \putlratom{273}{331}{\@memberb}% % left-right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,221)(0,1){100}% % single bond at 3
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=-18\relax
+ \putratom{373}{331}{\@memberb}%
+ \Put@Line(328,208)(3,5){63}% % double bond at 3
+ \Put@Line(303,214)(3,5){63}% % double bond at 3
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(343,221)(3,5){63}% % single bond at 3
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ \dotorline(343,221)(3,5){63}/(343,221)(406,326)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(343,221)(3,5){63}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(303,171){\setatombondD}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(303,171){\setatombondb}%
+ }%
+ \else%
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ \Put@Line(343,221)(3,5){63}% % single bond at 3 (62->63)
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ \Put@Line(303,171)(3,5){72}% % single bond at 3
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-20\relax
+ \yl@ydiff=3\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(303,171)(5,3){120}% % single bond at 3
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putratom{273}{331}{\@memberb}% % right type
+ \dotorline(303,171)(0,1){140}/(303,171)(303,311)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putratom{273}{331}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(303,171)(0,1){140}% % single bond at 3
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-20\relax
+ \yl@ydiff=3\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ \dotorline(303,171)(5,3){120}/(303,171)(423,243)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-20\relax
+ \yl@ydiff=3\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ \Put@Line(303,171)(5,3){120}% % single bond at 3
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putratom{273}{331}{\@memberb}% % right type
+ \Put@Line(303,171)(0,1){140}% % single bond at 3
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-20\relax
+ \yl@ydiff=3\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,171)(5,3){120}% % single bond at 3
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putratom{273}{331}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,171)(0,1){140}% % single bond at 3
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=6\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ \Put@Line(310,168)(3,5){72}% % double bond at 3
+ \Put@Line(284,174)(3,5){72}% % double bond at 3
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(303,171)(3,5){72}% % single bond at 3
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ \dotorline(303,171)(3,5){72}/(303,171)(375,291)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(303,171)(3,5){72}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(303,171){\setatombondD}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(303,171){\setatombondb}%
+ }%
+ \else%
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ \Put@Line(303,171)(3,5){72}% % single bond at 3
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubstc
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@hsubstd| command is used for placing a substituent (|\@memberb|) at
+% the 4-position (right-hand) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{Added bond modifiers: FA, FB, GA, GB, Su, Sd}
+% \changes{v4.03}{2005/07/20}{Wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@substd}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 4 %
+% %%%%%%%%%%%%%%%
+\def\@hsubstd{%
+\if@clip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(436,0)(1,0){110}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-27\relax
+ \yl@ydiff=36\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(436,18)(5,3){100}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-27\relax
+ \yl@ydiff=22\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ \dotorline(436,-18)(5,-3){100}/(436,-18)(526,-72)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-27\relax
+ \yl@ydiff=22\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(436,-18)(5,-3){100}% % single bond at 4
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-27\relax
+ \yl@ydiff=36\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ \dotorline(436,18)(5,3){100}/(436,18)(536,78)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-27\relax
+ \yl@ydiff=36\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ \Put@Line(436,18)(5,3){100}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-27\relax
+ \yl@ydiff=22\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ \Put@Line(436,-18)(5,-3){100}% % single bond at 4
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-27\relax
+ \yl@ydiff=36\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(436,18)(5,3){100}% % single bond at 4
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-27\relax
+ \yl@ydiff=22\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(436,-18)(5,-3){100}% % single bond at 4
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(436,-12)(1,0){110}% % double bond at 4
+ \Put@Line(436,12)(1,0){110}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(436,0)(1,0){110}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \dotorline(436,0)(1,0){110}/(436,0)(546,0)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(436,0)(1,0){110}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(406,0){\setatombondF}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(406,0){\setatombondE}%
+ }%
+ \else%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(436,0)(1,0){110}% % single bond at 4
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+\else%% no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(406,0)(1,0){140}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-37\relax
+ \yl@ydiff=30\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(406,0)(5,3){120}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-37\relax
+ \yl@ydiff=28\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ \dotorline(406,0)(5,-3){120}/(406,0)(526,-72)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-37\relax
+ \yl@ydiff=28\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(406,0)(5,-3){120}% % single bond at 4
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-37\relax
+ \yl@ydiff=30\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ \dotorline(406,0)(5,3){120}/(406,0)(526,72)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-37\relax
+ \yl@ydiff=30\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ \Put@Line(406,0)(5,3){120}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-37\relax
+ \yl@ydiff=28\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ \Put@Line(406,0)(5,-3){120}% % single bond at 4
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-37\relax
+ \yl@ydiff=30\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(406,0)(5,3){120}% % single bond at 4
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-37\relax
+ \yl@ydiff=28\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(406,0)(5,-3){120}% % single bond at 4
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(406,-12)(1,0){140}% % double bond at 4
+ \Put@Line(406,12)(1,0){140}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(406,0)(1,0){140}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \dotorline(406,0)(1,0){140}/(406,0)(546,0)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(406,0)(1,0){140}% % single wave bond at 4
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(406,0){\setatombondF}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(406,0){\setatombondE}%
+ }%
+ \else%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(406,0)(1,0){140}% % single bond at 4
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubstd
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@hsubste| command is used for placing a substituent (|\@memberb|) at
+% the 5-position (lower-right) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{Added bond modifiers: FA, FB, GA, GB, Su, Sd}
+% \changes{v4.00}{2003/4/1}{Bug fix}
+% \changes{v4.03}{2005/07/20}{Wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@hsubste}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 5 %
+% %%%%%%%%%%%%%%%
+\def\@hsubste{%
+ \if@eclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+% \yl@xdiff=43\relax
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+% \putratom{363}{-402}{\@memberb}%
+ \putratom{373}{-402}{\@memberb}%
+ \Put@Line(343,-221)(3,-5){63}%% single bond at 5 (62=>63)
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=41\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(343,-201)(5,-3){100}% % single bond at 5
+ }%
+ \else\if\@tmpc A%(A) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=71\relax
+% \putratom{283}{-402}{\@memberb}% % right type
+ \putlratom{273}{-402}{\@memberb}% % left-right type
+% \dotorline(303,-221)(0,-1){110}/(303,-221)(303,-321)%
+ \dotorline(303,-221)(0,-1){110}/(303,-221)(303,-311)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=71\relax
+% \putratom{283}{-402}{\@memberb}% % right type
+ \putlratom{273}{-402}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(303,-221)(0,-1){100}% % single bond at 5
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=0\relax
+ \yl@ydiff=41\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ \dotorline(343,-201)(5,-3){100}/(343,-201)(443,-260)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=41\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ \Put@Line(343,-201)(5,-3){100}% % single bond at 5
+ \else\if\@tmpc a%(a) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=71\relax
+% \putratom{283}{-402}{\@memberb}% % right type
+ \putratom{273}{-402}{\@memberb}% % left-right type
+ \Put@Line(303,-221)(0,-1){100}% % single bond at 5
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=41\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(343,-201)(5,-3){100}% % single bond at 5
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=71\relax
+ \putratom{273}{-402}{\@memberb}% % left-right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,-221)(0,-1){100}% % single bond at 5
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+% \yl@xdiff=22\relax
+ \yl@xdiff=12\relax
+ \yl@ydiff=82\relax
+% \putratom{363}{-402}{\@memberb}%
+ \putratom{373}{-402}{\@memberb}%
+ \Put@Line(328,-208)(3,-5){63}% % double bond at 5 (62->63)
+ \Put@Line(306,-224)(3,-5){63}% % double bond at 5 (62->63)
+ \else\if\@tmpb B%beta single bond
+% \yl@xdiff=43\relax
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+% \putratom{363}{-402}{\@memberb}%
+ \putratom{373}{-402}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(343,-221)(3,-5){63}%% single bond at 5(62->63)
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+ \putratom{373}{-402}{\@memberb}%
+ \dotorline(343,-221)(3,-5){63}/(343,-221)(406,-326)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+ \putratom{373}{-402}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(343,-221)(3,-5){63}% % single wave bond at 5
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(303,-171){\setatombondb}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(303,-171){\setatombondG}%
+ }%
+ \else%
+% \yl@xdiff=43\relax
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+% \putratom{363}{-402}{\@memberb}%
+ \putratom{373}{-402}{\@memberb}%
+ \Put@Line(343,-221)(3,-5){63}% % single bond at 5(62->63)
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=9\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+% \putratom{363}{-402}{\@memberb}%
+ \putratom{363}{-382}{\@memberb}%
+ \Put@Line(303,-171)(3,-5){72}% % single bond at 5
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-20\relax
+ \yl@ydiff=58\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(303,-171)(5,-3){120}% % single bond at 5
+ }%
+ \else\if\@tmpc A%(A) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+% \putratom{283}{-402}{\@memberb}% % right type
+ \putratom{273}{-402}{\@memberb}% % right type
+% \dotorline(303,-171)(0,-1){140}/(303,-171)(303,-321)%
+ \dotorline(303,-171)(0,-1){140}/(303,-171)(303,-311)%2002/5/30
+ \else\if\@tmpc u%(u) up --- (B) beta
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+% \putratom{283}{-402}{\@memberb}% % right type
+ \putratom{273}{-402}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(303,-171)(0,-1){140}% % single bond at 5
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-20\relax
+ \yl@ydiff=58\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ \dotorline(303,-171)(5,-3){120}/(303,-171)(423,-243)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-20\relax
+ \yl@ydiff=58\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ \Put@Line(303,-171)(5,-3){120}% % single bond at 5
+ \else\if\@tmpc a%(a) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+% \putratom{283}{-402}{\@memberb}% % right type
+ \putratom{273}{-402}{\@memberb}% % right type
+ \Put@Line(303,-171)(0,-1){140}% % single bond at 5
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-20\relax
+ \yl@ydiff=58\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,-171)(5,-3){120}% % single bond at 5
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+ \putratom{273}{-402}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,-171)(0,-1){140}% % single bond at 5
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=3\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+% \putratom{363}{-402}{\@memberb}%
+ \Put@Line(310,-168)(3,-5){72}% % double bond at 5
+ \Put@Line(284,-174)(3,-5){72}% % double bond at 5
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=9\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+% \putratom{363}{-402}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(303,-171)(3,-5){72}% % single bond at 5
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=9\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+ \dotorline(303,-171)(3,-5){72}/(303,-171)(375,-291)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=9\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(303,-171)(3,-5){72}% % single wave bond at 5
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(303,-171){\setatombondb}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(303,-171){\setatombondG}%
+ }%
+ \else%
+ \yl@xdiff=9\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+% \putratom{363}{-402}{\@memberb}%
+ \putratom{363}{-382}{\@memberb}%
+ \Put@Line(303,-171)(3,-5){72}% % single bond at 5
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubste
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@hsubstf| command is used for placing a substituent (|\@memberb|) at
+% the 6-position (lower-left) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{Added bond modifiers: FA, FB, GA, GB, Su, Sd}
+% \changes{v4.03}{2005/07/20}{Wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@hsubstf}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 6 %
+% %%%%%%%%%%%%%%%
+\def\@hsubstf{%
+ \if@fclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+% \yl@xdiff=43\relax
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-37}{-402}{\@memberb}%
+ \Put@Line(79,-221)(-3,-5){63}% % single bond at 6 (62=>63)
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(59,-201)(-5,-3){100}% % single bond at 6
+ }%
+ \else\if\@tmpc A%(A) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+% \putratom{83}{-402}{\@memberb}% % right type
+ \putlratom{73}{-402}{\@memberb}% % left-right type
+ \dotorline(103,-221)(0,-1){100}/(103,-221)(103,-321)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+% \putratom{83}{-402}{\@memberb}% % right type
+ \putlratom{73}{-402}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(103,-221)(0,-1){100}% % single bond at 6
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ \dotorline(59,-201)(-5,-3){100}/(59,-201)(-41,-261)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ \Put@Line(59,-201)(-5,-3){100}% % single bond at 6
+ \else\if\@tmpc a%(a) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+% \putratom{83}{-402}{\@memberb}% % right type
+ \putratom{73}{-402}{\@memberb}% % right type
+ \Put@Line(103,-221)(0,-1){100}% % single bond at 6
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(59,-201)(-5,-3){100}% % single bond at 6
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+ \putratom{73}{-402}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(103,-221)(0,-1){100}% % single bond at 6
+ }%
+ \fi\fi\fi\fi\fi
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+% \yl@xdiff=49\relax
+ \yl@xdiff=59\relax
+ \yl@ydiff=82\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-37}{-402}{\@memberb}%
+ \Put@Line(78,-208)(-3,-5){63}% % double bond at 6 (62->63)
+ \Put@Line(106,-219)(-3,-5){63}% % double bond at 6 (62->63)
+ \else\if\@tmpb B%beta single bond
+% \yl@xdiff=43\relax
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-37}{-402}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(79,-221)(-3,-5){63}% % single bond at 6 (62=>63)
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+ \putlratom{-37}{-402}{\@memberb}%
+ \dotorline(79,-221)(-3,-5){63}/(79,-221)(16,-326)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+ \putlratom{-37}{-402}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(79,-221)(-3,-5){63}% % single wave bond at 6
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(103,-171){\setatombondE}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(103,-171){\setatombondh}%
+ }%
+ \else%
+% \yl@xdiff=43\relax
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-37}{-402}{\@memberb}%
+ \Put@Line(79,-221)(-3,-5){63}% % single bond at 6(62->63)
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \else%%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+% \yl@xdiff=59\relax
+ \yl@xdiff=63\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-27}{-382}{\@memberb}%
+ \Put@Line(108,-171)(-3,-5){72}% % single bond at 6
+% \else\if\@tmpb B%beta single bond
+ \else\if\@tmpc B%beta single bond%1998/10/11 by S. Fujita
+ \yl@xdiff=8\relax
+ \yl@ydiff=58\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(103,-171)(-5,-3){120}% % single bond at 6
+ }%
+ \else\if\@tmpc A%(A) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=91\relax
+% \putratom{83}{-402}{\@memberb}% % right type
+ \putlratom{73}{-402}{\@memberb}% % left-right type
+ \dotorline(103,-171)(0,-1){140}/(103,-171)(103,-311)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=91\relax
+% \putratom{83}{-402}{\@memberb}% % right type
+ \putlratom{73}{-402}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(103,-171)(0,-1){140}% % single bond at 6
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=8\relax
+ \yl@ydiff=58\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ \dotorline(103,-171)(-5,-3){120}/(103,-171)(-17,-243)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=8\relax
+ \yl@ydiff=58\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ \Put@Line(103,-171)(-5,-3){120}% % single bond at 6
+ \else\if\@tmpc a%(a) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=91\relax
+% \putratom{83}{-402}{\@memberb}% % right type
+ \putlratom{73}{-402}{\@memberb}% % right-left type
+ \Put@Line(103,-171)(0,-1){140}% % single bond at 6
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=8\relax
+ \yl@ydiff=58\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(103,-171)(-5,-3){120}% % single bond at 6
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=91\relax
+ \putlratom{73}{-402}{\@memberb}% % right-left type
+ {%
+ \WaveBonds%
+ \Put@Line(103,-171)(0,-1){140}% % single bond at 6
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=65\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-27}{-382}{\@memberb}%
+ \Put@Line(96,-168)(-3,-5){72}% % double bond at 6
+ \Put@Line(121,-174)(-3,-5){72}% % double bond at 6
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=59\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-27}{-382}{\@memberb}%
+ \Put@Line(108,-171)(-3,-5){72}% % single bond at 6
+ {%
+ \thicklines%
+ \Put@Line(108,-171)(-3,-5){72}% % single bond at 6
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=59\relax
+ \yl@ydiff=91\relax
+ \putlratom{-27}{-382}{\@memberb}%
+ \dotorline(108,-171)(-3,-5){72}/(103,-171)(31,-291)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=59\relax
+ \yl@ydiff=91\relax
+ \putlratom{-27}{-382}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(108,-171)(-3,-5){72}% % single wave bond at 6
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(103,-171){\setatombondE}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(103,-171){\setatombondh}%
+ }%
+ \else%
+ \yl@xdiff=59\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-27}{-382}{\@memberb}%
+ \Put@Line(108,-171)(-3,-5){72}% % single bond at 6
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubstf
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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.
+%
+% \begin{verbatim}
+% ****************************************************************
+% * setting of atoms and bonds on a horizontal six-membered ring *
+% ****************************************************************
+%
+% \setsixringh{SUBSLIST}{AD}{LOWER}{UPPER}{ORDER}
+%
+% \end{verbatim}
+%
+% The first argument |SUBSLIST| is a list of substituents, which is
+% represented in the standard format of \XyMTeX{}.
+%
+% \begin{verbatim}
+% 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
+%
+% \end{verbatim}
+%
+% 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.
+%
+% \begin{verbatim}
+% 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
+%
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/11}{Adding switches \cs{@yla} etc.}
+% \changes{v1.02}{1998/10/31}{Deleting switches \cs{@yla} etc.}
+%
+% \begin{macro}{\setsixringh}
+% \begin{macrocode}
+\def\setsixringh#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%0 omit
+% \end{macrocode}
+%
+% The following commands are not used in a revised version
+% because of the direct use of |\ifx\@memberb\@yl\else...\fi|.
+%
+% \begin{macrocode}
+% %\or \if@yla\else\@hsubsta\fi% subst. on 1
+% %\or \if@ylb\else\@hsubstb\fi% subst. on 2
+% %\or \if@ylc\else\@hsubstc\fi% subst. on 3
+% %\or \if@yld\else\@hsubstd\fi% subst. on 4
+% %\or \if@yle\else\@hsubste\fi% subst. on 5
+% %\or \if@ylf\else\@hsubstf\fi% subst. on 6
+% \end{macrocode}
+%
+% \begin{macrocode}
+\or{\setbscolor\@hsubsta\addbscolor{}{}}% subst. on 1%2010/10/01
+\or{\setbscolor\@hsubstb\addbscolor{}{}}% subst. on 2%2010/10/01
+\or{\setbscolor\@hsubstc\addbscolor{}{}}% subst. on 3%2010/10/01
+\or{\setbscolor\@hsubstd\addbscolor{}{}}% subst. on 4%2010/10/01
+\or{\setbscolor\@hsubste\addbscolor{}{}}% subst. on 5%2010/10/01
+\or{\setbscolor\@hsubstf\addbscolor{}{}}% subst. on 6%2010/10/01
+\fi%end of ifcase
+\fi\fi\fi\fi}}% %end of setsixringh
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Mocros linking Substituents}
+% \subsection{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.
+% \changes{v1.02}{1998/10/25}{New command: \cs{ryl} etc.}
+%
+% \begin{macro}{\ryl}
+% \begin{macro}{\@ryl}
+% \begin{macrocode}
+\newcount\x@ryl
+\newcount\y@ryl
+\def\ryl{\@ifnextchar({\@ryl}{\@ryl()}}
+\def\@ryl(#1)#2{%
+\iniatom\iniflag%initialize
+\@reset@ylsw%
+\def\centeraaa{}%
+\x@ryl=0\y@ryl=0
+\@forsemicol\member:=#1\do{%
+\if@ylsw%
+\XyMTeXWarning{Duplicated items in the first augument of \string\ryl}%
+\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\settowidth{\dimen0}{\@memberb}%
+\x@ryl=\dimen0%%%dimension => counter
+\divide\x@ryl\unitlength
+\advance\x@ryl by-70
+\y@ryl=0
+\ifcase\@tmpa%
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\y@ryl by50
+\or%1
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by30
+\advance\y@ryl by50
+\or%2
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by40
+\advance\y@ryl by40
+\or%3
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by30
+\or%4
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by0
+\or%5
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by-30
+\or%6
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by-50
+\or%7
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by30
+\advance\y@ryl by-50
+\or%8
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\y@ryl by-50
+\fi
+\fi\fi}%
+ \yl@shiftii=\x@ryl
+ \yl@shifti=-\y@ryl
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\ifx\centeraaa\empty\else%
+ \@clipfusetrue
+ \putlatom{40}{-30}{\centeraaa}% % left type
+\fi%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\let\local@tmpa=\@tmpa%global to local 2002/5/30 by SF
+\ifcase\local@tmpa%
+{\setbscolor\setatombonda\addbscolor{}{}}%2010/10/01%\setatombonda% 0 (upward) (0,1)
+\or{\setbscolor\setatombondF\addbscolor{}{}}%2010/10/01%\or\setatombondF%1 (3,5)
+\or{\setbscolor\setatombondA\addbscolor{}{}}%2010/10/01%\or\setatombondA%2 (1,1)
+\or{\setbscolor\setatombondf\addbscolor{}{}}%2010/10/01%\or\setatombondf%3 (5,3)
+\or{\setbscolor\setatombondb\addbscolor{}{}}%2010/10/01%\or\setatombondb%4 (1,0)
+\or{\setbscolor\setatombonde\addbscolor{}{}}%2010/10/01%\or\setatombonde%5 (5,-3)
+\or{\setbscolor\setatombondB\addbscolor{}{}}%2010/10/01%\or\setatombondB%6 (1,-1)
+\or{\setbscolor\setatombondE\addbscolor{}{}}%2010/10/01%\or\setatombondE%7 (3,-5)
+\or{\setbscolor\setatombondc\addbscolor{}{}}%2010/10/01%\or\setatombondc%8 (0,-1)
+\fi%end of ifcase
+\fi
+}\end{sfpicture}}% %end of \ryl macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The substituent-setting commands |\setatombondF| etc. are used
+% in the macro |\ryl|.
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+%
+% \begin{macro}{\setatombondF}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondF}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+\def\setatombondF{%% (3,5)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \dotorline(30,50)(3,5){60}/(30,50)(90,150)%
+ \else\if\@tmpb U%unspecified single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(40,44)(3,5){60}% % single bond at 1
+ \Put@Line(20,56)(3,5){60}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(45,41)(3,5){60}% % single bond at 1
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ \Put@Line(15,59)(3,5){60}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{80}{160}{\@memberb}% % right type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \dotorline(0,0)(3,5){90}/(0,0)(90,150)%
+ \else\if\@tmpb U%unspecified single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(10,-6)(3,5){90}% % single bond at 1
+ \Put@Line(-10,6)(3,5){90}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(15,-9)(3,5){90}% % single bond at 1
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ \Put@Line(-15,9)(3,5){90}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{80}{160}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondF
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setatombondE}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondE}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondE{%% (3,-5)
+ \if@clipfuse%
+ \yl@xdiff=10\relax
+% \yl@ydiff=70\relax
+ \yl@ydiff=90\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(30,-50)(3,-5){60}/(30,-50)(90,-150)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(40,-44)(3,-5){60}% % single bond at 1
+ \Put@Line(20,-56)(3,-5){60}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(45,-41)(3,-5){60}% % single bond at 1
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ \Put@Line(15,-59)(3,-5){60}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+% \putratom{80}{-220}{\@memberb}% % right type
+ \putratom{80}{-240}{\@memberb}% % right type
+ \else%no clipping
+ \yl@xdiff=10\relax
+% \yl@ydiff=70\relax
+ \yl@ydiff=90\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(3,-5){90}/(0,0)(90,-150)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(10,6)(3,-5){90}% % single bond at 1
+ \Put@Line(-10,-6)(3,-5){90}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(15,9)(3,-5){90}% % single bond at 1
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ \Put@Line(-15,-9)(3,-5){90}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+% \putratom{80}{-220}{\@memberb}% % right type
+ \putratom{80}{-240}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondE
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setatombondA}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondA}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondA{%% (1,1)
+ \yl@xdiff=0\relax
+ \yl@ydiff=0\relax
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(40,40)(1,1){100}/(40,40)(140,140)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(46,36)(1,1){100}% % single bond at 1
+ \Put@Line(36,46)(1,1){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(50,30)(1,1){100}% % single bond at 1
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ \Put@Line(30,50)(1,1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{140}{140}{\@memberb}% % right type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(1,1){120}/(0,0)(120,120)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(6,-6)(1,1){120}% % single bond at 1
+ \Put@Line(-6,6)(1,1){120}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(10,-10)(1,1){120}% % single bond at 1
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ \Put@Line(-10,10)(1,1){120}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{120}{120}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondA
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setatombondB}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondB}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondB{%% (1,-1)
+ \if@clipfuse%
+ \yl@xdiff=0\relax
+ \yl@ydiff=60\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(40,-40)(1,-1){100}/(40,-40)(140,-140)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(46,-36)(1,-1){100}% % single bond at 1
+ \Put@Line(36,-46)(1,-1){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(50,-30)(1,-1){100}% % single bond at 1
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ \Put@Line(30,-50)(1,-1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{140}{-200}{\@memberb}% % right type
+ \else%no clipping
+ \yl@xdiff=0\relax
+ \yl@ydiff=60\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(1,-1){120}/(0,0)(120,-120)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(6,6)(1,-1){120}% % single bond at 1
+ \Put@Line(-6,-6)(1,-1){120}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(10,10)(1,-1){120}% % single bond at 1
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ \Put@Line(-10,-10)(1,-1){120}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{120}{-180}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondB
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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.
+% \changes{v1.02}{1998/10/25}{New command: \cs{lyl} etc.}
+% \begin{macro}{\lyl}
+% \begin{macrocode}
+\def\lyl{\@ifnextchar({\@lyl}{\@lyl()}}
+\def\@lyl(#1)#2{%
+\iniatom\iniflag%initialize
+\@reset@ylsw%
+\def\centeraaa{}%
+\x@ryl=0\y@ryl=0
+\@forsemicol\member:=#1\do{%
+\if@ylsw%
+\XyMTeXWarning{Duplicated items in the first augument of \string\ryl}%
+\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\settowidth{\dimen0}{\@memberb}%
+\x@ryl=\dimen0%%%dimension => counter
+\divide\x@ryl\unitlength
+\advance\x@ryl by-80
+\y@ryl=0
+\ifcase\@tmpa%
+\def\centeraaa{\@memberb}\@ylswtrue
+%\advance\x@ryl by0
+\advance\y@ryl by50
+\or%1
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by30
+\advance\y@ryl by50
+\or%2
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by40
+\advance\y@ryl by40
+\or%3
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by30
+\or%4
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by0
+\or%5
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by-30
+\or%6
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by-50
+\or%7
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by30
+\advance\y@ryl by-50
+\or%8
+\def\centeraaa{\@memberb}\@ylswtrue
+%\advance\x@ryl by0
+\advance\y@ryl by-50
+\fi
+\fi\fi}%
+ \yl@shiftii=-\x@ryl
+ \yl@shifti=-\y@ryl
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\ifx\centeraaa\empty\else%
+ \@clipfusetrue
+ \putratom{-40}{-30}{\centeraaa}% % right type
+\fi%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\let\local@tmpa=\@tmpa%global to local 2002/5/30 by SF
+\ifcase\local@tmpa%
+{\setbscolor\setatombonda\addbscolor{}{}}%2010/10/01%\setatombonda% 0 (upward) (0,1)
+\or{\setbscolor\setatombondD\addbscolor{}{}}%2010/10/01%\or\setatombondD%1 (-3,5)
+\or{\setbscolor\setatombondH\addbscolor{}{}}%2010/10/01%\or\setatombondH%2 (-1,1)
+\or{\setbscolor\setatombondd\addbscolor{}{}}%2010/10/01%\or\setatombondd%3 (-5,3)
+\or{\setbscolor\setatombondh\addbscolor{}{}}%2010/10/01%\or\setatombondh%4 (-1,0)
+\or{\setbscolor\setatombondg\addbscolor{}{}}%2010/10/01%\or\setatombondg%5 (-5,-3)
+\or{\setbscolor\setatombondC\addbscolor{}{}}%2010/10/01%\or\setatombondC%6 (-1,-1)
+\or{\setbscolor\setatombondG\addbscolor{}{}}%2010/10/01%\or\setatombondG%7 (-3,-5)
+\or{\setbscolor\setatombondc\addbscolor{}{}}%2010/10/01%\or\setatombondc%8 (0,-1)
+\fi%end of ifcase
+\fi
+}\end{sfpicture}}% %end of \lyl macro
+% \end{macrocode}
+% \end{macro}
+%
+% The substituent-setting commands |\setatombondD| etc. are used
+% in the macro |\ryl|.
+%
+% \begin{macro}{\setatombondD}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondD}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondD{%% (-3,5)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \dotorline(-30,50)(-3,5){60}/(-30,50)(-90,150)%
+ \else\if\@tmpb U%unspecified single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ \else\if\@tmpb D%double bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-40,44)(-3,5){60}% % single bond at 1
+ \Put@Line(-20,56)(-3,5){60}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-45,41)(-3,5){60}% % single bond at 1
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ \Put@Line(-15,59)(-3,5){60}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+% \putlatom{-80}{160}{\@memberb}% % left type
+ \putlatom{-100}{160}{\@memberb}% % left type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \dotorline(0,0)(-3,5){90}/(0,0)(-90,150)%
+ \else\if\@tmpb U%unspecified single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-10,-6)(-3,5){90}% % single bond at 1
+ \Put@Line(10,6)(-3,5){90}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-15,-9)(-3,5){90}% % single bond at 1
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ \Put@Line(15,9)(-3,5){90}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+% \putlatom{-80}{160}{\@memberb}% % left type
+ \putlatom{-100}{160}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondD
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setatombondG}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondG}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondG{%% (-3,-5)
+ \if@clipfuse%
+ \yl@xdiff=-10\relax
+% \yl@ydiff=70\relax
+ \yl@ydiff=90\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-30,-50)(-3,-5){60}/(-30,-50)(-90,-150)%
+% \dotorline(-33,-55)(-3,-5){60}/(-30,-50)(-90,-150)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(-40,-44)(-3,-5){60}% % single bond at 1
+ \Put@Line(-20,-56)(-3,-5){60}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(-45,-41)(-3,-5){60}% % single bond at 1
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ \Put@Line(-15,-59)(-3,-5){60}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+% \putlatom{-80}{-220}{\@memberb}% % left type
+ \putlatom{-80}{-240}{\@memberb}% % left type
+ \else%no clipping
+ \yl@xdiff=-10\relax
+% \yl@ydiff=70\relax
+ \yl@ydiff=90\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-3,-5){90}/(0,0)(-90,-150)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(-10,6)(-3,-5){90}% % single bond at 1
+ \Put@Line(10,-6)(-3,-5){90}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(-15,9)(-3,-5){90}% % single bond at 1
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ \Put@Line(15,-9)(-3,-5){90}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+% \putlatom{-80}{-220}{\@memberb}% % left type
+ \putlatom{-80}{-240}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondG
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setatombondH}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondH}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondH{%% (-1,1)
+ \yl@xdiff=0\relax
+ \yl@ydiff=0\relax
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-40,40)(-1,1){100}/(-40,40)(-140,140)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(-46,36)(-1,1){100}% % single bond at 1
+ \Put@Line(-36,46)(-1,1){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(-50,30)(-1,1){100}% % single bond at 1
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ \Put@Line(-30,50)(-1,1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-140}{140}{\@memberb}% % left type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-1,1){120}/(0,0)(-120,120)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(-6,-6)(-1,1){120}% % single bond at 1
+ \Put@Line(6,6)(-1,1){120}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(-10,-10)(-1,1){120}% % single bond at 1
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ \Put@Line(10,10)(-1,1){120}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-120}{120}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondH
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setatombondC}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondC}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondC{%% (-1,-1)
+ \if@clipfuse%
+ \yl@xdiff=0\relax
+ \yl@ydiff=60\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-40,-40)(-1,-1){100}/(-40,-40)(-140,-140)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(-46,-36)(-1,-1){100}% % single bond at 1
+ \Put@Line(-36,-46)(-1,-1){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(-50,-30)(-1,-1){100}% % single bond at 1
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ \Put@Line(-30,-50)(-1,-1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-140}{-200}{\@memberb}% % left type
+ \else%no clipping
+ \yl@xdiff=0\relax
+ \yl@ydiff=60\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-1,-1){120}/(0,0)(-120,-120)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(-6,6)(-1,-1){120}% % single bond at 1
+ \Put@Line(6,-6)(-1,-1){120}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(-10,10)(-1,-1){120}% % single bond at 1
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ \Put@Line(10,-10)(-1,-1){120}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-120}{-180}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondC
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Minor Linking Units}
+%
+% \begin{macro}{\ayl}
+% \begin{macrocode}
+\def\ayl{\@ifnextchar({\@ayl@}{\@ayl@(10,40)}}
+\def\@ayl@(#1,#2)#3{\begingroup\yl@xdiff=0 \yl@ydiff=0%
+\kern#1\unitlength\raise#2\unitlength\hbox to0pt{#3\hss}%
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\upnobond}
+% \begin{macro}{\downnobond}
+% \begin{macrocode}
+\def\upnobond#1#2{%
+\hbox{\hbox to0.72em{\hss#1\hss}\kern-0.72em\raise2.2ex\hbox{#2}}}
+\def\downnobond#1#2{%
+\hbox{\hbox to0.72em{\hss#1\hss}\kern-0.72em\lower2.2ex\hbox{#2}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BiFunc}
+% \changes{v5.01}{2013/03/14}{\cs{BiFunc} added to biphenyl-type derivative}
+% The format (slope){length}{moietyA}{moietyB} supports the function for
+% linking moiety A and moiety B through a bond with a given slope.
+% \begin{macrocode}
+\def\BiFunc(#1,#2)#3#4#5{%
+\SlopetoXY(0,0)(#1,#2){#3}%
+\begin{picture}(\@tempcntXa,\@tempcntYa)(0,0)%
+\Put@Line(0,0)(#1,#2){#3}%
+\put(0,0){#4}%
+\put(\@tempcntXa,\@tempcntYa){#5}%
+\end{picture}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Spriro-Ring Commands}
+% \subsection{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 designed to test the existence of a hetero atom
+% (or an equivalent) at each vertix of a six-membered ring.
+%
+% \begin{macro}{\test@vertix}
+% \begin{macro}{\test@vertix@sixv}
+% \changes{v2.00}{1998/11/15}{New command: \cs{test@vertix} and
+% \cs{test@vertix@sixv}}
+% \changes{v4.03b}{2006/9/6}{\cs{ggg} is changed into \cs{gggA} for \cs{test@vertix} and
+% \cs{test@vertix@sixv}}
+% \begin{macrocode}
+\def\test@vertix#1{%
+ \def\tempG{#1}\relax%%%added 2006/9/6
+ \if\tempG g\relax
+ \expandafter\def\csname #1#1#1A\endcsname{@}%
+ \if\@tmpb h\relax
+ \expandafter\def\csname #1#1#1A\endcsname{@}%
+ \else\if\@tmpb s\relax
+ \expandafter\def\csname #1#1#1A\endcsname{}%
+ \fi\fi
+ \else
+ \expandafter\def\csname #1#1#1\endcsname{@}%
+ \if\@tmpb h\relax
+ \expandafter\def\csname #1#1#1\endcsname{@}%
+ \else\if\@tmpb s\relax
+ \expandafter\def\csname #1#1#1\endcsname{}%
+ \fi\fi
+ \fi
+}
+% \end{macrocode}
+%
+% 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.
+%
+% \begin{macrocode}
+\def\test@vertix@sixv#1#2#3#4#5#6#7{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty \relax\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifcase\@tmpa%
+% \changes{v2.00}{1996/11/14}{@ in place of a net value}
+ \or \test@vertix{#2}%
+ \or \test@vertix{#3}%
+ \or \test@vertix{#4}%
+ \or
+ \if\@tmpb a\relax%
+ \def\iii{@}%
+ \else
+ \test@vertix{#5}%
+ \fi
+ \or \test@vertix{#6}%
+ \or \test@vertix{#7}%
+\fi\fi}}% end of \test@vertix@sixv
+%\def\test@vertix@sixv#1#2#3#4#5#6#7{%
+%\@forsemicol\member:=#1\do{%
+%\expandafter\@m@mb@r\member;\relax%
+%\expandafter\twoch@r\@membera{}%
+%\ifcase\@tmpa%
+%% \changes{v2.00}{1996/11/14}{@ in place of a net value}
+% \or \test@vertix{#2}%
+% \or \test@vertix{#3}%
+% \or \test@vertix{#4}%
+% \or \test@vertix{#5}%
+% \or \test@vertix{#6}%
+% \or \test@vertix{#7}%
+%\fi}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% 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)}|.
+%
+% \begin{macro}{\set@hetatom@sixv}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@hetatom@sixv}}
+% \begin{macrocode}
+\def\set@hetatom@sixv#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty \relax\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}\relax%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa \relax%
+\or%position 1
+ \if\@tmpb h\relax
+ \@acliptrue%
+ \putratom{0}{356}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@aclipfalse%
+ \putratom{0}{406}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@acliptrue%
+ \putratom{-31}{356}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 2
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putratom{135}{280}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putratom{175}{303}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@bcliptrue%
+ \putratom{135}{280}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 3
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{135}{95}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{175}{103}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@ccliptrue%
+ \putratom{135}{65}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 4
+ \if\@tmpb h\relax
+ \@cliptrue%
+ \putratom{0}{50}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@clipfalse%
+ \putratom{0}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@cliptrue%
+ \putratom{-31}{-10}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 5
+ \if\@tmpb h\relax
+ \@ecliptrue%
+ \putlatom{-135}{95}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@eclipfalse%
+ \putlatom{-175}{103}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@ecliptrue%
+ \putlatom{-135}{65}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 6
+ \if\@tmpb h\relax
+ \@fcliptrue%
+ \putlatom{-135}{280}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@fclipfalse%
+ \putlatom{-175}{303}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@fcliptrue%
+ \putlatom{-135}{280}{\@memberb}% % left type
+ \fi\fi\fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@sixv
+% \end{macrocode}
+% \end{macro}
+%
+% 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)}|.
+%
+% \begin{macro}{\set@hetatom@sixh}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@hetatom@sixh}}
+% \begin{macrocode}
+\def\set@hetatom@sixh#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+%\expandafter\twoch@r\@membera{}%
+\expandafter\twoCH@R\@membera//%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+\or%position 1
+ \if\@tmpb h\relax
+ \@acliptrue%
+ \putlatom{60}{0}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@aclipfalse%
+ \putlatom{0}{0}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@acliptrue%
+ \putlatom{60}{-36}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 2
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putlatom{135}{141}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putlatom{103}{171}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putlatom{135}{141}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 3
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{273}{141}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{303}{171}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ccliptrue%
+ \putratom{273}{141}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 4
+ \if\@tmpb h\relax
+ \@cliptrue%
+ \putratom{346}{0}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@clipfalse%
+ \putratom{406}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@cliptrue%
+ \putratom{346}{-36}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 5
+ \if\@tmpb h\relax
+ \@ecliptrue%
+ \putratom{283}{-131}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@eclipfalse%
+ \putratom{303}{-171}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ecliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 6
+ \if\@tmpb h\relax
+ \@fcliptrue%
+ \putlatom{125}{-131}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@fclipfalse%
+ \putlatom{103}{-171}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@fcliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \fi\fi\fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@sixh
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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.
+%
+% \begin{macro}{\test@vertix@decav}
+% \begin{macrocode}
+\def\test@vertix@decav#1#2#3#4#5#6#7{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\relax\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa \relax%
+ \or\or\or\or\or\or
+ \or \test@vertix{#2}%
+ \or
+ \if\@tmpb a\relax%
+ \def\jjj{@}%
+ \else
+ \test@vertix{#3}%
+ \fi
+ \or \test@vertix{#4}%
+ \or \test@vertix{#5}%
+% \or \test@vertix{#6}%
+% \or \test@vertix{#7}%
+\fi\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% 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,
+%
+% \begin{macro}{\set@vrtx@fuse}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@vrtx@fuse}}
+% \changes{v2.01}{1998/11/15}{The prefix \cs{\global} are omitted.}
+% \begin{macrocode}
+\def\set@vrtx@fuse#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or
+ \or
+ \or
+ \or%%%%4
+ \if\@tmpb a\relax%
+% \global\@icliptrue%
+ \@icliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+ \else\relax
+ \fi
+ \or%5
+ \or%6
+ \or%7
+ \or%
+ \if\@tmpb a\relax%
+% \global\@jcliptrue%
+ \@jcliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%9 (= 4a)
+% \global\@icliptrue%
+ \@icliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+\or%10 (= 8a)
+% \global\@jcliptrue%
+ \@jcliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+\fi\fi}%
+}% end of the macro \set@vrtx@fuse
+% \end{macrocode}
+% \end{macro}
+%
+% 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,
+%
+% \begin{macro}{\set@vrtx@fuseh}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@vrtx@fuseh}}
+% \changes{v2.01}{1998/11/15}{The prefix \cs{\global} are omitted.}
+% \begin{macrocode}
+\def\set@vrtx@fuseh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifcase\@tmpa%
+ \or
+ \or
+ \or
+ \or%%%%4
+ \if\@tmpb a\relax%
+% \global\@icliptrue%
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else\relax
+ \fi
+ \or%5
+ \or%6
+ \or%7
+ \or%
+ \if\@tmpb a\relax%
+% \global\@jcliptrue%
+ \@jcliptrue%2001/06/20 by S. Fujita%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%9 (= 4a)
+ \ifx\@tmpb\empty\relax
+% \global\@icliptrue%
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else
+ \XyMTeXWarning{Forbidden spiro ring for the 4a position}%
+ \fi
+\or%10 (= 8a)
+ \ifx\@tmpb\empty\relax
+% \global\@jcliptrue%
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else
+ \XyMTeXWarning{Forbidden spiro ring for the 8a position}%
+ \fi
+\fi\fi}%
+}% end of the macro \set@vrtx@fuseh
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ring-fusion Commands for Six-Membered Rings}
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusionadd@sixv}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusionadd@sixv}}
+% \begin{macrocode}
+\def\set@fusionadd@sixv{%
+ \if\@@tmpa 1\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-38}{88}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{-90}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-90}{120}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@sixv
+ \fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% 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|.
+%
+% \begin{macro}{\set@fusion@sixv}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusion@sixv}}
+% \begin{macrocode}
+\def\set@fusion@sixv{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa d\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, h, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, H, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, k, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, K, or other}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f, j, or other}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{0}{406}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F, J, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{0}{406}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c, e, or other}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C, E, or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@sixv
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusionadd@sixvi}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusionadd@sixvi}}
+% \begin{macrocode}
+\def\set@fusionadd@sixvi{%
+ \if\@@tmpa 4\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{-38}{88}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-90}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{-90}{120}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@sixvi
+ \fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusionadd@sixvi
+% \end{macrocode}
+% \end{macro}
+%
+% 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|.
+%
+% \begin{macro}{\set@fusion@sixvi}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusion@sixvi}}
+% \begin{macrocode}
+\def\set@fusion@sixvi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % right type
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{171}{303}{\@@tmpb}% % right type
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B or other}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{171}{303}{\@@tmpb}% % right type
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c or other}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{0}{406}{\@@tmpb}% % right type
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C or other}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{0}{406}{\@@tmpb}% % right type
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % right type
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % right type
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E or other}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f or other}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{0}{0}{\@@tmpb}% % right type
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the marcro \set@fusion@sixvi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusionadd@sixh}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusionadd@sixh}}
+% \begin{macrocode}
+\def\set@fusionadd@sixh{%
+ \if\@@tmpa 4\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{68}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@sixh
+ \fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% 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|.
+%
+% \begin{macro}{\set@fusion@sixh}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@sixh}}
+% \begin{macrocode}
+\def\set@fusion@sixh{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa d\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, h, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, H, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, k, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, K, or other}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f, j, or other}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F, J, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c, e, or other}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+% \FuseWarning{103}{171}%
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C, E, or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@sixh
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusionadd@sixhi}
+% \changes{v2.00}{1998/11/29}{New command: \cs{set@fusionadd@sixhi}}
+% \begin{macrocode}
+\def\set@fusionadd@sixhi{%
+ \if\@@tmpa 1\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{68}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@sixhi
+ \fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% 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|.
+%
+% \begin{macro}{\set@fusion@sixhi}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@sixhi}}
+% \begin{macrocode}
+\def\set@fusion@sixhi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa F\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F, J, or other}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f, j, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, K, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, k, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, H, or other}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, h, or other}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C, E, or other}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c, e, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@sixhi
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ring-fusion Commands for Six-Six Fused Rings}
+% \subsection{Conventions for Warning}
+%
+% \begin{macro}{\UnfavorableFusion}
+% \changes{v2.00}{1998/12/23}{New command: \cs{UnfavorableFusion}}
+% \begin{macrocode}
+\def\UnfavorableFusion#1{\if@smallringsw\else
+\XyMTeXWarning{Unfavorable Fusion for bond `#1'}\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ForbiddenFusion}
+% \changes{v2.00}{1998/12/23}{New command: \cs{ForbiddenFusion}}
+% \begin{macrocode}
+\def\ForbiddenFusion#1{\if@smallringsw\else
+\XyMTeXWarning{Forbidden Fusion for bond `#1'}\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusion@decav}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusion@decav}}
+% \begin{macrocode}
+\def\set@fusion@decav{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{K}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decav
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusion@decavb}
+% \changes{v2.00}{1998/12/25}{New command: \cs{set@fusion@decavb}}
+% \begin{macrocode}
+\def\set@fusion@decavb{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \edef\@@tmpa{b}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \edef\@@tmpa{B}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{b}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{B}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{c}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{C}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{K}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decavb
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusion@decavt}
+% \changes{v2.00}{1998/12/25}{New command: \cs{set@fusion@decavt}}
+% \begin{macrocode}
+\def\set@fusion@decavt{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \edef\@@tmpa{f}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \edef\@@tmpa{F}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \edef\@@tmpa{a}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \edef\@@tmpa{A}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \edef\@@tmpa{b}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \edef\@@tmpa{B}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{b}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{B}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{d}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{D}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{K}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of \set@fusion@decavt
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusion@decah}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusion@decah}}
+% \begin{macrocode}
+\def\set@fusion@decah{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \ForbiddenFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \ForbiddenFusion{K}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decah
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ring-fusion Commands for Six-Six-Six Fused Rings}
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusion@hanthrav}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@hanthrav}}
+% \begin{macrocode}
+\def\set@fusion@hanthrav{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{f}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{F}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{g}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{G}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{K}%
+ \else\if\@tmpa l%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{l}%
+ \else\if\@tmpa L%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{L}%
+ \else\if\@tmpa m%
+ \edef\@@tmpa{a}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{m}%
+ \else\if\@tmpa M%
+ \edef\@@tmpa{A}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{M}%
+ \else\if\@tmpa n%
+ \edef\@@tmpa{f}%
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{n}%
+ \else\if\@tmpa N%
+ \edef\@@tmpa{F}%
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{N}%
+ \else\if\@tmpa o%
+ \edef\@@tmpa{e}%
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{o}%
+ \else\if\@tmpa O%
+ \edef\@@tmpa{E}%
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{O}%
+ \else\if\@tmpa p%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{p}%
+ \else\if\@tmpa P%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{P}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@hanthrav
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusion@hphenanv}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@phenanv}}
+% \begin{macrocode}
+\def\set@fusion@hphenanv{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \edef\@@tmpa{b}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \edef\@@tmpa{B}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \edef\@@tmpa{a}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \edef\@@tmpa{A}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \edef\@@tmpa{f}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \edef\@@tmpa{F}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{e}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{E}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{f}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{F}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{d}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{D}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{K}%
+ \else\if\@tmpa l%
+ \edef\@@tmpa{c}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa L%
+ \edef\@@tmpa{C}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa m%
+ \edef\@@tmpa{b}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{m}%
+ \else\if\@tmpa M%
+ \edef\@@tmpa{B}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{M}%
+ \else\if\@tmpa n%
+ \edef\@@tmpa{c}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{n}%
+ \else\if\@tmpa N%
+ \edef\@@tmpa{C}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{N}%
+ \else\if\@tmpa o%
+ \edef\@@tmpa{d}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{o}%
+ \else\if\@tmpa O%
+ \edef\@@tmpa{D}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{O}%
+ \else\if\@tmpa p%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{p}%
+ \else\if\@tmpa P%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{P}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@hphananv
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ring-fusion Commands for Five-Membered Rings}
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusionadd@fivev}
+% \changes{v2.00}{1998/12/4}{New command: \cs{set@fusionadd@fivev}}
+% \begin{macrocode}
+\def\set@fusionadd@fivev{%
+ \if\@@tmpa 1\relax%
+ \putratom{-38}{88}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{-38}{150}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@fivev
+ \fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusionadd@fivev
+% \end{macrocode}
+% \end{macro}
+%
+% 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|.
+%
+% \begin{macro}{\set@fusion@fivev}
+% \changes{v2.00}{1998/12/4}{New command: \cs{set@fusion@fivev}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macrocode}
+\newif\iffusesw \fuseswfalse
+\def\set@fusion@fivev{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % right type
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{171}{303}{\@@tmpb}% % right type
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax
+ \iffusesw
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \fi
+ \else\if\@@tmpa C\relax%
+ \iffusesw
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \fi
+ \else\if\@@tmpa d\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % right type
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{0}{0}{\@@tmpb}% % right type
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the marcro \set@fusion@fivev
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusionadd@fivevi}
+% \changes{v2.00}{1998/12/4}{New command: \cs{set@fusionadd@fivevi}}
+% \begin{macrocode}
+\def\set@fusionadd@fivevi{%
+ \if\@@tmpa 1\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{-38}{213}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@fivevi
+ \fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusionadd@fivevi
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@fivevi| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@fivevi}
+% \changes{v2.00}{1998/12/4}{New command: \cs{set@fusion@fivevi}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macrocode}
+\def\set@fusion@fivevi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa d\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, k, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, K, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, j, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{0}{406}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, J, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{0}{406}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa c\relax
+ \iffusesw
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \fi
+ \else\if\@@tmpa C\relax%
+ \iffusesw
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@fivevi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusionadd@fiveh}
+% \changes{v2.00}{1998/11/29}{New command: \cs{set@fusionadd@fiveh}}
+% \begin{macrocode}
+\def\set@fusionadd@fiveh{%
+ \if\@@tmpa 1\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{196}{-30}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@fiveh
+ \fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% 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|.
+%
+% \begin{macro}{\set@fusion@fiveh}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@fiveh}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macrocode}
+\def\set@fusion@fiveh{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa E\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, J, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, j, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, K, or other}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, k, or other}%
+ \else\if\@@tmpa c\relax
+ \iffusesw
+ \putlratom{303}{171}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \fi
+ \else\if\@@tmpa C\relax%
+ \iffusesw
+ \putlratom{303}{-171}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \fi
+ \else\if\@@tmpa B\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@fiveh
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusionadd@fivehi}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusionadd@fivehi}}
+% \begin{macrocode}
+\def\set@fusionadd@fivehi{%
+ \if\@@tmpa 1\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{140}{-30}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@fivehi
+ \fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@fivehi| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@fivehi}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@fivehi}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macrocode}
+\def\set@fusion@fivehi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa d\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, k, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, K, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, j, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, J, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa c\relax
+ \iffusesw
+ \putlratom{303}{171}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \fi
+ \else\if\@@tmpa C\relax%
+ \iffusesw
+ \putlratom{303}{-171}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@sixhi
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ring-fusion Commands for Six-Five-fused Rings}
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusion@nonav}
+% \begin{macrocode}
+\def\set@fusion@nonav{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \else\if\@tmpa C\relax%
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{h}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{H}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \ForbiddenFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \ForbiddenFusion{J}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@nonav
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusion@nonavi}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusion@nonavi}}
+% \begin{macrocode}
+\def\set@fusion@nonavi{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \else\if\@tmpa C\relax%
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{h}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{H}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{J}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@nonavi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusion@nonah}
+% \changes{v2.00}{1998/12/6}{New command: \cs{set@fusion@nonah}}
+% \begin{macrocode}
+\def\set@fusion@nonah{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \else\if\@tmpa C\relax%
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{h}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{H}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \ForbiddenFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \ForbiddenFusion{J}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@nonah
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{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|.
+%
+% \begin{macro}{\set@fusion@nonahi}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusion@nonahi}}
+% \begin{macrocode}
+\def\set@fusion@nonahi{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \else\if\@tmpa C\relax%
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{h}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{H}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \ForbiddenFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \ForbiddenFusion{J}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@nonahi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Truncation for two or more atoms}
+%
+% The macros |SetTwoAtoms| and |SetTwoAtomx| are user commands for
+% truncating a vertex to accommodate two or more atoms.
+%
+% \begin{macro}{SetTwoAtoms}
+% \changes{v5.01}{2013/03/22}{New command: \cs{SetTwoAtoms}}
+% \begin{macrocode}
+\def\SetTwoAtoms#1{\setbox0=\hbox{#1}%
+{\white \rule{\wd0}{\ht0}}\kern-\wd0{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{SetTwoAtomx}
+% \changes{v5.01}{2013/04/06}{New command: \cs{SetTwoAtomx}}
+% \begin{macrocode}
+\def\SetTwoAtomx#1{{\setbox0=\hbox{#1}%
+\@tempdimd=\wd0 \advance\@tempdimd by8\unitlength%
+\@tempdime=\ht0 \advance\@tempdime by8\unitlength%
+\kern-4\unitlength{\white \rule[-4\unitlength]{\@tempdimd}{\@tempdime}}%
+\kern-\@tempdimd{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Original Setting}
+%
+% \begin{macro}{originalsetting}
+% \begin{macrocode}
+\originalpicture%initial setting
+%</chemstr>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput