%xymcomb.tex %Copyright (C) 1993, Shinsaku Fujita, All rights reserved. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %This file is a part of xymtex.tex that is the manual of the macro %package `XyMTeX' for drawing chemical structural formulas. %This file is not permitted to be translated into Japanese and any other %languages. \typeout{``xymcomb.tex''--- This file is a part of xymtex.tex that is the manual of the macro % package `XyMTeX'. 1993/12/1 S. Fujita} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Combining structures} \section{General Remarks} \subsection{Coordinates of the Picture Environment} The macros described in the other chapters of this manual can be combined to construct a more complicated structural formula. This treatment is based on the fact that two or more picture environments of \LaTeX{} can be nested, recognizing each inner picture environment as a \LaTeX{} picture box. A picture environment of \LaTeX{} is set up with the following statement: \begin{center} \begin{minipage}{10cm} \tt \verb/\/begin\{picture\}($L_{x}, L_{y}$)($S_{x}, S_{y}$), \\ $\vdots$ \\ \verb/\/end\{picture\} \end{minipage} \end{center} This command produces an $L_{x}\times L_{y}$ area for drawing a structural formula, where the origin (0, 0) can be shifted by giving differences $(S_{x}, S_{y})$. The {\tt \verb/\/put($P_{x}, P_{y}$)} command places an inner picture box ({\em e.g.}, a fragment created by a macro of the present paper) so that the reference point of the inner picture is located on the ($P_{x}, P_{y}$) point of the outer picture environment. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Reference Points and Inner Origins} A macro of \XyMTeX{} is based on an inner picture environment, which has an original point for drawing a structure and a set of sifted values. Suppose the definition of the macro contains an inner picture environment represented by \begin{center} \begin{tt} \verb/\/begin\{picture\}($\ell_{x}, \ell_{y}$)($s_{x}, s_{y}$). \end{tt} \end{center} The point ($s_{x}, s_{y}$) of the inner environment becomes the (0,0) point of the structure generated by the macro. This point is called the reference point of the macro in the present manual. On the other hand, the origin of the inner environment becames the ($-s_{x}, -s_{y}$) point of the generated structure. It is called the inner origin of the macro. For example, the command \verb/\cyclohexanev/ generates a skeleton, \begin{xymspec} \cyclohexanev{} \end{xymspec} in which the symbol $\circ$ represents the inner origin and the symbol $\bullet$ represents a reference point. The macro \verb/\cyclohexanev/ is defined on the basis of an inner picture environment: \begin{center} \begin{tt} \verb/\/begin\{picture\}(800, 800)(-400, -240). \end{tt} \end{center} As a result, the inner origin is referred to as the (400, 200) point of the resulting macro; and the inner $(-400,-240)$ point is regarded as the new origin (0, 0), which is the reference point of the macro. Each macro is characterized by the referece point and the inner origin, which are shown in a framed box beside the specification of the macro. The reference point and the inner origin of each macro are revealed by stating \verb/\origpttrue/ in the preamble of a manuscript. Then, they are printed with the symbols $\circ$ and $\bullet$; and the values of them appear on the display. For example, the above cyclohexane structure is typeset by the following statement: \begin{verbatim} {\origpttrue \begin{center} \cyclohexanev{} \end{center}} \end{verbatim} or by an equivalent statement: \begin{verbatim} \begin{xymspec} \cyclohexanev{} \end{xymspec} \end{verbatim} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Setting Coordinates} The command \verb/\put/ typesets an object, which may be a character string, a structure generated with a macro, or others. When a macro is written as an argument of the command \verb/\put/ in an outer picture environment, a structure due to the macro is typeset so that the reference point of the macro is placed on the point designated by the \verb/\put/ command. For example, \begin{verbatim} {\origpttrue \begin{picture}(1000,700)(0,0) \put(0,0){\cyclohexanev{}} \put(0,0){\circle{80}} \put(400,240){\circle{80}} \end{picture} } \end{verbatim} produces \begin{center} {\origpttrue \begin{picture}(1000,700)(0,0) \put(0,0){\cyclohexanev{}} \put(0,0){\circle{80}} \put(400,240){\circle{80}} \end{picture} } \end{center} \noindent The reference point with $\bullet$ is encircled by an outer circle representing the origin of the outer picture environment. The inner origin represented with an open circle is encircled by an outer circle centered at the $(400, 240)$ point of the outer environment, resulting in a double circle. Since we adopt a bond length equal to 200 and a bond slope of (5, 3) or (3, 5), such values as 200, 171, and 103 (and any combinations of these values) appear frequently in typsetting combined structures. Note that 171 is approximately equal to $200\times (5/\sqrt{34})$ and 103 is aproximately equal to $200\times (3/\sqrt{34})$. For example, a spiro compound can be typeset by the statement: \begin{verbatim} \begin{picture}(1200,900)(0,0) \put(0,0){\cyclohexanev{}} \put(342,200){\cyclohexanev{}} \put(684,0){\cyclohexanev{}} \end{picture} \end{verbatim} The resulting structures are \begin{center} \begin{picture}(1000,900)(0,0) \put(0,0){\cyclohexanev{}} \put(342,200){\cyclohexanev{}} \put(684,0){\cyclohexanev{}} \end{picture} \qquad \qquad {\origpttrue \begin{picture}(1000,900)(0,0) \put(0,0){\cyclohexanev{}} \put(342,200){\cyclohexanev{}} \put(684,0){\cyclohexanev{}} \end{picture} } \end{center} The right-hand structure is to show the reference points and the inner origins of the fragements used. In this case, the shifted values $(-400,-240)$ of each fragment are equal to those of another fragment, since each fragment is generated by the same macro. Hence, the argument coordinates of the \verb/\put/ can be calculated without considering such shifted values. Thus, the value 342 is equal to 171$\times$2, and 684 is equal to 171$\times$4. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Combination of Macros Through a Bond} Since each of the macros described in the other chapters of the present manual is based on a picture environment, one of the simplest ways of combining structures is to place individual structures into an outer picture environment. Such combination of macros increases the variety of structural diagrams. In order to illustrate the method of calculating coordinates, we take the drawing of biphenyl as the first example: \begin{verbatim} \begin{picture}(1200,600)(0,0) \put(0,0){\bzdrh{4==}} \put(546,0){\bzdrh{}} \end{picture} \end{verbatim} This statement produces the following structure: \begin{center} \begin{picture}(1200,600)(0,0) \put(0,0){\bzdrh{4==}} \put(546,0){\bzdrh{}} \end{picture} \end{center} The first argument of each \verb/\put/ command represents the coordinates of the point on which the structure is printed. The inner origin of the macro \verb/\bzdrh/ is the leftmost position of the benzene ring. The structure typeset by the command \verb/\put(0,0)/\verb/{\bzdrh{4==}}/ has a rightmost terminal point at $(546,0)$ with respect to the inner picture environment.\footnote{%%%%%%%%%%%%%%%%%%%%%% The absolute cooridnates with respect to the outer picture environment is $(546+400, 0+240)$ in this case.} %%%%%% The value $546$ is calculated by $406 + 140$, where 406 is the length of the horizontal hexagon (= $103+200+103$) and 140 is the bond length produced by the argument \verb/{4==}/. The command \verb/\put(546,0)/\verb/{\bzdrh{}}/ prints another benzene ring so that the inner origin of this benzene is placed on the terminal position of the former benzene ring. Note again that the argument coordinates of \verb/\put/ can be calculated without considering such shifted values, $(400,240)$, since each of the fragments is generated by the same macro. Let us draw 1-chloro-4-morphorinobenzene by means of two different ways. \begin{verbatim} \begin{picture}(1200,600)(0,0) \put(0,0){\bzdrh{1==Cl;4==}} \put(546,0){\sixheteroh[H]{1==N;4==O}{}} \end{picture} \qquad \begin{picture}(1200,600)(0,0) \put(0,0){\bzdrh{1==Cl;4==N}} \put(566,0){\sixheteroh[H]{1=={ };4==O}{}} \end{picture} \end{verbatim} These statements produce essentially the same structure: \begin{center} \begin{picture}(1200,600)(0,0) \put(0,0){\bzdrh{1==Cl;4==}} \put(546,0){\sixheteroh[H]{1==N;4==O}{}} \end{picture} \qquad \begin{picture}(1200,600)(0,0) \put(0,0){\bzdrh{1==Cl;4==N}} \put(556,0){\sixheteroh[H]{1=={ };4==O}{}} \end{picture} \end{center} It should be noted that \verb/{4==}/ in SUBSLIST produces a bond without a substituent at the 4-position of the benzene ring, while \verb*/1=={ }/ in ATOMLIST creates a vacancy to accomodate the nitrogen atom. The following example illustrates a more complicated structure with a vertical bond linking two fragment structures. Thus, the statement \begin{verbatim} \begin{picture}(1200,1500)(-200,-600) \put(0,0){\decaheterov[H]{4a==N}{4D==O;7B==HO;{{10}A}==H}} \put(0,-546){\bzdrv{1==;3==OMe;4==OMe;6==Br}} \end{picture} \end{verbatim} prints the following diagram: \hspace*{3cm} \begin{center} \begin{picture}(1200,1500)(-200,-600) \put(0,0){\decaheterov[H]{4a==N}{4D==O;7B==HO;{{10}A}==H}} \put(0,-546){\bzdrv{1==;3==OMe;4==OMe;6==Br}} \end{picture} \end{center} \noindent The first argument of each \verb/\put/ command represents the coordinates of the point on which the structure is printed. The value $-546$ is calculated by 140 (bond length) + 406 (the height of the hexagon = $103+200+103$), because the inner origin of the structure printed by \verb/\decaheterov/ is position 5 (the left carbon atom adjacent to the nitrogen atom) and that of the latter structure is position 4 (the bottom carbon attached by the methoxy group). The following example illustrates a combined structure in which two cyclic substructures are linked through an aliphatic unit \begin{verbatim} \begin{picture}(800,1000)(0,0) \put(0,0){\cyclohexaneh[H]{4==}} \put(754,0){\bzdrh{1==}} \put(520,100){\tetrahedral{0==C;1D==O}} \end{picture} \end{verbatim} This statement produces \begin{center} \begin{picture}(800,1000)(0,0) \put(0,0){\cyclohexaneh[H]{4==}} \put(754,0){\bzdrh{1==}} \put(520,100){\tetrahedral{0==C;1D==O}} \end{picture} \end{center} The calculation of the values for \verb/\tetrahedral/ is slightly complicated, since its inner origin is different from those of the other commands. The right terminal position due to the \verb/\cyclohexaneh/ is the point $(546,0)$, the $x$-coordinate of which is equal to the length of a benzene ring (406) plus a bond length (140). The left terminal position due to the \verb/\bzdrh/ is the point $(614, 0)$, because $754-140=614$. Then, the aliphatic unit (\verb/\tetrahedral/) should be placed at the average position of $x$-coordinate $(546 + 614)/2 = 580$. Since the inner origin of the the \verb/\cyclohexaneh/ is $(400, 240)$ and that of the \verb/\tetrahedral/ is $(300, 300)$, the $x$-coordinate is calculated to be $580-(300-240)= 520$ while the $y$-coordinate is calculated to be $400-300=100$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Using Building Blocks} Macros \verb/\sixunitv/ and \verb/\fiveunitv/ are designed for building a new fused ring system: \begin{verbatim} \sixunitv[BONDLIST]{ATOMLIST}{SUBSLIST}{OMIT} \fiveunitv[BONDLIST]{ATOMLIST}{SUBSLIST}{OMIT} \end{verbatim} where argument OMIT (a--f for \verb/\sixunitv/ and a--e for \verb/\fiveunitv/) is a list of characters, each of which represents one bond to be omitted. The other arguments have the same formats as described in the preceding sections. These macros produce five- and six-membered fragments respectively, in which the bond assigned by argument OMIT is deleted to be a fused vacant bond. They include the mechanism of the hetroatom truncation in order to be applied to typesetting both carbocycles and heterocycles. For example, a tricyclic system %\hspace*{3cm} \begin{center} \begin{picture}(1200,1500)(-200,-600) \put(0,0){\decaheterov[fhk]{3==N}{6==CH$_3$O;7==CH$_3$O}} \put(513,-303){\sixunitv[H]{1=={ }}% {3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{f}} \end{picture} \end{center} \noindent is typeset with the statement: \begin{verbatim} \begin{picture}(1200,1500)(-200,-600) \put(0,0){\decaheterov[fhk]{3==N}{6==CH$_3$O;7==CH$_3$O}} \put(513,-303){\sixunitv[H]{1=={ }}% {3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{f}} \end{picture} \end{verbatim} In order to examine the details of the combination, let us typeset the structure with the first command: \begin{xymspec} \begin{picture}(1200,1500)(-200,-600) \put(0,0){\decaheterov[fhk]{3==N}{6==CH$_3$O;7==CH$_3$O}} \put(0,0){\circle{80}} \end{picture} \end{xymspec} and separately the structure with the secdond command: \begin{xymspec} \begin{picture}(1200,1500)(-200,-600) \put(513,-303){\sixunitv[H]{1=={ }}% {3==C$_2$H$_5$;4==CH$_2$COOC$_2$H$_5$}{f}} \put(0,0){\circle{80}} \end{picture} \end{xymspec} It should be noted that argument ATOMLIST in the \verb/\sixunitv/ macro contains the assignment ``\verb*/1=={ }/'' which assures the vacant bridgehead position. This vacancy is occupied by the bridgehead nitrogen printed by the \verb/\decaheterov/ macro. The following examples illustrate combinations of \verb/decaheterov/ and \verb/\sixunitv/ to produce a borane and the related carbocycle. \begin{verbatim} \begin{picture}(1200,1000)(0,0) \put(0,0){\decaheterov[H]{}{}} \put(171,303){\sixunitv[H]{4=={ }}{}{cd}} \end{picture} \qquad \begin{picture}(1200,1000)(0,0) \put(0,0){\decaheterov[H]{8a==B}{}} \put(171,303){\sixunitv[H]{4=={ }}{}{cd}} \end{picture} \qquad \begin{picture}(1200,1000)(0,0) \put(0,0){\sixunitv[H]{2=={ }}{}{a}} \put(342,0){\sixunitv[H]{}{}{ef}} \put(171,303){\sixheterovi[H]{1==N}{}} \end{picture} \end{verbatim} These statements produce the following structures. \begin{center} \begin{picture}(1200,1000)(0,0) \put(0,0){\decaheterov[H]{}{}} \put(171,303){\sixunitv[H]{}{}{cd}} \end{picture} \qquad \begin{picture}(1200,1000)(0,0) \put(0,0){\decaheterov[H]{8a==B}{}} \put(171,303){\sixunitv[H]{}{}{cd}} \end{picture} \qquad \begin{picture}(1200,1000)(0,0) \put(0,0){\sixunitv[H]{2=={ }}{}{a}} \put(342,0){\sixunitv[H]{}{}{ef}} \put(171,303){\sixheterovi[H]{1==B}{}} \end{picture} \end{center} The second and third examples above show alternative ways to depict the carborane. Note that the argument \verb*/{2=={ }}/ in the third example is necessary to print the desired structures. The following two exmaples involve a combination of two \verb/\sixunitv/ commands. \begin{verbatim} \begin{picture}(1200,800)(0,0) \put(0,0){\sixunitv[H]{3==O}{1D==O;4==CH$_{3}$}{b}} \put(342,0){\sixunitv[H]{5=={ }}{4D==O}{e}} \end{picture} \qquad \begin{picture}(1200,800)(0,0) \put(0,0){\sixunitv[c]{}{}{b}} \put(342,0){\sixunitv[a]{}{}{e}} \end{picture} \end{verbatim} These statements provide \begin{center} \begin{picture}(1200,800)(0,0) \put(0,0){\sixunitv[H]{3==O}{1D==O;4==CH$_{3}$}{b}} \put(342,0){\sixunitv[H]{5=={ }}{4D==O}{e}} \end{picture} \qquad \begin{picture}(1200,800)(0,0) \put(0,0){\sixunitv[c]{}{}{b}} \put(342,0){\sixunitv[a]{}{}{e}} \end{picture} \end{center} The following exmaple involves a combination of three \verb/\sixunitv/ commands and one \verb/\bzdrv/ command. \begin{verbatim} \begin{picture}(1600,800)(0,0) \put(0,0){\bzdrv[r]{1==OH;5==THPO}} \put(342,0){\sixunitv[c]{2==O}{1D==O}{be}} \put(684,0){\sixunitv[H]{6=={ }}{1==CH$_{3}$}{be}} \put(1026,0){\sixunitv[H]{}{3D==O}{e}} \end{picture} \end{verbatim} This statement provides \begin{center} \begin{picture}(1600,1000)(0,0) \put(0,0){\bzdrv[r]{1==OH;5==THPO}} \put(342,0){\sixunitv[c]{2==O}{1D==O}{be}} \put(684,0){\sixunitv[H]{6=={ }}{1==CH$_{3}$}{be}} \put(1026,0){\sixunitv[H]{}{3D==O}{e}} \end{picture} \end{center} A bicyclo[3.3.1]nonane is typeset by this technique. \begin{verbatim} \begin{picture}(1600,800)(0,0) \put(0,0){\cyclohexaneh[H]{3Sa==\lmoiety{H$_{5}$C$_{2}$OCO\kern2em}}} \put(200,0){\sixunith[H]{}{3D==O;4==CO$_{2}$C$_{2}$H$_{5}$}{af}} \end{picture} \qquad \begin{picture}(1600,800)(0,0) \put(0,0){\cyclohexaneh[H]{3Sa==\lmoiety{H$_{5}$C$_{2}$OCO\kern2em}}} \put(200,0){\fiveunith[H]{}{2D==O;1==CO$_{2}$C$_{2}$H$_{5}$}{c}} \end{picture} \end{verbatim} These statements provide equivalent results as follows. \begin{center} \begin{picture}(1600,800)(0,0) \put(0,0){\cyclohexaneh[H]{3Sa==\lmoiety{H$_{5}$C$_{2}$OCO\kern2em}}} \put(200,0){\sixunith[H]{}{3D==O;4==CO$_{2}$C$_{2}$H$_{5}$}{af}} \end{picture} \qquad \begin{picture}(1600,800)(0,0) \put(0,0){\cyclohexaneh[H]{3Sa==\lmoiety{H$_{5}$C$_{2}$OCO\kern2em}}} \put(200,0){\fiveunith[H]{}{2D==O;1==CO$_{2}$C$_{2}$H$_{5}$}{c}} \end{picture} \end{center} A vertical form of bicyclo[3.3.1]nonane is also typeset by this technique. \begin{verbatim} \begin{picture}(800,1000)(0,0) \put(0,0){\cyclohexanev[H]{6Sa==\lmoiety{H$_{2}$C=(H$_{3}$C)CCH$_{2}$}; 2Sa==CH$_{3}$}} \put(0,200){\sixunitv[a]{}{6D==O}{cd}} \end{picture} \end{verbatim} This statement provides \begin{center} \begin{picture}(800,1000)(0,0) \put(0,0){\cyclohexanev[H]{6Sa==\lmoiety{H$_{2}$C=(H$_{3}$C)CCH$_{2}$}; 2Sa==CH$_{3}$}} \put(0,200){\sixunitv[a]{}{6D==O}{cd}} \end{picture} \end{center} [7](2,6)- and [6](2,6)Pyridinophanes are other examples typeset by this technique. In a similar way, 13-Bromo-(2,6)metacyclophane can be printed easily. \begin{verbatim} \begin{picture}(1200,1000)(0,0) \put(0,0){\sixunitv[H]{2=={ }}{}{ab}} \put(342,0){\sixunitv[H]{6=={ }}{}{ef}} \put(171,303){\pyridinevi{}} \end{picture} \qquad \begin{picture}(1200,1000)(0,0) \put(0,0){\sixunitv[H]{2=={ }}{}{ab}} \put(342,0){\fiveunitvi[H]{5=={ }}{}{de}} \put(171,303){\pyridinevi{}} \end{picture} \qquad \begin{picture}(1200,1000)(0,0) \put(0,0){\sixunitv[H]{2=={ }}{}{ab}} \put(342,0){\sixunitv[H]{6=={ }}{}{ef}} \put(171,303){\bzdrv{4Sa==\kern.5em\raise1ex\hbox{Br}}} \end{picture} \end{verbatim} These statements provide \begin{center} \begin{picture}(800,1000)(0,0) \put(0,0){\sixunitv[H]{2=={ }}{}{ab}} \put(342,0){\sixunitv[H]{6=={ }}{}{ef}} \put(171,303){\pyridinevi{}} \end{picture} \qquad \begin{picture}(800,1000)(0,0) \put(0,0){\sixunitv[H]{2=={ }}{}{ab}} \put(342,0){\fiveunitvi[H]{5=={ }}{}{de}} \put(171,303){\pyridinevi{}} \end{picture} \qquad \begin{picture}(800,1000)(0,0) \put(0,0){\sixunitv[H]{2=={ }}{}{ab}} \put(342,0){\sixunitv[H]{6=={ }}{}{ef}} \put(171,303){\bzdrv{4Sa==\kern.5em\raise1ex\hbox{Br}}} \end{picture} \end{center} We have reported an article on dye releasers for instant color photography, in which a variety of structural formulas have been typeset by means of original utilities of the \LaTeX{} picture environment \cite{fujita5}. The present \XyMTeX{} provides us with a more versatile tool of drawing such complex molecules. Thus, the formula of a cyan dye releaser for instant color photography is typeset by the statement: \begin{verbatim} \begin{picture}(4000,2000)(0,-1000) \put(0,0){\bzdrv{1==OH;2==NH--SO$_{2}$;4==OC$_{16}$H$_{33}$;5==CH$_{3}$}} \put(993,230){\bzdrh{1==;2==OCH$_{2}$CH$_{2}$OCH$_{3}$;% 5==NH--SO$_{2}$}} \put(1890,-140){\bzdrh{1==;5==SO$_{2}$--NH}} \put(2750,-850){\naphdrh{1==;5==OH;8==}} \put(1800,-850){\bzdrh{1==O$_{2}$N;5==SO$_{3}$CH$_{3}$;4==N=N}} \end{picture} %} \end{verbatim} \clearpage These commands produce the following structure: \begin{center} %\fbox{ \begin{picture}(4000,2000)(0,-1000) \put(0,0){\bzdrv{1==OH;2==NH--SO$_{2}$;4==OC$_{16}$H$_{33}$;5==CH$_{3}$}} \put(993,230){\bzdrh{1==;2==OCH$_{2}$CH$_{2}$OCH$_{3}$;% 5==NH--SO$_{2}$}} \put(1890,-140){\bzdrh{1==;5==SO$_{2}$--NH}} \put(2750,-850){\naphdrh{1==;5==OH;8==}} \put(1800,-850){\bzdrh{1==O$_{2}$N;5==SO$_{3}$CH$_{3}$;4==N=N}} \end{picture} %} \end{center}