%xymyl.tex 
%Copyright (C) 1998, Shinsaku Fujita, All rights reserved. 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%This file is a part of xymtx200.tex that is the manual of the macro 
%package `XyMTeX' (version 2.00) for drawing chemical structural formulas.  
%This file is not permitted to be translated into Japanese and any other
%languages. 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Introduction}

\section{History}
\subsection{Version 1.00 (1993)}

The first version of the \XyMTeX{} system (version 1.00, 1993) 
with a detailed on-line manual 
has been depositted to NIFTY-Serve archives (FPRINT library No.\ 7) 
by the author\cite{fujita2a} and to the CTAN by volunteers\cite{fujita2b}. 
The articles on the construction and usage of \XyMTeX{} have appeared in 
Ref. \cite{fujita1,fujita1a}. 
Although the packages (style files) of the \XyMTeX{} system have 
originally aimed at using under 
the \LaTeX{}2.09 system, they also work effectively 
under the \LaTeXe{} system \cite{lamport2,goossens} without any changes. Thus, 
what you have to do is to rewrite a top statement for \LaTeX{}2.09 such as 
\begin{verbatim}
\documentstyle[epic,carom,hetarom]{article}
\end{verbatim}
into the counterpart for \LaTeXe{}, {\em e.g.}, 
\begin{verbatim}
\documentclass{article}
\usepackage{epic,carom,hetarom}
\end{verbatim}

\subsection{Version 1.01 (1996)}

The Version 1.01 of the \XyMTeX{} system has been released in 1996, 
when the system with a detailed on-line manual 
was depositted to NIFTY-Serve archives (FPRINT library No.\ 7) 
by the author \cite{fujita2c}.  The system is now available  
from Fujita's homepage \cite{fujita2d} via internet 
or from a CD-ROM that is attached to the referece manual published 
in 1997 \cite{XyMTeXbook}.\footnote{%
The basic items described in the \XyMTeX book are 
common and applied also in Version 2.00.  
Please refer to the \XyMTeX book, when 
they are used without explanations in this manual.} 

The purpose of version 1.01 is 
the updating of \XyMTeX{} to meet the \LaTeXe{} way of 
preparing packages (option style files). 
The following items have 
been revised or added for encouraging the \XyMTeX{} users 
to write articles of chemical fields. 

\begin{enumerate}
\item Each of the old sty files of \XyMTeX{} has been rewritten 
into a dtx file, from which we have prepared a new sty file by using 
the {\sf docstrip} utility of \LaTeXe. 
If you want to obtain the document of each source 
file, you may apply \LaTeXe{} to the corresponding drv file, which 
has also been prepared from the dtx file by using the {\sf docstrip} 
utility. 
\item Macros for drawing chair-form cyclohexanes and 
for drawing adamantanes of an alternative type have been added. 
\item Macros for drawing polymers have been added. 
\item The package {\sf chemist.sty}, which was originally 
prepared for \cite{fujita2}, has been rewritten into a dtx file and 
added to \XyMTeX{} as a new component. This package enables us 
to use various functions such as 
 \begin{enumerate}
 \item the numbering and cross-reference 
  of chemical compounds and derivatives, 
 \item various arrows of fixed and flexible length for chemical equations, 
 \item `chem' version and chemical environments for describing 
  chemical equations, and 
 \item various box-preparing macros for chemical or general use.  
 \end{enumerate}
\end{enumerate}

\subsection{Version 1.02 (1998, not released)}

The Version 1.02 of \XyMTeX{} has been devoted to the 
development of the nested-substitution method, 
which simplifies the coding of \XyMTeX{} commands.   
In \XyMTeX{} version 1.01, each subsitituent is assumed to be rather small 
so that it can be specified by means of a substitution list ``SUBSLIST''. 
For example, 1-fluorobenzene, 
\begin{center}
\bzdrh{4==F}
\end{center}
is drawn by the following code: 
\begin{verbatim}
\bzdrh{4==F}
\end{verbatim}
To draw a substituent with a complicated structure, 
a designation of the same line produces an insufficient result. 
Thus, if we simply write the code 
\begin{verbatim}
\bzdrh{4==\bzdrh{}}
\end{verbatim}
to draw a biphenyl structure, 
we have a separate structure as follows:

\vskip1.5\baselineskip
\begin{center}
\bzdrh{4==\bzdrh{}}
\end{center}

Within the scope of \XyMTeX version 1.01, 
such a substituent with a complicated structure 
can be treated by three distinct methods  
(see Chapters 14 and 15 of \XyMTeX book). 

\begin{enumerate}
\item(Method I)
When we write a code \verb/\bzdrh{4==}\bzdrh{}/ 
to draw a biphenyl structure, 
we obtain an insufficient result such as 
\begin{center}
\bzdrh{4==}\bzdrh{}
\end{center}
since each command has an area to draw its target sturucture. 
To remedy this situation, we can write 
\begin{verbatim}
\bzdrh{4==}\kern-33pt\bzdrh{}
\end{verbatim}
Then, we obtain the following structure:
\begin{center}
\bzdrh{4==}\kern-33pt\bzdrh{}
\end{center}
However, a more complicated adjustment is 
necessary to apply this method to a case in which 
the components of a structual formula are not linearly aligned. 
\item (Method II)
We can carry out the same task by using 
the \LaTeX{} picture einvironment. 
The code
\begin{verbatim}
\begin{picture}(1400,700)(0,0)
\put(0,0){\bzdrh{4==}}
\put(546,0){\bzdrh{}}
\end{picture}
\end{verbatim}
produces the following structure: 
\begin{center}
\begin{picture}(1400,700)(0,0)
\put(0,0){\bzdrh{4==}}
\put(546,0){\bzdrh{}}
\end{picture}
\end{center}
This method realizes such a complicated adustment as mentioned above, 
since the \verb/\put/ is capable of putting components at arbitrary positions. 
\item (Method III) 
In a further method of drawing the biphenyl structure, 
one phenyl group is regarded as a substituent of the other phenyl.
These two parts can be combined by writing a code, 
\begin{verbatim}
\bzdrh{4==\kern-25pt\lower37pt\hbox to0pt{\bzdrh{}}}
\end{verbatim}
in which the commands \verb/\kern/ (for horizontal adjustment) and 
\verb/\lower/ (for vertical adjustment) are used to adjust the 
substitution site. Thereby, we have
\begin{center}
\bzdrh{4==\kern-25pt\lower37pt\hbox to0pt{\bzdrh{}}}
\end{center}
This method has a disadvantage of calculating 
adjustment values manually for every formula to be drawn.  
\end{enumerate}

These three methods are useful for drawing complicated structure. 
However, they have an essential disadvantage: their codes give 
no, or at most partial, connectivity data between parts to be combined, though 
such parts appear to be combined as a picture. 
For example, the code 
\begin{verbatim}
\bzdrh{4==\kern-25pt\lower37pt\hbox to0pt{\bzdrh{3==Cl}}}
\end{verbatim}
producing 
\begin{center}
\bzdrh{4==\kern-25pt\lower37pt\hbox to0pt{\bzdrh{3==Cl}}}
\end{center}
has no connectivity data at the meta position to the chlorine 
atom of the scecond benzene ring. 

As clarified by the discussion in the preceding paragraphs, 
the \XyMTeX{} system should have a function to place 
substituents at appropriate sites without complex designation, 
where connectivity data are maintained during the process 
of drawing. 
The target of \XyMTeX{} Version 1.02 is to treat nested 
substitution with the automatic adjustment of subsitution sites
(named as the nested-substitution method). 
Concretely speaking, for example, 
such a code as 
\begin{verbatim}
\bzdrh{1==F;4==\bzdrh{1==(yl);3==Cl}}
\end{verbatim}
directly produces 
\begin{center}
\bzdrh{1==F;4==\bzdrh{1==(yl);3==Cl}}
\end{center}
where the code shows that the second benzene ring is 
linked to the para position of the first benzene ring 
at the meta position to the chlorine atom. 
Thus the target accomplished by the ``yl''-function, 
as shown in this code. 

\section{Version 2.00 (1998)}

The ``yl''-function developed in \XyMTeX{} Version 1.02 
is regarded as a modification  of SUSBLISTs. 
As an extention of this mothodology, 
BONDLISTs can be modified to treat ring fusion, 
since each ring fusion is considered to be a kind of 
substitution on a bond.  In addition, 
ATOMLIST can also be used to 
treat spiro rings, since each spiro ring 
is a kind of atom replacement at an appropriate vertex. 

To expand the scope of the \XyMTeX{} system, 
we introduce several new functions as follows.  
\begin{enumerate}
\item Several bond modifiers are added to draw  
alternative up- and down-bonds as well as 
to treat ring fusion. 
\item The ``yl''-function for SUBSLISTs is further improved. 
The commands \verb/\ryl/ and \verb/\lyl/ are 
prepared to typeset intervening moieties. 
\item Ring fusion is treated by adding a fusing unit to 
the BONDLIST of each command. 
\item Several fusing units (three- to six-membered units) 
are developed (fusering.sty). 
\item A new function for typesetting a spiro ring is 
introduced in each command for general use. 
A spiro ring is treated by ring-replacement technique, 
where the corresponding code is 
written in the ATOMLIST of each command. 
\item Commands for typeseting zigzag polymethylenes are 
developed (methylen.sty). 
\item Commands for drawing six-six fused carbocycles 
and heterocycles are added. 
\item An optional argument SKBONDLIST is added to 
each command of general use for drawing  
boldfaced and dotted skeletal bonds. 
\item An optional argument OMIT is added to 
each command of general use for drawing related 
skeletons by bond deletion. 
\end{enumerate}

The \XyMTeX{} system (version 2.00) consists of package files 
listed in Table \ref{tt:200a1}.  
The package file `\textsf{chemstr.sty}' is the basic file 
that is automatically read within any other package file of \XyMTeX{}. 
It contains macros for internal use, {\em e.g.}, 
common commands for bond-setting and atom-setting. 
The other package files contain macros for users. 
These files are designed to work not only as packages for \LaTeXe 
but also as option style files for \LaTeX{}2.09 (native mode). 
\begin{table}[hpbt]
\caption{Package Files of \protect\XyMTeX{}}
\label{tt:200a1}
\begin{center}
\begin{tabular}{lp{10cm}}
\hline
package name & \multicolumn{1}{c}{included functions} \\ 
\hline
\textsf{aliphat.sty}
  & macros for drawing aliphatic compounds \\
\textsf{carom.sty}
  & macros for drawing vertical and horizontal types 
    of carbocyclic compounds \\
\textsf{lowcycle.sty}
  & macros for drawing five-or-less-membered carbocyles. \\
\textsf{ccycle.sty}
  & macros for drawing bicyclic compounds etc. \\
\textsf{hetarom.sty}
  & macros for drawing vertical types of heterocyclic compounds \\
\textsf{hetaromh.sty}
  & macros for drawing horizontal types of heterocyclic compounds \\
\textsf{hcycle.sty}
  & macros for drawing pyranose and furanose derivatives \\
\textsf{chemstr.sty}
  & basic commands for atom- and bond-typesetting \\
\textsf{locant.sty}
  & commands for printing locant numeres \\
\textsf{polymers.sty}
  & commands for drawing polymers \\
\textsf{fusering.sty}
  & commands for drawing units for ring fusion \\ 
\textsf{methylen.sty}
  & commands for drawing zigzag polymethylene chains \\ 
\textsf{xymtex.sty}
  & a package for calling all package files \\
\textsf{chemist.sty}
  & commands for using `chem' version and chemical environments \\ 
\hline
\end{tabular}
\end{center}
\end{table}

The use of \textsf{xymtex.sty} calling all package files 
may sometimes cause the ``\TeX{} capacity exceeded'' error.  
In this case, you should call necessary packages distinctly 
by using the \verb/\usepackage/ command.  

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Bond Modifiers Added}

\section{Alternative Bond Modifiers for Up and Down Bonds}

In addition to the original bond modifiers (see the \XyMTeX book), 
the present version of \XyMTeX{} 
provides us with several bond modifiers that can be used  
in the argument SUBSLIST of each \XyMTeX{} command.  
These modifiers are listed in Table \ref{tt:200a} 
along with the original bond modifiers. 

\begin{table}
\caption{Locant numbering and bond modifiers for SUBSLIST}
\label{tt:200a}
\begin{center}
\begin{tabular}{lp{12cm}}
\hline
Bond Modifiers & \multicolumn{1}{c}{Printed structures} \\
\hline
\multicolumn{2}{l}{\bfseries Original Bond Modifiers} \\
           $n$ or $n$S  &  exocyclic single bond at $n$-atom \\
           $n$D         &  exocyclic double bond at $n$-atom \\
           $n$A         &  alpha single bond at $n$-atom \\
           $n$B         &  beta single bond at $n$-atom \\
           $n$Sa        &  alpha (not specified) single bond at $n$-atom \\
           $n$Sb        &  beta (not specified) single bond at $n$-atom \\
           $n$SA        &  alpha single bond at $n$-atom (dotted line) \\
           $n$SB        &  beta single bond at $n$-atom (boldface) \\
\hline 
\multicolumn{2}{l}{\bfseries Bond Modifiers Added} \\
           $n$Sd        &  alpha single bond at $n$-atom (dotted line) 
                           with an alternative direction to $n$SA \\
           $n$Su        &  beta single bond at $n$-atom (boldface) 
                           with an alternative direction to $n$SB \\
           $n$FA        &  alpha single bond at $n$-atom (dotted line) 
                           for ring fusion \\
           $n$FB        &  beta single bond at $n$-atom (boldface) 
                           for ring fusion \\
           $n$GA        &  alpha single bond at $n$-atom (dotted line) 
                           for the other ring fusion \\
           $n$GB        &  beta single bond at $n$-atom (boldface) 
                           for the other ring fusion \\
\hline
\end{tabular}
\end{center}
\end{table}

The added bond modifiers, `Sd' (d for down) and `Su' (u for up), designate 
$\alpha$- and $\beta$-bonds in such an exchanged 
manner as the original bond modifiers, `SA' and `SB' designate. 
Figure \ref{ff:200a} shows the comparison between 
the added bond modifiers and the original ones 
by using a cyclohexane skeleton (\verb/\cyclohexanev/). 

\begin{figure}[h]
\begin{center}
\cyclohexanev{1Sd==1Sd;1Su==1Su;%
2Sd==2Sd;2Su==2Su;3Sd==3Sd;3Su==3Su;%
4Sd==4Sd;4Su==4Su;5Sd==5Sd;5Su==5Su;%
6Sd==6Sd;6Su==6Su} \qquad\qquad
\cyclohexanev{1SA==1SA;1SB==1SB;%
2SA==2SA;2SB==2SB;3SA==3SA;3SB==3SB;%
4SA==4SA;4SB==4SB;5SA==5SA;5SB==5SB;%
6SA==6SA;6SB==6SB}
\caption{Bond Modifiers for $\alpha$- and $\beta$-Bonds}
\label{ff:200a}
\end{center}
\end{figure}

\section{Bond Modifiers for Ring Fusion}

In the present verstion (2.00), we have added a new function for ring fusion. 
Since the function requires bond modifiers 
for desiginating substitution at such fused positions, 
we have added the modifiers, `FA', `FB', `GA', and  `GB'. 
These modifiers are illustrated in Figure \ref{ff:200b}


\begin{figure}
\begin{center}
\cyclohexanev{1FA==1FA;1GB==1GB;3FA==3FA;3GB==3GB;5FA==5FA;5GB==5GB}
\qquad\qquad
\cyclohexanev{1FB==1FB;1GA==1GA;3FB==3FB;3GA==3GS;5FB==5FB;5GA==5GA}


\cyclohexanev{2FA==2FA;2GB==2GB;4FA==4FA;4GB==4GB;6FA==6FA;6GB==6GB}
\qquad\qquad
\cyclohexanev{2FB==2FB;2GA==2GA;4FB==4FB;4GA==4GA;6FB==6FB;6GA==6GA}
\caption{Bond Modifiers for Ring Fusion}
\label{ff:200b}
\end{center}
\end{figure}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Nested-Substituent Method}

\section{Introduction}

Chapter 14 (Combining Structures) 
and Chapter 15 (Large Substituents) of the \XyMTeX book 
have described several techniques to draw complicated formulas. 
Among them, the nested-substituent method is most promising. 
For example, the code 
\begin{verbatim}
\bzdrh{1==Cl;4==\kern-25pt\lower37pt\hbox to0pt{\bzdrh{3==F}}}
\end{verbatim}
gives a combined structure, 
\begin{center}
\bzdrh{1==Cl;4==\kern-25pt\lower37pt\hbox to0pt{\bzdrh{3==F}}}
\end{center}
Although the code shows the connectivity between the two phenyl 
groups, the following disadvantages remain: 
\begin{enumerate}
\item The code contains no data indicating that the connection site 
is the meta-position concerning the fluorine atom. 
\item The commands \verb/\kern/ (for horizontal adjustment) and 
\verb/\lower/ (for vertical adjustment) are necessary to adjust the 
subsitutution site. 
\end{enumerate} 

As clarified by the above examples, the main target of \XyMTeX{} 
Version 2.00 is to extend the nested-substituent method 
so that it provides a function of indicating full connectivity data 
as well as a function of 
automatical adjustment without using such commands 
as \verb/\kern/ and \verb/\lower/. 

\section{``yl''-Functions}

In \XyMTeX{} Version 2.00, the ``yl''-function is 
added so as to improve the nested-subsituent method. 
Thereby, any structure drawn by a \XyMTeX{} 
command (except a few special commands) 
can be converted into the corresponding substituent 
by adding the code \verb/(yl)/ with a locant number. 
The resulting code for the substituent can be added 
to the SUBSLIST of any other command for 
drawing a mother skeleton, where the final code 
contains the full connectivity data of the combined structure. 
For example, the code 
\begin{verbatim}
\bzdrh{1==Cl;4==\bzdrh{1==(yl);3==F}}
\end{verbatim}
typesets the following structure, 
\begin{center}
\bzdrh{1==Cl;4==\bzdrh{1==(yl);3==F}}
\end{center}
Thus, fluorobenzene produced by the command \verb/\bzdrh{3==F}/ 
is converted into a subsituent, i.e. 3-fluorophenyl, 
by adding the code \verb/(yl)/, as shown in the 
code,  \verb/\bzdrh{1==(yl);3==F}/.  Then, the resulting code 
is added to the SUBSLIST of another command \verb/\bzdrh/. 

The connectivity at the meta-position is 
represented by the statement \verb/1==(yl)/ of 
the innner code \verb/\bzdrh{1==(yl);3==F}/. 
Note that the inner code \verb/\bzdrh{1==(yl);3==F}/ produces 
a substituent with no height and no width and that 
the reference point of the substituent is shifted to 
the point no.~1 by the (yl)-statement in order to 
link to the mother structure (the phenyl group 
produced by the code \verb/\bzdrh{1==Cl;4=={...}}/). 

The shift of a reference point becomes clear when 
we examine a formula,
\begin{center}
\vspace*{2cm}
\bzdrh{1==Cl;3==\bzdrh{6==(yl);3==F}}
\end{center}
generated by the code, 
\begin{verbatim}
\bzdrh{1==Cl;3==\bzdrh{6==(yl);3==F}}
\end{verbatim}
The original structure of the substituent with no ``yl'' function 
is found to be 
\begin{center}
\begin{picture}(700,800)(0,0)
\put(0,0){\bzdrh{3==F}}
\put(0,0){\circle*{50}}
\end{picture}
\end{center}
as generated by the code 
\begin{verbatim}
\begin{picture}(700,800)(0,0)
\put(0,0){\bzdrh{3==F}}
\put(0,0){\circle*{50}}
\end{picture}
\end{verbatim}
where the solid circle is the reference point. 
The picture shown above 
indicates that the reference point 
is different from any vertices of the benzene ring. 
On the other hand, the code with a ``yl''-function, 
\begin{verbatim}
\begin{picture}(700,800)(0,-200)
\put(0,0){\bzdrh{6==(yl);3==F}}
\put(0,0){\circle*{50}}
\end{picture}
\end{verbatim}
typesets the following structure, 
\begin{center}
\begin{picture}(700,800)(0,-200)
\put(0,0){\bzdrh{6==(yl);3==F}}
\put(0,0){\circle*{50}}
\end{picture}
\end{center} 
The picture shown above 
indicates that the reference point is shifted to the position 
no.~6 of the benzene ring. 

The code \verb/\bzdrh{1==(yl);3==F}/ producing the substituent 
can be used in the argument of any structure-drawing command 
of \XyMTeX{}. The following example is the one 
in which it is placed in the argument of a command \verb/\bzdrv/. 
Thus, the code 
\begin{verbatim}
\bzdrv{1==Cl;3==\bzdrh{1==(yl);3==F}}
\end{verbatim}
typesets the following structure, 
\begin{center}
\bzdrv{1==Cl;3==\bzdrh{1==(yl);3==F}}
\end{center}

The structural formula of 1-chloro-4-morphorinobenzene 
can be drawn in two different ways. The codes, 
\begin{verbatim}
\bzdrh{1==Cl;4==\sixheteroh[]{1==N;4==O}{1==(yl)}}
\hskip 6cm
\sixheteroh[]{1==N;4==O}{1==\bzdrh{1==Cl;4==(yl)}}
\end{verbatim}
produce the following formulas: 
\begin{center}
\bzdrh{1==Cl;4==\sixheteroh[]{1==N;4==O}{1==(yl)}}
\hskip 6cm
\sixheteroh[]{1==N;4==O}{1==\bzdrh{1==Cl;4==(yl)}}
\end{center}
In the former code, 
the morphorino group is regareded as a substituent, 
as the name ``1-chloro-4-morphori\-nobenzene'' indicates. 
On the other hand,  the chlorophenyl group 
is considered to be a substituent in the latter code 
so as to correspond to the name ``N-(4-chlorophenyl)morphorine''. 

The ``yl''-function is quite versatile, as indicated by the code,  
\begin{verbatim}
\decaheterov[]{4a==N}{4D==O;7B==HO;{{10}A}==H;%
5==\bzdrv{3==OMe;4==OMe;6==Br;1==(yl)}}
\end{verbatim}
producing the following structure: 
\begin{center}
\decaheterov[]{4a==N}{4D==O;7B==HO;{{10}A}==H;%
5==\bzdrv{3==OMe;4==OMe;6==Br;1==(yl)}}
\end{center}
\par\vskip2cm
\noindent
where the substituted phenyl group is regarded as a substituent. 
An opposite view can be realized by the code 
\begin{verbatim}
\bzdrv{3==OMe;4==OMe;6==Br;%
1==\decaheterov[]{4a==N}{4D==O;7B==HO;{{10}A}==H;5==(yl)}}
\end{verbatim}
which typesets the same structure: 
\vskip2cm
\begin{center}
\bzdrv{3==OMe;4==OMe;6==Br;%
1==\decaheterov[]{4a==N}{4D==O;7B==HO;{{10}A}==H;5==(yl)}}
\end{center}
where the moiety drawn by the command \verb/\decaheterov/ is 
regarded as a substituent. 

Two or more substituents generated by the ``yl''-function 
can be introduced into an ATOMLIST. For example, 
\begin{verbatim}
\bzdrh{1==\bzdrh{4==(yl)};4==\bzdrh{1==(yl);3==F}}
\end{verbatim}
typesets the following structure, 
\begin{center}
\bzdrh{1==\bzdrh{4==(yl)};4==\bzdrh{1==(yl);3==F}}
\end{center}

The structural formula of hexaphenylbenzene can be 
drawn by this technique.  Thus the code, 
\begin{verbatim}
\bzdrv{1==\bzdrv{4==(yl)};%
2==\bzdrv{5==(yl)};3==\bzdrv{6==(yl)};%
4==\bzdrv{1==(yl)};5==\bzdrv{2==(yl)};%
6==\bzdrv{3==(yl)}}
\end{verbatim}
generates the following formula: 
\begin{center}
\vspace*{1cm}
\bzdrv{1==\bzdrv{4==(yl)};%
2==\bzdrv{5==(yl)};3==\bzdrv{6==(yl)};%
4==\bzdrv{1==(yl)};5==\bzdrv{2==(yl)};%
6==\bzdrv{3==(yl)}}

\vspace*{1cm}
\end{center}

\section{Nested ``yl''-functions}

Two or more ``yl''-functions can be nested. 
For example, a structure 
\begin{center}
\tetrahedral{0==C;1D==O;4==\bzdrh{1==(yl)}}
\end{center}
depicted by the code,
\begin{verbatim} 
\tetrahedral{0==C;1D==O;4==\bzdrh{1==(yl)}}
\end{verbatim}
can be converted into a substituent by adding 
``yl''-function, as shown in the following code: 
\begin{verbatim} 
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}
\end{verbatim}
Then this substituent is nested in the SUBSLIST of 
the command \verb/\cyclohexaneh/ to give a code, 
\begin{verbatim}
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}
\end{verbatim}
Thereby we have the structural formula of 
benzoylcyclohexane: 
\begin{center}
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}
\end{center}

The resulting structure can be further converted into 
a substituent by adding ``yl''-function. The 
following example shows that the substituent is 
linked to the 4-position of a naphthol ring:
\begin{center}
\naphdrh{1==HO;4==%
\cyclohexaneh[]{1==(yl);4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}}
\end{center}
which is typeset by the triply nested code: 
\begin{verbatim}
\naphdrh{1==HO;4==%
\cyclohexaneh[]{1==(yl);4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}}
\end{verbatim}
The same structural formula can be drawn by regarding 
the 1-naphthol-4-yl group and the benzoyl group as 
substituents, as shown in the following code: 
\begin{verbatim}
\cyclohexaneh[]{%
1==\naphdrh{1==HO;4==(yl)};%
4==\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}
\end{verbatim}
Accordingly, we have 
\begin{center}
\cyclohexaneh[]{%
1==\naphdrh{1==HO;4==(yl)};%
4==\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}
\end{center}

\bigskip
The structure of benzoylcyclohexane can also be drawn by considering 
the \verb/\tetrahedral/ moiety as a mother skeleton, 
as shown in the code:  
\begin{verbatim}
\tetrahedral{0==C;1D==O;4==\bzdrh{1==(yl)};2==\cyclohexaneh[]{4==(yl)}}
\end{verbatim}
Thereby, we have the formula, 
\begin{center}
\tetrahedral{0==C;1D==O;4==\bzdrh{1==(yl)};2==\cyclohexaneh[]{4==(yl)}}
\end{center}
which shows that 
two or more substituents produced by the ``yl''-function 
can be written in a SUBSLIST. 
This treatment corresponds to the alternative name of 
benzoylcyclohexane, i.e., cyclohexyl phenyl ketone, 
since the codes \verb/\cyclohexaneh{4==(yl)}/ and 
\verb/\bzdrh{1==(yl)}/ represent 
a cyclohexyl and a phenyl group, respectively. 

Although 
the resulting structure cannot be used as a substituent concerning 
the cyclohexane ring, the SUBSLIST of the command \verb/\cyclohexaneh/ 
is capable of accomodating the substituent \verb/\naphdrh{1==HO;4==(yl)}/ 
to give 
\begin{verbatim}
\tetrahedral{0==C;1D==O;4==\bzdrh{1==(yl)};%
2==\cyclohexaneh[]{4==(yl);1==\naphdrh{1==HO;4==(yl)}}}
\end{verbatim}
which typesets the same structural formula: 
\begin{center}
\tetrahedral{0==C;1D==O;4==\bzdrh{1==(yl)};%
2==\cyclohexaneh[]{4==(yl);1==\naphdrh{1==HO;4==(yl)}}}

\vspace*{1cm}
\end{center}


The formula, 
\begin{center}
\vspace*{2cm}
\bzdrv{%
1==\bzdrv{4==(yl);2==\bzdrv{5==(yl)}};%
2==\bzdrv{5==(yl);3==\bzdrv{6==(yl)}};%
3==\bzdrv{6==(yl);4==\bzdrv{1==(yl)}};%
4==\bzdrv{1==(yl);5==\bzdrv{2==(yl)}};%
5==\bzdrv{2==(yl);6==\bzdrv{3==(yl)}};%
6==\bzdrv{3==(yl);1==\bzdrv{4==(yl)}}}

\vspace*{2cm}
\end{center}
illustrates the more complicated structure of a code 
with nested ``yl''-functions: 
\begin{verbatim}
\bzdrv{%
1==\bzdrv{4==(yl);2==\bzdrv{5==(yl)}};%
2==\bzdrv{5==(yl);3==\bzdrv{6==(yl)}};%
3==\bzdrv{6==(yl);4==\bzdrv{1==(yl)}};%
4==\bzdrv{1==(yl);5==\bzdrv{2==(yl)}};%
5==\bzdrv{2==(yl);6==\bzdrv{3==(yl)}};%
6==\bzdrv{3==(yl);1==\bzdrv{4==(yl)}}}
\end{verbatim}

To simplify the coding, we define a macro 
drawing a biphenyl unit as follows: 
\begin{verbatim}
\def\biph#1#2#3{\bzdrv{#1==(yl);#2==\bzdrv{#3==(yl)}}}
\end{verbatim}
Then, this macro is used in the SUBSLIST of \verb/\bzdrv/ 
to give the code, 
\begin{verbatim}
\bzdrv{%
1==\biph{4}{2}{5};%
2==\biph{5}{3}{6};%
3==\biph{6}{4}{1};%
4==\biph{1}{5}{2};%
5==\biph{2}{6}{3};%
6==\biph{3}{1}{4}}
\end{verbatim}
Thereby, we have
\begin{center}
\vspace*{2cm}
\def\biph#1#2#3{\bzdrv{#1==(yl);#2==\bzdrv{#3==(yl)}}}
\bzdrv{%
1==\biph{4}{2}{5};%
2==\biph{5}{3}{6};%
3==\biph{6}{4}{1};%
4==\biph{1}{5}{2};%
5==\biph{2}{6}{3};%
6==\biph{3}{1}{4}}

\vspace*{2cm}
\end{center}

A more complex nested code, 

\begin{verbatim}
\vspace*{8cm}
\bzdrv{%
1==\bzdrv{4==(yl);2==\bzdrv{5==(yl);3==\bzdrv{6==(yl);%
3==\bzdrv{6==(yl);4==\bzdrv{1==(yl);4==\bzdrv{1==(yl);%
4==\bzdrv{1==(yl);5==\bzdrv{2==(yl);5==\bzdrv{2==(yl);%
5==\bzdrv{2==(yl)}}}}}}}}}};%
2==\bzdrv{5==(yl);3==\bzdrv{6==(yl);4==\bzdrv{1==(yl);%
4==\bzdrv{1==(yl);5==\bzdrv{2==(yl);5==\bzdrv{2==(yl);%
5==\bzdrv{2==(yl);6==\bzdrv{3==(yl);6==\bzdrv{3==(yl);%
6==\bzdrv{3==(yl)}}}}}}}}}};%
3==\bzdrv{6==(yl);4==\bzdrv{1==(yl);5==\bzdrv{2==(yl);%
5==\bzdrv{2==(yl);6==\bzdrv{3==(yl);6==\bzdrv{3==(yl);%
6==\bzdrv{3==(yl);1==\bzdrv{4==(yl);1==\bzdrv{4==(yl);%
1==\bzdrv{4==(yl)}}}}}}}}}};%
4==\bzdrv{1==(yl);5==\bzdrv{2==(yl);6==\bzdrv{3==(yl);%
6==\bzdrv{3==(yl);1==\bzdrv{4==(yl);1==\bzdrv{4==(yl);%
1==\bzdrv{4==(yl);2==\bzdrv{5==(yl);2==\bzdrv{5==(yl);%
2==\bzdrv{5==(yl)}}}}}}}}}};%
5==\bzdrv{2==(yl);6==\bzdrv{3==(yl);1==\bzdrv{4==(yl);%
1==\bzdrv{4==(yl);2==\bzdrv{5==(yl);2==\bzdrv{5==(yl);%
2==\bzdrv{5==(yl);3==\bzdrv{6==(yl);3==\bzdrv{6==(yl);%
3==\bzdrv{6==(yl)}}}}}}}}}};%
6==\bzdrv{3==(yl);1==\bzdrv{4==(yl);2==\bzdrv{5==(yl);%
2==\bzdrv{5==(yl);3==\bzdrv{6==(yl);3==\bzdrv{6==(yl);%
3==\bzdrv{6==(yl);4==\bzdrv{1==(yl);4==\bzdrv{1==(yl);%
4==\bzdrv{1==(yl)}}}}}}}}}}}
\end{verbatim}
produces the following formula:

\clearpage%to avoid ! TeX capacity exceeded

\begin{center}
\vspace*{8cm}
\bzdrv{%
1==\bzdrv{4==(yl);2==\bzdrv{5==(yl);3==\bzdrv{6==(yl);%
3==\bzdrv{6==(yl);4==\bzdrv{1==(yl);4==\bzdrv{1==(yl);%
4==\bzdrv{1==(yl);5==\bzdrv{2==(yl);5==\bzdrv{2==(yl);%
5==\bzdrv{2==(yl)}%
}}}%
}}}%
}}};%
2==\bzdrv{5==(yl);3==\bzdrv{6==(yl);4==\bzdrv{1==(yl);%
4==\bzdrv{1==(yl);5==\bzdrv{2==(yl);5==\bzdrv{2==(yl);%
5==\bzdrv{2==(yl);6==\bzdrv{3==(yl);6==\bzdrv{3==(yl);%
6==\bzdrv{3==(yl)}%
}}}%
}}}%
}}};%
3==\bzdrv{6==(yl);4==\bzdrv{1==(yl);5==\bzdrv{2==(yl);%
5==\bzdrv{2==(yl);6==\bzdrv{3==(yl);6==\bzdrv{3==(yl);%
6==\bzdrv{3==(yl);1==\bzdrv{4==(yl);1==\bzdrv{4==(yl);%
1==\bzdrv{4==(yl)}%
}}}%
}}}%
}}};%
4==\bzdrv{1==(yl);5==\bzdrv{2==(yl);6==\bzdrv{3==(yl);%
6==\bzdrv{3==(yl);1==\bzdrv{4==(yl);1==\bzdrv{4==(yl);%
1==\bzdrv{4==(yl);2==\bzdrv{5==(yl);2==\bzdrv{5==(yl);%
2==\bzdrv{5==(yl)}%
}}}%
}}}%
}}};%
5==\bzdrv{2==(yl);6==\bzdrv{3==(yl);1==\bzdrv{4==(yl);%
1==\bzdrv{4==(yl);2==\bzdrv{5==(yl);2==\bzdrv{5==(yl);%
2==\bzdrv{5==(yl);3==\bzdrv{6==(yl);3==\bzdrv{6==(yl);%
3==\bzdrv{6==(yl)}%
}}}%
}}}%
}}};%
6==\bzdrv{3==(yl);1==\bzdrv{4==(yl);2==\bzdrv{5==(yl);%
2==\bzdrv{5==(yl);3==\bzdrv{6==(yl);3==\bzdrv{6==(yl);%
3==\bzdrv{6==(yl);4==\bzdrv{1==(yl);4==\bzdrv{1==(yl);%
4==\bzdrv{1==(yl)}%
}}}%
}}}%
}}}}
\end{center}

\clearpage

The code to draw this structural formula is 
too complicated to cause the ``\TeX{} capacity exceeded'' error.  
To avoid the error, we use \verb/\clearpage/ commands before 
and after the output of the formula.  
In addition, we call only necessary packages 
to treat this cocument without the use of \textsf{xymtex.sty} 
calling all package files. 

\section{Remarks}
\subsection{Drawing Domains}
Substituents produced by the ``yl''-function have no dimensions. 
For example, benzoylcyclohexane 
\begin{center}
\fbox{%
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}%
}
\end{center}
produced by the code 
\begin{verbatim}
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}
\end{verbatim}
has a drawing domain around the cyclohexane mother skeleton, 
as encircled by a frame.  Since the bezoyl moiety occupies no area, 
it may be superimposed on other contexts 
so as to require some space adjustments. 
For example, the above code duplicated without 
any space adjustment, 
\begin{verbatim}
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}%
\end{verbatim}
gives an insufficient result: 
\begin{center}
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}%
\end{center}
This superposition can be avoided by a horizontal spacing.  Thus 
the code
\begin{verbatim}
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}
\hskip2cm
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}%
\end{verbatim}
typesets improved formulas: 
\begin{center}
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}
\hskip2cm
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}%
\end{center}

If a more thorough adjustment is required, 
a formula should be placed in a \LaTeX{} picture environment
as follows. 
\begin{verbatim}
\begin{picture}(1600,900)(0,0)
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}
\end{picture}
\end{verbatim}
This code produces 
\begin{center}
\fbox{%
\begin{picture}(1600,900)(0,0)
\cyclohexaneh[]{4==%
\tetrahedral{2==(yl);0==C;1D==O;4==\bzdrh{1==(yl)}}}
\end{picture}
}
\end{center}
where a frame is added by means of a \verb/\fbox/ command. 

A drawing domain around a formula depends upon a mother skeleton 
selected. For example, the formula of benzoylcyclohexane at the top 
of this section has a drawing domain shown by the frame, since 
a \verb/\cyclohexaneh/ is selected as a mother skeleton. 
On the other hand, the alternative formula 
of benzoylcyclohexane depicted by the code, 
\begin{verbatim}
\tetrahedral{0==C;1D==O;4==\bzdrh{1==(yl)};2==\cyclohexaneh[]{4==(yl)}}
\end{verbatim}
has a drawing domain due to the \verb/\tetrahedral/ skeleton. 
Thus, the code gives the following output: 
\begin{center}
\fbox{%
\tetrahedral{0==C;1D==O;4==\bzdrh{1==(yl)};2==\cyclohexaneh[]{4==(yl)}}
}
\end{center}
where the frame indicates such a drawing domain, 
when an \verb/\fbox/ command is used around 
the \verb/\tetrahedral/ command. 
The domain shown by the frame (due to \verb/\fbox/) is equal to 
any domain based on the simple use of the \verb/\tetrahedral/ command 
(without using the ``yl''-function). 
For example, compare the above frame with the one 
appearing in the formula, 
\begin{center}
\fbox{\tetrahedral{0==C;1D==O;4==Cl;2==Cl}}
\end{center}
depicted by the code, 
\begin{verbatim}
\fbox{\tetrahedral{0==C;1D==O;4==Cl;2==Cl}}
\end{verbatim}

\subsection{Reference Points}

Each \XyMTeX{} command for drawing a mother skeleton 
has its reference point and its inner reference point. 
These points can be printed out by switching 
\verb/\origpt/ on.  For example, the code
\begin{verbatim}
{
\origpttrue
\cyclohexanev{}
}
\end{verbatim}
generates the diagram: 
\begin{center}
{
\origpttrue
\cyclohexanev{}
}
\end{center}
where the solid circle indicates the reference point (0,0) and 
the open circle indicates the inner reference point (400,240). 
The values of cooridates are output on a display and in a log file: 
\begin{verbatim}
command `sixheterov' origin: (0,0) ---> (400,240)
\end{verbatim}
since \verb/\cyclohexanev/ is based on \verb/\sixheterov/. 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Linking Units}

The commands \verb/\ryl/ and \verb/\lyl/ described 
in this chapter are added to 
the {\sf chemstr} package (file name: chemstr.sty). 
The \verb/\divalenth/ command is added to 
the {\sf aliphat} package (file name: aliphat.sty). 

\section{$\backslash$ryl command}. 

The ``yl''-function provides us with 
a tool to generate a substituent that 
is linked {\itshape directly} to a substitution site 
of a mother skeleton.  There are, however, 
many cases in which a substituent 
is linked to a substitution site by an intervening unit 
(e.g., O, SO$_{2}$ and NH).  
The command \verb/\ryl/ is used to 
generate a right-hand substituent with a linking unit. 
For example, the code 
\begin{verbatim}
\ryl(5==NH--SO$_{2}$){4==\bzdrh{1==(yl)}}
\end{verbatim}
produces a benzenesulfonamido substituent, 
\bigskip
\begin{center}
\ryl(5==NH--SO$_{2}$){4==\bzdrh{1==(yl)}}

\vspace*{1cm}
\end{center}
The resulting unit is added to the SUBSLIST of 
a command for drawing a skeletal command. 
For example, the code 
\begin{verbatim}
\bzdrh{3==\ryl(5==NH--SO$_{2}$){4==\bzdrh{1==(yl)}}}
\end{verbatim}
generates the following formula: 
\begin{center}
\vspace*{1cm}
\bzdrh{3==\ryl(5==NH--SO$_{2}$){4==\bzdrh{1==(yl)}}}
\end{center}

The \verb/\ryl/ command takes two arguments. 
\begin{verbatim}
\ryl(LINK){GROUP}
\end{verbatim}
The first argument LINK in the parentheses indicates 
an intervening unit with an integer showing 
the slope of a left incidental bond. 
For example, the number 5 of the code \verb/5==NH--SO$_{2}$/ 
shown above represents that the left terminal is to be linked 
through $(-5,-3)$ bond, though the linking bond 
is not typeset by the \verb/\ryl/ command only. 
The slopes of the linking bonds are designated by 
integers between 0 and 8: 
\begin{center}
\begin{tabular}{cc|cc|cc}
0 & $(0,1)$    & 1 & $(-3,5)$  & 2 & $(-1,1)$  \\
3 & $(-5,3)$   & 4 & $(-1,0)$  & 5 & $(-5,-3)$ \\
6 & $(-1,-1)$  & 7 & $(-3,-5)$ & 8 & $(0,-1)$ \\
\end{tabular}
\end{center}

The second argument GROUP of \verb/\ryl/ is 
a substituent produced by a ``yl''-function, 
where a number before a delimiter (==) indicates 
the slope of a right incidental bond. 
For example, the number 4 of the code 
\verb/4==\bzdrh{1==(yl)}/ shown above 
represents that the right terminal is to be linked 
through $(1,0)$ bond to the benzene ring generated by  
the \verb/\bzdrh/ command. 
The slopes of the linking bonds are designated by 
integers between 0 and 8: 
\begin{center}
\begin{tabular}{cc|cc|cc}
0 & $(0,1)$    & 1 & $(3,5)$  & 2 & $(1,1)$  \\
3 & $(5,3)$   & 4 & $(1,0)$  & 5 & $(5,-3)$ \\
6 & $(1,-1)$  & 7 & $(3,-5)$ & 8 & $(0,-1)$ \\
\end{tabular}
\end{center}

To illustrate linking bonds with various slopes, 
the code 
\begin{verbatim}
\cyclohexanev[]{%
1==\ryl(8==NH--SO$_{2}$){1==\bzdrh{6==(yl)}};
2==\ryl(5==NH--SO$_{2}$){4==\bzdrh{1==(yl)}};
3==\ryl(3==NH--SO$_{2}$){4==\bzdrh{1==(yl)}};%
4==\ryl(0==NH--SO$_{2}$){7==\bzdrh{2==(yl)}}}
\end{verbatim}
is written to give 

\vspace*{2cm}
\begin{center}
\cyclohexanev[]{%
1==\ryl(8==NH--SO$_{2}$){1==\bzdrh{6==(yl)}};
2==\ryl(5==NH--SO$_{2}$){4==\bzdrh{1==(yl)}};
3==\ryl(3==NH--SO$_{2}$){4==\bzdrh{1==(yl)}};%
4==\ryl(0==NH--SO$_{2}$){7==\bzdrh{2==(yl)}}}
\end{center}
\vspace*{2cm}

Other examples are drawn by the code 
\begin{verbatim}
\cyclohexaneh[]{%
3==\ryl(7==NH--SO$_{2}$){4==\bzdrh{1==(yl)}};
5==\ryl(1==NH--SO$_{2}$){4==\bzdrh{1==(yl)}};%
4==\ryl(4==NH--SO$_{2}$--NH){4==\bzdrh{1==(yl)}}}
\end{verbatim}
giving 
\vspace*{1cm}
\begin{center}
\cyclohexaneh[]{%
3==\ryl(7==NH--SO$_{2}$){4==\bzdrh{1==(yl)}};
5==\ryl(1==NH--SO$_{2}$){4==\bzdrh{1==(yl)}};%
4==\ryl(4==NH--SO$_{2}$--NH){4==\bzdrh{1==(yl)}}}
\end{center}
\vspace*{1cm}

The first argument in the parentheses of the 
command \verb/\ryl/ contains a string of letters 
after an intermediate delimiter ==, where 
a left linking site is shifted according to the 
length of the letter string. 
The above formula shows such an example 
as having NH--SO$_{2}$--NH. 


The following examples compare the 
``yl''-function with the \verb/\ryl/ command. 
\begin{verbatim}
\cyclohexaneh{4==\bzdrh{1==(yl)}}
\hskip2cm
\cyclohexaneh{4==\ryl(4==O){4==\bzdrh{1==(yl)}}}
\end{verbatim}

\begin{center}
\cyclohexaneh{4==\bzdrh{1==(yl)}}
\hskip2cm
\cyclohexaneh{4==\ryl(4==O){4==\bzdrh{1==(yl)}}}
\end{center}

The compound {\bfseries 21} 
on page 299 of the \XyMTeX book 
%``\XyMTeX{}---Typesetting Chemical 
%Structural Formulas'' (Addison-Wesley Publishers Japan, 1997) 
can be alternatively drawn by using 
the \verb/\ryl/ command, as shown in the code: 
\begin{verbatim}
\fiveheterov[d]{1==N;5==N}{4==NC;1==\bzdrv{1==(yl)};2D==O;%
3D==\ryl(5==N-NH){4==\bzdrh{1==(yl);2==\lmoiety{MeO};5==SO$_{2}$Cl}}}
\end{verbatim}
which typeset the following formula: 
\begin{center}
\vspace*{1cm}
\fiveheterov[d]{1==N;5==N}{4==NC;1==\bzdrv{1==(yl)};2D==O;%
3D==\ryl(5==N-NH){4==\bzdrh{1==(yl);2==\lmoiety{MeO};5==SO$_{2}$Cl}}}

\vspace*{2cm}
\end{center}

The first argument of the \verb/\ryl/ is optional; i.e., it can be 
omitted. Such an omitted case is useful to draw a methylene as 
a vertex.  For example, a methylene is represented as 
a character string ``CH$_{2}$'', as shown in the formula, 
\begin{center}
\sixheterov[d]{2==S}{5==\null;%
3==\ryl(3==CH$_{2}$){3==\sixheterov[d]{2==S}{5==(yl)}}}
\end{center}
This formula is generated by the code, 
\begin{verbatim}
\sixheterov[d]{2==S}{5==\null;%
3==\ryl(3==CH$_{2}$){3==\sixheterov[d]{2==S}{5==(yl)}}}
\end{verbatim}
where the \verb/\ryl/ command takes an optional argument 
in parentheses to draw CH$_{2}$ exciplicitly. 
Such a methylene can alternatively be represented as a simple vertex, 
as shown in the formula, 
\begin{center}
\sixheterov[d]{2==S}{5==\null;%
3==\ryl{3==\sixheterov[d]{2==S}{5==(yl)}}}
\end{center}
This formula is generated by the code, 
\begin{verbatim}
\sixheterov[d]{2==S}{5==\null;%
3==\ryl{3==\sixheterov[d]{2==S}{5==(yl)}}}
\end{verbatim}
where the \verb/\ryl/ command takes no optional argument. 

The second argument of the \verb/\ryl/ command can 
accomodate substituents other than a substituent 
generated by the ``yl'' function.  For example, 
the inner code \verb/\ryl{0A==Me;...}/ in the code, 
\begin{verbatim}
\sixheterov({bB}{eA}){3==O;5==O}{1A==Me;4Sa==\null;4Sb==\null;%
6==\pentamethylenei[a]{}{4B==OH;5B==Me;5==(yl)};%
2==\ryl{0A==Me;5==\sixheterov({eA}){3==O;5==O}{6==(yl);1B==Me;%
4Sa==\null;4Sb==\null}}}
\end{verbatim}
represents a methyl group on a vertex due to the command \verb/\ryl/. 
Thereby, we have 
\begin{center}
\vspace*{1cm}
\sixheterov({bB}{eA}){3==O;5==O}{1A==Me;4Sa==\null;4Sb==\null;%
6==\pentamethylenei[a]{}{4B==OH;5B==Me;5==(yl)};%
2==\ryl{0A==Me;5==\sixheterov({eA}){3==O;5==O}{6==(yl);1B==Me;%
4Sa==\null;4Sb==\null}}}

\vspace*{1cm}
\end{center}



\section{$\backslash$lyl command}

The command \verb/\lyl/ is the left-hand 
counterpart of the command \verb/\ryl/. 
\begin{verbatim}
\lyl(LINK){GROUP}
\end{verbatim}
The slopes of the linking bonds 
concerning the right terminal are designated by 
integers between 0 and 8: 
\begin{center}
\begin{tabular}{cc|cc|cc}
0 & $(0,1)$    & 1 & $(3,5)$  & 2 & $(1,1)$  \\
3 & $(5,3)$   & 4 & $(1,0)$  & 5 & $(5,-3)$ \\
6 & $(1,-1)$  & 7 & $(3,-5)$ & 8 & $(0,-1)$ \\
\end{tabular}
\end{center}
The slopes of the linking bonds concerning 
the left terminal are designated by 
integers between 0 and 8: 
\begin{center}
\begin{tabular}{cc|cc|cc}
0 & $(0,1)$    & 1 & $(-3,5)$  & 2 & $(-1,1)$  \\
3 & $(-5,3)$   & 4 & $(-1,0)$  & 5 & $(-5,-3)$ \\
6 & $(-1,-1)$  & 7 & $(-3,-5)$ & 8 & $(0,-1)$ \\
\end{tabular}
\end{center}

To illustrate linking bonds with various slopes, 
the code 
\begin{verbatim}
\cyclohexanev[]{%
1==\lyl(8==SO$_{2}$--HN){1==\bzdrh{5==(yl)}};%
6==\lyl(5==SO$_{2}$--NH){4==\bzdrh{4==(yl)}};%
5==\lyl(3==SO$_{2}$--NH){4==\bzdrh{4==(yl)}};%
4==\lyl(0==SO$_{2}$--HN){7==\bzdrh{3==(yl)}}}
\end{verbatim}
is written to give 


\vspace*{2cm}
\begin{center}
\cyclohexanev[]{%
1==\lyl(8==SO$_{2}$--HN){1==\bzdrh{5==(yl)}};%
6==\lyl(5==SO$_{2}$--NH){4==\bzdrh{4==(yl)}};%
5==\lyl(3==SO$_{2}$--NH){4==\bzdrh{4==(yl)}};%
4==\lyl(0==SO$_{2}$--HN){7==\bzdrh{3==(yl)}}}
\end{center}
\vspace*{2cm}

Other examples are drawn by the code 
\begin{verbatim}
\cyclohexaneh[]{%
2==\lyl(7==SO$_{2}$--NH){4==\bzdrh{4==(yl)}};
6==\lyl(1==SO$_{2}$--NH){4==\bzdrh{4==(yl)}};%
1==\lyl(4==NH--SO$_{2}$--HN){4==\bzdrh{4==(yl)}}}
\end{verbatim}
giving 
\vspace*{1cm}
\begin{center}
\cyclohexaneh[]{%
2==\lyl(7==SO$_{2}$--NH){4==\bzdrh{4==(yl)}};
6==\lyl(1==SO$_{2}$--NH){4==\bzdrh{4==(yl)}};%
1==\lyl(4==NH--SO$_{2}$--NH){4==\bzdrh{4==(yl)}}}
\end{center}
\vspace*{1cm}

The first argument in the parentheses of the 
command \verb/\lyl/ contains a string of letters 
after an intermediate delimiter ==, where 
a left linking site is shifted according to the 
length of the letter string. 
The above formula shows such an example 
as having NH--SO$_{2}$--NH. 

The structural formula of adonitoxin, 
which has once been depicted in a different way 
in Chapter 15 of the \XyMTeX book 
%``\XyMTeX{}---Typesetting Chemical 
%Structural Formulas'' (Addison-Wesley Publishers Japan, 1997) 
can be obtained by the code, 
\begin{verbatim}
\steroid{{{10}}==\lmoiety{OHC};{{14}}==OH;%
{{13}}==\lmoiety{H$_{3}$C};{{16}}==OH;%
{{17}}==\fiveheterov[e]{3==O}{4D==O;1==(yl)};%
3==\lyl(3==O){8==%
\pyranose{1Sb==(yl);1Sa==H;2Sb==H;2Sa==OH;3Sb==H;3Sa==OH;4Sb==HO;%
4Sa==H;5Sb==H;5Sa==CH$_{3}$}}}
\end{verbatim}

\begin{quotation}
\vspace*{1cm}
\hspace*{4cm}
\steroid{{{10}}==\lmoiety{OHC};{{14}}==OH;%
{{13}}==\lmoiety{H$_{3}$C};{{16}}==OH;%
{{17}}==\fiveheterov[e]{3==O}{4D==O;1==(yl)};%
3==\lyl(3==O){8==%
\pyranose{1Sb==(yl);1Sa==H;2Sb==H;2Sa==OH;3Sb==H;3Sa==OH;4Sb==HO;%
4Sa==H;5Sb==H;5Sa==CH$_{3}$}}}
\end{quotation}

\vskip1cm


\section{Nested $\backslash$ryl and $\backslash$lyl commands}

Two or more \verb/\ryl/ and \verb/\lyl/ commands can be nested. 
Let us illustrate nesting processes by drawing a cyan 
dye releaser, which has once been depicted in different ways 
(see Chapters 14 and 15 of the \XyMTeX book). 
%in ``\XyMTeX{}---Typesetting Chemical 
%Structural Formulas'' (Addison-Wesley Publishers Japan, 1997)). 

\vspace*{1cm}
\bzdrv{1==OH;5==CH$_{3}$;4==OC$_{16}$H$_{33}$;%
2==\ryl(4==NH--SO$_{2}$){4==\bzdrh{1==(yl);2==OCH$_{2}$CH$_{2}$OCH$_{3}$;%
5==\ryl(2==NH--SO$_{2}$){4==\bzdrh{1==(yl);%
5==\ryl(2==SO$_{2}$--NH){4==\naphdrh{1==(yl);5==OH;%
8==\lyl(4==N=N){4==\bzdrh{4==(yl);1==NO$_{2}$;5==SO$_{2}$CH$_{3}$}}}}}}}}}

\vskip3cm
First, the code
\begin{verbatim}
\ryl(4==NH--SO$_{2}$){4==\bzdrh{1==(yl);2==OCH$_{2}$CH$_{2}$OCH$_{3}$;%
5==\null}}
\end{verbatim}
generates a substituent: 
\begin{quotation}
\vspace*{1cm}
\ryl(4==NH--SO$_{2}$){4==\bzdrh{1==(yl);2==OCH$_{2}$CH$_{2}$OCH$_{3}$;%
5==\null}}

\vspace*{1cm}
\end{quotation}
in which the command \verb/\null/ is used to show a further 
substitution site. The resulting substituent is 
nested in the SUBSLIT of another \verb/\bzdrv/ command 
as shown in the code: 
\begin{verbatim}
\bzdrv{1==OH;5==CH$_{3}$;4==OC$_{16}$H$_{33}$;%
2==\ryl(4==NH--SO$_{2}$){4==\bzdrh{1==(yl);2==OCH$_{2}$CH$_{2}$OCH$_{3}$;%
5==\null}}}
\end{verbatim}
Thereby we have 
\begin{quotation}
\vskip1cm
\bzdrv{1==OH;5==CH$_{3}$;4==OC$_{16}$H$_{33}$;%
2==\ryl(4==NH--SO$_{2}$){4==\bzdrh{1==(yl);2==OCH$_{2}$CH$_{2}$OCH$_{3}$;%
5==\null}}}
\end{quotation}

\vskip1cm \noindent
The inner code \verb/5==\null/ is replaced by a further 
code of substitution: 
\begin{verbatim}
5==\ryl(2==NH--SO$_{2}$){4==\bzdrh{1==(yl);5==\null}}%
\end{verbatim}
to give a code, 
\begin{verbatim}
\bzdrv{1==OH;5==CH$_{3}$;4==OC$_{16}$H$_{33}$;%
2==\ryl(4==NH--SO$_{2}$){4==\bzdrh{1==(yl);2==OCH$_{2}$CH$_{2}$OCH$_{3}$;%
5==\ryl(2==NH--SO$_{2}$){4==\bzdrh{1==(yl);5==\null}}%
}}}
\end{verbatim}
This code generates the following structure (Formula A): 
\begin{quotation}
\vskip1cm
\bzdrv{1==OH;5==CH$_{3}$;4==OC$_{16}$H$_{33}$;%
2==\ryl(4==NH--SO$_{2}$){4==\bzdrh{1==(yl);2==OCH$_{2}$CH$_{2}$OCH$_{3}$;%
5==\ryl(2==NH--SO$_{2}$){4==\bzdrh{1==(yl);%
5==\null}}}}}
\end{quotation}

\vskip1cm
Another substituent is typeset by the code, 
\begin{verbatim}
\ryl(2==SO$_{2}$--NH){4==\naphdrh{1==(yl);5==OH;%
8==\lyl(4==N=N){4==\bzdrh{4==(yl);1==NO$_{2}$;5==SO$_{2}$CH$_{3}$}}}}
\end{verbatim}
Then, we have a substituent (Formula B): 
\begin{quotation}
\vskip1cm
\hspace*{4cm}\ryl(2==SO$_{2}$--NH){4==\naphdrh{1==(yl);5==OH;%
8==\lyl(4==N=N){4==\bzdrh{4==(yl);1==NO$_{2}$;5==SO$_{2}$CH$_{3}$}}}}
\end{quotation}

\vspace{3cm}
Finally, the inner code \verb/5==\null/ for Formula A is replaced 
by the code for Formula B 
in order to combine Formula A with Formula B. 
Then we obtain a code represented by 
\begin{verbatim}
\bzdrv{1==OH;5==CH$_{3}$;4==OC$_{16}$H$_{33}$;%
2==\ryl(4==NH--SO$_{2}$){4==\bzdrh{1==(yl);2==OCH$_{2}$CH$_{2}$OCH$_{3}$;%
5==\ryl(2==NH--SO$_{2}$){4==\bzdrh{1==(yl);%
5==\ryl(2==SO$_{2}$--NH){4==\naphdrh{1==(yl);5==OH;%
8==\lyl(4==N=N){4==\bzdrh{4==(yl);1==NO$_{2}$;5==SO$_{2}$CH$_{3}$}}}}}}}}}
\end{verbatim}
Thereby, we have a target formula: 

\vspace*{1cm}
\bzdrv{1==OH;5==CH$_{3}$;4==OC$_{16}$H$_{33}$;%
2==\ryl(4==NH--SO$_{2}$){4==\bzdrh{1==(yl);2==OCH$_{2}$CH$_{2}$OCH$_{3}$;%
5==\ryl(2==NH--SO$_{2}$){4==\bzdrh{1==(yl);%
5==\ryl(2==SO$_{2}$--NH){4==\naphdrh{1==(yl);5==OH;%
8==\lyl(4==N=N){4==\bzdrh{4==(yl);1==NO$_{2}$;5==SO$_{2}$CH$_{3}$}}}}}}}}}

\vskip3cm

The structural formula of adonitoxin, 
which has benn drawn by considering the steroid nucleus to be 
a mother skeleton in the preceding subsection, 
can be alternatively drawn by nesting 
a ``yl''-function and a \verb/\ryl/ command. 
In this case, the pyranose ring is regarded as a mother skeleton. 
Thus, the code 
\begin{verbatim}
\pyranose{1Sa==H;2Sb==H;2Sa==OH;3Sb==H;3Sa==OH;4Sb==HO;%
4Sa==H;5Sb==H;5Sa==CH$_{3}$;%
1Sb==\ryl(8==O){3==%
\steroid{3==(yl);{{10}}==\lmoiety{OHC};{{14}}==OH;%
{{13}}==\lmoiety{H$_{3}$C};{{16}}==OH;%
{{17}}==\fiveheterov[e]{3==O}{4D==O;1==(yl)}}}}
\end{verbatim}
typesets the following formula: 
\begin{quotation}
\vspace*{4cm}
\pyranose{1Sa==H;2Sb==H;2Sa==OH;3Sb==H;3Sa==OH;4Sb==HO;%
4Sa==H;5Sb==H;5Sa==CH$_{3}$;%
1Sb==\ryl(8==O){3==%
\steroid{3==(yl);{{10}}==\lmoiety{OHC};{{14}}==OH;%
{{13}}==\lmoiety{H$_{3}$C};{{16}}==OH;%
{{17}}==\fiveheterov[e]{3==O}{4D==O;1==(yl)}}}}
\end{quotation}

\section{$\backslash$divalenth command}

The command \verb/\divalenth/ generates a divalent skeleton 
with variable length.  
\begin{verbatim}
\divalenth{GROUP}{SUBSLIST}
\end{verbatim}
The divalent skeleton is given by 
a string of alphabets in the GROUP argument.  
The locant number in the GROUP argument is fixed to be zero. 
For example, the code 
\begin{verbatim}
\divalenth{0==NHCONH}{1==CH$_{3}$;2==CH$_{3}$}
\end{verbatim}
generates a linear formula: 
\begin{center}
\divalenth{0==NHCONH}{1==CH$_{3}$;2==CH$_{3}$}
\end{center}

4,4$^{\prime}$-Methylenedibenzoic acid can be drawn in the same line. 
The code 
\begin{verbatim}
\divalenth{0==CH$_{2}$}{1==\bzdrh{4==(yl);1==HOOC};2==\bzdrh{1==(yl);4==COOH}}
\end{verbatim}
generates 
\begin{center}
\divalenth{0==CH$_{2}$}{1==\bzdrh{4==(yl);1==HOOC};2==\bzdrh{1==(yl);4==COOH}}
\end{center}

In place of the CH$_{2}$ unit described in the preceding example, 
we introduce the O--CH$_{2}$--O unit so as to give 
4,4$^{\prime}$-methylenedioxydibenzoic acid. The structurel formula 
can be drawn to be 
\begin{center}
\divalenth{0==O--CH$_{2}$--O}%
{1==\bzdrh{4==(yl);1==HOOC};2==\bzdrh{1==(yl);4==COOH}}
\end{center}
by means of the code: 
\begin{verbatim}
\divalenth{0==O--CH$_{2}$--O}%
{1==\bzdrh{4==(yl);1==HOOC};2==\bzdrh{1==(yl);4==COOH}}
\end{verbatim}
Note that the starting point of the moiety 
generated by the code \verb/2==\bzdrh{1==(yl);4==COOH}/ is 
automatically shifted so as to accomodate the O--CH$_{2}$--O unit. 


An additional example of the use of the \verb/\divalenth/ command 
is the drawing of 
1,6$^{\prime}$-ureylenedi-2-naphthalenesulfonic acid 
\begin{quotation}
\vspace*{2cm}\hspace*{4cm}
\divalenth{0==NH--CO--NH}%
{1==\naphdrh{4==(yl);3==SO$_{3}$H};2==\naphdrv{6==(yl);2==SO$_{3}$H}}

\vspace*{2cm}
\end{quotation}
by means of the code 
\begin{verbatim}
\divalenth{0==NH--CO--NH}%
{1==\naphdrh{4==(yl);3==SO$_{3}$H};2==\naphdrv{6==(yl);2==SO$_{3}$H}}
\end{verbatim}


$p$-[2-($m$-Carboxyphenoxy)ethyl]benzoic acid is 
drawn by the code 
\begin{verbatim}
\divalenth{0==O--CH$_{2}$--CH$_{2}$}%
{1==\bzdrh{4==(yl);6==COOH};2==\bzdrh{1==(yl);4==COOH}}
\end{verbatim}
which generates a formula: 
\begin{center}
\divalenth{0==O--CH$_{2}$--CH$_{2}$}%
{1==\bzdrh{4==(yl);6==COOH};2==\bzdrh{1==(yl);4==COOH}}

\vspace*{1cm}
\end{center}
The same structure can be depicted by applying 
the ``yl''-function to the \verb/\divalenth/ command. 
The code 
\begin{verbatim}
\bzdrh{6==COOH;4==%
\divalenth{0==O--CH$_{2}$--CH$_{2}$}{1==(yl);2==\bzdrh{1==(yl);4==COOH}}}
\end{verbatim}
generates the same formula: 
\begin{center}
\bzdrh{6==COOH;4==%
\divalenth{0==O--CH$_{2}$--CH$_{2}$}{1==(yl);2==\bzdrh{1==(yl);4==COOH}}}

\vspace*{1cm}
\end{center}
This type of usage gives an equivalent function of 
the command \verb/\ryl/ or \verb/\lyl/.  Compare this with 
an example using the \verb/\ryl/ command: 
\begin{verbatim}
\bzdrh{6==COOH;4==%
\ryl(4==O--CH$_{2}$--CH$_{2}$){4==\bzdrh{1==(yl);4==COOH}}}
\end{verbatim}
This code gives the same formula: 
\begin{center}
\bzdrh{6==COOH;4==%
\ryl(4==O--CH$_{2}$--CH$_{2}$){4==\bzdrh{1==(yl);4==COOH}}}
\end{center}

\section{Remarks}

The use of \verb/\divalenth/ with a ``yl''-function has 
no means of adjusting the left-hand point of linking. 
For example, the code,  
\begin{verbatim}
\bzdrv{2==COOH;4==%
\divalenth{0==O--CH$_{2}$--CH$_{2}$}{1==(yl);2==\bzdrh{1==(yl);4==COOH}}}
\end{verbatim}
give an insufficient formula: 
\begin{center}
\bzdrv{2==COOH;4==%
\divalenth{0==O--CH$_{2}$--CH$_{2}$}{1==(yl);2==\bzdrh{1==(yl);4==COOH}}}

\vspace*{1cm}
\end{center}
where the left-hand point of linking should be shifted to 
a more appropiate direction.  On the other hand, 
the \verb/\ryl/ (or \verb/\lyl/) command can correctly 
specify the left-hand point of linking. Thus the code, 
\begin{verbatim}
\bzdrv{2==COOH;4==%
\ryl(0==O--CH$_{2}$--CH$_{2}$){4==\bzdrh{1==(yl);4==COOH}}}
\end{verbatim}
typesets a formula: 
\begin{center}
\bzdrv{2==COOH;4==%
\ryl(0==O--CH$_{2}$--CH$_{2}$){4==\bzdrh{1==(yl);4==COOH}}}

\vspace*{1cm}
\end{center}
where the code \verb/0==O--CH$_{2}$--CH$_{2}$/ specifies 
the left-hand terminal of the unit O--CH$_{2}$--CH$_{2}$ 
is linked at the upper point of the oxygen atom. 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Ring Fusion}

\section{Ring Fusion on Carbocyclic Compounds}
\subsection{Designation of Fused Bonds}

A unit to be fused is written in the BONDLIST of a command with 
a bond specifier (a lowercase or uppercase alphabet). 
For example, the code 
\begin{verbatim}
\hanthracenev[{A\sixfusev{}{}{d}}]{}
\end{verbatim}
gives a perhydroanthracene with a fused six-membered ring 
at the bond `a' of the perhydroanthracene nucleus: 
\begin{quotation}
\vskip1cm
\hanthracenev[{A\sixfusev{}{}{d}}]{}
\end{quotation}
The letter `A' of the code 
\verb/{A\sixfusev{}{}{d}}/ is a bond specifier that represents 
the older terminal of the bond `a' of the 
perhydroanthracene nucleus 
(For the designation of the bonds of perhydroanthracene, 
see Chapter 5 of the \XyMTeX book.%
%``\XyMTeX{}---Typesetting Chemical 
%Structural Formulas'' (Addison-Wesley Publishers Japan, 1997).%
\footnote{% 
The word `older' or `younger' is concerned with the order of numbering 
of vertices.  For a six-membered ring, the numbering 
1---2---3---4---5---6---1 shows that 
the terminal 1 of the 
bond `a' (1---2) is youger, while the terminal 2 of the bond 
`a' is older.  It should be noted that the terminal 6 of the 
bond `f' (6---1) is youger, while the terminal 1 of the bond 
`f' is older.} 
Note that the younger 
terminal of the bond `a' is designated by the letter `a'. 
On the other hand, 
the code \verb/\sixfusev{}{}{d}/ of \verb/{A\sixfusev{}{}{d}}/ 
in the BONDLIST represents the fused six-membered ring 
with the bond `d' omitted.  The letter `d' indicates 
that the fusing point of the unit is the youger terminal 
of the omitted bond `d'.  If the the fusing point of the unit 
is the other (older) terminal, the 
corresponding uppercase letter `D' should be used. 

Accordingly, the same formula can be drawn by the 
code exchanging uppercase and lowercase letters, 
\begin{verbatim}
\hanthracenev[{a\sixfusev{}{}{D}}]{}
\end{verbatim}
Thereby, we have 
\begin{quotation}
\vskip1cm
\hanthracenev[{a\sixfusev{}{}{D}}]{}
\end{quotation}

Two or more rings can be fused.  For example, 
the code 
\begin{verbatim}
\hanthracenev[{A\sixfusev{}{}{d}}{C\sixfusev{}{}{f}}]{}
\end{verbatim}
generates a formula with two fused rings at the 
bonds `a' and `c' of a perhydroanthracene nucleus. 
\begin{quotation}
\vskip1cm
\hanthracenev[{A\sixfusev{}{}{d}}{C\sixfusev{}{}{f}}]{}

\vskip1cm
\end{quotation}

The BONDLIST can accomodates usual bond specifiers without 
a fusing unit in order to designate inner double bonds. 
For example, the code 
\begin{verbatim}
\hanthracenev[aco{A\sixfusev[a]{}{}{d}}]{}
\end{verbatim}
gives a hydroanthracene that have inner double bonds 
as well as a fused six-membered ring:  
\begin{quotation}
\vskip1cm
\hanthracenev[aco{A\sixfusev[a]{}{}{d}}]{}
\end{quotation}
Note that the command \verb/\sixfusev/ can take 
an optional argument to designate inner double bonds, 
as shown by the code \verb/\sixfusev[a]{}{}{d}/. 

In order to specify substituents in addition, 
we can use the SUBSLIST of the command \verb/\hanthracenev/ as well 
as the one of the command \verb/\sixfusev/.  For example, the code
\begin{verbatim}
\hanthracenev[aco{A\sixfusev[a]{}{1==F;2==Cl}{d}}]{5==OH;6==HO}
\end{verbatim}
gives a hydroanthracene having additional substituents: 
\begin{quotation}
\vspace*{1cm}
\hanthracenev[aco{A\sixfusev[a]{}{1==F;2==Cl}{d}}]{5==OH;6==HO}
\end{quotation}

The compound {\bfseries 13} on page 294 
(Chapter IV-4) of the \XyMTeX book 
%``\XyMTeX{}---Typesetting Chemical 
%Structural Formulas'' (Addison-Wesley Publishers Japan, 1997) 
can alternatively be drawn by applying the 
present technique.  Thus, the code 
\begin{verbatim}
\hanthracenev[achjop{b\sixfusev{}{2==R}{E}}]{%
1==OCH$_{3}$;4==OH;{10}D==O;%
9==\lyl(8==C\rlap{O}){4==CH$_{3}$O}}
\end{verbatim}
gives the following formula: 
\begin{quotation}
\hanthracenev[achjop{b\sixfusev{}{2==R}{E}}]{%
1==OCH$_{3}$;4==OH;{10}D==O;%
9==\lyl(8==C\rlap{O}){4==CH$_{3}$O}}
\end{quotation}


\section{Ring Fusion on Heterocyclic Compounds}

The methodology of ring fusion for heterocyclic compounds 
is the same as described for carbocyclic compounds. 
Thus, a unit to be fused is written in the BONDLIST of 
a command with a bond specifier (a lowercase or uppercase alphabet). 
For example, the code 
\begin{verbatim}
\nonaheterov[begj{b\sixfusev[ac]{}{}{e}}]{1==N}{1==H}
\end{verbatim}
gives the structural formula of carbazole: 
\begin{quotation}
\nonaheterov[begj{b\sixfusev[ac]{}{}{e}}]{1==N}{1==H}
\end{quotation}
which is depicted by attaching a six-membered ring 
(\verb/\sixfusev[ac]{}{}{e}}/) 
to the bond `b' of an indole nucleus.    

Let us consider the substitution of a carbon atom 
with a nitrogen atom at one of the fused positions  
in the above compound, as shown by the following formula: 
\begin{quotation}
\nonaheterov[begj{b\sixfusev[ac]{6==\null}{}{e}}]{1==N;3==N}{1==H}
\end{quotation}
This formula is obtained by writing the code: 
\begin{verbatim}
\nonaheterov[begj{b\sixfusev[ac]{6==\null}{}{e}}]{1==N;3==N}{1==H}
\end{verbatim}
where the code \verb/6==\null/ in the ATOMLIST of 
\verb/\sixfusev/ (for the fused six-membered ring) 
and the code \verb/3==N/ in the ATOMLIST of 
\verb/\nonaheterov/ produces the nitrogen 
atom at the fused position. 
The specification of the nitrogen atom 
is also available by exchanging \verb/\null/ and \verb/N/. 
Thus the code  
\begin{verbatim}
\nonaheterov[begj{b\sixfusev[ac]{6==N}{}{e}}]{1==N;3==\null}{1==H}
\end{verbatim}
gives the same structural formula: 
\begin{quotation}
\nonaheterov[begj{b\sixfusev[ac]{6==N}{}{e}}]{1==N;3==\null}{1==H}
\end{quotation}

The ring fusion at the bond `a' of perhydroindole 
is represented by the code 
\begin{verbatim}
\nonaheterov[{a\sixfusev{6==\null}{}{f}}]{1==N}{}
\end{verbatim}
which gives a heterocycle: 
\begin{quotation}
\nonaheterov[{a\sixfusev{6==\null}{}{f}}]{1==N}{}
\end{quotation}



Benz[{\itshape h}]isoquinoline, 
\begin{quotation}
\vspace*{1cm}
\decaheterovt[acfhk{h\sixfusev[df]{}{}{B}}]{2==N}{}
\end{quotation}
can be typset by the code, 
\begin{verbatim}
\decaheterovt[acfhk{h\sixfusev[df]{}{}{B}}]{2==N}{}
\end{verbatim}
in which the bond specifier `h' corresponds to 
the {\itshape h} of the IUPAC name. 
Note that the IUPAC name regards the structure as 
an isoquinoline (drawn by \verb/\decaheterovt/) fused by a benzo moiety. 
The same structure 
can be drawn by the alternative code: 
\begin{verbatim}
\decaheterov[acfhk{a\sixfusev[bf]{1==N}{}{D}}]{}{}
\end{verbatim}
which regards the structure as a naphthalene (drawn by 
\verb/\decaheterov/) with 
a fused heterocycle.  Thereby, we have 
 \begin{quotation}
\vspace*{1cm}
\decaheterov[acfhk{a\sixfusev[bf]{1==N}{}{D}}]{}{}
\end{quotation}

\section{Neted Ring Fusion}

The \verb/\sixfusev/ command is capable of 
accomodating another \verb/\sixfusev/ command in 
a nested fashion.  By this technique, 
the carbazole structure can take a further 
fused ring so as to produce the structural formula 
of 7{\itshape H}-pyrazino[2,3-{\itshape c}]carbaozole. 
Thus, the code, 
\begin{verbatim}
\nonaheterov[begj{b\sixfusev[%
ac{a\sixfusev[bf]{6==N;3==N}{}{D}}]{}{}{e}}]{1==N}{1==H}
\end{verbatim}
gives the structural formula of the fused heterocycle: 
\begin{quotation}
\vspace*{1cm}
\nonaheterov[begj{b\sixfusev[%
ac{a\sixfusev[bf]{6==N;3==N}{}{D}}]{}{}{e}}]{1==N}{1==H}
\end{quotation}
which is depicted by attaching a six-membered ring 
(\verb/\sixfusev[ac]{}{}{e}}/) 
to the bond `b' of an indole nucleus.    

The structural formula of 
pyrido[1$^{\prime}$,2$^{\prime}$:1,2]imidazo[4,5-{\itshape b}]quinoxaline, 
\begin{center}
\nonaheterov[adh%
{b\sixfusev[ac]{6==\null}{}{e}}%
{f\sixfusev[ace]{}{}{b}}]{1==N;3==N;4==N;7==N}{}
\end{center}
is generated by the code, 
\begin{verbatim}
\nonaheterov[adh%
{b\sixfusev[ac]{6==\null}{}{e}}%
{f\sixfusev[ace]{}{}{b}}]{1==N;3==N;4==N;7==N}{}
\end{verbatim}
Since this code is intended to contain no nested ring fusion, 
the order of structure construction is different 
from that of the IUPAC name. 

The IUPAC name, 
pyrido[1$^{\prime}$,2$^{\prime}$:1,2]imidazo[4,5-{\itshape b}]quinoxaline, 
corresponds to a quinaxaline with a fused five-membered ring (an imidazo 
moiety) which is in turn fused by a six-membered ring (a pyrido moiety). 
The order of constructing the IUPAC name is realized in the code 
with nested ring fusion, 
\begin{verbatim}
\decaheterov[acegi%
{b\fivefusev[a{b\sixfusev[ac]{6==\null}{}{e}}]{1==N;3==N}{}{d}}]
{1==N;4==N}{}
\end{verbatim}
which produces the same structure, 
\begin{center}
\decaheterov[acegi%
{b\fivefusev[a{b\sixfusev[ac]{6==\null}{}{e}}]{1==N;3==N}{}{d}}]
{1==N;4==N}{}
\end{center}

Note that the indicators `1$^{\prime}$,2$^{\prime}$' and `1,2'of 
the locant [1$^{\prime}$,2$^{\prime}$:1,2] in the IUPAC name 
correspond respectively to the 
bond specifiers , `E' and `b', appeared in  the code, 
\verb/{b\sixfusev[ac]{6==\null}{}{E}}/. 
On the other hand, the indicators, 
`4,5' and `{\itshape b}' of of the locant [4,5-{\itshape b}] 
are respectively associated with 
the specifiers, `d' and `b',  appeared in the code, 
\verb/{b\fivefusev[...]{1==N;3==N}{}{d}}/.

An alkaloid with a coryanthe skeleton 
(R. T. Brown and C. L. Chapple, {\itshape Chem. Commun.}, 
1973, 887) can be typeset by the code with nested fusion, 
\begin{verbatim}
\nonaheterov[begj{b\sixfusev[%
{c\sixfusev{1==\null}{3SB==H;3SA==Et;%
4GA==H;%
4B==\dimethylenei[a]{}{1==(yl);2W==OMe;1W==MeOCO}}{F}}]%
{3==N}{4GB==H;2B==COOMe}{e}}]{1==N}{1==H}
\end{verbatim}
where a six-five ring drawn by the command \verb/\nonaheterov/ 
is regarded as a mother skeleton. Thus, we have 
\begin{quotation}
\nonaheterov[begj{b\sixfusev[%
{c\sixfusev{1==\null}{3SB==H;3SA==Et;%
4GA==H;%
4B==\dimethylenei[a]{}{1==(yl);2W==OMe;1W==MeOCO}}{F}}]%
{3==N}{4GB==H;2B==COOMe}{e}}]{1==N}{1==H}
\vspace*{2cm}
\end{quotation}
For the command \verb/\dimethylenei/, see the chapter at issue. 

When a six-six ring drawn by the command \verb/\decaheterovb/ 
is regarded as a mother skeleton, as shown in the code with 
another nested ring fusion, 
\begin{verbatim}
\decaheterovb[f{f\fivefusev[d{d\sixfusev[df]{}{}{b}}]%
{1==N}{1==H}{b}}]{8a==N}{9B==H;2SA==Et;2SB==H;8B==COOMe;%
3GA==H;%
3B==\dimethylenei[a]{}{1==(yl);2W==OMe;1W==MeOCO}}
\end{verbatim}
we find another way of drawing the same structural formula, 
\begin{center}
\decaheterovb[f{f\fivefusev[d{d\sixfusev[df]{}{}{b}}]%
{1==N}{1==H}{b}}]{8a==N}{9B==H;2SA==Et;2SB==H;8B==COOMe;%
3GA==H;%
3B==\dimethylenei[a]{}{1==(yl);2W==OMe;1W==MeOCO}}

\vspace*{1cm}
\end{center}

The following example shows a code with complicated 
nested structure: 
\begin{verbatim}
\cyclohexanev[%
{a\sixfusev[{b\sixfusev[{c\sixfusev[{c\sixfusev[%
{d\sixfusev[{d\sixfusev[{d\sixfusev[%
{e\sixfusev[{e\sixfusev[{e\sixfusev[{e\sixfusev[%
{f\sixfusev[{f\sixfusev[]{}{}{C}}]{}{}{C}}%
]{}{}{B}}]{}{}{B}}]{}{}{B}}]{}{}{B}}%
]{}{}{A}}]{}{}{A}}]{}{}{A}}]{}{}{F}}%
]{}{}{F}}]{}{}{E}}]{}{}{D}}%
{c\sixfusev[{d\sixfusev[{e\sixfusev[{e\sixfusev[%
{f\sixfusev[{f\sixfusev[{f\sixfusev[%
{a\sixfusev[{a\sixfusev[{a\sixfusev[{a\sixfusev[%
{b\sixfusev[{b\sixfusev[]{}{}{E}}]{}{}{E}}%
]{}{}{D}}]{}{}{D}}]{}{}{D}}]{}{}{D}}%
]{}{}{C}}]{}{}{C}}]{}{}{C}}]{}{}{B}}%
]{}{}{B}}]{}{}{A}}]{}{}{F}}%
{e\sixfusev[{f\sixfusev[{a\sixfusev[{a\sixfusev[%
{b\sixfusev[{b\sixfusev[{b\sixfusev[%
{c\sixfusev[{c\sixfusev[{c\sixfusev[{c\sixfusev[%
{d\sixfusev[{d\sixfusev[]{}{}{A}}]{}{}{A}}%
]{}{}{F}}]{}{}{F}}]{}{}{F}}]{}{}{F}}%
]{}{}{E}}]{}{}{E}}]{}{}{E}}]{}{}{D}}%
]{}{}{D}}]{}{}{C}}]{}{}{B}}%
]{}
\end{verbatim}
This code generates a multiply fused formula: 

\clearpage

\begin{center}
\vspace*{8cm}
\cyclohexanev[%
{a\sixfusev[{b\sixfusev[{c\sixfusev[{c\sixfusev[%
{d\sixfusev[{d\sixfusev[{d\sixfusev[%
{e\sixfusev[{e\sixfusev[{e\sixfusev[{e\sixfusev[%
{f\sixfusev[{f\sixfusev[]{}{}{C}}]{}{}{C}}%
]{}{}{B}}]{}{}{B}}]{}{}{B}}]{}{}{B}}%
]{}{}{A}}]{}{}{A}}]{}{}{A}}%
]{}{}{F}}%
]{}{}{F}}]{}{}{E}}]{}{}{D}}%
{c\sixfusev[{d\sixfusev[{e\sixfusev[{e\sixfusev[%
{f\sixfusev[{f\sixfusev[{f\sixfusev[%
{a\sixfusev[{a\sixfusev[{a\sixfusev[{a\sixfusev[%
{b\sixfusev[{b\sixfusev[]{}{}{E}}]{}{}{E}}%
]{}{}{D}}]{}{}{D}}]{}{}{D}}]{}{}{D}}%
]{}{}{C}}]{}{}{C}}]{}{}{C}}%
]{}{}{B}}%
]{}{}{B}}]{}{}{A}}]{}{}{F}}%
{e\sixfusev[{f\sixfusev[{a\sixfusev[{a\sixfusev[%
{b\sixfusev[{b\sixfusev[{b\sixfusev[%
{c\sixfusev[{c\sixfusev[{c\sixfusev[{c\sixfusev[%
{d\sixfusev[{d\sixfusev[]{}{}{A}}]{}{}{A}}%
]{}{}{F}}]{}{}{F}}]{}{}{F}}]{}{}{F}}%
]{}{}{E}}]{}{}{E}}]{}{}{E}}%
]{}{}{D}}%
]{}{}{D}}]{}{}{C}}]{}{}{B}}%
]{}
\end{center}



\clearpage



\section{Remarks}

\subsection{OPT Arguments}

It should be noted that the OPT arguments of 
such commands as \verb/\bzdrv/, \verb/\naphdrv/, 
and \verb/\anthracenev/ cannot be used 
for the ring-fusion technique. In place of the OPT argument, 
the BONDLIST argument of the corresponding general 
command, e.g. \verb/\cyclohexanev/ or \verb/\sixheterov/ 
correspoding to \verb/\bzdrv/, 
should be used for the purpose of ring fusion. . 
For example, a bezene ring of the formula,  
\begin{center}
\vspace*{1cm}
\cyclohexanev[ace{a\sixfusev{}{}{D}}]{}
\end{center}
should be drawn by using the \verb/\cyclohexanev/ command, 
as shown in the code: 
\begin{verbatim}
\cyclohexanev[ace{a\sixfusev{}{}{D}}]{}
\end{verbatim}

\subsection{\protect\XyMTeX{} Warning}

An incorrect result due to 
a wrong specification of a fused bond is 
notified by a \XyMTeX{} warning. 
For example, the code, 
\begin{verbatim}
\hanthracenev[{a\sixfusev{}{}{d}}]{}
\end{verbatim}
gives a formula of wrong fusion: 
\begin{center}
\vspace*{2cm}
\hanthracenev[{a\sixfusev{}{}{d}}]{}
\end{center}
According to this wrong situation, 
a \XyMTeX{} warning appears in a display or in a log file, e.g.,  
\begin{verbatim}
 XyMTeX Warning: Mismatched fusion at bond `a, i, or other' 
 on input line 1904
\end{verbatim}
There are two ways to correct the wrong fusion and, 
as a result, to avoid such a \XyMTeX{} warning. 
First, the code 
\begin{verbatim}
\hanthracenev[{A\sixfusev{}{}{d}}]{}
\end{verbatim}
in which the acceptor bond specifier `a' is changed into `A',  
gives a correct result, as found in the top example of 
this chapter.  Alternatively, 
the donor bond specifier `d' can be changed into `D'.  
Thus, the code, 
\begin{verbatim}
\hanthracenev[{a\sixfusev{}{}{D}}]{}
\end{verbatim}
also typesets the second formula with correct fusion. 
 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Fusing Units}

The commands described in this chapter are stored in 
the {\sf fusering} package (file name: fusering.sty). 

\section{Six-membered Fusing Units}
\subsection{Vertical Units of Normal and Inverse Types}
In \XyMTeX{} version 1.01, we can use \verb/\sixunitv/ 
and \verb/\fiveunitv/ as building blocks, where 
one or more bonds can be omitted. 
In the present version, we prepare 
such commands as \verb/\sixfusev/ an \verb/\sixfusevi/, 
producing building blocks with only one deleted bond. 
These commands can be used in the BONDLIST of another 
command so as to give a fused structural formula, 
as described in the preceding chapter.  
The commands \verb/\sixfusev/ and \verb/\sixfusevi/ have formats 
represented by 
\begin{verbatim}
\sixfusev[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\sixfusevi[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\end{verbatim}
where the argument FUSE is an alphabetical character (a--f) 
or the uppercase counterpart (A--F), 
each of which is a bond specifier representing one bond to be omitted. 
A lowercase character (a--f) represents the younger terminal of 
the omitted bond. 
The corresponding uppercase character (A--F) designates 
the other terminal of the bond to be omitted. 
The other arguments have the same formats as described 
in the general conventions (see \XyMTeX book). 
The locant numbers and the bond specifiers of 
the command \verb/\sixfusev/ correspond to 
those of the command \verb/\sixheterov/ (see \XyMTeX book). 
The command \verb/\sixfusevi/ is the inverse counterpart 
of \verb/\sixfusev/ and corresponds to the command \verb/\sixheterovi/. 
Moreover, the BONDLIST is capbable of 
accormodating the ring-fusion function described 
in the preseding chapter, 
the ATOMLIST can accomodate the spiro-ring function 
described afterward, and 
the SUBSLIST serves a method producing subsituents (``yl''-function) 
describe previously. 

For example, the last argument `F' of the \verb/\sixfusev/ 
appearing in the code, 
\begin{verbatim}
\sixfusev[]{1==\null}%
{3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{F}
\end{verbatim}
results in the deletion of the bond `f' between atom no.~6 (youger 
teminal) and  atom no.~1 (older terminal) from a hexagon, 
typesetting the following building block: 
\begin{center}
\sixfusev[]{1==\null}{3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{F}

\vspace*{3cm}
\end{center}
where the reference point for superposition is 
the older terminal (i.e. atom no.~1) of the bond `f'. 
The code \verb/1==\null/ gives a vacancy at the position of atom no.~1. 
When the building block is used in the BONDLIST of 
the \verb/\decaheterov/, as shown in the code, 
\begin{verbatim}
\decaheterov[fhk%
{c\sixfusev[]{1==\null}%
{3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{F}}]{3==N}{6==CH$_3$O;7==CH$_3$O}
\end{verbatim}
we have the following structure, 
\begin{center}
\decaheterov[fhk%
{c\sixfusev[]{1==\null}%
{3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{F}}]{3==N}{6==CH$_3$O;7==CH$_3$O}
\vspace*{2cm}
\end{center}

The last argument `F' of the \verb/\sixfusev/ 
can be changed into `f', as found in the code, 
\begin{verbatim}
\decaheterovi[fhk%
{a\sixfusev[]{1==\null}%
{3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{f}}]{2==N}{6==CH$_3$O;7==CH$_3$O}
\end{verbatim}
where we use \verb/\decaheterovi/ in place of 
\verb/\decaheterov/ for drawing the bicyclic mother skeleton. 
Thereby, we have the following structure, 
\begin{center}
\decaheterovi[fhk%
{a\sixfusev[]{1==\null}%
{3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{f}}]{2==N}{6==CH$_3$O;7==CH$_3$O}
\vspace*{2cm}
\end{center}

The vertically opposite formula can be drawn by the combination of 
\verb/\sixfusevi/ and \verb/\decaheterovi/ with no other changes 
of designation (in comparison with the first code of this 
section), i.e. 
\begin{verbatim}
\decaheterovi[fhk%
{c\sixfusevi[]{1==\null}%
{3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{F}}]{3==N}{6==CH$_3$O;7==CH$_3$O}
\end{verbatim}
Thereby we have 
\begin{center}
\vspace*{2cm}
\decaheterovi[fhk%
{c\sixfusevi[]{1==\null}%
{3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{F}}]{3==N}{6==CH$_3$O;7==CH$_3$O}
\end{center}

\subsection{Horizontal Units of Normal and Inverse Types}

For drawing horizontal fusing units, 
we can use the commands \verb/\sixfuseh/ and \verb/\sixfusehi/, 
which are represented by 
\begin{verbatim}
\sixfuseh[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\sixfusehi[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\end{verbatim}

The horizontal formula of normal type related to the tricyclic 
formulas described in the preceding subsection 
can be drawn by the combination of 
\verb/\sixfuseh/ and \verb/\decaheteroh/ with few changes 
of designation (CH$_{3}$O to OCH$_{3}$), i.e. 
\begin{verbatim}
\decaheteroh[fhk%
{c\sixfuseh[]{1==\null}%
{3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{F}}]{3==N}{6==OCH$_3$;7==OCH$_3$}
\end{verbatim}
which typsets the following structure, 
\begin{center}
\vspace*{1cm}
\decaheteroh[fhk%
{c\sixfuseh[]{1==\null}%
{3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{F}}]{3==N}{6==OCH$_3$;7==OCH$_3$}
\end{center}

The horizontally opposite formula can be drawn by the combination of 
\verb/\sixfusehi/ and \verb/\decaheterohi/ with 
slight changes concerning the handedness of subsitutents, i.e. 
\begin{verbatim}
\decaheterohi[fhk%
{c\sixfusehi[]{1==\null}%
{3==C$_2$H$_5$;4==C$_2$H$_5$OCOCH$_2$}{F}}]{3==N}{6==OCH$_3$;7==OCH$_3$}
\end{verbatim}
Thereby we have 
\begin{center}
\vspace*{1cm}
\decaheterohi[fhk%
{c\sixfusehi[]{1==\null}%
{3==C$_2$H$_5$;4==C$_2$H$_5$OCOCH$_2$}{F}}]{3==N}{6==OCH$_3$;7==OCH$_3$}
\end{center}

\section{Five-membered Fusing Units}
\subsection{Vertical Units of Normal and Inverse Types}
To obtain a vertical five-membered building block, 
we can use \verb/\fivefusev/ and \verb/\fivefusevi/: 
\begin{verbatim}
\fivefusev[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\fivefusevi[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\end{verbatim}
where the argument FUSE is an alphabetical character (a--e) 
or the uppercase counterpart (A--E), 
each of which is a bond specifier representing one bond to be omitted. 
The other specifications have the same formats 
as found in the preceding section. 

The following example (left) gives the use of the \verb/\fivefusevi/ 
command by itself, where its SUBSLIST contains some substituents: 
\begin{verbatim}
\fivefusevi{4==O}{2D==;3D==O}{E} \hskip 3cm
\fivefusevi{4==O}{1GA==H;5GB==H;2D==;3D==O}{E}
\end{verbatim}
\begin{center}
%\vspace*{1cm}
\fivefusevi{4==O}{2D==;3D==O}{E} \hskip 3cm
\fivefusevi{4==O}{1GA==H;5GB==H;2D==;3D==O}{E}

\vspace*{2cm}
\end{center}
To show hydrogen substitution at the fused positions, we 
add the designation of \verb/1GA==H;5GB==H/ to the 
SUBSLIST of the \verb/\fivefusevi/ command (right above). 
Then, the latter code is written in the BONDLIST of 
a command \verb/\decalinev/, as found in the code:
\begin{verbatim}
\decalinev[h{c\fivefusevi{4==O}{1GA==H;5GB==H;2D==;3D==O}{E}}]%
{6D==O;5A==;0FB==;0GA==H}
\end{verbatim}
Thereby, we obtain 
\begin{center}
\decalinev[h{c\fivefusevi{4==O}{1GA==H;5GB==H;2D==;3D==O}{E}}]%
{6D==O;5A==;0FB==;0GA==H}

\vspace*{1cm}
\end{center}

Fusing units such as \verb/\fivefusev/ 
can be multiply nested in itself and in other types of fusing units. 
The following example shows such a trebly-nested case.  
\begin{verbatim}
\decaheterovi[AB%
{b\fivefusev[{a\sixfusev[ce%
{c\sixfusev{3==O}{4D==O;5SB==HO;5SA==Et}{F}}]{1==\null}{2D==O}{f}}]%
{2==N}{}{D}}]{1==N}{}
\end{verbatim}
\begin{quotation}
\decaheterovi[AB%
{b\fivefusev[{a\sixfusev[ce%
{c\sixfusev{3==O}{4D==O;5SB==HO;5SA==Et}{F}}]{1==\null}{2D==O}{f}}]%
{2==N}{}{D}}]{1==N}{}

\vspace*{2cm}
\end{quotation}

When all of the commands in the above code are 
changed into the inverse counterparts 
(\verb/\decaheterovi/ to \verb/\decaheterov/;
\verb/\fivefusev/ and \verb/\fivefusevi/; and 
\verb/\sixfusev/ to \verb/\sixfusevi/),  
the code is transformed into another code, 
\begin{verbatim}
\decaheterov[AB%
{b\fivefusevi[{a\sixfusevi[ce%
{c\sixfusevi{3==O}{4D==O;5SB==HO;5SA==Et}{F}}]{1==\null}{2D==O}{f}}]%
{2==N}{}{D}}]{1==N}{}
\end{verbatim}
Thereby, we can obtain the formula of vertically inverse type. 
\begin{quotation}
\vspace*{2cm}
\decaheterov[AB%
{b\fivefusevi[{a\sixfusevi[ce%
{c\sixfusevi{3==O}{4D==O;5SB==HO;5SA==Et}{F}}]{1==\null}{2D==O}{f}}]%
{2==N}{}{D}}]{1==N}{}
\end{quotation}

\subsection{Horizontal Units of Normal and Inverse Types}
Horizontal five-membered building block are 
obtained by using \verb/\fivefuseh/ and \verb/\fivefusehi/: 
\begin{verbatim}
\fivefuseh[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\fivefusehi[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\end{verbatim}
where the argument FUSE is an alphabetical character (a--e) 
or the uppercase counterpart (A--E), 
each of which is a bond specifier representing one bond to be omitted. 
The other specifications have the same formats 
as found in the preceding section. 

The example given for \verb/\fivefusevi/ is 
changed into the one using the horizontal counterpart \verb/\fivefusehi/: 
\begin{verbatim}
\decalineh[h{c\fivefusehi{4==O}{1GA==H;5GB==H;2D==;3D==O}{E}}]{5A==;6D==O}
\end{verbatim}
\begin{center}
\vspace*{1cm}
\decalineh[h{c\fivefusehi{4==O}{1GA==H;5GB==H;2D==;3D==O}{E}}]{5A==;6D==O}
\end{center}
Note that no changes of other designation are necessary except that 
\verb/\decalineh/ and \verb/\fivefusehi/ are used 
in place of the vertical counterpart described above. 

The multiply nested example described above for drawing 
a structure of vertical type can be changed into 
the corresponding one of horizontal type, 
if all of the commmands are changed into horizontal types 
(\verb/\decaheterovi/ to \verb/\decaheterohi/;
\verb/\fivefusev/ to \verb/\fivefuseh/; and 
\verb/\sixfusev/ to \verb/\sixfuseh/). 

\begin{verbatim}
\decaheterohi[AB%
{b\fivefuseh[{a\sixfuseh[ce%
{c\sixfuseh{3==O}{4D==O;5SB==OH;5SA==Et}{F}}]{1==\null}{2D==O}{f}}]%
{2==N}{}{D}}]{1==N}{}
\end{verbatim}
\begin{quotation}
\vspace*{2cm}\hspace*{4cm}
\decaheterohi[AB%
{b\fivefuseh[{a\sixfuseh[ce%
{c\sixfuseh{3==O}{4D==O;5SB==OH;5SA==Et}{F}}]{1==\null}{2D==O}{f}}]%
{2==N}{}{D}}]{1==N}{}
\end{quotation}

When all the commands in the above code are 
changed into the inverse counterparts 
(\verb/\decaheterohi/ to \verb/\decaheteroh/;
\verb/\fivefuseh/ and \verb/\fivefusehi/; and 
\verb/\sixfuseh/ to \verb/\sixfusehi/),  
the code is transformed into another code, 
\begin{verbatim}
\decaheteroh[AB%
{b\fivefusehi[{a\sixfusehi[ce%
{c\sixfusehi{3==O}{4D==O;5SB==HO;5SA==Et}{F}}]{1==\null}{2D==O}{f}}]%
{2==N}{}{D}}]{1==N}{}
\end{verbatim}
Thereby, we can obtain the formula of horizontally inverse type. 
\begin{quotation}
\vspace*{2cm}\hspace*{4cm}
\decaheteroh[AB%
{b\fivefusehi[{a\sixfusehi[ce%
{c\sixfusehi{3==O}{4D==O;5SB==HO;5SA==Et}{F}}]{1==\null}{2D==O}{f}}]%
{2==N}{}{D}}]{1==N}{}
\end{quotation}

\section{Four-membered Fusing Units}

To obtain a four-membered building block, 
we can use \verb/\fourfuse/: 
\begin{verbatim}
\fourfuse[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\end{verbatim}
where the argument FUSE is an alphabetical character (a--d) 
or the uppercase counterpart (A--D), 
each of which is a bond specifier representing one bond to be omitted. 
The assignment of characters (a to d) and locants (1 to 4) 
for the command \verb/\fourhetero/ is applied 
in the same way to this case. 
The other specifications have the same formats 
as those of the command \verb/\fourhetero/. 

For example, the code, 
\begin{verbatim}
\sixheterov[{e\fourfuse{}{}{b}}]{}{}
\sixheterov[{b\fourfuse{}{}{d}}]{}{}
\sixheteroh[{b\fourfuse{}{}{a}}]{}{}
\sixheteroh[{e\fourfuse{}{}{c}}]{}{}
\end{verbatim}
produces the following structural formulas. 
\begin{center}
\sixheterov[{e\fourfuse{}{}{b}}]{}{}
\sixheterov[{b\fourfuse{}{}{d}}]{}{}
\sixheteroh[{b\fourfuse{}{}{a}}]{}{}
\sixheteroh[{e\fourfuse{}{}{c}}]{}{}
\end{center}

A hetero atom at a fused position is designated in the ATOMLIST 
of \verb/\fourfuse/, which is associated the code \verb/\null/ 
in the ATOMLIST of a command for drawing a mother skeleton. 
For example, the code 
\begin{verbatim}
\sixheterov[{e\fourfuse{3==N}{}{b}}]{6==\null}{}
\sixheterov[{b\fourfuse{4==N}{}{d}}]{2==\null}{}
\sixheteroh[{b\fourfuse{2==N}{}{a}}]{3==\null}{}
\sixheteroh[{e\fourfuse{3==N}{}{c}}]{5==\null}{}
\end{verbatim}
produces the following structural formulas. 
\begin{center}
\sixheterov[{e\fourfuse{3==N}{}{b}}]{6==\null}{}
\sixheterov[{b\fourfuse{4==N}{}{d}}]{2==\null}{}
\sixheteroh[{b\fourfuse{2==N}{}{a}}]{3==\null}{}
\sixheteroh[{e\fourfuse{3==N}{}{c}}]{5==\null}{}
\end{center}

Penicillin G can be drawn by using the \verb/\fourfuse/ command 
in the code, 
\begin{verbatim}
\fiveheterovi[{d\fourfuse{2==\null}{1D==O;4Su==PhCH$_{2}$CONH;4Sd==H}{b}}]%
{1==S;4==N}{2Sa==CH$_{3}$;2Sb==CH$_{3}$;3SA==COOH;3SB==H;5GA==H}
\end{verbatim}
which typeset the following formula: 
\begin{center}
\fiveheterovi[{d\fourfuse{2==\null}{1D==O;4Su==PhCH$_{2}$CONH;4Sd==H}{b}}]%
{1==S;4==N}{2Sa==CH$_{3}$;2Sb==CH$_{3}$;3SA==COOH;3SB==H;5GA==H}
\end{center}

\section{Three-membered Fusing Units}
\subsection{Vertical Units of Normal and Inverse Types}
To obtain three-membered building blocks of 
vertical type, we can use \verb/\threefusev/ and \verb/\threefusevi/: 
\begin{verbatim}
\threefusev[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\threefusevi[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\end{verbatim}
where the argument FUSE is an alphabetical character (a--c) 
or the uppercase counterpart (A--C), 
each of which is a bond specifier representing one bond to be omitted. 
The assignment of characters (a to c) and locants (1 to 3) 
for the command \verb/\threeheterov/ or \verb/\threeheterovi/ is applied 
in the same way to this case. 
The other specifications have the same formats 
as those of the command \verb/\threeheterov/ or \verb/\threeheterovi/. 

For example, the code using \verb/\threefusev/, 
\begin{verbatim}
\sixheteroh[{a\threefusev{}{}{a}}]{}{}
\sixheteroh[{e\threefusev{}{}{b}}]{}{}
\sixheteroh[{c\threefusev{}{}{c}}]{}{}
\end{verbatim}
produces the following structural formulas. 
\begin{center}
\sixheteroh[{a\threefusev{}{}{a}}]{}{}
\sixheteroh[{e\threefusev{}{}{b}}]{}{}
\sixheteroh[{c\threefusev{}{}{c}}]{}{}
\end{center}
The use of the inverse type is shown in the code, 
\begin{verbatim}
\sixheteroh[{F\threefusevi{}{}{a}}]{}{}
\sixheteroh[{B\threefusevi{}{}{b}}]{}{}
\sixheteroh[{D\threefusevi{}{}{c}}]{}{}
\end{verbatim}
which produces the following structural formulas. 
\begin{center}
\sixheteroh[{F\threefusevi{}{}{a}}]{}{}
\sixheteroh[{B\threefusevi{}{}{b}}]{}{}
\sixheteroh[{D\threefusevi{}{}{c}}]{}{}
\end{center}

Hetero-atoms at fused positions can be typeset by designating 
ATOMLISTs. For example, the code, 
\begin{verbatim}
\sixheteroh[{a\threefusev{1==N}{}{a}}]{1==\null}{}
\sixheteroh[{e\threefusev{2==N}{}{b}}]{5==\null}{}
\sixheteroh[{c\threefusev{3==N}{}{c}}]{3==\null}{}
\end{verbatim}
produces the following structural formulas. 
\begin{center}
\sixheteroh[{a\threefusev{1==N}{}{a}}]{1==\null}{}
\sixheteroh[{e\threefusev{2==N}{}{b}}]{5==\null}{}
\sixheteroh[{c\threefusev{3==N}{}{c}}]{3==\null}{}
\end{center}

\subsection{Horizontal Units of Normal and Inverse Types}
Three-membered building blocks of 
horizontal type can be obtained by using 
\verb/\threefuseh/ and \verb/\threefusehi/: 
\begin{verbatim}
\threefuseh[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\threefusehi[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}
\end{verbatim}
where the argument FUSE is an alphabetical character (a--c) 
or the uppercase counterpart (A--C), 
each of which is a bond specifier representing one bond to be omitted. 
The assignment of characters (a to c) and locants (1 to 3) 
for the command \verb/\threeheteroh/ or \verb/\threeheterohi/ is applied 
in the same way to this case. 
The other specifications have the same formats 
as those of the command \verb/\threeheteroh/ or \verb/\threeheterohi/. 

For example, the code using \verb/\threefuseh/, 
\begin{verbatim}
\sixheterov[{F\threefuseh{}{}{a}}]{}{}
\sixheterov[{B\threefuseh{}{}{b}}]{}{}
\sixheterov[{D\threefuseh{}{}{c}}]{}{}
\end{verbatim}
produces the following structural formulas. 
\begin{center}
\sixheterov[{F\threefuseh{}{}{a}}]{}{}
\sixheterov[{B\threefuseh{}{}{b}}]{}{}
\sixheterov[{D\threefuseh{}{}{c}}]{}{}
\end{center}
The use of the inverse type is shown in the code, 
\begin{verbatim}
\sixheterov[{a\threefusehi{}{}{a}}]{}{}
\sixheterov[{e\threefusehi{}{}{b}}]{}{}
\sixheterov[{c\threefusehi{}{}{c}}]{}{}
\end{verbatim}
which produces the following structural formulas. 
\begin{center}
\sixheterov[{a\threefusehi{}{}{a}}]{}{}
\sixheterov[{e\threefusehi{}{}{b}}]{}{}
\sixheterov[{c\threefusehi{}{}{c}}]{}{}
\end{center}

Hetero-atoms at fused positions can be typeset by designating 
ATOMLISTs. For example, the code, 
\begin{verbatim}
\sixheterov[{F\threefuseh{1==N}{}{a}}]{1==\null}{}
\sixheterov[{B\threefuseh{2==N}{}{b}}]{3==\null}{}
\sixheterov[{D\threefuseh{3==N}{}{c}}]{5==\null}{}
\end{verbatim}
produces the following structural formulas. 
\begin{center}
\sixheterov[{F\threefuseh{1==N}{}{a}}]{1==\null}{}
\sixheterov[{B\threefuseh{2==N}{}{b}}]{3==\null}{}
\sixheterov[{D\threefuseh{3==N}{}{c}}]{5==\null}{}
\end{center}

An aziridine derivative, 
\begin{center}
\sixheterov[{B\threefuseh{1==N}{1==COOC$_{2}$H$_{5}$}{b}}]{}{}
\end{center}
can be drawn by the code, 
\begin{verbatim}
\sixheterov[{B\threefuseh{1==N}{1==COOC$_{2}$H$_{5}$}{b}}]{}{}
\end{verbatim}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Spiro Rings}
\section{General Conventions for Spiro-Ring Attachment}

There are several ways for naming spiro compounds 
in the light of the IUPAC nomenclature. 
Rule A-41.4 allows us to use such a name as 
spiro[cyclopentane-1,1$^{\prime}$-indene] 
for representing the following structure: 
\begin{center}
\vspace*{1cm}
\nonaheterovi[begj]{1s==\fiveheterov{}{1==(yl)}}{}
\end{center}
The same structure is named indene-1-spiro-1$^{\prime}$-cyclohexane 
in terms of Rule A-42.1. 
Spiro[5.5]undecane, the name due to Rule A-41.1 and A-41.2, 
is alternatively referred to as 
cyclohexanespirocyclohexane in terms of Rule A-42.1:   
\begin{center}
\vspace*{1cm}
\sixheterov[]{1s==\sixheterov[]{}{4==(yl)}}{}
\end{center}
where the `cyclohexanespiro' shows the replacement of a 
carbon atom in a cyclohexne by another cyclohexane ring. 
These rules essentially have the same methodology as the 
IUPAC replacement nomenclature, e.g., 
oxacyclohexane (more formally, oxane or tetrahydropyran) 
for the formula 
\begin{center}
\sixheterov[]{1==O}{}
\end{center}
generated by the code, 
\begin{verbatim}
\sixheterov[]{1==O}{}
\end{verbatim}
where the prefix `oxa' shows the replacement of a 
carbon atom with an oxygen atom.  
Obviously, the prefix `cyclohexanespiro' of the name 
`cyclohexanespirocyclohexane' is akin to 
the prefix `oxa' of the name `oxacyclohexane' or `oxane' 
from the viewpoint of the construction of names.   
Since the unit due to the latter prefix is designated by 
the \verb/1==O/ involved in the ATOMLIST, 
the former prefix can be treated in the same way. 
Hence, spiro compounds are drawn as follows: 
\begin{enumerate}
\item 
\XyMTeX{} regards a spiro ring 
as a unit for the IUPAC replacement nomenclature, 
which is generated from an appropriate structure by ``yl''-function. 
\item the code of the unit due to the ``yl''-function is added to 
the ATOMLIST of a mother skeleton. 
\end{enumerate}

Spiro[5.5]undecane is regarded as `cyclohexana'-cyclohexane 
(more formally, `cyclohexanespiro'-cyclo\-hexane), 
as found in the code, 
\begin{verbatim}
\sixheterov[]{1s==\sixheterov[]{}{4==(yl)}}{}
\end{verbatim}
where the code 
\verb/\sixheterov[]{}{4==(yl)}/ produced by the ``yl''-function 
corresponds to the suffix `cyclohexana' and 
is written in the ATOMLIST of the outer \verb/sixheterov/ command. 
Thereby, we can obtain 
\begin{center}
\vspace*{1cm}
\sixheterov[]{1s==\sixheterov[]{}{4==(yl)}}{}
\end{center}

Note that the atom modifier `s' in the code 
\verb/1s==\sixheterov[]{}{4==(yl)}/ represents no 
hetero-atom at the spiro position. 
When a hetero-atom is present at the spiro position, 
an atom modifier `h' is used in place of `s'. 
For example, the code 
\begin{verbatim}
\sixheterov[]{1h==\sixheterov[]{4==N}{4==(yl)}}{}
\end{verbatim}
typeset the following formula: 
\begin{center}
\vspace*{1cm}
\sixheterov[]{1h==\sixheterov[]{4==N}{4==(yl)}}{}
\end{center}

It should be noted that the absence of such atom 
modifiers represents a usual replacement by 
a hetero atom, as found in the formula of 
oxane shown above or in the one of 
thiacyclohexane (tetrahydrothiane): 
\begin{center}
\sixheterov[]{1==S}{}
\end{center}
generated by the code, 
\begin{verbatim}
\sixheterov[]{1==S}{}
\end{verbatim}

\section{Several Examples}

Spiro[cyclopentane-1,1$^{\prime}$-indene] described above 
can be drawn in two ways: 
\begin{center}
\vspace*{1cm}
\nonaheterovi[begj]{1s==\fiveheterov{}{1==(yl)}}{}
\fiveheterov{1s==\nonaheterovi[begj]{}{1==(yl)}}{}

\vspace*{1cm}
\end{center}
where we use two different codes: 
\begin{verbatim}
\nonaheterovi[begj]{1s==\fiveheterov{}{1==(yl)}}{}
\fiveheterov{1s==\nonaheterovi[begj]{}{1==(yl)}}{}
\end{verbatim}
which correspond to 
`cyclohexane-1-spiro-1$^{\prime}$-indene' and 
`indene-1-spiro-1$^{\prime}$-cyclohexane' (formal), 
respectively.   

A spiro dienone
\begin{center}
\vspace*{1cm}
\sixheterov[be]{%
1s==\fiveheterov{4==N}{1==(yl);3SB==H;3SA==COOCH$_{2}$Ph;%
4==PhCH$_{2}$OCO;5D==O}}{4D==O}
\end{center}
can be drawn by writing a code, 
\begin{verbatim}
\sixheterov[be]{%
1s==\fiveheterov{4==N}{1==(yl);3SB==H;3SA==COOCH$_{2}$Ph;%
4==PhCH$_{2}$OCO;5D==O}}{4D==O}
\end{verbatim}

1-Azaspiro[5.5]undecene 
which is the skeleton present in histrionicotoxin 
(Tetrahedron Lett., 1981, {\bf 22}, 2247) 
\begin{center}
\sixheterov[]{1==N;6s==\cyclohexanev[a]{3==(yl)}}{1==CH$_{2}$Ph}
\end{center}
can be drawn by the code, 
\begin{verbatim}
\sixheterov[]{1==N;6s==\cyclohexanev[a]{3==(yl)}}{1==CH$_{2}$Ph}
\end{verbatim}

The following example shows a case 
to which both ring fusion and spiro attachment are applied. 
The code, 
\begin{verbatim}
\decaheterov[fhk%
{g\fivefusev{1==O;4==O}{}{b}}%
]{1s==\cyclohexanev[be]{1D==O;4==(yl)}}{}
\end{verbatim}
gives the following formula: 
\begin{center}
\vspace*{2cm}
\decaheterov[fhk%
{g\fivefusev{1==O;4==O}{}{b}}%
]{1s==\cyclohexanev[be]{1D==O;4==(yl)}}{}
\end{center}

A 1,3-dioxolane derivative 
\begin{center}
\fiveheterov{2==O;5==O;%
1s==\trimethylenei{}{3==(yl);1W==PhSO$_{2}$;3W==R}}{}%
\end{center}
can be drawn by the code, 
\begin{verbatim}
\fiveheterov{2==O;5==O;1s==\trimethylenei{}{3==(yl);1W==PhSO$_{2}$;3W==R}}{}%
\end{verbatim}
The same compound is also drawn by usual techniques 
as follows: 
\begin{verbatim}
\fiveheterov{2==O;5==O}{1Sb==\dimethylenei{}{2==(yl);1W==PhSO$_{2}$};1Sa==R}
\end{verbatim}
\begin{center}
\fiveheterov{2==O;5==O}{1Sb==\dimethylenei{}{2==(yl);1W==PhSO$_{2}$};1Sa==R}
\end{center}

\begin{verbatim}
\fiveheterov{2==O;5==O}{1G==\dimethylenei{}{2==(yl);1W==PhSO$_{2}$};1F==R}
\end{verbatim}
\begin{center}
\fiveheterov{2==O;5==O}{1G==\dimethylenei{}{2==(yl);1W==PhSO$_{2}$};1F==R}
\end{center}

1,2,3,4-Tetrahydroquinoline-4-spiro-4$^{\prime}$-piperidine, 
\begin{quotation}
\vspace*{2cm}
\decaheterovi[fhk]{1==N;4s==\sixheterov[]{1==N}{4==(yl);1==H}}{1==H}
\end{quotation}
can be drawn by writing a code, 
\begin{verbatim}
\decaheterovi[fhk]{1==N;4s==\sixheterov[]{1==N}{4==(yl);1==H}}{1==H}
\end{verbatim}

3,3$^{\prime}$-Spirobi[3{\it H}-indole], 
\begin{quotation}
\vspace*{1cm}
\nonaheterovi[begj]{3==N;%
1s==\fiveheterov[bd{b\sixfusev[ac]{}{}{e}}]{4==N}{1==(yl)}}{}
\end{quotation}
is typeset by the code, 
\begin{verbatim}
\nonaheterovi[begj]{3==N;%
1s==\fiveheterov[bd{b\sixfusev[ac]{}{}{e}}]{4==N}{1==(yl)}}{}
\end{verbatim}

The code, 
\begin{verbatim}
\sixheterov[]{1s==\fiveheterov{2==O;5==O}{1==(yl)}}{%
5==\threeheteroh{1==O}{3Sb==Me$_{3}$Si;3==(yl)}}
\end{verbatim}
typesets the following structure: 
\begin{center}
\vspace*{1cm}
\sixheterov[]{1s==\fiveheterov{2==O;5==O}{1==(yl)}}{%
5==\threeheteroh{1==O}{3Sb==Me$_{3}$Si;3==(yl)}}
\end{center}

A spiro intermediate during spiro annelation 
(T.\ S.\ T.\ Wang, {\em Tetrahedron Lett.}, 1975, 1637), 
\begin{quotation}
\vspace*{1cm}
\nonaheterov[aA]{1==N;%
3s==\decaheterovb[B]{8==N}{5==(yl);8==\dimethylenei{}{1D==O;1==(yl)}}}{}
\end{quotation}
can be drawn by the code, 
\begin{verbatim}
\nonaheterov[aA]{1==N;%
3s==\decaheterovb[B]{8==N}{5==(yl);8==\dimethylenei{}{1D==O;1==(yl)}}}{}
\end{verbatim}

A lactone intermediate containing a protected ketone 
(A. Grieco and M. Nishizawa, {\em Chem. Commun.}, 1976, 582), 
\begin{center}
\decaheterov[h{c\fivefusevi{4==O}{1GA==H;5GB==H;2B==;3D==O}{E}}]{%
6s==\fiveheterovi{1==O;3==O}{2==(yl)}}{5A==;{10}B==;9A==H}

\vspace*{1cm}
\end{center}
is drawn by the code, 
\begin{verbatim}
\decaheterov[h{c\fivefusevi{4==O}{1GA==H;5GB==H;2B==;3D==O}{E}}]{%
6s==\fiveheterovi{1==O;3==O}{2==(yl)}}{5A==;{10}B==;9A==H}
\end{verbatim}

\section{Multi-Spiro Derivatives}

Multi-sipro derivatives are drawn by nesting spiro function. 
For example, cyclohexanespirocyclopentane-3$^{\prime}$-%
spirocyclohexane (Rule A-42.4), 
\begin{center}
\sixheteroh[]{4s==\fiveheterov{%
2s==\sixheteroh[]{}{1==(yl)}}{5==(yl)}}{}
\end{center}
is typeset by the code, 
\begin{verbatim}
\sixheteroh[]{4s==\fiveheterov{%
2s==\sixheteroh[]{}{1==(yl)}}{5==(yl)}}{}
\end{verbatim}
When \verb/\fiveheterov/ is a mother skeleton, 
such a nested command is unnecessary: 
\begin{verbatim}
\fiveheterov{2s==\sixheteroh[]{}{1==(yl)};%
5s==\sixheteroh[]{}{4==(yl)}}{}
\end{verbatim}
\begin{center}
\fiveheterov{2s==\sixheteroh[]{}{1==(yl)};%
5s==\sixheteroh[]{}{4==(yl)}}{}
\end{center}

The name (Rule A-42.4), 
fluorene-9-spiro-1$^{\prime}$-cyclohexane-4$^{\prime}$-%
spiro-1$^{\prime}$-indene, corresponds to the code,  
\begin{verbatim}
\nonaheterovi[begj{b\sixfusev[ac]{}{}{E}}]{%
1s==\sixheterov[]{1s==\nonaheterov[begj]{}{1==(yl)}}{4==(yl)}}{}
\end{verbatim}
which gives 
\begin{quotation}
\vspace*{2cm}
\nonaheterovi[begj{b\sixfusev[ac]{}{}{E}}]{%
1s==\sixheterov[]{1s==\nonaheterov[begj]{}{1==(yl)}}{4==(yl)}}{}
\end{quotation}


\section{Atom Replacement}

The ATOMLIST of each command is capable of 
accommodating a group if a sufficient space is available. 
For example, compare two codes, 
\begin{verbatim}
\sixheteroh{4==NCOOEt}{}
\hskip 2cm
\sixheteroh{4==N}{4==COOEt}
\end{verbatim}
generating formulas equivalent chemically to each other: 
\begin{center}
\sixheteroh{4==NCOOEt}{}
\hskip 2cm
\sixheteroh{4==N}{4==COOEt}
\end{center}
Note that the former example uses an ATOMLIST and 
the latter uses an SUBSLIST for describing substituents. 

Even when no such space is available, the use of 
a command, \verb/\upnobond/ or \verb/\downnobond/, 
give a solution (see \XyMTeX book pages 259--260).  
Compare the following formulas, 
\begin{center}
\sixheterov{4==\downnobond{N}{COOEt}}{}
\sixheterov{4==N}{4==COOEt}
\sixheterov{1==\upnobond{N}{COOEt}}{}
\sixheterov{1==N}{1==COOEt}
\end{center}
generated by the code, 
\begin{verbatim}
\sixheterov{4==\downnobond{N}{COOEt}}{}
\sixheterov{4==N}{4==COOEt}
\sixheterov{1==\upnobond{N}{COOEt}}{}
\sixheterov{1==N}{1==COOEt}
\end{verbatim}

These examples show that a substituent (e.g. NCOOEt) can 
be regarded as a component for atom replacement using a ATOMLIST. 
This methodology can be applied to a case in which 
such a substituent is generated by the ``yl''-function or 
by such a linking command as \verb/\ryl/ or \verb/\lyl/. 
The following example shows the use the \verb/\ryl/ command 
in the ATOMLIST of \verb/\sixheteroh/. 
\begin{verbatim}
\sixheteroh{4h==\ryl(4==NCOO){4==\bzdrh{1==(yl)}}}{}
\hskip2cm
\sixheterov{3h==\ryl(4==NCOO){4==\bzdrh{1==(yl)}}}{}
\hskip2cm
\sixheterov{4h==\ryl(0==N){8==\bzdrv{1==(yl)}}}{}
\end{verbatim}
\begin{center}
\sixheteroh{4h==\ryl(4==NCOO){4==\bzdrh{1==(yl)}}}{}
\hskip2cm
\sixheterov{3h==\ryl(4==NCOO){4==\bzdrh{1==(yl)}}}{}
\hskip2cm
\sixheterov{4h==\ryl(0==N){8==\bzdrv{1==(yl)}}}{}

\vspace*{1cm}
\end{center}

A bond bewtween a COO unit and a phenyl group is frequently  
omitted. For this purpose,  we use command \verb/\ayl/ 
defined as 
\begin{verbatim}
\makeatletter
\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}
\makeatother
\end{verbatim}
Thereby, we have the following examples. 
\begin{verbatim}
\sixheteroh{4==NCOO\ayl{\bzdrh{1==(yl)}}}{}
\hskip2cm
\sixheterov{3==NCOO\ayl{\bzdrh{1==(yl)}}}{}
\hskip2cm
\sixheterov{4==\downnobond{N}{COO\ayl{\bzdrh{1==(yl)}}}}{}
\end{verbatim}
\begin{center}
\sixheteroh{4==NCOO\ayl{\bzdrh{1==(yl)}}}{}
\hskip2cm
\sixheterov{3==NCOO\ayl{\bzdrh{1==(yl)}}}{}
\hskip2cm
\sixheterov{4==\downnobond{N}{COO\ayl{\bzdrh{1==(yl)}}}}{}
\end{center}

\begin{verbatim}
\tetramethylene[a]{3==\downnobond{N}{COO\ayl{\bzdrh{1==(yl)}}}}{}
\hskip2cm
\tetramethylene[a]{3==N}{3==COO\ayl{\bzdrh{1==(yl)}}}
\end{verbatim}
\begin{center}
\tetramethylene[a]{3==\downnobond{N}{COO\ayl{\bzdrh{1==(yl)}}}}{}
\hskip2cm
\tetramethylene[a]{3==N}{3==COO\ayl{\bzdrh{1==(yl)}}}
\end{center}


\endinput


\begin{verbatim}
\end{verbatim}
\begin{center}
\end{center}


\begin{verbatim}
\end{verbatim}
\begin{quotation}
\end{quotation}

